|
|
@ -32,8 +32,8 @@ import java.util.stream.Collectors;
|
|
|
|
* @Author : wangjie
|
|
|
|
* @Author : wangjie
|
|
|
|
**/
|
|
|
|
**/
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
|
@Service("mesProduceSeqCheckSortStepService")
|
|
|
|
@Service("mesProductSeqCheckSortStepService")
|
|
|
|
public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepService {
|
|
|
|
public class MesProductSeqCheckSortStepService extends MesProductSeqCheckStepService {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private IMesWorkOrderExtService workOrderExtService;
|
|
|
|
private IMesWorkOrderExtService workOrderExtService;
|
|
|
@ -67,7 +67,7 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
|
|
|
|
if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行加工单顺序防错验证!");
|
|
|
|
if (!checkIsExistWorkOrder(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前无加工单信息,无需进行加工单顺序防错验证!");
|
|
|
|
|
|
|
|
|
|
|
|
//验证工位是否设置需要顺序防错
|
|
|
|
//验证工位是否设置需要顺序防错
|
|
|
|
if (!isNeedCheckProduceSeq(productionPartContextList))
|
|
|
|
if (!isNeedCheckProductSeq(productionPartContextList))
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("生产线[%s]工位[%s]未设置顺序防错,无需进行加工单顺序防错验证!", reqBean.getWorkCenterCode(), reqBean.getWorkCellCode()));
|
|
|
|
|
|
|
|
|
|
|
|
//验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
|
|
|
|
//验证是否存在工艺强过码, 存在则保存 并返回强过的加工单
|
|
|
@ -76,17 +76,17 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList2Jump.toString()), stepResult, String.format("加工单%s跳过顺序防错验证成功!", workOrderNoList2Jump.toString()));
|
|
|
|
return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog().scanInfo(workOrderNoList2Jump.toString()), stepResult, String.format("加工单%s跳过顺序防错验证成功!", workOrderNoList2Jump.toString()));
|
|
|
|
|
|
|
|
|
|
|
|
//验证是否已经全部通过
|
|
|
|
//验证是否已经全部通过
|
|
|
|
if (!isExistNeedCheckProduceSeq(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "加工单均已通过顺序防错验证!");
|
|
|
|
if (!isExistNeedCheckProductSeq(productionPartContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, "加工单均已通过顺序防错验证!");
|
|
|
|
|
|
|
|
|
|
|
|
//顺序防错验证处理
|
|
|
|
//顺序防错验证处理
|
|
|
|
doHandleProduceSeqCheck(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList);
|
|
|
|
doHandleProductSeqCheck(reqBean, resultBean, stepResult, productionProcessContext, productionPartContextList);
|
|
|
|
|
|
|
|
|
|
|
|
return stepResult;
|
|
|
|
return stepResult;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//顺序防错验证处理
|
|
|
|
//顺序防错验证处理
|
|
|
|
private void doHandleProduceSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
|
|
|
|
private void doHandleProductSeqCheck(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, List<MesProductionPartContext> productionPartContextList) {
|
|
|
|
|
|
|
|
|
|
|
|
List<String> workOrderNoList = new ArrayList<>();
|
|
|
|
List<String> workOrderNoList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
@ -95,7 +95,7 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
|
|
|
|
if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
|
|
|
|
if (null == productionPartContext || StringUtils.isEmpty(productionPartContext.getWorkOrderNo()) || productionPartContext.getCheckSeqResult().compareTo(MesPcnExtConstWords.ZERO) != 0) continue;
|
|
|
|
|
|
|
|
|
|
|
|
//顺序防错验证
|
|
|
|
//顺序防错验证
|
|
|
|
Boolean result = doProduceSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);
|
|
|
|
Boolean result = doProductSeqCheckSort(reqBean, stepResult, productionProcessContext, productionPartContext);
|
|
|
|
|
|
|
|
|
|
|
|
productionPartContext.checkSeqResult(!result ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
productionPartContext.checkSeqResult(!result ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
|
|
|
|
|
|
|
|
|
|
|
@ -112,18 +112,18 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//前道工艺防错验证 【排序】
|
|
|
|
//前道工艺防错验证 【排序】
|
|
|
|
private Boolean doProduceSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext) {
|
|
|
|
private Boolean doProductSeqCheckSort(StationRequestBean reqBean, StepResult stepResult, MesProductionProcessContext productionProcessContext, MesProductionPartContext productionPartContext) {
|
|
|
|
|
|
|
|
|
|
|
|
String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON;
|
|
|
|
String message = StringUtils.isEmpty(stepResult.getMsg()) ? MesPcnExtConstWords.EMPTY : stepResult.getMsg() + MesPcnExtConstWords.SEMICOLON;
|
|
|
|
|
|
|
|
|
|
|
|
//根据生产工单顺序号,生产线代码,零件生产组代码查询上一个生产工单信息
|
|
|
|
//根据生产工单顺序号,生产线代码,零件生产组代码查询上一个生产工单信息
|
|
|
|
MesWorkOrder workOrder = workOrderExtService.getWorkOrder(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), productionPartContext.getProduceSeq(), productionPartContext.getPartProdGroupCode());
|
|
|
|
MesWorkOrder workOrder = workOrderExtService.getWorkOrder(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), productionPartContext.getProductSeq(), productionPartContext.getPartProdGroupCode());
|
|
|
|
|
|
|
|
|
|
|
|
if (null == workOrder) return true;
|
|
|
|
if (null == workOrder) return true;
|
|
|
|
|
|
|
|
|
|
|
|
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) < 0)
|
|
|
|
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) < 0)
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]工单状态[%s]",
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]工单状态[%s]",
|
|
|
|
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))).isCompleted();
|
|
|
|
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProductSeq(), workOrder.getWorkOrderNo(), workOrder.getProductSeq(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()))).isCompleted();
|
|
|
|
|
|
|
|
|
|
|
|
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()) >= 0) return true;
|
|
|
|
if (workOrder.getWorkOrderStatus().compareTo(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()) >= 0) return true;
|
|
|
|
|
|
|
|
|
|
|
@ -139,7 +139,7 @@ public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepSer
|
|
|
|
if (CollectionUtils.isEmpty(productSnMap)) return true;
|
|
|
|
if (CollectionUtils.isEmpty(productSnMap)) return true;
|
|
|
|
|
|
|
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]在当前工位存在未完成队列条码%s",
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s加工单[%s]生产顺序号[%s]顺序防错验证失败,前一个加工单[%s]生产顺序号[%s]在当前工位存在未完成队列条码%s",
|
|
|
|
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProduceSeq(), workOrder.getWorkOrderNo(), workOrder.getProduceSeq(), productSnMap.keySet().toString())).isCompleted();
|
|
|
|
message, productionPartContext.getWorkOrderNo(), productionPartContext.getProductSeq(), workOrder.getWorkOrderNo(), workOrder.getProductSeq(), productSnMap.keySet().toString())).isCompleted();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|