|
|
|
@ -54,9 +54,12 @@ public class JxInitOrderStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
String curExecWorkOrderNo = (String) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleCurExecWorkOrder, 1, null);
|
|
|
|
|
String selectWorkOrderNo = (String) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleSelectWorkOrderNo, 1, null);
|
|
|
|
|
|
|
|
|
|
String curExecWorkOrderNoReal = curExecWorkOrderNo;
|
|
|
|
|
String selectWorkOrderNoReal = (StringUtils.isEmpty(selectWorkOrderNo) || !selectWorkOrderNo.contains(MesPcnExtConstWords.COLON)) ? selectWorkOrderNo : selectWorkOrderNo.split(MesPcnExtConstWords.COLON)[1];
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(selectWorkOrderNoReal) && StringUtils.isEmpty(curExecWorkOrderNoReal)) execSendGuideAndThrowEx(reqBean, resultBean, "请选择启动状态的生产工单!");
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(selectWorkOrderNoReal)) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleSelectWorkOrderNo, 3, null);
|
|
|
|
|
if (!StringUtils.isEmpty(selectWorkOrderNoReal) && !StringUtils.isEmpty(curExecWorkOrderNoReal)) {
|
|
|
|
|
if (selectWorkOrderNoReal.equals(curExecWorkOrderNoReal)) selectWorkOrderNoReal = null;
|
|
|
|
@ -65,21 +68,37 @@ public class JxInitOrderStepService extends BaseStepService {
|
|
|
|
|
|
|
|
|
|
MesWorkOrderExt workOrderExt = null;
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(selectWorkOrderNoReal)) {
|
|
|
|
|
outerLoop:
|
|
|
|
|
if (stepResult.isCompleted() && !StringUtils.isEmpty(selectWorkOrderNoReal)) {
|
|
|
|
|
workOrderExt = workOrderExtService.getWorkOrderExtByOrderNo(reqBean.getOrganizeCode(), selectWorkOrderNoReal);
|
|
|
|
|
String suffix = String.format("%s[%s]", !selectWorkOrderNo.contains(MesPcnExtConstWords.COLON) ?
|
|
|
|
|
"选择的工单号" : (selectWorkOrderNo.contains(MesPcnExtConstWords.TMP_ORDER) ? "临时工单号" : "回退工单号"), selectWorkOrderNoReal);
|
|
|
|
|
checkWorkOrderExtIsValid(reqBean, resultBean, stepResult, workOrderExt, suffix);
|
|
|
|
|
doCacheCurExecWorkOrderNo(reqBean, resultBean, stepResult, selectWorkOrderNoReal, suffix);
|
|
|
|
|
|
|
|
|
|
curExecWorkOrderNoReal = checkSelectOrderIsValidCenter(reqBean, stepResult, workOrderExt, curExecWorkOrderNo, suffix);
|
|
|
|
|
if (!stepResult.isCompleted()) break outerLoop;
|
|
|
|
|
|
|
|
|
|
curExecWorkOrderNoReal = checkWorkOrderExtIsValid(reqBean, stepResult, workOrderExt, curExecWorkOrderNo, suffix);
|
|
|
|
|
if (!stepResult.isCompleted()) break outerLoop;
|
|
|
|
|
|
|
|
|
|
curExecWorkOrderNoReal = doCacheCurExecWorkOrderNo(reqBean, resultBean, stepResult, selectWorkOrderNoReal, curExecWorkOrderNo, suffix);
|
|
|
|
|
if (!stepResult.isCompleted()) break outerLoop;
|
|
|
|
|
|
|
|
|
|
if (selectWorkOrderNo.contains(MesPcnExtConstWords.TMP_ORDER) && !StringUtils.isEmpty(curExecWorkOrderNo))
|
|
|
|
|
doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleSelectWorkOrderNo, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.BACK_ORDER).add(curExecWorkOrderNo).toString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!stepResult.isCompleted()) reqBean.setScanInfo(null);
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(curExecWorkOrderNoReal)) {
|
|
|
|
|
workOrderExt = workOrderExtService.getWorkOrderExtByOrderNo(reqBean.getOrganizeCode(), curExecWorkOrderNoReal);
|
|
|
|
|
checkWorkOrderExtIsValid(reqBean, resultBean, stepResult, workOrderExt, String.format("此前操作的工单号[%s]", curExecWorkOrderNoReal));
|
|
|
|
|
checkWorkOrderExtIsValid(reqBean, stepResult, workOrderExt, curExecWorkOrderNo,
|
|
|
|
|
String.format("%s此前操作的工单号[%s]", stepResult.isCompleted() ? MesPcnExtConstWords.EMPTY : stepResult.isCompleted(true).getMsg(), curExecWorkOrderNoReal));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isEmpty(stepResult.getMsg()))
|
|
|
|
|
this.sendMessage(reqBean, resultBean, !stepResult.isCompleted() ? stepResult.getMsg() : String.format("%s,可在此前操作的工单号[%s]下继续操作!", stepResult.getMsg(), curExecWorkOrderNoReal),
|
|
|
|
|
MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, !stepResult.isCompleted() ? MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT : MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
|
|
|
|
|
|
|
|
|
if (null == workOrderExt || !stepResult.isCompleted()) execSendGuideAndThrowEx(reqBean, resultBean, "请选择启动状态的生产工单!");
|
|
|
|
|
|
|
|
|
|
cacheOrderModel(reqBean, workOrderExt);
|
|
|
|
@ -91,27 +110,37 @@ public class JxInitOrderStepService extends BaseStepService {
|
|
|
|
|
return stepResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void doCacheCurExecWorkOrderNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, String selectWorkOrderNo, String suffix) {
|
|
|
|
|
Boolean flag = (Boolean) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleCurExecWorkOrder, 2, selectWorkOrderNo);
|
|
|
|
|
if (!flag) execNonCompleteAndSendMsg(reqBean, resultBean, stepResult, String.format("%s初始化失败!", suffix));
|
|
|
|
|
else {
|
|
|
|
|
execStateModule(reqBean, resultBean);
|
|
|
|
|
if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean, String.format("%s初始化成功!", suffix), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private String checkSelectOrderIsValidCenter(StationRequestBean reqBean, StepResult stepResult, MesWorkOrderExt workOrderExt, String curExecWorkOrderNo, String suffix) {
|
|
|
|
|
|
|
|
|
|
if (null == workOrderExt) stepResult.isCompleted(false).msg(String.format("%s对应的工单信息不存在!", suffix));
|
|
|
|
|
|
|
|
|
|
if (stepResult.isCompleted() && !reqBean.getWorkCenterCode().equals(workOrderExt.getWorkCenterCode()))
|
|
|
|
|
stepResult.isCompleted(false).msg(String.format("%s关联生产线[%s]与当前生产线[%s]不一致,不支持在此工位操作!", suffix, workOrderExt.getWorkCenterCode(), reqBean.getWorkCenterCode()));
|
|
|
|
|
|
|
|
|
|
private void checkWorkOrderExtIsValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, MesWorkOrderExt workOrderExt, String suffix) {
|
|
|
|
|
return !stepResult.isCompleted() ? curExecWorkOrderNo : null;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (null == workOrderExt) execNonCompleteAndSendMsg(reqBean, resultBean, stepResult, String.format("%s对应的工单信息不存在!", suffix));
|
|
|
|
|
private String checkWorkOrderExtIsValid(StationRequestBean reqBean, StepResult stepResult, MesWorkOrderExt workOrderExt, String curExecWorkOrderNo, String suffix) {
|
|
|
|
|
|
|
|
|
|
if (stepResult.isCompleted() && MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() != workOrderExt.getWorkOrderStatus())
|
|
|
|
|
execNonCompleteAndSendMsg(reqBean, resultBean, stepResult, String.format("%s状态[%s],不支持在此工位操作!", suffix, MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus())));
|
|
|
|
|
if (MesPcnExtEnumUtil.WORK_ORDER_STATUS.OPEN.getValue() != workOrderExt.getWorkOrderStatus())
|
|
|
|
|
stepResult.isCompleted(false).msg(String.format("%s状态[%s],不支持在此工位操作!", suffix, MesPcnExtEnumUtil.WORK_ORDER_STATUS.valueOfDescription(workOrderExt.getWorkOrderStatus())));
|
|
|
|
|
|
|
|
|
|
if (stepResult.isCompleted() && MathOperation.compareTo(workOrderExt.getQty(), new Double(0)) <= 0)
|
|
|
|
|
execNonCompleteAndSendMsg(reqBean, resultBean, stepResult, String.format("%s计划数量为[0],不支持在此工位操作!", suffix));
|
|
|
|
|
stepResult.isCompleted(false).msg(String.format("%s计划数量为[0],不支持在此工位操作!", suffix));
|
|
|
|
|
|
|
|
|
|
return !stepResult.isCompleted() ? curExecWorkOrderNo : null;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String doCacheCurExecWorkOrderNo(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, String selectWorkOrderNo, String curExecWorkOrderNo, String suffix) {
|
|
|
|
|
Boolean flag = (Boolean) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleCurExecWorkOrder, 2, selectWorkOrderNo);
|
|
|
|
|
if (!flag) stepResult.isCompleted(false).msg(String.format("%s初始化失败!", suffix));
|
|
|
|
|
else execStateModule(reqBean, resultBean);
|
|
|
|
|
|
|
|
|
|
if (!stepResult.isCompleted()) return;
|
|
|
|
|
if (stepResult.isCompleted()) this.sendMessage(reqBean, resultBean, String.format("%s初始化成功!", suffix), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT);
|
|
|
|
|
|
|
|
|
|
return !stepResult.isCompleted() ? curExecWorkOrderNo : null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void cacheOrderModel(StationRequestBean reqBean, MesWorkOrderExt workOrderExt) {
|
|
|
|
|