jx pcn work cell scan busi change line off merge and recheck key part

tags/yfai-pcn-ext-v1.0
王杰 1 year ago
parent d864f3db24
commit a72331b6f6

@ -46,4 +46,16 @@ public interface IJxProdBindRecordExtService {
@ApiOperation(value = "根据部品条码查询产品绑定记录信息", notes = "根据部品条码查询产品绑定记录信息")
List<MesProdBindRecord> getProdBindRecordListByKpSn(String organizeCode, String kpSn);
/**
*
* @param organizeCode
* @param workOrderNo
* @param serialNumber
* @param workCenterCode 线
* @param workCellCode
* @param kpSn
* @return
*/
@ApiOperation(value = "判断是否存在部品条码绑定记录信息", notes = "判断是否存在部品条码绑定记录信息")
Boolean getProdBindRecordIsExist(String organizeCode, String workOrderNo, String serialNumber, String workCenterCode, String workCellCode, String kpSn);
}

@ -113,6 +113,7 @@ public interface IJxProdBusiStrategyService {
/**
* 线
* @param params
* @return
*/
@ApiOperation(value = "完成上线", notes = "完成上线")
default StepResult execLineOnComplete(JxProdBusiStrategyParamsBuilder params) { return StepResult.getSuccessComplete(); }

@ -35,6 +35,14 @@ public interface IJxProduceSnExtService {
void doPackSnExtProcess(StationRequestBean reqBean, MesProduceSnExt produceSnExt);
/**
* 线
* @param reqBean
* @param produceSnExt
*/
@ApiOperation(value = "设置条码产线 工位 工序 下一道工序", notes = "设置条码产线 工位 工序 下一道工序")
void doCheckIsNeedPackSnExtProcess(StationRequestBean reqBean, MesProduceSnExt produceSnExt);
/**
*
* @param produceSnExt
*/

@ -17,6 +17,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@ -61,4 +62,16 @@ public class JxProdBindRecordExtService implements IJxProdBindRecordExtService {
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.KP_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), kpSn});
}
@Override
public Boolean getProdBindRecordIsExist(String organizeCode, String workOrderNo, String serialNumber, String workCenterCode, String workCellCode, String kpSn) {
if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo) || StringUtils.isEmpty(serialNumber) ||
StringUtils.isEmpty(workCenterCode) || StringUtils.isEmpty(workCellCode) || StringUtils.isEmpty(kpSn)) return false;
List<MesProdBindRecord> prodBindRecordList = prodBindRecordRepository.findByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID,
MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.SERIAL_NUMBER, MesPcnExtConstWords.WORK_CENTER_CODE, MesPcnExtConstWords.WORK_CELL_CODE, MesPcnExtConstWords.KP_SN},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, serialNumber, workCenterCode, workCellCode, kpSn});
Optional<MesProdBindRecord> option = CollectionUtils.isEmpty(prodBindRecordList) ? null : prodBindRecordList.stream().filter(o -> (null != o && MesPcnExtEnumUtil.MES_ACTION_TYPE.BIND.getValue() == o.getActionType())).findFirst();
return (null == option || !option.isPresent()) ? false : true;
}
}

@ -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));
}

@ -55,7 +55,7 @@ public class JxProdBusiStrategyRepairService implements IJxProdBusiStrategyServi
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()));
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()));

@ -96,7 +96,7 @@ public class JxProdBusiStrategyStandardService implements IJxProdBusiStrategySer
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()));
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()));

