fix: 电气bom调整
This commit is contained in:
parent
6e2fe973e0
commit
850c44a18b
|
|
@ -9,5 +9,7 @@ public class BomConstant {
|
|||
|
||||
public static final String SAP_YDBOM="1";
|
||||
|
||||
public static final String NO_TEMPORARY_PREFIX = "T";
|
||||
public static final String PROJECT_TYPE_TEMPORARY = "T";
|
||||
|
||||
public static final String PROJECT_TYPE_TEMPORARY_MATERIAL_NO = "9000000000";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.product.bomnew.pojo.vo;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.product.bomnew.constant.BomConstant;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -120,7 +121,7 @@ public class BomNewDQbomVO extends BomNewDQbomChildEntity implements Serializabl
|
|||
private String drawingNoDesc;
|
||||
|
||||
public String getDrawingNoDesc() {
|
||||
if (StrUtil.equals(getProjectType(), "T")) {
|
||||
if (StrUtil.equals(getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) {
|
||||
return "";
|
||||
}
|
||||
return getDrawingNo();
|
||||
|
|
@ -133,7 +134,7 @@ public class BomNewDQbomVO extends BomNewDQbomChildEntity implements Serializabl
|
|||
private String materialNoDesc;
|
||||
|
||||
public String getMaterialNoDesc() {
|
||||
if (StrUtil.equals(getProjectType(), "T")) {
|
||||
if (StrUtil.equals(getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) {
|
||||
return "";
|
||||
}
|
||||
return getMaterialNo();
|
||||
|
|
|
|||
|
|
@ -42,15 +42,15 @@ public class DQbomExcelVO extends BaseImportExcelDTO {
|
|||
@ExcelColumn("单位")
|
||||
private String materialUnit;
|
||||
|
||||
@ExcelColumn("重量")
|
||||
private BigDecimal unitWeight;
|
||||
|
||||
@ExcelColumn("项目类别")
|
||||
private String projectType;
|
||||
|
||||
@ExcelColumn("版本")
|
||||
private String currentVersion;
|
||||
|
||||
@ExcelColumn("单重")
|
||||
private BigDecimal unitWeight;
|
||||
|
||||
@ExcelColumn("备注")
|
||||
private String remark;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service;
|
|||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.product.bomnew.constant.BomConstant;
|
||||
import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum;
|
||||
import com.nflg.product.bomnew.constant.MaterialGetEnum;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity;
|
||||
|
|
@ -123,7 +124,9 @@ public class BomNewDQbomExceptionCheckService {
|
|||
private void checkParent(BomNewDQbomParentEntity parent) {
|
||||
EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK;
|
||||
if (parent.getRootIs() == 1 || parent.getUserRootIs() == 1) {
|
||||
if ("T".equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) {
|
||||
if (StrUtil.isBlank(parent.getProjectType())) {
|
||||
status = EBomExceptionStatusEnum.EXCEPT_NO_8;
|
||||
} else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(parent.getProjectType()) || "Q".equals(parent.getProjectType())) {
|
||||
if (StrUtil.isBlank(parent.getMaterialName())) {
|
||||
status = EBomExceptionStatusEnum.EXCEPT_NO_4;
|
||||
}
|
||||
|
|
@ -162,12 +165,12 @@ public class BomNewDQbomExceptionCheckService {
|
|||
|
||||
private void checkChild(BomNewDQbomChildEntity child) {
|
||||
EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK;
|
||||
if ("T".equals(child.getProjectType()) || "Q".equals(child.getProjectType())) {
|
||||
if (StrUtil.isBlank(child.getProjectType())) {
|
||||
status = EBomExceptionStatusEnum.EXCEPT_NO_8;
|
||||
} else if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(child.getProjectType()) || "Q".equals(child.getProjectType())) {
|
||||
if (StrUtil.isBlank(child.getMaterialName())) {
|
||||
status = EBomExceptionStatusEnum.EXCEPT_NO_4;
|
||||
}
|
||||
// } else if (child.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) {
|
||||
// status = EBomExceptionStatusEnum.EXCEPT_NO_4;
|
||||
} else {
|
||||
BaseMaterialVO materialVO = materialVOS.stream().filter(v -> v.getMaterialNo().equals(child.getMaterialNo()))
|
||||
.findFirst()
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ public class DQBomImportService {
|
|||
.list();
|
||||
|
||||
isSame = cc.size() == oc.size()
|
||||
&& cc.stream().filter(c -> c.getProjectType().equals("T")).count() == oc.stream().filter(c -> c.getProjectType().equals("T")).count()
|
||||
&& 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("导入的数据已存在,请勿重复导入");
|
||||
|
||||
|
|
@ -218,7 +218,7 @@ public class DQBomImportService {
|
|||
Set<String> ccm = cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet());
|
||||
|
||||
isSame = cc.size() == oc.size()
|
||||
&& cc.stream().filter(c -> c.getProjectType().equals("T")).count() == oc.stream().filter(c -> c.getProjectType().equals("T")).count()
|
||||
&& 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(ccm, oc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toSet())).isEmpty();
|
||||
//VUtils.isTure(isSame).throwMessage("导入的数据已存在,请勿重复导入");
|
||||
|
||||
|
|
@ -379,10 +379,10 @@ public class DQBomImportService {
|
|||
log.debug("电气bom导入excel,第{}行,处理前:{}", rowNum.get(), JSON.toJSONString(dQbomExcelVO));
|
||||
|
||||
dQbomExcelVO.setRowNum(rowNum.get());
|
||||
if (dQbomExcelVO.getProjectType().equals("T")) {
|
||||
if (dQbomExcelVO.getProjectType().equals(BomConstant.PROJECT_TYPE_TEMPORARY)) {
|
||||
String id = RandomUtil.randomNumbers(9);
|
||||
dQbomExcelVO.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id);
|
||||
dQbomExcelVO.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id);
|
||||
dQbomExcelVO.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY + id);
|
||||
dQbomExcelVO.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY + id);
|
||||
if (StrUtil.isBlank(dQbomExcelVO.getMaterialUnit())) {
|
||||
dQbomExcelVO.setMaterialUnit("PC");
|
||||
}
|
||||
|
|
@ -391,7 +391,7 @@ public class DQBomImportService {
|
|||
}
|
||||
}
|
||||
if (StrUtil.equals(dQbomExcelVO.getMaterialNo(), "9000000000")) {
|
||||
dQbomExcelVO.setProjectType("T");
|
||||
dQbomExcelVO.setProjectType(BomConstant.PROJECT_TYPE_TEMPORARY);
|
||||
}
|
||||
dQbomExcelVO.setCurrentVersion("");
|
||||
|
||||
|
|
|
|||
|
|
@ -257,16 +257,17 @@ public class DQBomService {
|
|||
}
|
||||
//处理child
|
||||
List<BomNewDQbomChildEntity> children = Convert.toList(BomNewDQbomChildEntity.class, query.getChildren());
|
||||
List<BomNewDQbomParentEntity> cps = new ArrayList<>();
|
||||
for (int index = 0, count = children.size(); index < count; index++) {
|
||||
BomNewDQbomChildEntity c = children.get(index);
|
||||
if (Objects.isNull(c.getRowId()) || c.getRowId() == 0) {
|
||||
c.setRowId(IdWorker.getId());
|
||||
c.setCreatedBy(SessionUtil.getUserCode());
|
||||
c.setCreatedName(SessionUtil.getRealName());
|
||||
if (StrUtil.equals(c.getProjectType(), "T")) {
|
||||
if (StrUtil.equals(c.getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) {
|
||||
String id = RandomUtil.randomNumbers(9);
|
||||
c.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id);
|
||||
c.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id);
|
||||
c.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY + id);
|
||||
c.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY + id);
|
||||
if (Objects.isNull(c.getNum()) || NumberUtil.equals(c.getNum(), BigDecimal.ZERO)) {
|
||||
c.setNum(BigDecimal.ONE);
|
||||
}
|
||||
|
|
@ -282,8 +283,21 @@ public class DQBomService {
|
|||
c.setIdentityNo(c.getParentRowId() + "_" + c.getRowId());
|
||||
c.setOrderNumber(StrUtil.padPre(String.valueOf(index + 1), 3, '0'));
|
||||
c.setTotalWeight(BomUtil.calculateTotalWeight(c.getNum(), query.getChildren().get(index).getUnitWeight()));
|
||||
//处理parent
|
||||
BomNewDQbomParentEntity cp = dQBomParentService.lambdaQuery()
|
||||
.eq(BomNewDQbomParentEntity::getMaterialNo, c.getMaterialNo())
|
||||
.eq(BomNewDQbomParentEntity::getStatus, DQBomStatusEnum.WAIT_CONVERT.getValue())
|
||||
.one();
|
||||
if (!Objects.isNull(cp)) {
|
||||
cp.setMaterialName(c.getMaterialName());
|
||||
cp.setUnitWeight(c.getUnitWeight());
|
||||
cp.setTotalWeight(BomUtil.calculateTotalWeight(cp.getNum(), cp.getUnitWeight()));
|
||||
cp.setModifyTime(LocalDateTime.now());
|
||||
cps.add(cp);
|
||||
}
|
||||
}
|
||||
dQBomChildService.saveBatch(children);
|
||||
dQBomParentService.updateBatchById(cps);
|
||||
query.setChildren(Convert.toList(BomNewDQbomVO.class, children));
|
||||
return query;
|
||||
}
|
||||
|
|
@ -333,7 +347,14 @@ public class DQBomService {
|
|||
}
|
||||
|
||||
public List<DQbomExcelVO> exportBom(Long rootBomRowId) {
|
||||
return Convert.toList(DQbomExcelVO.class, getAll(rootBomRowId));
|
||||
List<BomNewDQbomVO> datas = getAll(rootBomRowId);
|
||||
datas.forEach(d -> {
|
||||
if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(d.getProjectType())) {
|
||||
d.setMaterialNo(BomConstant.PROJECT_TYPE_TEMPORARY_MATERIAL_NO);
|
||||
d.setDrawingNo(BomConstant.PROJECT_TYPE_TEMPORARY_MATERIAL_NO);
|
||||
}
|
||||
});
|
||||
return Convert.toList(DQbomExcelVO.class, datas);
|
||||
}
|
||||
|
||||
private List<BomNewDQbomVO> getAll(Long rootBomRowId) {
|
||||
|
|
@ -376,10 +397,15 @@ public class DQBomService {
|
|||
T1DTO t1 = new T1DTO();
|
||||
t1.setID(RandomUtil.randomNumbers(5));
|
||||
t1.setMATNR(d.getParentMaterialNo());
|
||||
t1.setIDNRK(d.getMaterialNo());
|
||||
t1.setMEINS(d.getMaterialUnit());
|
||||
t1.setMENGE(d.getNum().toString());
|
||||
t1.setPOSTP(d.getProjectType());
|
||||
if (BomConstant.PROJECT_TYPE_TEMPORARY.equals(d.getProjectType())) {
|
||||
t1.setIDNRK("");
|
||||
t1.setPOTX1(d.getMaterialName());
|
||||
} else {
|
||||
t1.setIDNRK(d.getMaterialNo());
|
||||
}
|
||||
t1.setDATUM(dateYMD);
|
||||
t1s.add(t1);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue