|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step.method;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPartContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
|
@ -23,6 +23,7 @@ import org.springframework.util.StringUtils;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description : 缓存零件通用工步方法
|
|
|
|
@ -33,45 +34,25 @@ import java.util.stream.Collectors;
|
|
|
|
|
public class MesPartDataMapSaveStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
|
|
|
|
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IPartService partService;
|
|
|
|
|
|
|
|
|
|
//保存零件数据信息
|
|
|
|
|
public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesProductionPartContext> productionPartContextList, Boolean isBackError, Boolean isFilter, Boolean isSave, Boolean isExt) {
|
|
|
|
|
public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesProductionPartContext> productionPartContextList, Boolean isBackError, Boolean isSave, Boolean isExt) {
|
|
|
|
|
|
|
|
|
|
//从一模多腔信息中搜集零件编码并去重
|
|
|
|
|
List<String> partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, isSave, isExt);
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, true, isSave, isExt);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存零件数据信息
|
|
|
|
|
public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesProductionPartContext> productionPartContextList, Boolean isBackError, Boolean isFilter, Boolean isSave) {
|
|
|
|
|
public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<String> partNoList, Boolean isBackError, Boolean isSave, Boolean isExt) {
|
|
|
|
|
|
|
|
|
|
//从一模多腔信息中搜集零件编码并去重
|
|
|
|
|
List<String> partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, isSave, false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存零件数据信息
|
|
|
|
|
public StepResult savePartDataMap2PPC(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<MesProductionPartContext> productionPartContextList, Boolean isBackError, Boolean isFilter) {
|
|
|
|
|
|
|
|
|
|
//从一模多腔信息中搜集零件编码并去重
|
|
|
|
|
List<String> partNoList = (productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPartNo()))).map(MesProductionPartContext::getPartNo).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, true, false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存零件数据信息
|
|
|
|
|
public StepResult savePartDataMap(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, List<String> partNoList, Boolean isBackError, Boolean isFilter) {
|
|
|
|
|
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, isFilter, true, false);
|
|
|
|
|
return savePartDataMap(reqBean, resultBean, stepResult, partNoList, isBackError, true, isSave, isExt);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -83,8 +64,10 @@ public class MesPartDataMapSaveStepService extends BaseStepService {
|
|
|
|
|
if (!isBackError) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), stepResult.getMsg());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
partNoList = partNoList.stream().map(o -> o.toUpperCase()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
//从上下文中取出零件信息集合
|
|
|
|
|
Map<String, ? extends MesPart> partDataMap = productionProcessContextStepService.getPartDataContext(reqBean, isExt);
|
|
|
|
|
Map<String, ? extends MesPart> partDataMap = productionDispatchContextStepService.getPartDataContext(reqBean, isExt);
|
|
|
|
|
|
|
|
|
|
//验证上下文中取出零件信息集合是否匹配当前搜集的零件编码
|
|
|
|
|
if (!CollectionUtils.isEmpty(partDataMap) && partDataMap.keySet().containsAll(partNoList)) return stepResult.obj(partDataMap);
|
|
|
|
@ -126,7 +109,7 @@ public class MesPartDataMapSaveStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
//保存上下文零件数据信息
|
|
|
|
|
if (!CollectionUtils.isEmpty(finalPartList) && CollectionUtils.isEmpty(filterList)) {
|
|
|
|
|
if (isSave) productionProcessContextStepService.dispatchPartDataContext(reqBean, !isExt ? finalPartDataMap : finalPartDataExtMap);
|
|
|
|
|
if (isSave) productionDispatchContextStepService.dispatchPartDataContext(reqBean, !isExt ? finalPartDataMap : finalPartDataExtMap);
|
|
|
|
|
return stepResult.obj(!isExt ? finalPartDataMap : finalPartDataExtMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -160,6 +143,7 @@ public class MesPartDataMapSaveStepService extends BaseStepService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProductionPartContext getProductionPartContextByPartNo(StationRequestBean reqBean, String partNo, MesProductionProcessContext productionProcessContext, Map<String, MesPart> partDataMap) {
|
|
|
|
|
partNo = partNo.toUpperCase();
|
|
|
|
|
if (!partNo.equals(productionProcessContext.getFinishCode())) return new MesProductionPartContext().copyPartNo(reqBean.getOrganizeCode(), partNo, partDataMap.get(partNo).getPartName());
|
|
|
|
|
return new MesProductionPartContext().isFinishCode();
|
|
|
|
|
}
|
|
|
|
@ -189,8 +173,8 @@ public class MesPartDataMapSaveStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
private Map<String, MesPartContext> getPartMap(List<MesPart> partList) {
|
|
|
|
|
partList = CollectionUtils.isEmpty(partList) ? null :
|
|
|
|
|
partList.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPart::getPartNo))), ArrayList::new));
|
|
|
|
|
return CollectionUtils.isEmpty(partList) ? null : partList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPart::getPartNo, o -> new MesPartContext(o)));
|
|
|
|
|
partList.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getPartNo().toUpperCase()))), ArrayList::new));
|
|
|
|
|
return CollectionUtils.isEmpty(partList) ? null : partList.stream().filter(o -> null != o).collect(Collectors.toMap(o -> o.getPartNo().toUpperCase(), o -> new MesPartContext(o)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|