forked from I3-YF/i3plus-mes-pcn-yfai
工艺防错
parent
8f2d794472
commit
e4a5fce755
@ -1,77 +1,182 @@
|
||||
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
|
||||
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext;
|
||||
import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Description : 生产工单顺序防错
|
||||
* @Author : wangjie
|
||||
**/
|
||||
@Slf4j
|
||||
@Service("mesProduceSeqCheckStepService")
|
||||
public class MesProduceSeqCheckStepService extends BaseStepService {
|
||||
|
||||
@Autowired
|
||||
private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
|
||||
@Autowired
|
||||
private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
||||
|
||||
@Override
|
||||
public StepResult execute(StationRequestBean reqBean) {
|
||||
|
||||
StationResultBean resultBean = new StationResultBean();
|
||||
|
||||
StepResult stepResult = StepResult.getSuccessComplete();
|
||||
|
||||
//获取上下文信息
|
||||
MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
|
||||
|
||||
//获取生产过程上下文对象有异常信息 抛出异常
|
||||
if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
||||
|
||||
//存储生产过程上下文对象
|
||||
productionProcessContextStepService.saveProductionProcessContext(reqBean, productionProcessContext);
|
||||
|
||||
//获取上下文产出零件信息
|
||||
List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
|
||||
|
||||
//验证是否存在加工单
|
||||
if (!checkIsExistWorkOrder(productionPartContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行顺序防错验证!");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return stepResult;
|
||||
|
||||
}
|
||||
|
||||
//验证是否存在加工单
|
||||
private Boolean checkIsExistWorkOrder(List<MesProductionPartContext> productionPartContextList) {
|
||||
|
||||
if (CollectionUtils.isEmpty(productionPartContextList)) return false;
|
||||
|
||||
Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).findFirst();
|
||||
|
||||
if (null == optional || !optional.isPresent()) return false;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step;
|
||||
//
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService;
|
||||
//import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext;
|
||||
//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.serviceimpl.fsm.BaseStepService;
|
||||
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
||||
//import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
||||
//import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
|
||||
//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 lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.beans.factory.annotation.Autowired;
|
||||
//import org.springframework.stereotype.Service;
|
||||
//import org.springframework.util.CollectionUtils;
|
||||
//import org.springframework.util.StringUtils;
|
||||
//
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//import java.util.Optional;
|
||||
//
|
||||
///**
|
||||
// * @Description : 生产工单顺序防错
|
||||
// * @Author : wangjie
|
||||
// **/
|
||||
//@Slf4j
|
||||
//@Service("mesProduceSeqCheckStepService")
|
||||
//public class MesProduceSeqCheckStepService extends BaseStepService {
|
||||
//
|
||||
// @Autowired
|
||||
// private IMesProductionProcessContextStepService productionProcessContextStepService;
|
||||
//
|
||||
// @Autowired
|
||||
// private IMesProductionDispatchContextStepService productionDispatchContextStepService;
|
||||
//
|
||||
// @Override
|
||||
// public StepResult execute(StationRequestBean reqBean) {
|
||||
//
|
||||
// StationResultBean resultBean = new StationResultBean();
|
||||
//
|
||||
// StepResult stepResult = StepResult.getSuccessComplete();
|
||||
//
|
||||
// //获取上下文信息
|
||||
// MesProductionProcessContext productionProcessContext = productionProcessContextStepService.doHandleCurCellEquipment(reqBean);
|
||||
//
|
||||
// //获取生产过程上下文对象有异常信息 抛出异常
|
||||
// if (!productionProcessContext.getSuccess()) execExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), productionProcessContext.getMessage());
|
||||
//
|
||||
// //存储生产过程上下文对象
|
||||
// productionProcessContextStepService.saveProductionProcessContext(reqBean, productionProcessContext);
|
||||
//
|
||||
// //获取上下文产出零件信息
|
||||
// List<MesProductionPartContext> productionPartContextList = productionDispatchContextStepService.getProductionPartContext(reqBean);
|
||||
//
|
||||
// //验证是否存在加工单
|
||||
// if (!checkIsExistWorkOrder(productionPartContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行顺序防错验证!");
|
||||
//
|
||||
// //验证工位是否设置需要顺序防错
|
||||
// if (!isNeedCheckProduceSeq(productionPartContextList))
|
||||
// return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
|
||||
//
|
||||
// //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
|
||||
// List<String> workOrderNoList2Jump = doHandleCraftJumpCode(reqBean, productionPartContextList);
|
||||
// if (!CollectionUtils.isEmpty(workOrderNoList2Jump))
|
||||
// return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList2Jump.toString()), stepResult, String.format("加工单%s跳过顺序防错验证成功!", workOrderNoList2Jump.toString()));
|
||||
//
|
||||
// //验证是否已经全部通过
|
||||
// if (!isExistNeedCheckProduceSeq(productionPartContextList)) return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "加工单均已通过顺序防错验证!");
|
||||
//
|
||||
// //顺序防错验证处理
|
||||
// doHandleProduceSeqCheck(reqBean, resultBean, stepResult, productionProcessContext, productionProcessContext.getWorkCenter(), productionPartContextList);
|
||||
//
|
||||
// return stepResult;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //验证是否存在加工单
|
||||
// private Boolean checkIsExistWorkOrder(List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
// if (CollectionUtils.isEmpty(productionPartContextList)) return false;
|
||||
//
|
||||
// Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getWorkOrderNo()))).findFirst();
|
||||
//
|
||||
// return (null == optional || !optional.isPresent()) ? false : true;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //验证工位是否设置需要前道防错
|
||||
// private Boolean isNeedCheckProduceSeq(List<MesProductionPartContext> productionPartContextList) {
|
||||
// Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o &&
|
||||
// o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && o.getIsCheckSeq().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)).findFirst();
|
||||
// return (null == optional || !optional.isPresent()) ? false : true;
|
||||
// }
|
||||
//
|
||||
// //验证是否已经全部通过
|
||||
// private Boolean isExistNeedCheckProduceSeq(List<MesProductionPartContext> productionPartContextList) {
|
||||
// Optional<MesProductionPartContext> optional = productionPartContextList.stream().filter(o -> (null != o &&
|
||||
// o.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) == 0 && o.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) != 0)).findFirst();
|
||||
// return (null == optional || !optional.isPresent()) ? false : true;
|
||||
// }
|
||||
//
|
||||
// //验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
|
||||
// private List<String> doHandleCraftJumpCode(StationRequestBean reqBean, List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
// List<String> workOrderNoList2Jump = null;
|
||||
//
|
||||
// for (MesProductionPartContext productionPartContext : productionPartContextList) {
|
||||
//
|
||||
// if (null == productionPartContext || productionPartContext.getCheckSeqResult().compareTo(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) != 0 || StringUtils.isEmpty(productionPartContext.getCraftJumpCode())) continue;
|
||||
//
|
||||
// if (CollectionUtils.isEmpty(workOrderNoList2Jump)) workOrderNoList2Jump = new ArrayList<>();
|
||||
//
|
||||
// workOrderNoList2Jump.add(productionPartContext.getWorkOrderNo());
|
||||
//
|
||||
// productionPartContext.checkSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //保存上下文产出零件信息
|
||||
// if (!CollectionUtils.isEmpty(workOrderNoList2Jump)) productionDispatchContextStepService.saveProductionPartContext(reqBean, productionPartContextList);
|
||||
//
|
||||
// return workOrderNoList2Jump;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //顺序防错验证处理
|
||||
// private void doHandleProduceSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesWorkCenter workCenter, List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
// List<String> workOrderNoList = new ArrayList<>();
|
||||
//
|
||||
// for (MesProductionPartContext productionPartContext : productionPartContextList) {
|
||||
//
|
||||
// if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
|
||||
//
|
||||
// //顺序防错验证
|
||||
// Boolean result = doProduceSeqCheck(reqBean, stepResult, productionProcessContext, workCenter, productionPartContextList);
|
||||
//
|
||||
// if (!result) productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
||||
// else productionPartContext.setCheckSeqResult(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
||||
//
|
||||
// workOrderNoList.add(productionPartContext.getWorkOrderNo());
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //保存上下文产出零件信息
|
||||
// productionDispatchContextStepService.saveProductionPartContext(reqBean, productionPartContextList);
|
||||
//
|
||||
// if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), String.format("加工单%s顺序防错验证成功!", workOrderNoList.toString()), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
||||
// else this.sendMessage(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList.toString()), stepResult.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //顺序防错验证
|
||||
// private Boolean doProduceSeqCheck(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesWorkCenter workCenter, List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
// //排序
|
||||
// if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue()) == 0) return doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContextList);
|
||||
//
|
||||
// //非排序
|
||||
// return doProduceSeqCheckNosort(reqBean, stepResult, productionProcessContext, productionPartContextList);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //前道工艺防错验证 【排序】
|
||||
// private Boolean doProduceSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //前道工艺防错验证 【非排序】
|
||||
// private Boolean doProduceSeqCheckNosort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
Loading…
Reference in New Issue