调整异常
This commit is contained in:
parent
0f795e71fd
commit
7b3f7318ba
|
|
@ -185,7 +185,7 @@ public class EbomApi extends BaseApi {
|
||||||
// }
|
// }
|
||||||
@PostMapping("createBomImport")
|
@PostMapping("createBomImport")
|
||||||
@ApiOperation("创建EBOM-导入")
|
@ApiOperation("创建EBOM-导入")
|
||||||
public ResultVO<Boolean> createBomImport(@ModelAttribute BomNewEbomImportDTO dto) throws IOException {
|
public ResultVO<Boolean> createBomImport(@ModelAttribute BomNewEbomImportDTO dto) throws IOException, ExecutionException, InterruptedException {
|
||||||
if (dto.getFile() != null && !dto.getFile().getOriginalFilename().endsWith("xls") && !dto.getFile().getOriginalFilename().endsWith("xlsx")) {
|
if (dto.getFile() != null && !dto.getFile().getOriginalFilename().endsWith("xls") && !dto.getFile().getOriginalFilename().endsWith("xlsx")) {
|
||||||
return ResultVO.error("请上传Excel文件");
|
return ResultVO.error("请上传Excel文件");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,12 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<BomNewEbomParentVO> getChildBatch(List<Long> rowIds) {
|
public List<BomNewEbomParentVO> getChildBatch(List<Long> rowIds) {
|
||||||
List<BomNewEbomParentVO> result = new ArrayList<>();
|
List<BomNewEbomParentVO> result = new ArrayList<>();
|
||||||
for (Long bomRowId : rowIds) {
|
for (Long bomRowId : rowIds) {
|
||||||
|
|
@ -283,6 +289,12 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取整个BOM树
|
* 获取整个BOM树
|
||||||
*
|
*
|
||||||
|
|
@ -599,19 +611,40 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void createBomImport(BomNewEbomImportDTO dto, InputStream inputStream) throws IOException {
|
public void createBomImport(BomNewEbomImportDTO dto, InputStream inputStream) throws IOException, ExecutionException, InterruptedException {
|
||||||
|
if(dto.getParent()==null){
|
||||||
|
VUtils.isTure(true).throwMessage( "没选择父级不能导入");
|
||||||
|
}
|
||||||
List<BomNewEBomImportExcelDTO> result = EecExcelUtil.getExcelContext(inputStream, BomNewEBomImportExcelDTO.class);
|
List<BomNewEBomImportExcelDTO> result = EecExcelUtil.getExcelContext(inputStream, BomNewEBomImportExcelDTO.class);
|
||||||
|
|
||||||
List<BomNewEbomParentVO> datas = Convert.convert(new TypeReference<List<BomNewEbomParentVO>>() {
|
List<BomNewEbomParentVO> datas = Convert.convert(new TypeReference<List<BomNewEbomParentVO>>() {
|
||||||
}, result);
|
}, result);
|
||||||
|
|
||||||
|
|
||||||
|
List<String> materialNos = datas.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||||
|
//检查物料编码是否在主数据中存在
|
||||||
|
List<BaseMaterialVO> materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos);
|
||||||
|
List<String> effectiveMaterialNos = materialBaseInfo.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList());
|
||||||
|
Set<String> difference = Sets.difference(new HashSet<>(materialNos), new HashSet<>(effectiveMaterialNos));
|
||||||
|
VUtils.isTure(CollUtil.isNotEmpty(difference)).throwMessage(StrUtil.join(",", difference) + "在物料档案中不存在");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
materialMainService.intiMaterialInfo(datas, BomNewEbomParentVO::getMaterialNo);
|
materialMainService.intiMaterialInfo(datas, BomNewEbomParentVO::getMaterialNo);
|
||||||
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_EXCE.getValue());
|
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_EXCE.getValue());
|
||||||
|
|
||||||
BomNewEBomParentEditDTO bomNewEBomParentEditDTO = new BomNewEBomParentEditDTO();
|
BomNewEBomParentEditDTO bomNewEBomParentEditDTO = new BomNewEBomParentEditDTO();
|
||||||
bomNewEBomParentEditDTO.setParent(dto.getParent());
|
bomNewEBomParentEditDTO.setParent(dto.getParent());
|
||||||
bomNewEBomParentEditDTO.setDatas(datas);
|
bomNewEBomParentEditDTO.setDatas(datas);
|
||||||
eBomEdit.temporary(bomNewEBomParentEditDTO);
|
eBomEdit.temporary(bomNewEBomParentEditDTO);
|
||||||
|
|
||||||
|
|
||||||
|
if(dto.getParent().getBomRowId()>0 && (dto.getParent().getSource().equals(EBomSourceEnum.FROM_MDM.getValue())
|
||||||
|
|| dto.getParent().getSource().equals(EBomSourceEnum.FROM_EXCE.getValue()))){
|
||||||
|
|
||||||
|
deleteBom(dto.getParent().getBomRowId());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
||||||
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
||||||
}
|
}
|
||||||
|
|
@ -620,6 +653,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
ebomChildService.saveOrUpdateBatch(eBomEdit.childEntities);
|
ebomChildService.saveOrUpdateBatch(eBomEdit.childEntities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
computeLevelNumAndRootState();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -808,6 +844,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
for (Long bomRowId :
|
for (Long bomRowId :
|
||||||
rowIds) {
|
rowIds) {
|
||||||
CheckEBomException checkEBomException = new CheckEBomException(bomRowId);
|
CheckEBomException checkEBomException = new CheckEBomException(bomRowId);
|
||||||
|
checkEBomException.initException();
|
||||||
//错误状态包含在checkStatus内有异常抛出
|
//错误状态包含在checkStatus内有异常抛出
|
||||||
checkEBomException.checkContainExcept(checkStatus);
|
checkEBomException.checkContainExcept(checkStatus);
|
||||||
//筛选bomRowId()>0 说明有bom,更新只到parent这层,无bom不需要更新
|
//筛选bomRowId()>0 说明有bom,更新只到parent这层,无bom不需要更新
|
||||||
|
|
@ -947,7 +984,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
//设计 工艺,删录入 excel导入
|
//设计 工艺,删录入 excel导入
|
||||||
delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0
|
delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0
|
||||||
&& (u.getSource().equals(EBomSourceEnum.FROM_MDM.getValue())
|
&& (u.getSource().equals(EBomSourceEnum.FROM_MDM.getValue())
|
||||||
|| EBomStatusEnum.PUBLISHED.equalsValue(u.getStatus())))
|
||u.getSource().equals(EBomSourceEnum.FROM_EXCE.getValue())))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
//借用件不能删除,原始bom转换只能自己
|
//借用件不能删除,原始bom转换只能自己
|
||||||
|
|
@ -1001,7 +1038,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
public Boolean temporary(BomNewEBomParentEditDTO dto) {
|
public Boolean temporary(BomNewEBomParentEditDTO dto) {
|
||||||
|
|
||||||
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
||||||
|
dto.setOpType(EbomEditStatusEnum.HANDLER_CREATED.getValue());
|
||||||
eBomEdit.temporary(dto);
|
eBomEdit.temporary(dto);
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
if (CollectionUtil.isNotEmpty(eBomEdit.parentEntities)) {
|
||||||
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
this.saveOrUpdateBatch(eBomEdit.parentEntities);
|
||||||
}
|
}
|
||||||
|
|
@ -1011,7 +1050,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
ebomChildService.getBaseMapper().updateEBomMaterialUse();
|
ebomChildService.getBaseMapper().updateEBomMaterialUse();
|
||||||
}
|
}
|
||||||
if (dto.getParent() != null) {
|
if (dto.getParent() != null) {
|
||||||
if (dto.getParent() != null) {
|
if (CollectionUtil.isNotEmpty(dto.getDelDatas())) {
|
||||||
deleteBomChild(dto.getDelDatas());
|
deleteBomChild(dto.getDelDatas());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1027,6 +1066,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
public Boolean submit(BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
|
public Boolean submit(BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
|
||||||
|
|
||||||
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
|
||||||
|
dto.setOpType(EbomEditStatusEnum.HANDLER_FINISHED.getValue());
|
||||||
eBomEdit.temporary(dto);
|
eBomEdit.temporary(dto);
|
||||||
|
|
||||||
List<Integer> checkStatus = CollectionUtil.toList(new Integer[]{
|
List<Integer> checkStatus = CollectionUtil.toList(new Integer[]{
|
||||||
|
|
@ -1049,6 +1089,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckEBomException checkEBomException = new CheckEBomException(allBom);
|
CheckEBomException checkEBomException = new CheckEBomException(allBom);
|
||||||
|
checkEBomException.initException();
|
||||||
checkEBomException.checkContainExcept(checkStatus);
|
checkEBomException.checkContainExcept(checkStatus);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1063,8 +1104,10 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dto.getParent() != null) {
|
if (dto.getParent() != null) {
|
||||||
|
if (CollectionUtil.isNotEmpty(dto.getDelDatas())) {
|
||||||
deleteBomChild(dto.getDelDatas());
|
deleteBomChild(dto.getDelDatas());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ebomChildService.getBaseMapper().updateEBomMaterialUse();
|
ebomChildService.getBaseMapper().updateEBomMaterialUse();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
@ -1079,6 +1122,9 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
*/
|
*/
|
||||||
private void deleteBomChild(List<BomNewEbomParentVO> delList) {
|
private void deleteBomChild(List<BomNewEbomParentVO> delList) {
|
||||||
|
|
||||||
|
if(CollectionUtil.isEmpty(delList)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
List<BomNewEbomParentVO> delTagList = new ArrayList<>();
|
List<BomNewEbomParentVO> delTagList = new ArrayList<>();
|
||||||
//原始bom不正常
|
//原始bom不正常
|
||||||
List<BomNewEbomParentVO> s1List = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
|
List<BomNewEbomParentVO> s1List = delList.stream().filter(u -> Objects.equals(EBomSourceEnum.FROM_BOM.getValue(), u.getSource())
|
||||||
|
|
|
||||||
|
|
@ -182,11 +182,17 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
||||||
child.setDeviseUserCode(parent.getDeviseUserCode());
|
child.setDeviseUserCode(parent.getDeviseUserCode());
|
||||||
child.setDeviseName(parent.getDeviseName());
|
child.setDeviseName(parent.getDeviseName());
|
||||||
child.setDeptName(parent.getDeptName());
|
child.setDeptName(parent.getDeptName());
|
||||||
|
try {
|
||||||
if (MaterialshouldBomExistUtil.checkShouldBomExist(child)) {
|
if (MaterialshouldBomExistUtil.checkShouldBomExist(child)) {
|
||||||
child.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
|
child.setCurrentVersion(OriginalConstant.NO_BOM_VERSION);
|
||||||
child.setStatus(OriginalStatusEnum.UN_CONVERT.getValue());
|
child.setStatus(OriginalStatusEnum.UN_CONVERT.getValue());
|
||||||
// child.setEditStatus(OriginalEditStatusEnum.HANDLER_CREATED.getValue());
|
// child.setEditStatus(OriginalEditStatusEnum.HANDLER_CREATED.getValue());
|
||||||
}
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,12 @@ public class CheckEBomException {
|
||||||
//初始化物料信息
|
//初始化物料信息
|
||||||
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail);
|
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail);
|
||||||
|
|
||||||
|
checkException();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void checkException(){
|
||||||
for (BomNewEbomParentVO vo : allBomDetail) {
|
for (BomNewEbomParentVO vo : allBomDetail) {
|
||||||
if(Objects.isNull(vo.getExceptionStatus())) {
|
if(Objects.isNull(vo.getExceptionStatus())) {
|
||||||
vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue());
|
vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue());
|
||||||
|
|
@ -89,9 +95,11 @@ public class CheckEBomException {
|
||||||
|
|
||||||
}
|
}
|
||||||
checkOther();
|
checkOther();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查 EXCEPT_NO_3 EXCEPT_NO_6, EXCEPT_NO_9, EXCEPT_NO_10
|
* 检查 EXCEPT_NO_3 EXCEPT_NO_6, EXCEPT_NO_9, EXCEPT_NO_10
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -106,21 +106,39 @@ public class EBomEdit {
|
||||||
childEntities = new ArrayList<>();
|
childEntities = new ArrayList<>();
|
||||||
//添加数据
|
//添加数据
|
||||||
if (dto.getParent() == null) {
|
if (dto.getParent() == null) {
|
||||||
|
CheckEBomException eBomException=new CheckEBomException( dto.getDatas() );
|
||||||
|
eBomException.checkException();
|
||||||
for (BomNewEbomParentVO vo : dto.getDatas()) {
|
for (BomNewEbomParentVO vo : dto.getDatas()) {
|
||||||
parentEntities.add(createParentBomInfo (vo));
|
parentEntities.add(createParentBomInfo (vo));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
BomNewEbomParentEntity parent;
|
BomNewEbomParentEntity parent;
|
||||||
|
|
||||||
|
List<BomNewEbomParentVO> exceptList=new ArrayList<>();
|
||||||
|
exceptList.addAll(dto.getDatas());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//缺bom
|
//缺bom
|
||||||
if (dto.getParent().getBomRowId() == null || dto.getParent().getBomRowId().longValue() == 0) {
|
if (dto.getParent().getBomRowId() == null || dto.getParent().getBomRowId().longValue() == 0) {
|
||||||
|
dto.getParent().setBomRowId(dto.getParent().getRowId());
|
||||||
|
exceptList.add(dto.getParent());
|
||||||
|
CheckEBomException eBomException=new CheckEBomException( exceptList );
|
||||||
|
eBomException.checkException();
|
||||||
parent = createParentBomInfo(dto.getParent());
|
parent = createParentBomInfo(dto.getParent());
|
||||||
parentEntities.add(parent);
|
parentEntities.add(parent);
|
||||||
}else {
|
}else {
|
||||||
|
exceptList.add(dto.getParent());
|
||||||
|
CheckEBomException eBomException=new CheckEBomException( exceptList );
|
||||||
|
eBomException.checkException();
|
||||||
parent = Convert.convert(BomNewEbomParentEntity.class, dto.getParent());
|
parent = Convert.convert(BomNewEbomParentEntity.class, dto.getParent());
|
||||||
|
parent.setEditStatus(dto.getOpType());
|
||||||
|
parentEntities.add(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
SpringUtil.getBean(BomNewEbomParentService.class).initBomException(dto.getDatas());
|
|
||||||
childEntities=Convert.convert(new TypeReference<List<BomNewEbomChildEntity>>() {
|
childEntities=Convert.convert(new TypeReference<List<BomNewEbomChildEntity>>() {
|
||||||
}, dto.getDatas());
|
}, dto.getDatas());
|
||||||
|
|
||||||
|
|
@ -130,7 +148,7 @@ public class EBomEdit {
|
||||||
|
|
||||||
//child.setProjectTypeInputType(ProjectTypeInputTypeEnum.MANUAL_INPUT.getValue());
|
//child.setProjectTypeInputType(ProjectTypeInputTypeEnum.MANUAL_INPUT.getValue());
|
||||||
child.setTotalWeight(NumberUtil.mul(child.getUnitWeight(), child.getNum()));
|
child.setTotalWeight(NumberUtil.mul(child.getUnitWeight(), child.getNum()));
|
||||||
|
List<String> roleList= SpringUtil.getBean(UserRoleService.class).getUserPost();
|
||||||
//新增数据
|
//新增数据
|
||||||
if(child.getRowId()==null || child.getRowId().longValue()==0){
|
if(child.getRowId()==null || child.getRowId().longValue()==0){
|
||||||
child.setRowId(IdWorker.getId());
|
child.setRowId(IdWorker.getId());
|
||||||
|
|
@ -141,14 +159,21 @@ public class EBomEdit {
|
||||||
child.setCreatedTime(LocalDateTime.now());
|
child.setCreatedTime(LocalDateTime.now());
|
||||||
child.setCreatedBy(SessionUtil.getUserCode());
|
child.setCreatedBy(SessionUtil.getUserCode());
|
||||||
child.setSourceRowId(0l);
|
child.setSourceRowId(0l);
|
||||||
|
child.setParentRowId(parent.getRowId());
|
||||||
|
child.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue());
|
||||||
parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue());
|
parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue());
|
||||||
parent.setCreatedJob(SpringUtil.getBean(UserRoleService.class).technician()?UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue());
|
|
||||||
|
//工艺人员
|
||||||
|
if(roleList.contains(EBomConstant.TECHNICIAN)){
|
||||||
|
parent.setStatus(EBomStatusEnum.CHECKED.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
child.setEditStatus(dto.getOpType());
|
||||||
|
parent.setCreatedJob(roleList.contains(EBomConstant.TECHNICIAN)?UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue());
|
||||||
|
|
||||||
parent.setTotalWeight(NumberUtil.mul(child.getUnitWeight(), child.getNum()));
|
parent.setTotalWeight(NumberUtil.mul(child.getUnitWeight(), child.getNum()));
|
||||||
|
|
||||||
child.setParentRowId(parent.getRowId());
|
|
||||||
if(StrUtil.isEmpty(child.getProjectType())){
|
if(StrUtil.isEmpty(child.getProjectType())){
|
||||||
child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_8.getValue());
|
child.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_8.getValue());
|
||||||
}
|
}
|
||||||
|
|
@ -170,8 +195,4 @@ public class EBomEdit {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue