1、生成虚拟包批量查询主数据-缩短生成虚拟包时间
This commit is contained in:
parent
16a71b3af3
commit
362f6c7ce0
|
|
@ -17,10 +17,12 @@ import com.nflg.product.bomnew.service.MaterialMainService;
|
||||||
import com.nflg.product.bomnew.service.MaterialService;
|
import com.nflg.product.bomnew.service.MaterialService;
|
||||||
import com.nflg.product.bomnew.util.VersionUtil;
|
import com.nflg.product.bomnew.util.VersionUtil;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import org.ttzero.excel.reader.Col;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -49,19 +51,31 @@ public abstract class VirtualPackageBase {
|
||||||
protected Map<String, AddVirtrualMaterialDTO> vMNos = new HashMap<>();
|
protected Map<String, AddVirtrualMaterialDTO> vMNos = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请虚拟包
|
* 申请虚拟包
|
||||||
|
*
|
||||||
* @param child
|
* @param child
|
||||||
* @param virtualPackageTypeEnums
|
* @param virtualPackageTypeEnums
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected void generateVMNoFor31(String parentDrawingNo, List<BomNewEbomChildEntity> child, VirtualPackageTypeEnum... virtualPackageTypeEnums) {
|
protected void generateVMNoFor31(String parentDrawingNo, List<BomNewEbomChildEntity> child, VirtualPackageTypeEnum... virtualPackageTypeEnums) {
|
||||||
List<AddVirtrualMaterialDTO> params = new ArrayList<>();
|
List<AddVirtrualMaterialDTO> params = new ArrayList<>();
|
||||||
|
Set<String> vDrawingNoSet = new HashSet<>();
|
||||||
for (BomNewEbomChildEntity ch : child) {
|
for (BomNewEbomChildEntity ch : child) {
|
||||||
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
||||||
String vDrawingNo = String.join("", "(", parentDrawingNo, ")", "(", ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
String vDrawingNo = String.join("", "(", parentDrawingNo, ")", "(", ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
||||||
params.add(buildAddMaterialParamDo(StrUtil.join("",ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy));
|
vDrawingNoSet.add(vDrawingNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(vDrawingNoSet)) {
|
||||||
|
|
||||||
|
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().in(MaterialMainEntity::getDrawingNo, vDrawingNoSet).list();
|
||||||
|
Map<String, MaterialMainEntity> oldMaterialMap = oldMaterialList.stream().collect(Collectors.toMap(MaterialMainEntity::getDrawingNo, Function.identity(), (k1, k2) -> k1));
|
||||||
|
|
||||||
|
for (BomNewEbomChildEntity ch : child) {
|
||||||
|
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
||||||
|
String vDrawingNo = String.join("", "(", parentDrawingNo, ")", "(", ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
||||||
|
params.add(buildAddMaterialParamDo(StrUtil.join("", ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy, oldMaterialMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||||
|
|
@ -69,17 +83,21 @@ public abstract class VirtualPackageBase {
|
||||||
Map<String, AddVirtrualMaterialDTO> vMNosResult = SpringUtil.getBean(MaterialService.class).batchAddMaterial(addM);
|
Map<String, AddVirtrualMaterialDTO> vMNosResult = SpringUtil.getBean(MaterialService.class).batchAddMaterial(addM);
|
||||||
vMNos.putAll(vMNosResult);
|
vMNos.putAll(vMNosResult);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请虚拟包
|
* 申请虚拟包
|
||||||
|
*
|
||||||
* @param child
|
* @param child
|
||||||
* @param virtualPackageTypeEnums
|
* @param virtualPackageTypeEnums
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected void generateVMNoF21(String parentDrawingNo, List<BomNewEbomParentVO> child, VirtualPackageTypeEnum... virtualPackageTypeEnums) {
|
protected void generateVMNoF21(String parentDrawingNo, List<BomNewEbomParentVO> child, VirtualPackageTypeEnum... virtualPackageTypeEnums) {
|
||||||
List<AddVirtrualMaterialDTO> params = new ArrayList<>();
|
List<AddVirtrualMaterialDTO> params = new ArrayList<>();
|
||||||
|
|
||||||
|
Set<String> vDrawingNoSet = new HashSet<>();
|
||||||
for (BomNewEbomParentVO ch : child) {
|
for (BomNewEbomParentVO ch : child) {
|
||||||
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
||||||
String vDrawingNo;
|
String vDrawingNo;
|
||||||
|
|
@ -88,30 +106,49 @@ public abstract class VirtualPackageBase {
|
||||||
} else {
|
} else {
|
||||||
vDrawingNo = String.join("", "(", parentDrawingNo, ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
vDrawingNo = String.join("", "(", parentDrawingNo, ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
||||||
}
|
}
|
||||||
params.add(buildAddMaterialParamDo(StrUtil.join("",ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy));
|
vDrawingNoSet.add(vDrawingNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(vDrawingNoSet)) {
|
||||||
|
|
||||||
|
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().in(MaterialMainEntity::getDrawingNo, vDrawingNoSet).list();
|
||||||
|
Map<String, MaterialMainEntity> oldMaterialMap = oldMaterialList.stream().collect(Collectors.toMap(MaterialMainEntity::getDrawingNo, Function.identity(), (k1, k2) -> k1));
|
||||||
|
|
||||||
|
|
||||||
|
for (BomNewEbomParentVO ch : child) {
|
||||||
|
for (VirtualPackageTypeEnum vpy : virtualPackageTypeEnums) {
|
||||||
|
String vDrawingNo;
|
||||||
|
if (vpy == VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE) {
|
||||||
|
vDrawingNo = String.join("", parentDrawingNo, ".FHQ", "(", ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
||||||
|
} else {
|
||||||
|
vDrawingNo = String.join("", "(", parentDrawingNo, ch.getMaterialName(), ")", "(", vpy.getConMaterialName(), ")");
|
||||||
|
}
|
||||||
|
params.add(buildAddMaterialParamDo(StrUtil.join("", ch.getRowId().toString(), vpy.getConMaterialName()), vDrawingNo, vDrawingNo, vpy, oldMaterialMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
List<AddVirtrualMaterialDTO> addM = params.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||||
vMNos = SpringUtil.getBean(MaterialService.class).batchAddMaterial(addM);
|
vMNos = SpringUtil.getBean(MaterialService.class).batchAddMaterial(addM);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//申请物料编码
|
//申请物料编码
|
||||||
private AddVirtrualMaterialDTO buildAddMaterialParamDo(String key, String drawingNo, String materialName, VirtualPackageTypeEnum virtualPackageType){
|
private AddVirtrualMaterialDTO buildAddMaterialParamDo(String key, String drawingNo, String materialName, VirtualPackageTypeEnum virtualPackageType, Map<String, MaterialMainEntity> oldMaterialMap) {
|
||||||
|
|
||||||
List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getDrawingNo, drawingNo)
|
// List<MaterialMainEntity> oldMaterialList = SpringUtil.getBean(MaterialMainService.class).lambdaQuery().eq(MaterialMainEntity::getDrawingNo, drawingNo)
|
||||||
.list();
|
// .list();
|
||||||
|
MaterialMainEntity oldMaterial = oldMaterialMap.get(drawingNo);
|
||||||
AddVirtrualMaterialDTO ent = new AddVirtrualMaterialDTO();
|
AddVirtrualMaterialDTO ent = new AddVirtrualMaterialDTO();
|
||||||
if(CollUtil.isNotEmpty(oldMaterialList)){
|
if (Objects.nonNull(oldMaterial)) {
|
||||||
ent.setKey(key);
|
ent.setKey(key);
|
||||||
ent.setDrawingNo(drawingNo);
|
ent.setDrawingNo(drawingNo);
|
||||||
ent.setMaterialNo(oldMaterialList.get(0).getMaterialNo());
|
ent.setMaterialNo(oldMaterial.getMaterialNo());
|
||||||
ent.setMaterialName(oldMaterialList.get(0).getMaterialName());
|
ent.setMaterialName(oldMaterial.getMaterialName());
|
||||||
ent.setMaterialDesc(oldMaterialList.get(0).getMaterialDesc());
|
ent.setMaterialDesc(oldMaterial.getMaterialDesc());
|
||||||
ent.setMaterialCategoryCode(oldMaterialList.get(0).getMaterialCategoryCode());
|
ent.setMaterialCategoryCode(oldMaterial.getMaterialCategoryCode());
|
||||||
vMNos.put(ent.getKey(), ent);
|
vMNos.put(ent.getKey(), ent);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
ent.setKey(key);
|
ent.setKey(key);
|
||||||
ent.setDrawingNo(drawingNo);
|
ent.setDrawingNo(drawingNo);
|
||||||
ent.setMaterialName(materialName);
|
ent.setMaterialName(materialName);
|
||||||
|
|
@ -170,6 +207,7 @@ public abstract class VirtualPackageBase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建子级
|
* 构建子级
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected BomNewEbomChildEntity buildChild(BomNewEbomParentEntity parent, Long parentRowId, String orderNo, VirtualPackageTypeEnum virtualPackageTypeEnum, String rootMaterialNo) {
|
protected BomNewEbomChildEntity buildChild(BomNewEbomParentEntity parent, Long parentRowId, String orderNo, VirtualPackageTypeEnum virtualPackageTypeEnum, String rootMaterialNo) {
|
||||||
|
|
@ -193,6 +231,7 @@ public abstract class VirtualPackageBase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取子级
|
* 获取子级
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected List<BomNewEbomParentVO> getChild() {
|
protected List<BomNewEbomParentVO> getChild() {
|
||||||
|
|
@ -216,6 +255,7 @@ public abstract class VirtualPackageBase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取父节点
|
* 获取父节点
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
protected BomNewEbomParentEntity getParentByRowId(Long rowId) {
|
protected BomNewEbomParentEntity getParentByRowId(Long rowId) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue