|
|
|
@ -259,7 +259,11 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
if (MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == produceSnExtDb.getOperateType()) return stepResult.isCompleted(false).msg(String.format("过程条码[%s]产品条码[%s]对应的信息当前业务状态[返修]!", params.getSerialNumber(), params.getProductSn()));
|
|
|
|
|
|
|
|
|
|
produceSnExtDb.setSnStatus(MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue());
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != produceSnExtDb.getSnStatus() &&
|
|
|
|
|
MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.QUALIFIED.getValue() == produceSnExtDb.getQcStatus()) produceSnExtDb.setSnStatus(MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue());
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != produceSnExtDb.getSnStatus() &&
|
|
|
|
|
MesPcnExtEnumUtil.PRODUCE_SN_QC_STATUS.DEFECTED.getValue() == produceSnExtDb.getQcStatus()) produceSnExtDb.setSnStatus(MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue());
|
|
|
|
|
|
|
|
|
|
produceSnExtService.doPackSnExtProcess((StationRequestBean) params.getObj(), produceSnExtDb);
|
|
|
|
|
ConvertBean.serviceModelUpdate(produceSnExtDb, params.getUserInfo());
|
|
|
|
|
produceSnExtDb.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue());
|
|
|
|
@ -302,10 +306,7 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public StepResult execLineOnBindMc(JxProdBusiStrategyParamsBuilder params) { return StepResult.getSuccessComplete(); }
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public StepResult checkProcessing(JxProdBusiStrategyParamsBuilder params) { return StepResult.getSuccessComplete(); }
|
|
|
|
|
public StepResult checkProcessing(JxProdBusiStrategyParamsBuilder params) { return this.checkFinalInspection(params); }
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public StepResult checkFinalInspection(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
@ -319,27 +320,35 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
if (null == params.getProduceSnExtDb()) return stepResult.isCompleted(false).msg(String.format("%s[%s]未匹配到有效的产品条码信息,验证失败!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
return checkFinalInspection4Ps(params, stepResult);
|
|
|
|
|
if (!checkFinalInspection4Ps(params, stepResult).isCompleted()) return stepResult;
|
|
|
|
|
|
|
|
|
|
return checkSnProcessIsValid(params, stepResult);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private StepResult checkFinalInspection4Ps(JxProdBusiStrategyParamsBuilder params, StepResult stepResult) {
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()))
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanName(), params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
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())
|
|
|
|
|
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 (MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == params.getProduceSnExtDb().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() && MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == params.getProduceSnMcRecordDb().getOperateType())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的管理编码与工单条码关系信息当前业务类型[返修],验证失败!", params.getScanName(), params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
return stepResult;
|
|
|
|
|
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())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("%s[%s]对应的产品条码信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanName(), params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public StepResult checkThirdPartyPs(JxProdBusiStrategyParamsBuilder params) { return StepResult.getSuccessComplete(); }
|
|
|
|
|
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()));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void execFinalInspectionBindPs(JxProdBusiStrategyParamsBuilder params) {
|
|
|
|
@ -549,11 +558,13 @@ public class JxProdBusiStrategyCommonService implements IJxProdBusiStrategyServi
|
|
|
|
|
|
|
|
|
|
if (null == params.getProduceSnExtDb()) return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息不存在,操作失败!", params.getScanInfo()));
|
|
|
|
|
|
|
|
|
|
if (!params.getProduceSnExtDb().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()))
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]关联的生产工单[%s]与当前操作的生产工单[%s]不一致,操作失败!", params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
if (!checkLineOff4Ps(params, stepResult).isCompleted()) return stepResult;
|
|
|
|
|
|
|
|
|
|
if (MesPcnExtEnumUtil.PRODUCE_SN_STATUS.PROCESS.getValue() < params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息当前状态[%s],操作失败!", params.getScanInfo(), MesPcnExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(params.getProduceSnExtDb().getSnStatus())));
|
|
|
|
|
return checkSnProcessIsValid(params, stepResult);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private StepResult checkLineOff4Ps(JxProdBusiStrategyParamsBuilder params, StepResult stepResult) {
|
|
|
|
|
|
|
|
|
|
if (MesPcnExtEnumUtil.SN_OPERATE_TYPE.REPAIR.getValue() == params.getProduceSnExtDb().getOperateType())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息当前业务类型[返修],验证失败!", params.getScanInfo()));
|
|
|
|
@ -561,9 +572,16 @@ 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 (!checkSnProcessIsValid(params, stepResult).isCompleted()) return stepResult;
|
|
|
|
|
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().getLastWorkOrderNo().equals(params.getOrderModel().getOrderNo()) && MesPcnExtEnumUtil.PRODUCE_SN_STATUS.REPAIR_PROCESS.getValue() != params.getProduceSnExtDb().getSnStatus())
|
|
|
|
|
return stepResult.isCompleted(false).msg(String.format("产品条码[%s]信息关联的工单号[%s]与当前生产的工单号[%s]不一致,验证失败!", params.getScanInfo(), params.getProduceSnExtDb().getLastWorkOrderNo(), params.getOrderModel().getOrderNo()));
|
|
|
|
|
|
|
|
|
|
return stepResult.msg(String.format("产品条码[%s]信息验证成功!", params.getScanInfo()));
|
|
|
|
|
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()));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|