|
|
|
@ -8,15 +8,14 @@ import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesDefectWarnConfig;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProdParamCfg;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentProdParamCfgRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.google.common.base.Objects;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@ -78,32 +77,30 @@ public class MesSendEquipParamsCmdStepService extends BaseStepService {
|
|
|
|
|
List<MesEquipmentVariable> mesEquipmentVariableList = new ArrayList<>();
|
|
|
|
|
List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
for (MesProdRuleContext mesProdRuleContext : prodRuleContextList) {
|
|
|
|
|
// 获取加工参数
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesProdRuleContext.getPid(), "sourceId", ddlPackBean);
|
|
|
|
|
List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgRepository.findByHqlWhere(ddlPackBean);
|
|
|
|
|
for (MesEquipmentProdParamCfg mesEquipmentProdParamCfg : mesEquipmentProdParamCfgs) {//
|
|
|
|
|
|
|
|
|
|
String strategyClass = getStrateClass(mesEquipmentProdParamCfg.getMatchRule());
|
|
|
|
|
AbstractWriteVariableService equipVariableRwExtService = ((AbstractWriteVariableService) SpringContextsUtil.getBean(strategyClass));
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesEquipmentProdParamCfg.getEquipVariableId(), "id", packBean);
|
|
|
|
|
MesEquipmentVariable mesEquipmentVariable = mesEquipmentVariableRepository.getByProperty(packBean);
|
|
|
|
|
if (mesEquipmentVariable == null) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
mesEquipmentVariableList.add(mesEquipmentVariable);
|
|
|
|
|
mesEquipmentProdParamCfgList.add(mesEquipmentProdParamCfg);
|
|
|
|
|
execSendEquipParamsCmd(equipVariableRwExtService, reqBean, mesEquipmentProdParamCfg.getMatchRule(), mesEquipmentVariable, cellEquipContext.getKepwareFlag(mesEquipmentVariable.getChannel()), mesProdRuleContext.getForeignKey());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取加工参数 分排序和非排序
|
|
|
|
|
mesEquipmentProdParamCfgList = getMesEquipmentProdParamCfgs(reqBean, prodRuleContextList, mesEquipmentProdParamCfgList);
|
|
|
|
|
|
|
|
|
|
for (MesEquipmentProdParamCfg mesEquipmentProdParamCfg : mesEquipmentProdParamCfgList) {//
|
|
|
|
|
|
|
|
|
|
String strategyClass = getStrateClass(mesEquipmentProdParamCfg.getMatchRule());
|
|
|
|
|
AbstractWriteVariableService equipVariableRwExtService = ((AbstractWriteVariableService) SpringContextsUtil.getBean(strategyClass));
|
|
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesEquipmentProdParamCfg.getEquipVariableId(), "id", packBean);
|
|
|
|
|
MesEquipmentVariable mesEquipmentVariable = mesEquipmentVariableRepository.getByProperty(packBean);
|
|
|
|
|
if (mesEquipmentVariable == null) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mesEquipmentVariableList.add(mesEquipmentVariable);
|
|
|
|
|
mesEquipmentProdParamCfgList.add(mesEquipmentProdParamCfg);
|
|
|
|
|
execSendEquipParamsCmd(equipVariableRwExtService, reqBean, mesEquipmentProdParamCfg.getMatchRule(), mesEquipmentVariable, cellEquipContext.getKepwareFlag(mesEquipmentVariable.getChannel()), null);
|
|
|
|
|
|
|
|
|
|
Map<String, List<MesEquipmentProdParamCfg>> map = mesEquipmentProdParamCfgList.stream().collect(Collectors.groupingBy(MesEquipmentProdParamCfg::getMatchRule));
|
|
|
|
|
}
|
|
|
|
|
/* Map<String, List<MesEquipmentProdParamCfg>> map = mesEquipmentProdParamCfgList.stream().collect(Collectors.groupingBy(MesEquipmentProdParamCfg::getMatchRule));
|
|
|
|
|
Map<String, List<MesEquipmentVariable>> mapVariable = mesEquipmentVariableList.stream().collect(Collectors.groupingBy(mesEquipmentVariable -> mesEquipmentVariable.getId() + ""));
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
/* map.forEach((k, v) -> {
|
|
|
|
|
String strategyClass = getStrateClass(k);
|
|
|
|
|
AbstractWriteVariableService equipVariableRwExtService = ((AbstractWriteVariableService) SpringContextsUtil.getBean(strategyClass));
|
|
|
|
@ -117,10 +114,45 @@ public class MesSendEquipParamsCmdStepService extends BaseStepService {
|
|
|
|
|
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "发送加工参数成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据排序和非排序 获取对应的加工参数
|
|
|
|
|
* @param reqBean
|
|
|
|
|
* @param prodRuleContextList
|
|
|
|
|
* @param mesEquipmentProdParamCfgList
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private List<MesEquipmentProdParamCfg> getMesEquipmentProdParamCfgs(StationRequestBean reqBean, List<MesProdRuleContext> prodRuleContextList, List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgList) {
|
|
|
|
|
for (MesProdRuleContext mesProdRuleContext : prodRuleContextList) {
|
|
|
|
|
List<MesEquipmentProdParamCfg> mesEquipmentProdParamCfgs= new ArrayList<>();
|
|
|
|
|
// 获取加工参数
|
|
|
|
|
if (Objects.equal(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), reqBean.getWorkCenterCode())) {
|
|
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesProdRuleContext.getPid(), "sourceId", ddlPackBean);
|
|
|
|
|
mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgRepository.findByHqlWhere(ddlPackBean);
|
|
|
|
|
} else {
|
|
|
|
|
MesWorkCenter mesWorkCenter = new MesWorkCenter();
|
|
|
|
|
mesWorkCenter.setWorkCenterCode(reqBean.getWorkCenterCode());
|
|
|
|
|
List<MesProductionAssemblyContext> assemblyDataContext = mesProdRuleContext.getAssemblyDataContext(mesWorkCenter);
|
|
|
|
|
List<Long> sourceIds = assemblyDataContext.stream().map(MesProductionAssemblyContext::getSourceId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean();
|
|
|
|
|
DdlPreparedPack.getInPackList(sourceIds, "sourceId", ddlPackBean);
|
|
|
|
|
mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgRepository.findByHqlWhere(ddlPackBean);
|
|
|
|
|
}
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesEquipmentProdParamCfgs)) {
|
|
|
|
|
mesEquipmentProdParamCfgs = mesEquipmentProdParamCfgs.stream().distinct().collect(Collectors.toList());
|
|
|
|
|
mesEquipmentProdParamCfgList.addAll(mesEquipmentProdParamCfgs);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mesEquipmentProdParamCfgList = mesEquipmentProdParamCfgList.stream().distinct().collect(Collectors.toList());
|
|
|
|
|
return mesEquipmentProdParamCfgList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void execSendEquipParamsCmd(AbstractWriteVariableService equipVariableRwExtService, StationRequestBean reqBean,
|
|
|
|
|
String value, MesEquipmentVariable equipmentVariable, String kepwareFlag, Integer foreignKey) {
|
|
|
|
|
|
|
|
|
|
equipVariableRwExtService.writeVariable(reqBean, value, equipmentVariable, kepwareFlag, foreignKey);
|
|
|
|
|
equipVariableRwExtService.writeVariable(reqBean, value, equipmentVariable, kepwareFlag, foreignKey, null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|