@ -63,6 +63,16 @@ public class JxProduceSnExtService implements IJxProduceSnExtService {
}
@Override
public void doCheckIsNeedPackSnExtProcess(StationRequestBean reqBean, MesProduceSnExt produceSnExt) {
if (null == reqBean || null == produceSnExt) return;
if (reqBean.getWcpcMap().containsKey(MesPcnExtConstWords.PROCESS_MERGE_FLAG)) return;
doPackSnExtProcess(reqBean, produceSnExt);
}
private String getNextProcessCode(String processCode, List<MesRouteProcess> routeProcessList) {
Optional<MesRouteProcess> routeProcessOp = routeProcessList.stream().filter(o -> (null != o && o.getProcessCode().equals(processCode))).findFirst();
if (null == routeProcessOp || !routeProcessOp.isPresent()) return null;

@ -240,6 +240,23 @@ public class JxSnFinalInspectionModuleService extends BaseModuleService {
}
}
public Object doHandleBindKeyPartData(StationRequestBean reqBean, Integer flag, String item, String data) {
switch (flag) {
case 1:
return redisMesPcn.getHash(getDataKey(reqBean), item);
case 2:
return redisMesPcn.putHash(getDataKey(reqBean), item, data, MesPcnEnumUtil.EXPIRE_TIME.NEVER.getValue());
case 3:
String[] itemArr = item.split(MesPcnExtConstWords.COMMA);
for (String s : itemArr) {
redisMesPcn.deleteHash(getDataKey(reqBean), s);
}
return true;
default:
return null;
}
}
public Object doHandlePlcData(StationRequestBean reqBean, String item, Integer flag, String plcData) {
switch (flag) {
case 1:

@ -52,6 +52,8 @@ public class JxInitOrderStepService extends BaseStepService {
StationResultBean resultBean = new StationResultBean();
fsmCommonService.checkWcpcMapForDoScan(reqBean);
String curExecWorkOrderNo = (String) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleCurExecWorkOrder, 1, null);
String selectWorkOrderNo = (String) doHandleModuleObjectMethod(reqBean, resultBean, MesPcnExtConstWords.doHandleSelectWorkOrderNo, 1, null);
@ -150,7 +152,6 @@ public class JxInitOrderStepService extends BaseStepService {
}
private Object doHandleModuleObjectMethod(StationRequestBean reqBean, StationResultBean resultBean, String methodStr, Integer flag, String value) {
fsmCommonService.checkWcpcMapForDoScan(reqBean);
try {
IModuleService moduleService = (IModuleService) SpringContextsUtil.getBean(reqBean.getWcpcMap().get(MesPcnConstWords.MODULE_OBJECT));
Method method = moduleService.getClass().getDeclaredMethod(methodStr, reqBean.getClass(), Integer.class, String.class);
@ -163,7 +164,6 @@ public class JxInitOrderStepService extends BaseStepService {
}
private Object execStateModule(StationRequestBean reqBean, StationResultBean resultBean) {
fsmCommonService.checkWcpcMapForDoScan(reqBean);
try {
IModuleService moduleService = (IModuleService) SpringContextsUtil.getBean(reqBean.getWcpcMap().get(MesPcnConstWords.MODULE_OBJECT));
Method method = moduleService.getClass().getDeclaredMethod(MesPcnExtConstWords.execStateModule, reqBean.getClass(), List.class, Map.class);

@ -64,12 +64,12 @@ public class JxSnFinalInspectionAspectCheckStepService extends BaseStepService {
reqBean.setScanInfo(null);
log.info("工厂{}生产线{}工位{}: --- STEP EXECUTE --- JxSnFinalInspectionAspectCheckStepService --- SUCCESS --- ", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
BUSI_FLAG item = BUSI_FLAG.getByValue(busiFlag);
if (!item.getIsComplete()) reqBean.getDataMap().put(MesPcnExtConstWords.PLC_PASS_VALUE, new StringJoiner(MesPcnExtConstWords.E_UNDERLINE).add(MesPcnExtConstWords.PLC_PASS_VALUE).add(busiFlag).toString());
log.info("工厂{}生产线{}工位{}: --- STEP EXECUTE --- JxSnFinalInspectionAspectCheckStepService --- SUCCESS --- ", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
return execDynamicsCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
item.getIsComplete(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT, String.format("%s[%s]!", suffix, item.getDescription()));

@ -3,12 +3,12 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.jx.IJxProdBusiStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.jx.JxSnFinalInspectionModuleService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProduceSnExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WorkOrderExtModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.jx.JxProdBusiStrategyParamsBuilder;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
@ -39,6 +39,9 @@ public class JxSnFinalInspectionBindPsStepService extends BaseStepService {
@Autowired
private ISxWorkOrderExtService workOrderExtService;
@Autowired
private IFsmCommonService fsmCommonService;
@Override
public StepResult execute(StationRequestBean reqBean) {
@ -54,17 +57,18 @@ public class JxSnFinalInspectionBindPsStepService extends BaseStepService {
StepResult stepResult = StepResult.getSuccessComplete();
if (StringUtils.isEmpty(reqBean.getProductSn())) checkScanInfoIsValid(reqBean, resultBean, stepResult, orderModel);
if (StringUtils.isEmpty(reqBean.getProductSn())) checkScanInfoIsValid(reqBean, resultBean, orderModel);
else reqBean.setScanInfo(null);
String suffixSn = StringUtils.isEmpty(reqBean.getProductSn()) ? getManageCode(reqBean.getTray(), 1) : reqBean.getProductSn();
String suffix = String.format("当前产品:%s[%s]", StringUtils.isEmpty(reqBean.getProductSn()) ? "管理编码" : "产品条码", suffixSn);
String suffix2 = !StringUtils.isEmpty(reqBean.getScanInfo()) ? String.format("已绑定产品条码[%s]!", reqBean.getScanInfo()) : MesPcnExtConstWords.EMPTY;
execFinalInspectionBindPs(reqBean, stepResult, orderModel);
log.info("工厂{}生产线{}工位{}: --- STEP EXECUTE --- JxSnFinalInspectionBindPsStepService --- SUCCESS --- ", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, String.format("%s%s终检完成!", suffix, !StringUtils.isEmpty(reqBean.getScanInfo()) ? String.format("已绑定产品条码[%s]!", reqBean.getScanInfo()) : MesPcnExtConstWords.EMPTY));
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, stepResult, String.format("%s%s终检完成!", suffix, suffix2));
}
private String getCurExecWorkOrderNo(StationRequestBean reqBean, StationResultBean resultBean) {
@ -94,7 +98,7 @@ public class JxSnFinalInspectionBindPsStepService extends BaseStepService {
else return null;
}
private void checkScanInfoIsValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, WorkOrderExtModel orderModel) {
private void checkScanInfoIsValid(StationRequestBean reqBean, StationResultBean resultBean, WorkOrderExtModel orderModel) {
JxProdBusiStrategyParamsBuilder params = new JxProdBusiStrategyParamsBuilder.builder()
.organizeCode(reqBean.getOrganizeCode())
@ -111,11 +115,12 @@ public class JxSnFinalInspectionBindPsStepService extends BaseStepService {
if (!result.isCompleted()) execSendGuideAndThrowEx(reqBean, resultBean, "请扫描产品条码!");
if (MesPcnExtEnumUtil.WORK_ORDER_TYPE.ATTEMPT_ORDER.getValue() == orderModel.getWorkOrderType()) stepResult.setData(params.getProduceSnExtDb());
}
private void execFinalInspectionBindPs(StationRequestBean reqBean, StepResult stepResult, WorkOrderExtModel orderModel) {
fsmCommonService.checkWcpcMapForDoScan(reqBean);
((IJxProdBusiStrategyService) SpringContextsUtil.getBean(MesPcnExtEnumUtil.JX_PROD_BUSI_STRATEGY.COMMON.getClazz()))
.execFinalInspectionBindPs(new JxProdBusiStrategyParamsBuilder.builder()
.organizeCode(reqBean.getOrganizeCode())
@ -126,9 +131,13 @@ public class JxSnFinalInspectionBindPsStepService extends BaseStepService {
.productSn(reqBean.getProductSn())
.scanInfo(reqBean.getScanInfo())
.manageCode(reqBean.getTray())
.produceSnExtDb(null != stepResult.getData() ? (MesProduceSnExt) stepResult.getData() : null)
.obj(reqBean)
.build());
reqBean.setScanInfo(null);
if (reqBean.getWcpcMap().containsKey(MesPcnExtConstWords.PROCESS_MERGE_FLAG)) stepResult.nextTriggerEvent(MesPcnExtConstWords.PROCESS_MERGE_FLAG);
}
}

@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WorkOrderExtModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.jx.JxProdBusiStrategyParamsBuilder;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
@ -40,10 +41,14 @@ public class JxSnFinalInspectionCheckMcOrPsStepService extends BaseStepService {
@Autowired
private ISxWorkOrderExtService workOrderExtService;
@Autowired
private IFsmCommonService fsmCommonService;
@Override
public StepResult init(StationRequestBean reqBean) {
reqBean.setSerialNumber(null);
reqBean.setProductSn(null);
reqBean.setWorkOrderNo(null);
reqBean.setTray(null);
reqBean.getDataMap().remove(MesPcnExtConstWords.PLC_PASS_VALUE);
return super.init(reqBean);
@ -93,6 +98,8 @@ public class JxSnFinalInspectionCheckMcOrPsStepService extends BaseStepService {
private StepResult checkScanInfoIsValid(StationRequestBean reqBean, StationResultBean resultBean, StepResult stepResult, WorkOrderExtModel orderModel) {
fsmCommonService.checkWcpcMapForDoScan(reqBean);
JxProdBusiStrategyParamsBuilder params = new JxProdBusiStrategyParamsBuilder.builder()
.organizeCode(reqBean.getOrganizeCode())
.scanInfo(reqBean.getScanInfo())
@ -106,19 +113,26 @@ public class JxSnFinalInspectionCheckMcOrPsStepService extends BaseStepService {
this.sendMessage(reqBean, resultBean, result.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, result.isCompleted() ? MesPcnEnumUtil.STATION_DATA_TYPE.TEXT : MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent()) && (Boolean) snFinalInspectionModuleService.doHandleSelectWorkOrderNo(
reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent()).isCompleted(false);
stepResult.isCompleted(result.isCompleted());
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.TMP_ORDER) &&
(Boolean) snFinalInspectionModuleService.doHandleSelectWorkOrderNo(reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
reqBean.setScanInfo(null);
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.TMP_ORDER))
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
new StringJoiner(MesPcnExtConstWords.COMMA).add(result.getMsg().split(MesPcnExtConstWords.COMMA)[0]).add(String.format(",缓存临时工单[%s]失败!", params.getProduceSnExtDb().getLastWorkOrderNo())).toString());
reqBean.setSerialNumber(params.getSerialNumber());
reqBean.setProductSn(params.getProductSn());
reqBean.setWorkOrderNo(orderModel.getOrderNo());
reqBean.setTray(null == params.getProduceSnMcRecordDb() ? params.getManageCode() : new StringJoiner(MesPcnExtConstWords.AND).add(params.getProduceSnMcRecordDb().getManageCode()).add(params.getProduceSnMcRecordDb().getId().toString()).toString());
return stepResult.isCompleted(result.isCompleted());
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.KEY_PART_RECHECK)) return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
return stepResult;
}
}

@ -0,0 +1,54 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.jx.IJxProdBindRecordExtService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.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.StringUtils;
/**
* @Description : 线
* @Reference :
* @Author : wangjie
* @CreateDate : 2019-07-11
* @Modify:
**/
@Slf4j
@Service("jxSnLineOffCheckPartKeyStepService")
public class JxSnLineOffCheckPartKeyStepService extends BaseStepService {
@Autowired
private IJxProdBindRecordExtService prodBindRecordExtService;
@Override
public StepResult guide(StationRequestBean reqBean) {
return execSuccessCompleteAndSendGuideReturn(reqBean, new StationResultBean(), String.format("当前产品[%s]已被标记为出货检验还线品,请扫描关键件进行复检!", reqBean.getProductSn()));
}
@Override
public StepResult execute(StationRequestBean reqBean) {
log.info("工厂{}生产线{}工位{}: --- STEP EXECUTE --- JxSnLineOffCheckPartKeyStepService --- START --- ", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
StationResultBean resultBean = new StationResultBean();
if (StringUtils.isEmpty(reqBean.getScanInfo())) execSendGuideAndThrowEx(reqBean, resultBean, String.format("当前产品[%s]已被标记为出货检验还线品,请扫描关键件进行复检!", reqBean.getProductSn()));
String kpSn = reqBean.getScanInfo();
reqBean.setScanInfo(null);
Boolean result = prodBindRecordExtService.getProdBindRecordIsExist(reqBean.getOrganizeCode(), reqBean.getWorkOrderNo(), reqBean.getSerialNumber(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), kpSn);
log.info("工厂{}生产线{}工位{}: --- STEP EXECUTE --- JxSnLineOffCheckPartKeyStepService --- SUCCESS ---", reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode());
if (!result) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, String.format("复检失败!关键件条码[%s]复检不匹配当前出货检验还线品[%s]!", kpSn, reqBean.getProductSn()));
return execSuccessCompleteAndSendMsgReturn(reqBean, resultBean, String.format("复检成功!关键件条码[%s]复检已匹配当前出货检验还线品[%s]!", kpSn, reqBean.getProductSn()));
}
}

@ -44,6 +44,7 @@ public class JxSnLineOffCheckPsStepService extends BaseStepService {
public StepResult init(StationRequestBean reqBean) {
reqBean.setSerialNumber(null);
reqBean.setProductSn(null);
reqBean.setWorkOrderNo(null);
clearStepContent(reqBean);
snLineOffModuleService.doHandleBindKeyPartData(reqBean, 3, new StringJoiner(MesPcnExtConstWords.COMMA).add(MesPcnExtConstWords.BIND_KEY_PART).add(MesPcnExtConstWords.EXEC_BIND_KEY).toString(), null);
return super.init(reqBean);
@ -106,18 +107,25 @@ public class JxSnLineOffCheckPsStepService extends BaseStepService {
this.sendMessage(reqBean, resultBean, result.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, result.isCompleted() ? MesPcnEnumUtil.STATION_DATA_TYPE.TEXT : MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent()) && (Boolean) snLineOffModuleService.doHandleSelectWorkOrderNo(
reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent()).isCompleted(false);
stepResult.isCompleted(result.isCompleted());
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.TMP_ORDER) &&
(Boolean) snLineOffModuleService.doHandleSelectWorkOrderNo(reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
reqBean.setScanInfo(null);
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.TMP_ORDER))
return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
new StringJoiner(MesPcnExtConstWords.COMMA).add(result.getMsg().split(MesPcnExtConstWords.COMMA)[0]).add(String.format(",缓存临时工单[%s]失败!", params.getProduceSnExtDb().getLastWorkOrderNo())).toString());
reqBean.setSerialNumber(params.getSerialNumber());
reqBean.setProductSn(params.getProductSn());
reqBean.setWorkOrderNo(orderModel.getOrderNo());
return stepResult.isCompleted(result.isCompleted());
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && result.getNextTriggerEvent().equals(MesPcnExtConstWords.KEY_PART_RECHECK)) return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
return stepResult;
}
}

@ -2,13 +2,15 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.step.jx;
import cn.estsh.i3plus.ext.mes.pcn.api.base.ISxWorkOrderExtService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.jx.IJxProdBusiStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.station.jx.JxSnLineOffModuleService;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WorkOrderExtModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.jx.JxProdBusiStrategyParamsBuilder;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtEnumUtil;
import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IModuleService;
import cn.estsh.i3plus.mes.pcn.serviceimpl.base.BaseStepService;
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StationResultBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult;
@ -20,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.lang.reflect.Method;
/**
* @Description : 线
* @Reference :
@ -32,7 +36,7 @@ import org.springframework.util.StringUtils;
public class JxSnLineOffCompleteStepService extends BaseStepService {
@Autowired
private JxSnLineOffModuleService snLineOffModuleService;
private IFsmCommonService fsmCommonService;
@Autowired
private ISxWorkOrderExtService workOrderExtService;
@ -44,6 +48,8 @@ public class JxSnLineOffCompleteStepService extends BaseStepService {
StationResultBean resultBean = new StationResultBean();
fsmCommonService.checkWcpcMapForDoScan(reqBean);
String curExecWorkOrderNo = getCurExecWorkOrderNo(reqBean, resultBean);
WorkOrderExtModel orderModel = getWorkOrderExtModel(reqBean, resultBean, curExecWorkOrderNo);
@ -56,7 +62,15 @@ public class JxSnLineOffCompleteStepService extends BaseStepService {
}
private String getCurExecWorkOrderNo(StationRequestBean reqBean, StationResultBean resultBean) {
String curExecWorkOrderNo = (String) snLineOffModuleService.doHandleCurExecWorkOrder(reqBean, 1, null);
String curExecWorkOrderNo = null;
try {
IModuleService moduleService = (IModuleService) SpringContextsUtil.getBean(reqBean.getWcpcMap().get(MesPcnConstWords.MODULE_OBJECT));
Method method = moduleService.getClass().getDeclaredMethod(MesPcnExtConstWords.doHandleCurExecWorkOrder, reqBean.getClass(), Integer.class, String.class);
method.setAccessible(true);
curExecWorkOrderNo = (String) method.invoke(moduleService, reqBean, 1, null);
} catch (Exception e) {
execExpSendMsgAndThrowEx(reqBean, resultBean, String.format("执行展示组件内部方法[%s]参数[flag=1,value=null]出现异常:%s", MesPcnExtConstWords.doHandleCurExecWorkOrder, e.getMessage()));
}
if (StringUtils.isEmpty(curExecWorkOrderNo)) execExpSendMsgAndThrowEx(reqBean, resultBean, "此前操作的工单号已丢失,请选择启动状态的生产工单!");
return curExecWorkOrderNo;
}

@ -106,9 +106,11 @@ public class JxSnLineOnCheckMcOrPsStepService extends BaseStepService {
this.sendMessage(reqBean, resultBean, result.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, result.isCompleted() ? MesPcnEnumUtil.STATION_DATA_TYPE.TEXT : MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
stepResult.isCompleted(result.isCompleted());
if (!StringUtils.isEmpty(result.getNextTriggerEvent()) && (Boolean) snLineOnModuleService.doHandleSelectWorkOrderNo(
reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent()).isCompleted(false);
return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
reqBean.setScanInfo(null);
if (!StringUtils.isEmpty(result.getNextTriggerEvent())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
@ -118,9 +120,9 @@ public class JxSnLineOnCheckMcOrPsStepService extends BaseStepService {
reqBean.setProductSn(params.getProductSn());
reqBean.setTray(null == params.getProduceSnMcRecordDb() ? params.getManageCode() : new StringJoiner(MesPcnExtConstWords.AND).add(params.getProduceSnMcRecordDb().getManageCode()).add(params.getProduceSnMcRecordDb().getId().toString()).toString());
if (result.isCompleted() && (null != params.getProduceSnMcRecordDb() || null != params.getProduceSnExtDb())) return stepResult.nextTriggerEvent(MesPcnExtConstWords.BIND_KEY_PART).isCompleted(false);
if (result.isCompleted() && (null != params.getProduceSnMcRecordDb() || null != params.getProduceSnExtDb())) return stepResult.nextTriggerEvent(MesPcnExtConstWords.BIND_KEY_PART);
return stepResult.isCompleted(result.isCompleted());
return stepResult;
}
}

@ -106,9 +106,11 @@ public class JxSnProcessingCheckMcOrPsStepService extends BaseStepService {
this.sendMessage(reqBean, resultBean, result.getMsg(), MesPcnEnumUtil.STATION_BUSI_TYPE.MESSAGE, result.isCompleted() ? MesPcnEnumUtil.STATION_DATA_TYPE.TEXT : MesPcnEnumUtil.STATION_DATA_TYPE.EXP_TEXT);
stepResult.isCompleted(result.isCompleted());
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent()) && (Boolean) snProcessingModuleService.doHandleSelectWorkOrderNo(
reqBean, 2, new StringJoiner(MesPcnExtConstWords.COLON).add(MesPcnExtConstWords.TMP_ORDER).add(params.getProduceSnExtDb().getLastWorkOrderNo()).toString()))
return stepResult.nextTriggerEvent(result.getNextTriggerEvent()).isCompleted(false);
return stepResult.nextTriggerEvent(result.getNextTriggerEvent());
reqBean.setScanInfo(null);
if (result.isCompleted() && !StringUtils.isEmpty(result.getNextTriggerEvent())) return execNonCompleteAndSendMsgReturn(reqBean, resultBean, stepResult,
@ -118,7 +120,7 @@ public class JxSnProcessingCheckMcOrPsStepService extends BaseStepService {
reqBean.setProductSn(params.getProductSn());
reqBean.setTray(null == params.getProduceSnMcRecordDb() ? params.getManageCode() : new StringJoiner(MesPcnExtConstWords.AND).add(params.getProduceSnMcRecordDb().getManageCode()).add(params.getProduceSnMcRecordDb().getId().toString()).toString());
return stepResult.isCompleted(result.isCompleted());
return stepResult;
}
}

@ -1029,4 +1029,10 @@ public class MesPcnExtConstWords {
//业务代码
public static final String BUSI_CODE = "BUSI_CODE";
//工序合并工位参数配置
public static final String PROCESS_MERGE_FLAG = "PROCESS_MERGE_FLAG";
//下线箱包二检工位参数配置
public static final String KEY_PART_RECHECK = "KEY_PART_RECHECK";
}

Loading…
Cancel
Save