|
|
|
@ -1,15 +1,19 @@
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.station.function;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProdRuleCfgExtService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseSwsService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IShippingDispatchService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.function.IFsmModuleFunctionService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.util.StationKvBeanUtil;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProdRuleNosortCfg;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.ButtonDynamicModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationKvBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
@ -20,9 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -37,6 +39,12 @@ public class MesFunctionChooseCavityPartService extends BaseSwsService implement
|
|
|
|
|
@Autowired
|
|
|
|
|
private IShippingDispatchService shippingDispatchService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProdRuleCfgExtService prodRuleCfgExtService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IPartService partService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean doFunction(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
|
|
|
|
|
|
|
|
|
@ -110,16 +118,34 @@ public class MesFunctionChooseCavityPartService extends BaseSwsService implement
|
|
|
|
|
@Override
|
|
|
|
|
public Object doCustomApiDispatch(StationRequestBean reqBean, StationResultBean resultBean, ButtonDynamicModel buttonDynamicModel) {
|
|
|
|
|
|
|
|
|
|
//获取生产过程上下文对象
|
|
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.getProductionProcessContext(reqBean);
|
|
|
|
|
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
|
|
|
|
|
if (!productionProcessContext.getSuccess()) return MesPcnExtConstWords.ONE;
|
|
|
|
|
if (!productionProcessContext.getSuccess()) resultMap.put(MesPcnExtConstWords.CAVITY, MesPcnExtConstWords.ONE);
|
|
|
|
|
else {
|
|
|
|
|
if (null == cellEquipContext) resultMap.put(MesPcnExtConstWords.CAVITY, MesPcnExtConstWords.ONE);
|
|
|
|
|
else resultMap.put(MesPcnExtConstWords.CAVITY, cellEquipContext.getCavity());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip();
|
|
|
|
|
if (null == cellEquipContext) return resultMap;
|
|
|
|
|
|
|
|
|
|
List<MesProdRuleNosortCfg> prodRuleNosortCfgList = prodRuleCfgExtService.getProdRuleNosortCfgListByEquipCode(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode());
|
|
|
|
|
if (CollectionUtils.isEmpty(prodRuleNosortCfgList)) return resultMap;
|
|
|
|
|
|
|
|
|
|
List<String> outPartNoList = prodRuleNosortCfgList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getOutPartNo()))).map(MesProdRuleNosortCfg::getOutPartNo).collect(Collectors.toList());
|
|
|
|
|
if (CollectionUtils.isEmpty(outPartNoList)) return resultMap;
|
|
|
|
|
|
|
|
|
|
List<MesPart> partList = partService.getPartList(reqBean.getOrganizeCode(), outPartNoList);
|
|
|
|
|
if (CollectionUtils.isEmpty(partList)) return resultMap;
|
|
|
|
|
|
|
|
|
|
partList = partList.stream().distinct().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MesPart::getPartNo))), ArrayList::new));
|
|
|
|
|
|
|
|
|
|
resultMap.put(MesPcnExtConstWords.OUT_PART_NO, partList.stream().filter(o -> null != o).collect(Collectors.toMap(MesPart::getPartNo, MesPart::getPartName)));
|
|
|
|
|
|
|
|
|
|
if (null == cellEquipContext) return MesPcnExtConstWords.ONE;
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
|
|
|
|
return cellEquipContext.getCavity();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|