Merge branch 'dev-wuhan' into dev-wuhan-temp

tags/yfai-pcn-ext-v2.3
王杰 7 months ago
commit 0f88c13f3b

@ -114,8 +114,8 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】不允许发运", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus()))); throw new ImppBusiException(String.format("目视单【%s】状态为【%s】质量状态为【%s】不允许发运", model.getSn(), MesExtEnumUtil.ORDER_STATUS.valueOfDescription(workOrder.getWorkOrderStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(workOrder.getQcStatus())));
} }
//校验条码是否匹配 //校验条码是否匹配
if (!Objects.equals(detail.getBarcode(), workOrder.getSn())) { if (!Objects.equals(detail.getBarcode(), workOrder.getCustSn())) {
throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】不匹配", model.getSn(), workOrder.getSn(), detail.getBarcode())); throw new ImppBusiException(String.format("目视单【%s】条码【%s】与扫描条码【%s】不匹配", model.getSn(), workOrder.getCustSn(), detail.getBarcode()));
} }
//校验零件是否匹配 //校验零件是否匹配
if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) { if (!Objects.equals(detail.getPartNo(), workOrder.getPartNo())) {

@ -146,8 +146,8 @@ public class MesProductSnPrintNosortStepService extends BaseStepService {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(outSn.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(outSn.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(outSn.getId(), MesPcnExtConstWords.ID, packBean); DdlPreparedPack.getNumEqualPack(outSn.getId(), MesPcnExtConstWords.ID, packBean);
mesProduceSnRao.updateByProperties( mesProduceSnRao.updateByProperties(
new String[]{MesPcnExtConstWords.PRINT_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME}, new String[]{MesPcnExtConstWords.PRINT_STATUS, "printCount", MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME},
new Object[]{MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue(), reqBean.getUserInfo(), TimeTool.getNowTime(true)}, packBean); new Object[]{MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue(), MesPcnExtConstWords.ONE, reqBean.getUserInfo(), TimeTool.getNowTime(true)}, packBean);
} }
//保存打印条码记录 //保存打印条码记录
snLogRao.saveAll(snLogList); snLogRao.saveAll(snLogList);

@ -95,7 +95,7 @@ public class MesProductSnSaveStepService extends BaseStepService {
MesWorkCenter workCenter = productionProcessContext.getWorkCenter(); MesWorkCenter workCenter = productionProcessContext.getWorkCenter();
MesWorkCell workCell = productionProcessContext.getWorkCell(); MesWorkCell workCell = productionProcessContext.getWorkCell();
productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> o.copy(saveProduceSnData(reqBean, resultBean, productionProcessContext, o, partMap, prodShiftContext, productResult, workCenter, workCell))); productionPsOutContextList.stream().filter(o -> null != o).forEach(o -> saveProduceSnData(reqBean, resultBean, productionProcessContext, o, partMap, prodShiftContext, productResult, workCenter, workCell));
//保存上下文产出条码数据信息集合 //保存上下文产出条码数据信息集合
productionDispatchContextStepService.dispatchProductionPsOutContext(reqBean, productionPsOutContextList); productionDispatchContextStepService.dispatchProductionPsOutContext(reqBean, productionPsOutContextList);
@ -104,7 +104,7 @@ public class MesProductSnSaveStepService extends BaseStepService {
} }
private MesProduceSn saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext, private MesProductionPsOutContext saveProduceSnData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesProductionPsOutContext productionPsOutContext,
Map<String, MesPart> partMap, MesProdShiftContext prodShiftContext, String productResult, MesWorkCenter workCenter, MesWorkCell workCell) { Map<String, MesPart> partMap, MesProdShiftContext prodShiftContext, String productResult, MesWorkCenter workCenter, MesWorkCell workCell) {
//根据零件条码ID查询零件条码信息 //根据零件条码ID查询零件条码信息
@ -112,46 +112,59 @@ public class MesProductSnSaveStepService extends BaseStepService {
if (null == produceSn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件条码信息,产出零件条码[%s]ID[%s]信息不存在!", productionPsOutContext.getProductSn(), productionPsOutContext.getId())); if (null == produceSn) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), String.format("请检查零件条码信息,产出零件条码[%s]ID[%s]信息不存在!", productionPsOutContext.getProductSn(), productionPsOutContext.getId()));
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- QURERY:{}",
reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(),
StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), produceSn.getProductSn(), produceSn.getPartNo(), produceSn.getId(), JSONObject.toJSONString(produceSn));
//零件信息 //零件信息
MesPart part = partMap.get(produceSn.getPartNo()); MesPart part = partMap.get(produceSn.getPartNo());
produceSn.setAreaCode(reqBean.getAreaCode()); productionPsOutContext.setAreaCode(reqBean.getAreaCode());
produceSn.setWorkCenterCode(reqBean.getWorkCenterCode()); productionPsOutContext.setWorkCenterCode(reqBean.getWorkCenterCode());
produceSn.setWorkCellCode(reqBean.getWorkCellCode()); productionPsOutContext.setWorkCellCode(reqBean.getWorkCellCode());
produceSn.setRouteCode(reqBean.getRouteCode()); productionPsOutContext.setRouteCode(reqBean.getRouteCode());
produceSn.setProcessCode(reqBean.getProcessCode()); productionPsOutContext.setProcessCode(reqBean.getProcessCode());
produceSn.setCraftCode(productionProcessContext.getCraftCode()); productionPsOutContext.setCraftCode(productionProcessContext.getCraftCode());
produceSn.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue()); productionPsOutContext.setQcStatus(!StringUtils.isEmpty(productResult) ? Integer.valueOf(productResult) : MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
produceSn.setShiftCode(prodShiftContext.getShiftCode()); productionPsOutContext.setShiftCode(prodShiftContext.getShiftCode());
produceSn.setShiftGroup(prodShiftContext.getShiftGroup()); productionPsOutContext.setShiftGroup(prodShiftContext.getShiftGroup());
produceSn.setProcessLabelTemplate(part.getProcessLabelTemplate()); productionPsOutContext.setProcessLabelTemplate(part.getProcessLabelTemplate());
produceSn.setProdLabelTemplate(part.getProductLabelTemplate()); productionPsOutContext.setProdLabelTemplate(part.getProductLabelTemplate());
produceSn.setCustLabelTemplate(part.getCustLabelTemplate()); productionPsOutContext.setCustLabelTemplate(part.getCustLabelTemplate());
ConvertBean.serviceModelUpdate(produceSn, reqBean.getUserInfo()); ConvertBean.serviceModelUpdate(productionPsOutContext, reqBean.getUserInfo());
produceSn.setLotNo(produceSn.getModifyDatetime().substring(0, 10)); productionPsOutContext.setLotNo(productionPsOutContext.getModifyDatetime().substring(0, 10));
if (StringUtils.isEmpty(produceSn.getInWorkCenterTime())) produceSn.setInWorkCenterTime(produceSn.getModifyDatetime());
if (StringUtils.isEmpty(productionPsOutContext.getInWorkCenterTime())) productionPsOutContext.setInWorkCenterTime(productionPsOutContext.getModifyDatetime());
//非排序 或者 排序的末道工位 //非排序 或者 排序的末道工位
if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) == 0 || if (workCenter.getCenterType().compareTo(MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue()) == 0 ||
(!StringUtils.isEmpty(workCell.getIsEndWorkCell()) && workCell.getIsEndWorkCell().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)) { (!StringUtils.isEmpty(workCell.getIsEndWorkCell()) && workCell.getIsEndWorkCell().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0)) {
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue()); productionPsOutContext.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.OFFLINE.getValue());
produceSn.setOutWorkCenterTime(produceSn.getModifyDatetime()); productionPsOutContext.setOutWorkCenterTime(productionPsOutContext.getModifyDatetime());
} else { } else {
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.PROCESSING.getValue()); productionPsOutContext.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.PROCESSING.getValue());
} }
produceSnExtService.update(produceSn); produceSnRepository.updateByProperties(
new String[]{"id", "organizeCode"},
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- MesProductionPsOutContext:{} --- MesProduceSn:{}", new Object[]{produceSn.getId(), reqBean.getOrganizeCode()},
new String[]{"areaCode", "workCenterCode", "workCellCode", "routeCode", "processCode", "craftCode",
"snStatus", "qcStatus", "shiftCode", "shiftGroup", "processLabelTemplate", "prodLabelTemplate",
"custLabelTemplate", "modifyDatetime", "modifyUser", "inWorkCenterTime", "outWorkCenterTime", "lotNo"},
new Object[]{productionPsOutContext.getAreaCode(), productionPsOutContext.getWorkCenterCode(), productionPsOutContext.getWorkCellCode(), productionPsOutContext.getRouteCode(), productionPsOutContext.getProcessCode(), productionPsOutContext.getCraftCode(),
productionPsOutContext.getSnStatus(), productionPsOutContext.getQcStatus(), productionPsOutContext.getShiftCode(), productionPsOutContext.getShiftGroup(), productionPsOutContext.getProcessLabelTemplate(), productionPsOutContext.getProdLabelTemplate(),
productionPsOutContext.getCustLabelTemplate(), productionPsOutContext.getModifyDatetime(), productionPsOutContext.getModifyUser(), productionPsOutContext.getInWorkCenterTime(), productionPsOutContext.getOutWorkCenterTime(), productionPsOutContext.getLotNo()});
log.info("工厂{}生产线{}工位{}:FSM STATE DISPATCHER --- DO STEP --- {} EXEC --- PS:{} {} --- ID:{} --- UPDATE:{}",
reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(),
StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), JSONObject.toJSONString(productionPsOutContext), JSONObject.toJSONString(produceSn)); StringUtil.toLowerCaseFirst(this.getClass().getSimpleName()), productionPsOutContext.getProductSn(), productionPsOutContext.getPartNo(), productionPsOutContext.getId(), JSONObject.toJSONString(productionPsOutContext));
return produceSn; return productionPsOutContext;
} }

Loading…
Cancel
Save