|
|
|
@ -9,6 +9,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesNcProcessingInputModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesPartInspectionInputModel;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService;
|
|
|
|
|
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
|
|
|
@ -24,6 +25,7 @@ import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.StepResult;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import com.google.common.base.Objects;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
@ -59,6 +61,9 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProductionDispatchContextStepService mesProductionDispatchContextStepService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IFsmRouteDataService fsmRouteDataService;
|
|
|
|
|
|
|
|
|
|
private static final Map<String, ActorRef> refMap = new ConcurrentHashMap<>(200);
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -80,13 +85,23 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
if (resultInt.compareTo(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()) == 0) return stepResult;
|
|
|
|
|
|
|
|
|
|
// 获取条码列表
|
|
|
|
|
List<MesProductionPsOutContext> mesProduceSns = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);
|
|
|
|
|
//获取上下文产出条码数据信息集合
|
|
|
|
|
List<MesProductionPsOutContext> productionPsOutContextList = mesProductionDispatchContextStepService.getProductionPsOutContext(reqBean);
|
|
|
|
|
|
|
|
|
|
List<MesProductionPartContext> productionPartContexts = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
|
|
|
|
|
//获取上下文产出零件信息
|
|
|
|
|
List<MesProductionPartContext> productionPartContextList = mesProductionDispatchContextStepService.getProductionPartContext(reqBean);
|
|
|
|
|
|
|
|
|
|
// 保存加工异常记录(NC判断记录)
|
|
|
|
|
saveProductResultException(reqBean, mesProduceSns,productionPartContexts, productResult);
|
|
|
|
|
try {
|
|
|
|
|
// 保存加工异常记录(NC判断记录)
|
|
|
|
|
saveProductResultException(reqBean, productionPsOutContextList, productionPartContextList, productResult);
|
|
|
|
|
} catch (ImppBusiException e) {
|
|
|
|
|
stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("加工[%s] NC信息保存失败: %s", MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(resultInt), e.getErrorDetail()));
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
String webMsg = String.format("加工[%s] NC信息保存失败: %s", MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(resultInt), fsmRouteDataService.handleFsmCfgOrDefault(reqBean, MesPcnEnumUtil.FSM_CFG.FSM_EXCEPTION_MSG.getCode()));
|
|
|
|
|
this.sendMessage(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.ERROR.getValue()), webMsg, MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
|
|
|
|
this.cacheException(reqBean, reqBean.getStepName(), webMsg, e, true);
|
|
|
|
|
foundExThrowNoShowMsg();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, String.format("加工[%s] NC信息保存成功!", MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(resultInt)));
|
|
|
|
|
}
|
|
|
|
@ -94,13 +109,13 @@ public class MesProductResultErrorHandleStepService extends BaseStepService {
|
|
|
|
|
/**
|
|
|
|
|
* 存加工异常记录
|
|
|
|
|
* @param reqBean
|
|
|
|
|
* @param mesProduceSns
|
|
|
|
|
* @param productionPsOutContextList
|
|
|
|
|
*/
|
|
|
|
|
private void saveProductResultException(StationRequestBean reqBean, List<MesProductionPsOutContext> mesProduceSns, List<MesProductionPartContext> productionPartContexts, String productResult) {
|
|
|
|
|
private void saveProductResultException(StationRequestBean reqBean, List<MesProductionPsOutContext> productionPsOutContextList, List<MesProductionPartContext> productionPartContextList, String productResult) {
|
|
|
|
|
String defectTypeCode = MesEnumUtil.DEFECT_TYPE_CODE.DETERMIND.getValue();
|
|
|
|
|
mesProduceSns.forEach(mesProduceSn -> {
|
|
|
|
|
productionPsOutContextList.forEach(mesProduceSn -> {
|
|
|
|
|
String productVersion = null;
|
|
|
|
|
List<MesProductionPartContext> mesProductionPartContextList = productionPartContexts.stream().filter(mesProductionPartContext -> Objects.equal(mesProduceSn.getForeignKey(),mesProductionPartContext.getForeignKey())).collect(Collectors.toList());
|
|
|
|
|
List<MesProductionPartContext> mesProductionPartContextList = productionPartContextList.stream().filter(mesProductionPartContext -> Objects.equal(mesProduceSn.getForeignKey(),mesProductionPartContext.getForeignKey())).collect(Collectors.toList());
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesProductionPartContextList)) {
|
|
|
|
|
productVersion = mesProductionPartContextList.get(0).getProductVersion();
|
|
|
|
|
}
|
|
|
|
|