|
|
|
@ -320,7 +320,7 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
if (null == params.getProduceSnExtDb()) return stepResult.isCompleted(false).msg(String.format("%s[%s]未匹配到有效的产品条码信息,验证失败!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (!checkFinalInspection4Ps(params, stepResult).isCompleted()) return stepResult;
|
|
|
|
|
if (!checkFinalInspection4Ps(params, stepResult).isCompleted() || !StringUtils.isEmpty(stepResult.getNextTriggerEvent())) return stepResult;
|
|
|
|
|
|
|
|
|
|
return checkSnProcessIsValid(params, stepResult);
|
|
|
|
|
|
|
|
|
@ -331,22 +331,28 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
if (MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == params.getProduceSnExtDb().getOperateType())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息当前业务类型[返修],验证失败!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus() && MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息当前条码状态[%s],验证失败!", params.getScanName(), params.getScanInfo(), MesPcnExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(params.getProduceSnExtDb().getSnStatus())));
|
|
|
|
|
|
|
|
|
|
if (params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && null != params.getProduceSnMcRecordDb() && MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == params.getProduceSnMcRecordDb().getOperateType())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的管理编码与工单条码关系信息当前业务类型[返修],验证失败!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && null != params.getProduceSnMcRecordDb() && !params.getProduceSnMcRecordDb().getWorkOrderNo().equals(params.getOrderModel().getOrderNo()))
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的管理编码与工单条码关系信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanName(), params.getScanInfo(), params.getProduceSnMcRecordDb().getWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
if (params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue() ||
|
|
|
|
|
(!((StationRequestBean) params.getObj()).getWcpcMap().containsKey(MesPcnExtConstWords.KEY_PART_RECHECK) && params.getProduceSnExtDb().getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue()))
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息当前条码状态[%s],验证失败!", params.getScanName(), params.getScanInfo(), MesPcnExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(params.getProduceSnExtDb().getSnStatus())));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanName(), params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()))
|
|
|
|
|
return stepResult.nextTriggerEvent(MesPcnExtConstWords.TMP_ORDER).msg(String.format("%s[%s]对应的产品条码信息已被标记成[返修品],即将切换到临时工单[%s]!", params.getScanName(), params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo()));
|
|
|
|
|
else
|
|
|
|
|
return stepResult.msg(String.format("%s[%s]已匹配产品条码信息,验证成功!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
String suffix = String.format("%s[%s]已匹配产品条码信息%s", params.getScanName(), params.getScanInfo(),
|
|
|
|
|
params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() ? MesPcnExtConstWords.EMPTY :
|
|
|
|
|
(params.getProduceSnExtDb().getSnStatus() == MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() ? "[已被标记为返修品]" : "[已被标记为出货检验还线品]"));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo())) return stepResult.nextTriggerEvent(MesPcnExtConstWords.TMP_ORDER).msg(String.format("%s,即将切换到临时工单[%s]!", suffix, params.getProduceSnExtDb().getLastWorkOrderNo()));
|
|
|
|
|
|
|
|
|
|
if (params.getProduceSnExtDb().getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue()) stepResult.nextTriggerEvent(MesPcnExtConstWords.KEY_PART_RECHECK);
|
|
|
|
|
|
|
|
|
|
return stepResult.msg(String.format("%s,验证成功!", suffix));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -355,12 +361,26 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
saveProduceSnMcRecord4FinalInspection(params);
|
|
|
|
|
|
|
|
|
|
doRestoreBusiData(params);
|
|
|
|
|
|
|
|
|
|
saveProduceSn4FinalInspection(params);
|
|
|
|
|
|
|
|
|
|
doRestoreBusiData(params);
|
|
|
|
|
insertProduceSnTravel4ProcessMerge(params);
|
|
|
|
|
|
|
|
|
|
insertProduceSnTravel(params);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insertProduceSnTravel4ProcessMerge(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
|
if (null == params.getProduceSnExtDb()) return;
|
|
|
|
|
MesProduceSnExt produceSnExt = ((StationRequestBean) params.getObj()).getWcpcMap().containsKey(MesPcnExtConstWords.PROCESS_MERGE_FLAG) ? doPackSnExtProcess(params) : params.getProduceSnExtDb();
|
|
|
|
|
produceSnTravelExtService.insertProduceSnTravelExt(produceSnExt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProduceSnExt doPackSnExtProcess(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
|
MesProduceSnExt produceSnExt = new MesProduceSnExt();
|
|
|
|
|
BeanUtils.copyProperties(params.getProduceSnExtDb(), produceSnExt, MesPcnExtConstWords.ID);
|
|
|
|
|
produceSnExtService.doPackSnExtProcess((StationRequestBean) params.getObj(), produceSnExt);
|
|
|
|
|
((StationRequestBean) params.getObj()).setProductSn(produceSnExt.getProductSn());
|
|
|
|
|
return produceSnExt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveProduceSnMcRecord4FinalInspection(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
@ -383,12 +403,12 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
private void saveProduceSn4FinalInspection(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
|
|
|
|
|
|
MesProduceSnExt produceSnExtDb = null == params.getProduceSnExtDb() ? queryProduceSnInfo(params).getProduceSnExtDb() : params.getProduceSnExtDb();
|
|
|
|
|
MesProduceSnExt produceSnExtDb = queryProduceSnInfo(params).getProduceSnExtDb();
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(produceSnExtDb.getProductSn())) produceSnExtDb.setProductSn(params.getScanInfo());
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.QUALIFIED.getValue() != produceSnExtDb.getQcStatus()) produceSnExtDb.setQcStatus(MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
|
|
|
|
|
produceSnExtService.doPackSnExtProcess((StationRequestBean) params.getObj(), produceSnExtDb);
|
|
|
|
|
produceSnExtService.doCheckIsNeedPackSnExtProcess((StationRequestBean) params.getObj(), produceSnExtDb);
|
|
|
|
|
ConvertBean.serviceModelUpdate(produceSnExtDb, params.getUserInfo());
|
|
|
|
|
produceSnExtDb.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
|
|
|
|
|
new ConvertBeanExt(produceSnExtDb).convertBean(produceSnExtDb);
|
|
|
|
@ -558,7 +578,7 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
if (null == params.getProduceSnExtDb()) return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息不存在,操作失败!", params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (!checkLineOff4Ps(params, stepResult).isCompleted()) return stepResult;
|
|
|
|
|
if (!checkLineOff4Ps(params, stepResult).isCompleted() || !StringUtils.isEmpty(stepResult.getNextTriggerEvent())) return stepResult;
|
|
|
|
|
|
|
|
|
|
return checkSnProcessIsValid(params, stepResult);
|
|
|
|
|
|
|
|
|
@ -572,16 +592,23 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.DEFECTED.getValue() == params.getProduceSnExtDb().getQcStatus())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息当前质量状态[不合格],验证失败!", params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus() && MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息当前状态[%s],操作失败!", params.getScanInfo(), MesPcnExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(params.getProduceSnExtDb().getSnStatus())));
|
|
|
|
|
if (params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue() ||
|
|
|
|
|
(!((StationRequestBean) params.getObj()).getWcpcMap().containsKey(MesPcnExtConstWords.KEY_PART_RECHECK) && params.getProduceSnExtDb().getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue()))
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息当前状态[%s],验证失败!", params.getScanInfo(), MesPcnExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(params.getProduceSnExtDb().getSnStatus())));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
|
|
|
|
|
String suffix = String.format("产品条码[%s]信息%s", params.getScanName(), params.getScanInfo(),
|
|
|
|
|
params.getProduceSnExtDb().getSnStatus() < MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() ? MesPcnExtConstWords.EMPTY :
|
|
|
|
|
(params.getProduceSnExtDb().getSnStatus() == MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() ? "[已被标记为返修品]" : "[已被标记为出货检验还线品]"));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()))
|
|
|
|
|
return stepResult.nextTriggerEvent(MesPcnExtConstWords.TMP_ORDER).msg(String.format("产品条码[%s]信息已被标记成[返修品],即将切换到临时工单[%s]!", params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo()));
|
|
|
|
|
else
|
|
|
|
|
return stepResult.msg(String.format("产品条码[%s]信息验证成功!!", params.getScanInfo()));
|
|
|
|
|
return stepResult.nextTriggerEvent(MesPcnExtConstWords.TMP_ORDER).msg(String.format("%s,即将切换到临时工单[%s]!", suffix, params.getProduceSnExtDb().getLastWorkOrderNo()));
|
|
|
|
|
|
|
|
|
|
if (params.getProduceSnExtDb().getSnStatus() > MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue()) stepResult.nextTriggerEvent(MesPcnExtConstWords.KEY_PART_RECHECK);
|
|
|
|
|
|
|
|
|
|
return stepResult.msg(String.format("%s,验证成功!", suffix));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|