optimize: 电气bom优化

This commit is contained in:
曹鹏飞 2024-04-27 17:54:19 +08:00
parent 2f138ae0c0
commit 48b97879a3
3 changed files with 24 additions and 39 deletions

View File

@ -40,10 +40,10 @@ public class TestApi {
List<T1DTO> t1s = new ArrayList<>();
T1DTO t1 = new T1DTO();
t1.setID(RandomUtil.randomNumbers(5));
t1.setMATNR("2200022146");
t1.setIDNRK("2100724596");
t1.setMATNR("2100677191");
t1.setIDNRK("1100002498");
t1.setMEINS("PC");
t1.setMENGE("1.00");
t1.setMENGE("3.00");
t1.setPOSTP("L");
t1.setDATUM(dateYMD);
t1s.add(t1);

View File

@ -112,30 +112,23 @@ public class DQBomImportService {
//将导入图号重设为主物料图号
Set<String> pMaterialNos = parents.stream().map(BomNewDQbomParentEntity::getMaterialNo).collect(Collectors.toSet());
List<BomNewDQbomParentEntity> oldParents = dQBomParentService.getLatestByMaterialNo(pMaterialNos);
Set<String> cMaterialNos = children.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet());
cMaterialNos.addAll(pMaterialNos);
List<BaseMaterialVO> materialBaseInfos = materialMainService.getMaterialBaseInfo(new ArrayList<>(cMaterialNos));
parents.forEach(p -> {
BomNewDQbomParentEntity oldParent = oldParents.stream().filter(op -> op.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null);
BomNewDQbomParentEntity oldParent = oldParents.stream()
.filter(op -> op.getMaterialNo().equals(p.getMaterialNo()))
.findFirst()
.orElse(null);
if (!Objects.isNull(oldParent) && Objects.equals(oldParent.getStatus(), DQBomStatusEnum.WAIT_CONVERT.getValue())) {
dQBomParentService.getBaseMapper().deleteById(oldParent.getRowId());
dQBomChildService.deleteAllChildren(oldParent.getRowId());
}
BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(p.getMaterialNo())).findFirst().orElse(null);
if (!Objects.isNull(vo)) {
p.setDrawingNo(vo.getDrawingNo());
}
});
dQBomParentService.setLastVersionIs0(pMaterialNos);
dQBomParentService.saveBatch(parents);
children.forEach(c -> {
BaseMaterialVO vo = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(c.getMaterialNo())).findFirst().orElse(null);
if (!Objects.isNull(vo)) {
c.setDrawingNo(vo.getDrawingNo());
}
});
dQBomChildService.saveBatch(children);
BomNewDQbomParentEntity root = parents.stream().filter(p -> p.getRootIs() == 1).findFirst().orElseThrow(() -> new NflgBusinessException(STATE.BusinessError, "根节点不存在"));
BomNewDQbomParentEntity root = parents.stream()
.filter(p -> p.getRootIs() == 1)
.findFirst()
.orElseThrow(() -> new NflgBusinessException(STATE.BusinessError, "根节点不存在"));
dQBomService.checkException(root.getRowId());
}
@ -143,15 +136,6 @@ public class DQBomImportService {
List<BomNewDQbomChildEntity> children) throws JsonProcessingException {
log.debug("checkInconsistentDataentity" + JsonUtil.toJson(parent));
BomNewDQbomParentEntity oldParent = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo());
// if (parent.getRowId() > 0) {
// old = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo());
// } else {
// old = dQBomChildService.lambdaQuery()
// .eq(BomNewDQbomChildEntity::getParentRowId, parent.getRowId())
// .eq(BomNewDQbomChildEntity::getMaterialNo, parent.getMaterialNo())
// .one();
// }
//BomNewDQbomParentEntity oldParent = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo());
boolean isSame = true;
if (Objects.isNull(oldParent)) {
return false;
@ -171,8 +155,6 @@ public class DQBomImportService {
isSame = cc.size() == oc.size()
&& cc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count() == oc.stream().filter(c -> c.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)).count()
&& Sets.difference(cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet()), oc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet())).isEmpty();
//VUtils.isTure(isSame).throwMessage("导入的数据已存在,请勿重复导入");
for (BomNewDQbomChildEntity ccc : cc) {
if (!checkInconsistentData(parent.getRowId(), ccc, parents, children)) {
isSame = false;
@ -249,15 +231,6 @@ public class DQBomImportService {
);
}
// List<Integer> noProjectType = datas.stream().filter(u -> !TYPES.contains(u.getProjectType()))
// .map(BaseImportExcelDTO::getRowNum)
// .collect(Collectors.toList());
// if (!noProjectType.isEmpty()) {
// errorMsg.addAll(noProjectType.stream().map(n -> OperationErrorMsgVO.create("" + n + "", "项目类别不正确"))
// .collect(Collectors.toList())
// );
// }
List<Integer> remarkTooLong = datas.stream().filter(u -> StringUtil.CountForMysql(u.getRemark()) > 200)
.map(BaseImportExcelDTO::getRowNum)
.collect(Collectors.toList());
@ -267,6 +240,18 @@ public class DQBomImportService {
);
}
List<String> materialNos = datas.stream().map(DQbomExcelVO::getMaterialNo).distinct().collect(Collectors.toList());
List<BaseMaterialVO> materialBaseInfos = materialMainService.getMaterialBaseInfo(materialNos);
datas.forEach(d -> {
BaseMaterialVO vo = materialBaseInfos.stream()
.filter(m -> m.getMaterialNo().equals(d.getMaterialNo()))
.findFirst()
.orElse(null);
if (!Objects.isNull(vo)) {
d.setDrawingNo(vo.getDrawingNo());
}
});
return errorMsg;
}

View File

@ -390,7 +390,7 @@ public class DQBomService {
ImportSapParamDTO sapDto = new ImportSapParamDTO();
sapDto.setZID(RandomUtil.randomNumbers(5));
sapDto.setI_WERKS("1");
sapDto.setI_STLAN("2");
sapDto.setI_STLAN("1");
List<T1DTO> t1s = new ArrayList<>();
String dateYMD = DateUtil.format(new Date(), "yyyyMMdd");
datas.forEach(d -> {