From e931661d018d5b4eba9ef279c5c5ae6df7c7e0e6 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 18 Sep 2024 13:51:06 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E5=8C=85=E8=A3=85=E8=A7=A3=E7=BB=91?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesProductionDispatchContextStepService.java | 12 ++++ .../IMesRecyclablePackageBindingService.java | 3 + .../MesRecyclablePackageBindingServiceImpl.java | 19 ++++++ .../MesProcessMethodSourceBoxInOutServiceImpl.java | 15 ----- .../MesProcessMethodSourceBoxInOutStepService.java | 35 +++++++++-- .../MesRecyclablePackageUnBindingStepService.java | 71 ++++++++++++++++++++++ .../MesProductionDispatchContextStepService.java | 31 ++++++++++ .../MesProductionRecyclablePackageContext.java | 16 ++--- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 8 +++ 9 files changed, 183 insertions(+), 27 deletions(-) delete mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/processmethod/MesProcessMethodSourceBoxInOutServiceImpl.java create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageUnBindingStepService.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java index 4132298..03e7eb1 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProductionDispatchContextStepService.java @@ -207,4 +207,16 @@ public interface IMesProductionDispatchContextStepService { @ApiOperation(value = "删除上下文扫/读信息:可回用包装条码") void removeScanRecyclablePackageContext(StationRequestBean reqBean); + @ApiOperation(value = "获取进料可回用包装信息") + List getProductionRecyclablePackageContext(StationRequestBean reqBean); + + @ApiOperation(value = "验证进料可回用包装是否存在") + Boolean checkProductionRecyclablePackageContextIsExist(StationRequestBean reqBean); + + @ApiOperation(value = "保存进料可回用包装", notes = "[JSON]List") + Boolean dispatchProductionRecyclablePackageContext(StationRequestBean reqBean, List recyclablePackageContextList); + + @ApiOperation(value = "删除进料可回用包装") + Boolean removeProductionRecyclablePackageContext(StationRequestBean reqBean); + } diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/recyclablepackage/IMesRecyclablePackageBindingService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/recyclablepackage/IMesRecyclablePackageBindingService.java index 709b5d8..2f2d7c9 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/recyclablepackage/IMesRecyclablePackageBindingService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/recyclablepackage/IMesRecyclablePackageBindingService.java @@ -41,4 +41,7 @@ public interface IMesRecyclablePackageBindingService { @ApiOperation("扫描信息") MesRecyclablePackageBinding doScan(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel); + @ApiOperation("解绑") + void doMesRecyclablePackageUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, List bindingDetailList,String userName); + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java index 1727335..a7e64c3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/recyclablepackage/MesRecyclablePackageBindingServiceImpl.java @@ -168,6 +168,25 @@ public class MesRecyclablePackageBindingServiceImpl implements IMesRecyclablePac } + @Override + public void doMesRecyclablePackageUnBinding(MesRecyclablePackageBinding mesRecyclablePackageBinding, List bindingDetailList,String userName) { + for (MesRecyclablePackageBindingDetail detail : bindingDetailList) { + detail.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + detail.setRemark(MesPcnExtConstWords.STEP_UNBINDING); + detail.setSystemSyncStatus(CommonEnumUtil.FALSE); + detail.setSystemSyncDatetime(MesPcnExtConstWords.EMPTY); + ConvertBean.serviceModelUpdate(detail, userName); + } + mesRecyclablePackageBindingDetailRepository.saveAll(bindingDetailList); + //更新数量 + mesRecyclablePackageBinding.setTotalQty(MesPcnExtConstWords.ZERO); + mesRecyclablePackageBinding.setStatus(MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.UNPACKED.getValue()); + ConvertBean.serviceModelUpdate(mesRecyclablePackageBinding, userName); + mesRecyclablePackageBindingRepository.update(mesRecyclablePackageBinding); + //记录日志 + mesRecyclablePackageBindingLogService.insertUnBinding(mesRecyclablePackageBinding, bindingDetailList); + } + private MesRecyclablePackageBinding doScanPackageSn(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) { //校验包装 mesRecyclablePackageService.checkMesRecyclablePackage(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/processmethod/MesProcessMethodSourceBoxInOutServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/processmethod/MesProcessMethodSourceBoxInOutServiceImpl.java deleted file mode 100644 index 1e89236..0000000 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/processmethod/MesProcessMethodSourceBoxInOutServiceImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.processmethod; - -import groovy.util.logging.Slf4j; -import org.springframework.stereotype.Service; -/** - * @Description : 原箱进原箱出 - * @Reference : - * @Author : junsheng.li - * @CreateDate 2024/9/12 21:24 - * @Modify: - **/ -@Service -@Slf4j -public class MesProcessMethodSourceBoxInOutServiceImpl { -} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java index 54d036f..66c70cd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodSourceBoxInOutStepService.java @@ -3,11 +3,14 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionRecyclablePackageContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmCommonService; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; import cn.estsh.i3plus.pojo.mes.bean.MesConfig; @@ -54,6 +57,9 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { @Autowired private IConfigService configService; + @Autowired + private IFsmCommonService fsmCommonService; + @Override public StepResult execute(StationRequestBean reqBean) { @@ -74,6 +80,12 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { //获取上下文生产扫/读信息:可回用包装条码 List equipVariableCollectContextList = productionDispatchContextStepService.getScanRecyclablePackageContext(reqBean); + + //没有待验证的可回用包装条码 并且存在已验证过的可回用包装条码,默认放行 + if (CollectionUtils.isEmpty(equipVariableCollectContextList) && productionDispatchContextStepService.checkProductionRecyclablePackageContextIsExist(reqBean)){ + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前没有需要验证的可回用包装条码,且存在已验证可回用包装条码信息,当前工步默认放行!"); + } + if (CollectionUtils.isEmpty(equipVariableCollectContextList)){ return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, "当前缺失可回用包装条码信息!"); } @@ -84,9 +96,12 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { //从上下文中取出工位对象 MesWorkCell workCell = productionProcessContext.getWorkCell(); + //上下文对象-零件条码 List productionPsInContextList = new ArrayList<>(); + //上下文对象-可回用包装 + List recyclablePackageContextList = new ArrayList<>(); - if (!sourceBoxInOut(reqBean, equipVariableCollectContextList, stepResult, productionPsInContextList, workCell).isCompleted()) { + if (!sourceBoxInOut(reqBean, equipVariableCollectContextList, stepResult, productionPsInContextList,recyclablePackageContextList, workCell).isCompleted()) { return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, stepResult.getMsg()); } @@ -99,15 +114,19 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { //保存进料主条码数据 productionDispatchContextStepService.dispatchProductionPsInContext(reqBean, productionPsInContextList); + //保存进料可回用包装 + productionDispatchContextStepService.dispatchProductionRecyclablePackageContext(reqBean, recyclablePackageContextList); + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("可回用包装条码%s状态成功!", equipVariableCollectContextList.iterator().next().getEquipVariableValue())); } - public StepResult sourceBoxInOut(StationRequestBean reqBean, List equipVariableCollectContextList, StepResult stepResult, List productionPsInContextList, MesWorkCell workCell) { + public StepResult sourceBoxInOut(StationRequestBean reqBean, List equipVariableCollectContextList, StepResult stepResult, List productionPsInContextList,List recyclablePackageContextList, MesWorkCell workCell) { //获取包装绑定主表 MesRecyclablePackageBinding recyclablePackageBinding = mesRecyclablePackageBindingService.getMesRecyclablePackageBindingByPackageSn(reqBean.getOrganizeCode(), equipVariableCollectContextList.iterator().next().getEquipVariableValue()); - if (Objects.isNull(recyclablePackageBinding)) + if (Objects.isNull(recyclablePackageBinding)){ return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]信息不存在", equipVariableCollectContextList.iterator().next().getEquipVariableValue())); + } //校验状态 if (MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue() != recyclablePackageBinding.getStatus()) { return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]状态不为[已关箱]", equipVariableCollectContextList.iterator().next().getEquipVariableValue())); @@ -115,8 +134,9 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { //获取绑定明细信息 List bindingDetailList = mesRecyclablePackageBindingService.findMesRecyclablePackageBindingDetailByPid(reqBean.getOrganizeCode(), recyclablePackageBinding.getId()); - if (CollectionUtils.isEmpty(bindingDetailList)) + if (CollectionUtils.isEmpty(bindingDetailList)){ return stepResult.isCompleted(false).msg(String.format("回收包装绑定[%s]明细信息不存在", equipVariableCollectContextList.iterator().next().getEquipVariableValue())); + } //查询条码信息 Map> produceSnMap = produceSnExtService.getProduceSnMap(reqBean.getOrganizeCode(), bindingDetailList.stream().map(MesRecyclablePackageBindingDetail::getProductSn).collect(Collectors.toList())); for (MesRecyclablePackageBindingDetail bindingDetail : bindingDetailList) { @@ -125,11 +145,18 @@ public class MesProcessMethodSourceBoxInOutStepService extends BaseStepService { for (int i = 0; i < bindingDetail.getQty(); i++) { productionPsInContextList.add(new MesProductionPsInContext(reqBean.getOrganizeCode(), bindingDetail.getProductSn()).messageSource(equipVariableCollectContextList.iterator().next().getMessageSource())); } + recyclablePackageContextList.add(new MesProductionRecyclablePackageContext(recyclablePackageBinding,bindingDetail)); //自制件 } else { + recyclablePackageContextList.add(new MesProductionRecyclablePackageContext(recyclablePackageBinding,bindingDetail).setId(produceSnMap.get(bindingDetail.getProductSn()).iterator().next().getId())); createProductionPsInContext(reqBean, stepResult, workCell, equipVariableCollectContextList.iterator().next(), produceSnMap.get(bindingDetail.getProductSn()), productionPsInContextList); } } + //没有单独扣减工步时在本工步扣减 + Map wcpcMap = fsmCommonService.handleFsmWcpcMapDataForDoScan(reqBean); + if (wcpcMap.containsKey(MesPcnExtConstWords.CONTEXT_UNBINDING_STEP) && !Boolean.parseBoolean(wcpcMap.get(MesPcnExtConstWords.CONTEXT_UNBINDING_STEP))) { + mesRecyclablePackageBindingService.doMesRecyclablePackageUnBinding(recyclablePackageBinding, bindingDetailList, reqBean.getUserInfo()); + } return stepResult; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageUnBindingStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageUnBindingStepService.java new file mode 100644 index 0000000..6e3b085 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageUnBindingStepService.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionRecyclablePackageContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail; +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 cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Objects; + +/** + * @Description : 包装零件解绑 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/9/13 18:08 + * @Modify: + **/ +@Slf4j +@Service("mesRecyclablePackageUnBindingStepService") +public class MesRecyclablePackageUnBindingStepService extends BaseStepService { + + @Autowired + private IMesProductionDispatchContextStepService productionDispatchContextStepService; + + @Autowired + private IMesRecyclablePackageBindingService mesRecyclablePackageBindingService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + //验证进料可回用包装是否存在 + if (!productionDispatchContextStepService.checkProductionRecyclablePackageContextIsExist(reqBean)){ + return stepResult; + } + //获取进料可回用包装信息 + List productionRecyclablePackageContext = productionDispatchContextStepService.getProductionRecyclablePackageContext(reqBean); + //获取包装绑定主表 + MesRecyclablePackageBinding recyclablePackageBinding = mesRecyclablePackageBindingService.getMesRecyclablePackageBindingByPackageSn(reqBean.getOrganizeCode(), productionRecyclablePackageContext.iterator().next().getPackageSn()); + if (Objects.isNull(recyclablePackageBinding)) { + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("回收包装绑定[%s]信息不存在", productionRecyclablePackageContext.iterator().next().getPackageSn())); + } + //校验状态 + if (MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue() != recyclablePackageBinding.getStatus()) { + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("回收包装绑定[%s]状态不为[已关箱]", productionRecyclablePackageContext.iterator().next().getPackageSn())); + } + //获取绑定明细信息 + List bindingDetailList = mesRecyclablePackageBindingService.findMesRecyclablePackageBindingDetailByPid(reqBean.getOrganizeCode(), recyclablePackageBinding.getId()); + if (CollectionUtils.isEmpty(bindingDetailList)) { + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("回收包装绑定[%s]明细信息不存在", productionRecyclablePackageContext.iterator().next().getPackageSn())); + } + //解绑 + mesRecyclablePackageBindingService.doMesRecyclablePackageUnBinding(recyclablePackageBinding, bindingDetailList, reqBean.getUserInfo()); + + return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("可回用包装条码%s解绑成功!", productionRecyclablePackageContext.iterator().next().getPackageSn())); + } + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java index 1ac25e4..b922d1c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/context/MesProductionDispatchContextStepService.java @@ -437,6 +437,7 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp return false; } + //获取上下文生产扫/读信息:可回用包装条码 @Override public List getScanRecyclablePackageContext(StationRequestBean reqBean) { String productSnJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_RECYCLABLE_PACKAGE_CONTEXT); @@ -457,9 +458,39 @@ public class MesProductionDispatchContextStepService extends BaseStepService imp return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_RECYCLABLE_PACKAGE_CONTEXT, JSONObject.toJSONString(productSnList)); } + //删除上下文扫/读信息:可回用包装条码 @Override public void removeScanRecyclablePackageContext(StationRequestBean reqBean) { removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.SCAN_RECYCLABLE_PACKAGE_CONTEXT); } + //获取进料可回用包装信息 + @Override + public List getProductionRecyclablePackageContext(StationRequestBean reqBean) { + String productionPsInJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT); + return !StringUtils.isEmpty(productionPsInJson) ? JSONObject.parseArray(productionPsInJson, MesProductionRecyclablePackageContext.class) : null; + } + + //验证进料可回用包装是否存在 + @Override + public Boolean checkProductionRecyclablePackageContextIsExist(StationRequestBean reqBean) { + String productionPsInJson = getFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT); + return !StringUtils.isEmpty(productionPsInJson); + } + + //保存进料可回用包装 + @Override + public Boolean dispatchProductionRecyclablePackageContext(StationRequestBean reqBean, List recyclablePackageContextList) { + if (CollectionUtils.isEmpty(recyclablePackageContextList)) return removeProductionRecyclablePackageContext(reqBean); + return dispatchFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT, JSONObject.toJSONString(recyclablePackageContextList)); + + } + + //删除进料可回用包装 + @Override + public Boolean removeProductionRecyclablePackageContext(StationRequestBean reqBean) { + removeFsmBusiData(reqBean.getOrganizeCode(), getContextKey(reqBean), MesPcnExtConstWords.PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT); + return true; + } + } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionRecyclablePackageContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionRecyclablePackageContext.java index 7670d01..fcbeec3 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionRecyclablePackageContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionRecyclablePackageContext.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.pojo.context; +import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding; import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail; import io.swagger.annotations.ApiParam; import lombok.Data; @@ -42,17 +43,16 @@ public class MesProductionRecyclablePackageContext implements Serializable { } - public MesProductionRecyclablePackageContext(String organizeCode, String packageSn, String packageTypeCode) { - this.organizeCode = organizeCode; - this.packageSn = packageSn; - this.packageTypeCode = packageTypeCode; - } - - - public MesProductionRecyclablePackageContext copy(MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail) { + public MesProductionRecyclablePackageContext(MesRecyclablePackageBinding recyclablePackageBinding,MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail) { + this.organizeCode = recyclablePackageBinding.getOrganizeCode(); + this.packageSn = recyclablePackageBinding.getPackageSn(); this.partName = mesRecyclablePackageBindingDetail.getPartName(); this.partNo = mesRecyclablePackageBindingDetail.getPartNo(); this.productSn = mesRecyclablePackageBindingDetail.getProductSn(); + } + + public MesProductionRecyclablePackageContext setId(long id){ + this.id = id; return this; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index f7aac35..7b520fb 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -255,6 +255,8 @@ public class MesPcnExtConstWords { public static final String ENDLESS_LOOP_READ_TIMES = "ENDLESS_LOOP_READ_TIMES"; // 死循环读取默认默认次数 public static final String ENDLESS_LOOP_READ_TIMES_DEFAULT = "10"; + // 流程包含解绑工步 + public static final String CONTEXT_UNBINDING_STEP = "CONTEXT_UNBINDING_STEP"; // 工位/工步 参数按钮事件 public static final String FUNCTION_CMD = "FUNCTION_CMD"; @@ -412,6 +414,9 @@ public class MesPcnExtConstWords { public static final String PRODUCTION_PS_OUT_CONTEXT = "PRODUCTION_PS_OUT_CONTEXT"; // 上下文: 料桶原材料数据 public static final String RAW_PART_CHARGING_DATA_CONTEXT = "RAW_PART_CHARGING_DATA_CONTEXT"; + // 上下文: 可回用包装数据信息 + public static final String PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT = "PRODUCTION_RECYCLABLE_PACKAGE_CONTEXT"; + //OPC_API_PARAM @@ -454,4 +459,7 @@ public class MesPcnExtConstWords { // 裁片成品列表弹框打印 public static final String FUNCITON_CUT_ORDER_DIALOG_PRINT = "FUNCTION_CUT_ORDER_DIALOG_PRINT"; + + //工步解绑 + public static final String STEP_UNBINDING = "工步解绑"; } From b387f9c11e06c6befab0bf8bf769e558e53e8440 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 18 Sep 2024 14:18:54 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B8=B8=E9=87=8F3?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 49ee6d5..630c248 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -299,6 +299,8 @@ public class MesPcnExtConstWords { public static final Integer ZERO = 0; // 1 public static final Integer ONE = 1; + // 3 + public static final Integer THREE = 3; // 中括号 public static final String SQUARE_BRACKETS = "[]"; // & From 226ee0be3faf7daa110d6c2b797b07dcdd21e708 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 14:27:44 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E3=80=81=E5=B7=A5=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 3a6d2a7..aa94a4e 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -480,4 +480,8 @@ public class MesPcnExtConstWords { public static final String LOT_NO = "lotNo"; //包装数量 public static final String PACKAGE_QTY = "packageQty"; + //二维码 + public static final String QR_CODE = "qrCode"; + //条形码 + public static final String BAR_CODE = "barCode"; } From a6a399205dbcdb021f1d498914c94b83f61785c8 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 15:05:51 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E7=AE=B1=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../print/strategy/CutWorkOrderPackageSnPrintStrategy.java | 6 ++++++ .../serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java | 2 ++ .../serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java | 1 + .../i3plus/ext/mes/pcn/pojo/model/MesWorkOrderCutDetailModel.java | 3 +++ .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 ++ 5 files changed, 14 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java index 1d979fd..f74c12d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java @@ -49,6 +49,12 @@ public class CutWorkOrderPackageSnPrintStrategy implements IPrintTemplateStrateg resultMap.put(MesPcnExtConstWords.QTY, model.getQty()); resultMap.put(MesPcnExtConstWords.CUT_WORK_ORDER_NO, model.getCutWorkOrderNo()); resultMap.put(MesPcnExtConstWords.PACKAGE_SN, model.getPackageNo()); + // 二维码 + resultMap.put(MesPcnExtConstWords.BAR_CODE, model.getPackageNo()); + // 二维码 + resultMap.put(MesPcnExtConstWords.QR_CODE, new StringJoiner(MesPcnExtConstWords.VERTIVAL_BAR).add("YFWHU") + .add(model.getPackageNo()).add(model.getOrganizeCode()).add(model.getQty().toString()) + .add("EA").toString()); printDataMapList.add(resultMap); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java index 9bfd58e..93652c0 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java @@ -106,6 +106,8 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { resultMap = printModel.getPrintContextList(); } + List cutWorkOrderNoList = workOrderCutFgDataContext.stream().map(MesWorkOrderCutDetailModel::getCutWorkOrderNo).collect(Collectors.toList()); + // 裁片方案代码 // 根据裁片方案代码查询裁片方案成品配置 //返回打印标识 给前端 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index 3c271d8..c670417 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -151,6 +151,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { newWorkOrderCutDetailModel.setPrinter(mesPartContext.getPrinter()); newWorkOrderCutDetailModel.setCustPartNo(mesPartContext == null ? "" : mesPartContext.getCustPartNo()); newWorkOrderCutDetailModel.setLabelTemplate(mesPartContext.getLabelTemplate()); + newWorkOrderCutDetailModel.setOrganizeCode(mesPartContext.getOrganizeCode()); workOrderCutPackages.add(cutPackage); newWorkOrderCutFgDataContextList.add(newWorkOrderCutDetailModel); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesWorkOrderCutDetailModel.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesWorkOrderCutDetailModel.java index 1e0d52c..af5cf0b 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesWorkOrderCutDetailModel.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/model/MesWorkOrderCutDetailModel.java @@ -15,6 +15,9 @@ import lombok.Data; @Api("裁片工单明细MODEL") public class MesWorkOrderCutDetailModel { + @ApiParam("工厂代码") + private String organizeCode; + @ApiParam("裁片工单号") private String cutWorkOrderNo; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index aa94a4e..0c3ed92 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -484,4 +484,6 @@ public class MesPcnExtConstWords { public static final String QR_CODE = "qrCode"; //条形码 public static final String BAR_CODE = "barCode"; + //竖杠 + public static final String VERTIVAL_BAR = "|"; } From 6e90772d0fb3e2b42a56f679d7c59ad4358ce7d5 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 15:07:01 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E7=AE=B1=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 630c248..3a84fd5 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -489,4 +489,11 @@ public class MesPcnExtConstWords { //工步解绑 public static final String STEP_UNBINDING = "工步解绑"; + + //二维码 + public static final String QR_CODE = "qrCode"; + //条形码 + public static final String BAR_CODE = "barCode"; + //竖杠 + public static final String VERTIVAL_BAR = "|"; } From 8a0ccc46f9e927f20288cf8bca3aff42f5de2430 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 15:44:14 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E7=AE=B1=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=89=93=E5=8D=B0=E5=B7=A5=E6=AD=A5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A3=81=E7=89=87=E5=B7=A5=E5=8D=95=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=B8=BA=E5=B7=B2=E6=89=93=E5=8D=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesWorkOrderCutPackagePrintStepService.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java index 93652c0..8a685e8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderCutService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; @@ -8,16 +9,22 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplateParam; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderCut; 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 cn.estsh.i3plus.pojo.mes.repository.MesLabelTemplateParamRepository; import cn.estsh.i3plus.pojo.mes.repository.MesLabelTemplateRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -49,6 +56,9 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { @Autowired private MesLabelTemplateParamRepository labelTemplateParamRao; + @Autowired + private MesWorkOrderCutRepository workOrderCutRepository; + @Override public StepResult execute(StationRequestBean reqBean) { @@ -107,6 +117,12 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { } List cutWorkOrderNoList = workOrderCutFgDataContext.stream().map(MesWorkOrderCutDetailModel::getCutWorkOrderNo).collect(Collectors.toList()); + // 修改工单为已打印 + workOrderCutRepository.updateByProperties( + new String[]{MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.CUT_WORK_ORDER_NO}, + new Object[]{CommonEnumUtil.VALID, CommonEnumUtil.IS_DEAL.NO.getValue(), reqBean.getOrganizeCode(), cutWorkOrderNoList.get(0)}, + new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS, MesPcnExtConstWords.WORK_ORDER_STATUS}, + new Object[]{reqBean.getUserInfo(), TimeTool.getNowTime(true), CommonEnumUtil.FALSE, MesExtEnumUtil.CUT_ORDER_STATUS.PRINTED.getValue()}); // 裁片方案代码 // 根据裁片方案代码查询裁片方案成品配置 From cab28f1ba8533dcd39801bd9aa36231bc054da56 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 16:20:28 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E7=AE=B1=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E6=89=93=E5=8D=B0=E5=8F=82=E6=95=B0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java | 3 ++- .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java index f74c12d..86f593a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java @@ -45,11 +45,12 @@ public class CutWorkOrderPackageSnPrintStrategy implements IPrintTemplateStrateg } resultMap.put(MesPcnExtConstWords.LOT_NO, lotNo); + resultMap.put(MesPcnExtConstWords.TIME, model.getCreateDatetime()); resultMap.put(MesPcnExtConstWords.PACKAGE_QTY, model.getPackageQty()); resultMap.put(MesPcnExtConstWords.QTY, model.getQty()); resultMap.put(MesPcnExtConstWords.CUT_WORK_ORDER_NO, model.getCutWorkOrderNo()); resultMap.put(MesPcnExtConstWords.PACKAGE_SN, model.getPackageNo()); - // 二维码 + // 一维码 resultMap.put(MesPcnExtConstWords.BAR_CODE, model.getPackageNo()); // 二维码 resultMap.put(MesPcnExtConstWords.QR_CODE, new StringJoiner(MesPcnExtConstWords.VERTIVAL_BAR).add("YFWHU") diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 3a84fd5..8ada139 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -496,4 +496,6 @@ public class MesPcnExtConstWords { public static final String BAR_CODE = "barCode"; //竖杠 public static final String VERTIVAL_BAR = "|"; + // 时间 + public static final String TIME = "time"; } From e798943bfe9e2de41dac02588d45499644806322 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 18 Sep 2024 16:39:23 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0=E5=B7=A5=E6=AD=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java index 8a685e8..7e113ea 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java @@ -74,7 +74,7 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { // //String labelTemplateCode = entry.getValue().getLabelTemplate(); - List> resultMap = null; + List> resultMap = new ArrayList<>(); Map> workOrderCutDetailModelMapByPartNo = workOrderCutFgDataContext.stream().collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getPrinter()).add(o.getLabelTemplate()).toString())); @@ -113,7 +113,7 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { // GenSerialNoModel model , MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep MesProduceSnPrintModel printModel = strategyService.execute(null, mesProduceSnPrintModel, null, stepResult, reqBean, true); - resultMap = printModel.getPrintContextList(); + resultMap.addAll(printModel.getPrintContextList()); } List cutWorkOrderNoList = workOrderCutFgDataContext.stream().map(MesWorkOrderCutDetailModel::getCutWorkOrderNo).collect(Collectors.toList()); From f4ebfa030e9a223fc8dda6b6922031453a61fa60 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 18 Sep 2024 20:42:40 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E5=8C=85=E8=A3=85=E8=A7=A3=E7=BB=91?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/MesProcessMethodStepService.java | 66 ++++++++++++++++++++++ .../step/MesRecyclablePackageReadStepService.java | 10 +--- 2 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodStepService.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodStepService.java new file mode 100644 index 0000000..31ed0f8 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProcessMethodStepService.java @@ -0,0 +1,66 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesStationService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; +import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.IStepService; +import cn.estsh.i3plus.pojo.mes.bean.MesProdRouteOptParam; +import cn.estsh.i3plus.pojo.mes.bean.MesStation; +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 cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.SpringContextsUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +/** + * @Description : 回用包装加工模式 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/9/12 11:20 + * @Modify: + **/ +@Slf4j +@Service("mesProcessMethodStepService") +public class MesProcessMethodStepService extends BaseStepService { + + @Autowired + private IMesStationService mesStationService; + + @Autowired + private IMesProductionProcessContextStepService productionProcessContextStepService; + + @Override + public StepResult execute(StationRequestBean reqBean) { + StationResultBean resultBean = new StationResultBean(); + + StepResult stepResult = StepResult.getSuccessComplete(); + + //获取工步参数 + Optional> stepParamMap = getStepParams(reqBean); + + //获取上下文信息 + MesProductionProcessContext productionProcessContext = productionProcessContextStepService.dispatchCurCellEquipment(reqBean, stepParamMap); + + //当前工位使用的设备 + MesCellEquipContext cellEquipContext = productionProcessContext.getCurCellEquip(); + + //根据设备代码获取点位信息 + MesStation station = mesStationService.getMesStationByEquipmentCode(reqBean.getOrganizeCode(), cellEquipContext.getEquipmentCode()); + + if (Objects.isNull(station) || Objects.isNull(station.getProcessMethod())){ + return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]站点信息未维护", cellEquipContext.getEquipmentCode())); + } + + return ((IStepService) SpringContextsUtil.getBean(MesExtEnumUtil.STATION_PROCESS_METHOD.valueOfStrategyClass(station.getProcessMethod()))).executeInState(reqBean); + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java index 9ecd366..d8c6ba4 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesRecyclablePackageReadStepService.java @@ -61,9 +61,6 @@ public class MesRecyclablePackageReadStepService extends BaseStepService { @Autowired private IMesEquipVariableCfgRuleMatchDispatchService equipVariableCfgRuleMatchService; - @Autowired - private IMesStationService mesStationService; - @Override public void title(StationRequestBean reqBean) { this.sendMessage(reqBean, new StationResultBean().resultObj(MesPcnExtConstWords.STEP_DISABLE_SCAN), String.format("工步: %s", reqBean.getStepName()), MesPcnEnumUtil.STATION_BUSI_TYPE.STEP_TITLE, MesPcnEnumUtil.STATION_DATA_TYPE.TITLE); @@ -155,12 +152,7 @@ public class MesRecyclablePackageReadStepService extends BaseStepService { //根据设备ID,设备数据变量ID集合 修改设备ID分表采集数据的状态 equipmentLogExtService.updateEquipmentLogList(reqBean.getOrganizeCode(), cellEquipContext.getEquipId(), equipLogDispatchContext.getResetEquipVariableIdList()); - //根据设备代码获取点位信息 - MesStation station = mesStationService.getMesStationByEquipmentCode(reqBean.getOrganizeCode(),cellEquipContext.getEquipmentCode()); - if (Objects.isNull(station) || Objects.isNull(station.getProcessMethod())) return stepNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult, String.format("设备[%s]站点信息未维护", cellEquipContext.getEquipmentCode())); - - return ((IStepService) SpringContextsUtil.getBean(MesExtEnumUtil.STATION_PROCESS_METHOD.valueOfStrategyClass(station.getProcessMethod()))).executeInState(reqBean); - + return stepResult; } //匹配读取的可回用包装条码的有效性 From 312a57c4be11b6fd641f1f48499276e9d0ba09bf Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 19 Sep 2024 09:05:49 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../print/strategy/CutWorkOrderPackageSnPrintStrategy.java | 2 +- .../serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java | 4 ++-- .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java index 86f593a..e5881f1 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java @@ -71,7 +71,7 @@ public class CutWorkOrderPackageSnPrintStrategy implements IPrintTemplateStrateg resultMap.put(MesPcnExtConstWords.LABEL_TEMPLATE, printModel.getMesLabelTemplate()); resultMap.put(MesPcnExtConstWords.TEMPLATE_DATA, printTemplateDateList); resultMap.put(MesPcnExtConstWords.TEMPLATE_CODE, printModel.getMesLabelTemplate().getTemplateCode()); - resultMap.put(MesPcnExtConstWords.PRINTERE, printModel.getPrinter()); + resultMap.put(MesPcnExtConstWords.PRINTER, printModel.getPrinter()); resultMapList.add(resultMap); return resultMapList; } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java index 7e113ea..379f8c3 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackagePrintStepService.java @@ -30,6 +30,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -100,9 +101,8 @@ public class MesWorkOrderCutPackagePrintStepService extends BaseStepService { //根据反射获取策略类--封装打印数据 String methodCode = labelTemplate.getMethodCode(); //模板信息丢失抛出异常 - if (methodCode == null) { + if (StringUtils.isEmpty(methodCode)) stepExpSendMsgAndThrowEx(reqBean, resultBean, String.format("零件号[%s]的模板代码[%s]的反射类丢失,请配置!", partNoList, labelTemplate.getTemplateCode())); - } MesProduceSnPrintModel mesProduceSnPrintModel = new MesProduceSnPrintModel(); mesProduceSnPrintModel.setMesLabelTemplate(labelTemplate); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 8ada139..7456d51 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -471,13 +471,12 @@ public class MesPcnExtConstWords { // 模板代码 public static final String TEMPLATE_CODE = "templateCode"; - //打印模板 public static final String LABEL_TEMPLATE = "labelTemplate"; //打印模板数据 public static final String TEMPLATE_DATA = "templateData"; //打印机 - public static final String PRINTERE = "printer"; + public static final String PRINTER = "printer"; //客户零件号 public static final String CUST_PART_NO = "custPartNo"; From e783d75ae23a95859dedbece9f0260dbf2423aa4 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 19 Sep 2024 14:48:51 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesCutRawErrorProofingService.java | 16 ++++++++++++---- .../step/MesWorkOrderCutPackageSnSaveStepService.java | 7 +++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java index 021556f..a68e0c2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java @@ -15,10 +15,7 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; -import cn.estsh.i3plus.pojo.mes.repository.MesCutModifyRawLengthRecordRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesMaterialSnRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutMaterialRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderCutRepository; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +52,9 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer @Autowired private MesCutModifyRawLengthRecordRepository cutModifyRawLengthRecordRepository; + @Autowired + private MesCutSchemeRepository cutSchemeRepository; + @Override public MesCutRawErrorProofingModel doScanSn(MesCutRawErrorProofingModel model) { @@ -67,6 +67,14 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer if (workOrderCutDb == null) MesPcnException.throwMesBusiException("裁片工单【%s】不存在", model.getSn()); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workOrderCutDb.getCutCode(), MesPcnExtConstWords.CUT_CODE, packBean); + MesCutScheme cutScheme = cutSchemeRepository.getByProperty(packBean); + + if (cutScheme == null) MesPcnException.throwMesBusiException("裁片工单【%s】所属裁片方案无效", model.getSn()); + + if (workOrderCutDb.getWorkOrderStatus() == MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue() && cutScheme.getIsCheckMaterial() == CommonEnumUtil.FALSE) MesPcnException.throwMesBusiException("裁片工单【%s】无需校验原材料", model.getSn()); + if (workOrderCutDb.getWorkOrderStatus() != MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getValue()) MesPcnException.throwMesBusiException("裁片工单【%s】状态不为【%s】", model.getSn(), MesExtEnumUtil.CUT_ORDER_STATUS.RELEASED.getDescription()); result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index c670417..4cdd78f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepSer import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesWorkOrderCutDetailModel; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.mes.pcn.actor.shipping.dispatch.IFsmRouteDataService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.serviceimpl.fsm.BaseStepService; @@ -27,6 +28,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -138,11 +140,12 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { cutPackage.setOrganizeCode(reqBean.getOrganizeCode()); BeanUtils.copyProperties(workOrderCutDetailModel, cutPackage); cutPackage.setQty(qty); - cutPackage.setLotNo(nowTime); + cutPackage.setLotNo(nowTime.substring(0,10)); cutPackage.setSn(doGenerateSerialNo(reqBean, resultBean, mesPartContext.getPackageSnRule(), mesPartContext)); MesWorkOrderCutDetailModel newWorkOrderCutDetailModel = new MesWorkOrderCutDetailModel(); BeanUtils.copyProperties(workOrderCutDetailModel, newWorkOrderCutDetailModel); + newWorkOrderCutDetailModel.setPackageNo(cutPackage.getSn()); newWorkOrderCutDetailModel.setQty(qty); newWorkOrderCutDetailModel.setCreateDatetime(cutPackage.getCreateDatetime()); newWorkOrderCutDetailModel.setLotNo(cutPackage.getLotNo()); @@ -166,7 +169,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { private String doGenerateSerialNo(StationRequestBean reqBean, StationResultBean resultBean, String ruleCode, MesPart part) { try { return syncFuncService.syncSerialNo( - new GenSerialNoModel(ruleCode).prodLocation(reqBean.getWorkCenterCode()).partNo(part.getPartNo()).putDataMap(MesPart.class.getSimpleName(), part).organizeCode(reqBean.getOrganizeCode()), + new GenSerialNoModel(ruleCode).prodLocation(reqBean.getWorkCenterCode()).partNo(part.getPartNo()).putDataMap(MesPart.class.getSimpleName(), part).year(TimeTool.pareDateToString(MesPcnExtConstWords.DATE_FORMAT_YY, new Date())).organizeCode(reqBean.getOrganizeCode()), reqBean.getUserInfo(), reqBean.getOrganizeCode(), 1).getResultList().get(0).toString(); } catch (ImppBusiException e) { stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), e.getErrorDetail()); From ab9f3dde098648d318977cf8a5ff77cb854fa9f0 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 19 Sep 2024 15:18:42 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index 4cdd78f..c033066 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -145,6 +145,7 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { MesWorkOrderCutDetailModel newWorkOrderCutDetailModel = new MesWorkOrderCutDetailModel(); BeanUtils.copyProperties(workOrderCutDetailModel, newWorkOrderCutDetailModel); + newWorkOrderCutDetailModel.setCutWorkOrderNo(cutPackage.getCutWorkOrderNo()); newWorkOrderCutDetailModel.setPackageNo(cutPackage.getSn()); newWorkOrderCutDetailModel.setQty(qty); newWorkOrderCutDetailModel.setCreateDatetime(cutPackage.getCreateDatetime()); From e9d2615935885d8fda00b29f6f7bafdd003cf9e6 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 19 Sep 2024 15:44:22 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesCutRawErrorProofingService.java | 8 ++++++-- .../serviceimpl/step/MesWorkOrderCutCheckStepService.java | 1 + .../serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java index a68e0c2..898451a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesCutRawErrorProofingService.java @@ -103,7 +103,7 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer // 原材料长度 String lengthStr = valueArray[4]; - Double length; + Double length = 0.0; if (!workOrderCutMaterialMap.containsKey(partNo)) MesPcnException.throwMesBusiException("扫描条码【%s】零件号【%s】不在裁片方案原材料中", model.getSn(), partNo); @@ -119,7 +119,11 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer length = materialSnDb.getSurplusLength(); ConvertBean.serviceModelUpdate(materialSnDb, model.getUserName()); } else { - length = Double.parseDouble(lengthStr); + try { + length = Double.parseDouble(lengthStr); + } catch (NumberFormatException e) { + MesPcnException.throwMesBusiException("条码【%s】长度【%s】无效", lengthStr); + } materialSnDb = new MesMaterialSn(); ConvertBean.serviceModelInitialize(materialSnDb, model.getUserName()); materialSnDb.setOrganizeCode(model.getOrganizeCode()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java index 9147299..1aa0b8a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutCheckStepService.java @@ -291,6 +291,7 @@ public class MesWorkOrderCutCheckStepService extends BaseStepService { MesWorkOrderCutDetailModel workOrderCutDetailModel = new MesWorkOrderCutDetailModel(); BeanUtils.copyProperties(mesCutSchemeFg, workOrderCutDetailModel); + workOrderCutDetailModel.setCutWorkOrderNo(cutWorkOrderNo); MesCustomerPart customerPart = customerPartService.getMesCustomerPartByPartNo(mesCutSchemeFg.getPartNo(), mesPackingDefine.getCustCode(), reqBean.getOrganizeCode()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java index c033066..a30c029 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCutPackageSnSaveStepService.java @@ -25,12 +25,14 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Description : 保存裁片工单包装条码工步 @@ -83,6 +85,11 @@ public class MesWorkOrderCutPackageSnSaveStepService extends BaseStepService { // 从上下文中取出成品列表 List workOrderCutFgDataContextList = productionDispatchContextStepService.getMesWorkOrderCutFgDataContext(reqBean); + //搜集裁片工单号 + //List filterList = equipVariableCollectContextList.stream().filter(o -> (null != o)).map(MesEquipVariableCollectContext::getEquipVariableValue).collect(Collectors.toList()); + //List workOrderCutNoList = filterList.stream().filter(o -> (!StringUtils.isEmpty(o) && !o.equals(productionProcessContext.getFinishCode()))).distinct().collect(Collectors.toList()); + //String cutWorkOrderNo = workOrderCutNoList.stream().findFirst().get(); + if (CollectionUtils.isEmpty(workOrderCutFgDataContextList)) stepExpSendMsgAndThrowEx(reqBean, resultBean.writeDbLog(), "缺失裁片工单箱条码配置信息!"); From 8f3dd7bc9b0f71e87bf78146d68d994a3423b65f Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 19 Sep 2024 16:08:49 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E6=8E=92=E5=BA=8F=20=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=89=8D=E9=81=93=E6=89=80=E6=9C=89=E8=A3=85=E9=85=8D=E4=BB=B6?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/api/busi/IMesAssemblyExtService.java | 7 +- .../pcn/api/busi/IMesProdRuleCfgExtService.java | 3 + .../serviceimpl/busi/MesAssemblyExtService.java | 59 ++++++++++++++--- .../serviceimpl/busi/MesProdRuleCfgExtService.java | 6 ++ .../MesAssemblyShowSortPreCraftStepService.java | 57 +++++++++++++++++ .../step/MesAssemblyShowSortStepService.java | 74 ++++++++++++---------- .../MesProdCraftRouteCheckNosortStepService.java | 8 --- .../MesProdCraftRouteCheckSortStepService.java | 8 --- .../step/MesProdCraftRouteCheckStepService.java | 4 +- .../MesProduceSeqCheckCustOrderNoStepService.java | 10 +-- .../step/MesProduceSeqCheckNosortStepService.java | 10 +-- .../step/MesProduceSeqCheckSortStepService.java | 10 +-- .../step/MesProduceSeqCheckStepService.java | 4 +- .../step/MesWorkOrderCheckNosortStepService.java | 8 --- .../step/MesWorkOrderCheckSortStepService.java | 8 --- .../step/MesWorkOrderCheckStepService.java | 4 +- .../pcn/pojo/context/MesAssemblyShowContext.java | 6 ++ .../mes/pcn/pojo/context/MesProdRuleContext.java | 5 ++ .../pojo/context/MesProductionAssemblyContext.java | 5 +- .../MesProductionAssemblyNosortContext.java | 5 +- .../context/MesProductionAssemblySortContext.java | 46 +++++++++++--- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 6 ++ 22 files changed, 237 insertions(+), 116 deletions(-) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java index 3058084..efb06ea 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesAssemblyExtService.java @@ -16,11 +16,14 @@ public interface IMesAssemblyExtService { @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录") List getProductionAssemblySortContextList(MesProdRuleContext prodRuleContext); + @ApiOperation(value = "【排序线】获取生产工单装配件绑定记录 [前道所有装配件]") + List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext); + @ApiOperation(value = "【排序线】获取生产工单装配件清单") List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext); - @ApiOperation(value = "获取装配件绑定记录") - List getProductionAssemblyList(String organizeCode, Integer dataSource, List sourceIdList); + @ApiOperation(value = "获取装配件绑定记录【排序】") + List getProductionAssemblySortList(String organizeCode, String productSn); @ApiOperation(value = "获取装配件绑定记录") List getProductionAssemblyList(String organizeCode, String assemblySn); diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java index c2911c4..9f242a4 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesProdRuleCfgExtService.java @@ -23,6 +23,9 @@ public interface IMesProdRuleCfgExtService { @ApiOperation(value = "【排序线】获取产品加工规则(条码对应的装配件绑定记录,目前条码等同工单)") MesProdRuleContext getProdRuleSortContext(MesProdRuleContext prodRuleContext); + @ApiOperation(value = "【排序线】获取产品加工规则 [前道所有装配件]") + MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext); + @ApiOperation(value = "【非排序线】获取产品加工规则 【根据PID获取】") MesProdRuleNosortCfg getProdRuleNosortCfg(String organizeCode, Long id); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java index d90e470..61536ea 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesAssemblyExtService.java @@ -11,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.repository.*; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,11 +55,11 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; //【排序线】获取生产工单装配件清单 - List workOrderAssemblyList = getWorkOrderAssemblyList(prodRuleContext); + List workOrderAssemblyList = filterWorkOrderAssemblyList(getWorkOrderAssemblyList(prodRuleContext), prodRuleContext.getEquipmentCode()); if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; - //获取排序FILE文件URL + //获取排序FILE文件URL 【显示前道所有工序装配件工步不需要获取文件】 Map fileMap = getFileMap(prodRuleContext.getOrganizeCode(), filterSortFileIdList(workOrderAssemblyList)); List productionAssemblySortContextList = new ArrayList<>(); @@ -68,6 +69,40 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { return productionAssemblySortContextList; } + //【排序线】获取生产工单装配件绑定记录 [前道所有装配件] + @Override + public List getProductionAssemblySortPreCraftContextList(MesProdRuleContext prodRuleContext) { + + if (null == prodRuleContext) return null; + + if (StringUtils.isEmpty(prodRuleContext.getOrganizeCode()) || StringUtils.isEmpty(prodRuleContext.getWorkCenterCode()) || + StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) || StringUtils.isEmpty(prodRuleContext.getProcessCode()) || StringUtils.isEmpty(prodRuleContext.getProductSn())) return null; + + //【排序线】获取生产工单装配件清单 + List workOrderAssemblyList = filterWorkOrderAssemblyList(getWorkOrderAssemblyList(prodRuleContext), prodRuleContext.getEquipmentCode()); + + // 显示前道所有工序装配件工步: 不携带工位 + workOrderAssemblyList = !StringUtils.isEmpty(prodRuleContext.getWorkCellCode()) ? workOrderAssemblyList : + workOrderAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0)).collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(workOrderAssemblyList)) return null; + + //获取装配件绑定记录 + Map> productionAssemblyMap = groupProductionAssembly(getProductionAssemblyList(prodRuleContext.getOrganizeCode(), prodRuleContext.getProductSn())); + + List productionAssemblySortContextList = new ArrayList<>(); + + workOrderAssemblyList.forEach(o -> productionAssemblySortContextList.add(new MesProductionAssemblySortContext().copy(o, getProductionAssembly(productionAssemblyMap, o.getId())))); + + return productionAssemblySortContextList; + } + + //搜集匹配当前设备的装配件信息 + private List filterWorkOrderAssemblyList(List workOrderAssemblyList, String equipmentCode) { + return CollectionUtils.isEmpty(workOrderAssemblyList) ? null : + workOrderAssemblyList.stream().filter(o -> (null != o && o.getEquipmentCode().equals(equipmentCode))).collect(Collectors.toList()); + } + //【排序线】获取生产工单装配件清单 @Override public List getWorkOrderAssemblyList(MesProdRuleContext prodRuleContext) { @@ -87,16 +122,14 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { } - //获取装配件绑定记录 + //获取装配件绑定记录【排序】 @Override - public List getProductionAssemblyList(String organizeCode, Integer dataSource, List sourceIdList) { + public List getProductionAssemblySortList(String organizeCode, String productSn) { - if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(dataSource) || CollectionUtils.isEmpty(sourceIdList)) return null; + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(productSn)) return null; DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getNumEqualPack(dataSource, MesPcnExtConstWords.DATD_SOURCE, packBean); - if (sourceIdList.size() == 1) DdlPreparedPack.getNumEqualPack(sourceIdList.get(0), MesPcnExtConstWords.SOURCE_ID, packBean); - else DdlPreparedPack.getInPackList(sourceIdList, MesPcnExtConstWords.SOURCE_ID, packBean); + DdlPreparedPack.getStringEqualPack(productSn, MesPcnExtConstWords.PRODUCT_SN, packBean); return productionAssemblyRepository.findByHqlWhere(packBean); @@ -237,4 +270,14 @@ public class MesAssemblyExtService implements IMesAssemblyExtService { return CollectionUtils.isEmpty(fileIdList) ? null : fileDbList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getFileUrl()))).collect(Collectors.toMap(MesFile::getId, MesFile::getFileUrl)); } + //根据生产工单装配件清单ID分组 + private Map> groupProductionAssembly(List productionAssemblyList) { + return CollectionUtils.isEmpty(productionAssemblyList) ? null : productionAssemblyList.stream().filter(o -> (null != o && o.getAssemblyStatus().compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) >= 0)).collect(Collectors.groupingBy(MesProductionAssembly::getSourceId)); + } + + //根据装配件清单ID获取装配件绑定记录 + private MesProductionAssembly getProductionAssembly(Map> productionAssemblyMap, Long id) { + return CollectionUtils.isEmpty(productionAssemblyMap) ? null : productionAssemblyMap.get(id).get(0); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java index 7eed6bb..c14ab79 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProdRuleCfgExtService.java @@ -113,5 +113,11 @@ public class MesProdRuleCfgExtService implements IMesProdRuleCfgExtService { return prodRuleContext.assemblyDataJson(assemblyExtService.getProductionAssemblySortContextList(prodRuleContext)); } + //【排序线】获取产品加工规则 [前道所有装配件] + @Override + public MesProdRuleContext getProdRuleSortPreCraftContext(MesProdRuleContext prodRuleContext) { + return prodRuleContext.assemblyDataJson(assemblyExtService.getProductionAssemblySortPreCraftContextList(prodRuleContext)); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java new file mode 100644 index 0000000..f05a588 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortPreCraftStepService.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; + +import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; +import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.util.PojoAttrUtil; +import cn.estsh.i3plus.pojo.mes.model.AttrBean; +import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; +import cn.estsh.i3plus.pojo.mes.model.StepResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description : 显示前道所有工序装配件工步【排序】 + * @Author : wangjie + **/ +@Slf4j +@Service("mesAssemblyShowSortPreCraftStepService") +public class MesAssemblyShowSortPreCraftStepService extends MesAssemblyShowSortStepService { + + @Override + public StepResult execute(StationRequestBean reqBean) { + return super.execute(reqBean); + } + + public MesProdRuleContext getProdRuleSortContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, MesProductionPsInContext productionPsInContext) { + //不携带工位工序条件 + MesProdRuleContext prodRuleContext = new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode()) + .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()); + return prodRuleCfgExtService.getProdRuleSortPreCraftContext(prodRuleContext); + } + + //装配件清单列表标题 + public List dataAttrList(List prodRuleContextList) { + List attrBeanList = new ArrayList<>(); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.INDEX, "序号"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.WORK_CELL_CODE, "工位代码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.MATCH_TYPE_NAME, "装配方式"); + if (prodRuleContextList.size() > 1) PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.WORK_ORDER_NO, "生产工单编号"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PART_NO, "零件编码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NO, "原料编码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NAME, "原料名称"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_SN, "原料条码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_STATUS_NAME, "装配状态"); + return attrBeanList; + } + + //每个表格重新排序 + public List sortAssemblyShowContextList(List assemblyShowContextList) { + return assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getProcessSeq).thenComparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList()); + } + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java index b182c4f..4685451 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowSortStepService.java @@ -38,13 +38,13 @@ import java.util.stream.Collectors; public class MesAssemblyShowSortStepService extends BaseStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; + public IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; + public IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired - private IMesProdRuleCfgExtService prodRuleCfgExtService; + public IMesProdRuleCfgExtService prodRuleCfgExtService; @Override public StepResult execute(StationRequestBean reqBean) { @@ -82,7 +82,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService { Integer initSize = prodRuleContextList.size(); //封装排序加工规则 - doHandleProdRuleData(reqBean, resultBean, productionProcessContext, prodRuleContextList, productionPartContextList, productionPsInContextList); + doHandleProdRuleData(reqBean, resultBean, productionProcessContext, cellEquipContext, prodRuleContextList, productionPartContextList, productionPsInContextList); if (prodRuleContextList.size() != initSize) { //保存上下文产品加工规则信息集合 @@ -94,15 +94,41 @@ public class MesAssemblyShowSortStepService extends BaseStepService { } //显示装配件信息 - if (!showProductionAssembly(reqBean, resultBean, workCenter, cellEquipContext, prodRuleContextList)) + if (!showProductionAssembly(reqBean, resultBean, workCenter, prodRuleContextList)) return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "当前未查询到相关的装配件清单"); return stepSuccessCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(MesPcnEnumUtil.WORK_CELL_SCAN_MONITOR_LOG_TYPE.PROCESS.getValue()), stepResult, "显示装配件扫描项成功!"); } + public MesProdRuleContext getProdRuleSortContext(StationRequestBean reqBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, MesProductionPsInContext productionPsInContext) { + MesProdRuleContext prodRuleContext = new MesProdRuleContext( + reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode()) + .equipmentCode(cellEquipContext.getEquipmentCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey(productionPsInContext.getForeignKey()); + return prodRuleCfgExtService.getProdRuleSortContext(prodRuleContext); + } + + //装配件清单列表标题 + public List dataAttrList(List prodRuleContextList) { + List attrBeanList = new ArrayList<>(); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.INDEX, "序号"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.MATCH_TYPE_NAME, "装配方式"); + if (prodRuleContextList.size() > 1) PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.WORK_ORDER_NO, "生产工单编号"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PART_NO, "零件编码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NO, "原料编码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NAME, "原料名称"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_SN, "原料条码"); + PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_STATUS_NAME, "装配状态"); + return attrBeanList; + } + + //每个表格重新排序 + public List sortAssemblyShowContextList(List assemblyShowContextList) { + return assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList()); + } + //查询排序线加工规则装配件数据信息 - private void doHandleProdRuleData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, + private void doHandleProdRuleData(StationRequestBean reqBean, StationResultBean resultBean, MesProductionProcessContext productionProcessContext, MesCellEquipContext cellEquipContext, List prodRuleContextList, List productionPartContextList, List productionPsInContextList) { //上下文中不存在进料主条码数据信息 @@ -119,15 +145,15 @@ public class MesAssemblyShowSortStepService extends BaseStepService { if (null == productionPsInContext || productionPsInContext.getIsFinishCode().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0 || !StringUtils.isEmpty(productionPsInContext.getForeignKey())) continue; //【排序线】获取产品加工规则(条码对应的装配件绑定记录,目前条码等同工单) - prodRuleContextList.add(prodRuleCfgExtService.getProdRuleSortContext( - new MesProdRuleContext(reqBean.getOrganizeCode(), reqBean.getWorkCenterCode(), reqBean.getWorkCellCode(), reqBean.getProcessCode(), productionProcessContext.getCraftCode()).workOrderNo(productionPsInContext.getWorkOrderNo()).productSn(productionPsInContext.getProductSn()).foreignKey( - productionPartContextList.stream().filter(o -> (null != o && o.getWorkOrderNo().equals(productionPsInContext.getWorkOrderNo()))).findFirst().get().foreignKey(productionPsInContext.foreignKey(foreignKey += 1).getForeignKey()).getForeignKey()))); + productionPartContextList.stream().filter(o -> (null != o && o.getWorkOrderNo().equals(productionPsInContext.getWorkOrderNo()))).findFirst().get().foreignKey(productionPsInContext.foreignKey(foreignKey += 1).getForeignKey()); + + prodRuleContextList.add(getProdRuleSortContext(reqBean, productionProcessContext, cellEquipContext, productionPsInContext)); } } - private Boolean showProductionAssembly(StationRequestBean reqBean, StationResultBean resultBean, MesWorkCenter workCenter, MesCellEquipContext cellEquipContext, List prodRuleContextList) { + private Boolean showProductionAssembly(StationRequestBean reqBean, StationResultBean resultBean, MesWorkCenter workCenter, List prodRuleContextList) { List attrBeanList = null; @@ -136,7 +162,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService { if (null == prodRuleContext || StringUtils.isEmpty(prodRuleContext.getAssemblyDataJson())) continue; //封装匹配当前设备的装配件信息 - List assemblyShowContextList = getAssemblyShowContextList(cellEquipContext, prodRuleContext.getAssemblyDataContext(workCenter)); + List assemblyShowContextList = getAssemblyShowContextList(prodRuleContext.getAssemblyDataContext(workCenter)); if (CollectionUtils.isEmpty(assemblyShowContextList)) continue; //装配件清单列表标题 @@ -157,8 +183,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService { } //封装匹配当前设备的装配件信息 - private List getAssemblyShowContextList(MesCellEquipContext cellEquipContext, List productionAssemblyContextList) { - productionAssemblyContextList = filterProductionAssemblyContextList(cellEquipContext, productionAssemblyContextList); + private List getAssemblyShowContextList(List productionAssemblyContextList) { if (CollectionUtils.isEmpty(productionAssemblyContextList)) return null; List assemblyShowContextList = new ArrayList<>(); for (MesProductionAssemblyContext item : productionAssemblyContextList) { @@ -166,7 +191,8 @@ public class MesAssemblyShowSortStepService extends BaseStepService { if (null == item || MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNoShow(item.getMatchType())) continue; assemblyShowContextList.add(assemblyShowContext(item)); } - assemblyShowContextList = assemblyShowContextList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesAssemblyShowContext::getRouteSeq)).collect(Collectors.toList()); + + assemblyShowContextList = sortAssemblyShowContextList(assemblyShowContextList); AtomicReference index = new AtomicReference<>(0); assemblyShowContextList.forEach(o -> o.index(index.updateAndGet(v -> v + 1))); @@ -174,11 +200,7 @@ public class MesAssemblyShowSortStepService extends BaseStepService { return assemblyShowContextList; } - //搜集匹配当前设备的装配件信息 - private List filterProductionAssemblyContextList(MesCellEquipContext cellEquipContext, List productionAssemblyContextList) { - return CollectionUtils.isEmpty(productionAssemblyContextList) ? null : - productionAssemblyContextList.stream().filter(o -> (null != o && o.getEquipmentCode().equals(cellEquipContext.getEquipmentCode()))).collect(Collectors.toList()); - } + //封装装配件信息 private MesAssemblyShowContext assemblyShowContext(MesProductionAssemblyContext o) { @@ -191,18 +213,4 @@ public class MesAssemblyShowSortStepService extends BaseStepService { return assemblyShowContext; } - //装配件清单列表标题 - private List dataAttrList(List prodRuleContextList) { - List attrBeanList = new ArrayList<>(); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.INDEX, "序号"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.MATCH_TYPE_NAME, "装配方式"); - if (prodRuleContextList.size() > 1) PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.WORK_ORDER_NO, "生产工单编号"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.PART_NO, "零件编码"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NO, "原料编码"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_PART_NAME, "原料名称"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_SN, "原料条码"); - PojoAttrUtil.loadPojoAttrs(attrBeanList, MesPcnExtConstWords.ASSEMBLY_STATUS_NAME, "装配状态"); - return attrBeanList; - } - } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java index 9179384..5436fed 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckNosortStepService.java @@ -1,8 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; @@ -34,12 +32,6 @@ import java.util.stream.Collectors; public class MesProdCraftRouteCheckNosortStepService extends MesProdCraftRouteCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesProductionRecordService productionRecordService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java index 0a03dc5..848ad0e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckSortStepService.java @@ -1,8 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsInContext; @@ -33,12 +31,6 @@ import java.util.stream.Collectors; public class MesProdCraftRouteCheckSortStepService extends MesProdCraftRouteCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesProductionRecordService productionRecordService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java index da7c778..c44ab7b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProdCraftRouteCheckStepService.java @@ -33,10 +33,10 @@ import java.util.Optional; public class MesProdCraftRouteCheckStepService extends BaseStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; + public IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; + public IMesProductionDispatchContextStepService productionDispatchContextStepService; @Autowired private IFsmRouteDataService fsmRouteDataService; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java index 86364b1..458bb9d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckCustOrderNoStepService.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -31,12 +33,6 @@ import java.util.stream.Collectors; public class MesProduceSeqCheckCustOrderNoStepService extends MesProduceSeqCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesWorkOrderExtService workOrderExtService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java index 45fb719..f9709c8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckNosortStepService.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -32,12 +34,6 @@ import java.util.stream.Collectors; public class MesProduceSeqCheckNosortStepService extends MesProduceSeqCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesWorkOrderExtService workOrderExtService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java index 1f1e88c..4321d84 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckSortStepService.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesAssemblyExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPartContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionProcessContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -34,12 +36,6 @@ import java.util.stream.Collectors; public class MesProduceSeqCheckSortStepService extends MesProduceSeqCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesWorkOrderExtService workOrderExtService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java index c5da524..58e8ca8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesProduceSeqCheckStepService.java @@ -29,10 +29,10 @@ import java.util.Optional; public class MesProduceSeqCheckStepService extends BaseStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; + public IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; + public IMesProductionDispatchContextStepService productionDispatchContextStepService; @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java index 8464513..e8a5936 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckNosortStepService.java @@ -1,7 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipVariableCollectContext; @@ -38,12 +36,6 @@ import java.util.stream.Collectors; public class MesWorkOrderCheckNosortStepService extends MesWorkOrderCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesWorkOrderExtService workOrderExtService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java index 98510b6..e9f039b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckSortStepService.java @@ -1,7 +1,5 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.step; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionDispatchContextStepService; -import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionProcessContextStepService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.pojo.context.*; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; @@ -37,12 +35,6 @@ import java.util.stream.Collectors; public class MesWorkOrderCheckSortStepService extends MesWorkOrderCheckStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; - - @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; - - @Autowired private IMesWorkOrderExtService workOrderExtService; @Autowired diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java index 5f7bc3e..962dade 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesWorkOrderCheckStepService.java @@ -29,10 +29,10 @@ import java.util.stream.Collectors; public class MesWorkOrderCheckStepService extends BaseStepService { @Autowired - private IMesProductionProcessContextStepService productionProcessContextStepService; + public IMesProductionProcessContextStepService productionProcessContextStepService; @Autowired - private IMesProductionDispatchContextStepService productionDispatchContextStepService; + public IMesProductionDispatchContextStepService productionDispatchContextStepService; @Override public StepResult execute(StationRequestBean reqBean) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java index 477efed..5db46b0 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesAssemblyShowContext.java @@ -49,6 +49,12 @@ public class MesAssemblyShowContext implements Serializable { @ApiParam("装配件条码确认方式") private String matchTypeName; + @ApiParam("工位代码") + public String workCellCode; + + @ApiParam(value = "工艺顺序号") + private Integer processSeq; + @ApiParam("序号") private Integer index; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java index 45d51e5..353cd7f 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProdRuleContext.java @@ -124,6 +124,11 @@ public class MesProdRuleContext implements Serializable { this.craftCode = craftCode; } + public MesProdRuleContext(String organizeCode, String workCenterCode) { + this.organizeCode = organizeCode; + this.workCenterCode = workCenterCode; + } + public MesProdRuleContext copy(MesProdRuleNosortCfg prodRuleNosortCfg) { BeanUtils.copyProperties(prodRuleNosortCfg, this); this.pid = prodRuleNosortCfg.getId(); diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java index f303f91..1e71cc4 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyContext.java @@ -35,11 +35,8 @@ public class MesProductionAssemblyContext implements Serializable { @ApiParam("装配零件状态") public Integer assemblyStatus; - @ApiParam(name = "任意装配件扫描错误判断工位isResetScan后是否重新扫描") - public Integer isResetScan = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); - @ApiParam("是否跳过") - public Integer isSkip; + public Integer isSkip = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); @ApiParam("装配件条码确认方式") public Integer matchType; diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java index 6f4edd5..4d5b264 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblyNosortContext.java @@ -31,6 +31,9 @@ public class MesProductionAssemblyNosortContext extends MesProductionAssemblyCon @ApiParam(value = "是否可复用条码是否写入上下文进行复用") private Integer isRepeat2Cache = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + @ApiParam(name = "任意装配件扫描错误判断工位isResetScan后是否重新扫描") + public Integer isResetScan = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + @ApiParam(value = "是否忽略回车") private Integer isIgnoreEntry; @@ -56,8 +59,6 @@ public class MesProductionAssemblyNosortContext extends MesProductionAssemblyCon this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue(); - this.isSkip = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - if (!MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNeedScan(this.matchType)) this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(); if (!StringUtils.isEmpty(assemblySn)) { diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java index 3bfee1c..6142caf 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/context/MesProductionAssemblySortContext.java @@ -103,20 +103,54 @@ public class MesProductionAssemblySortContext extends MesProductionAssemblyConte @ApiParam(value = "生产组代码") private String productGroupCode; + @ApiParam(value = "装配件记录表ID") + public Long id; + + @ApiParam(value = "装配件记录表创建时间") + public String createDatetime; + + @ApiParam(value = "装配件记录表创建人") + public String createUser; + public MesProductionAssemblySortContext() {} public MesProductionAssemblySortContext copy(MesWorkOrderAssembly workOrderAssembly) { - if (null != workOrderAssembly) BeanUtils.copyProperties(workOrderAssembly, this); + if (null != workOrderAssembly) { + BeanUtils.copyProperties(workOrderAssembly, this, MesPcnExtConstWords.BASE_BEAN_FIELDS); + this.sourceId = workOrderAssembly.getId(); + } if (StringUtils.isEmpty(this.routeSeq)) this.routeSeq = MesPcnExtConstWords.ZERO; + if (StringUtils.isEmpty(this.processSeq)) this.processSeq = MesPcnExtConstWords.ZERO; if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) == 0 && !MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNeedScan(this.matchType)) this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(); - if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) != 0) this.isResetScan = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + return this; + } + + public MesProductionAssemblySortContext copy(MesWorkOrderAssembly workOrderAssembly, MesProductionAssembly productionAssembly) { + + if (null != workOrderAssembly) { + BeanUtils.copyProperties(workOrderAssembly, this, MesPcnExtConstWords.BASE_BEAN_FIELDS); + this.sourceId = workOrderAssembly.getId(); + } - this.isSkip = this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_40.getValue()) != 0 ? CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() : CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + if (null != workOrderAssembly) { + this.id = productionAssembly.getId(); + this.createDatetime = productionAssembly.getCreateDatetime(); + this.createUser = productionAssembly.getCreateUser(); + } + + if (StringUtils.isEmpty(this.routeSeq)) this.routeSeq = MesPcnExtConstWords.ZERO; + if (StringUtils.isEmpty(this.processSeq)) this.processSeq = MesPcnExtConstWords.ZERO; + + if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue()) != 0 && !MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNeedScan(this.matchType)) + this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(); + + if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_40.getValue()) == 0) + this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue(); return this; } @@ -145,17 +179,13 @@ public class MesProductionAssemblySortContext extends MesProductionAssemblyConte public MesProductionAssemblySortContext copy(MesProductionAssembly productionAssembly) { - if (null != productionAssembly) BeanUtils.copyProperties(productionAssembly, this); + if (null != productionAssembly) BeanUtils.copyProperties(productionAssembly, this, MesPcnExtConstWords.BASE_BEAN_FIELDS); if (StringUtils.isEmpty(this.routeSeq)) this.routeSeq = MesPcnExtConstWords.ZERO; - if (StringUtils.isEmpty(this.isSkip)) this.isSkip = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) == 0 && !MesExtEnumUtil.ASSEMBLY_MATCH_TYPE.checkIsNeedScan(this.matchType)) this.assemblyStatus = MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_10.getValue(); - if (this.assemblyStatus.compareTo(MesExtEnumUtil.ASSEMBLY_STATUS.ASSEMBLY_STATUS_30.getValue()) != 0) this.isResetScan = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); - return this; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 7456d51..924900a 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -189,6 +189,12 @@ public class MesPcnExtConstWords { public static final String PACKAGE_TYPE_CODE = "packageTypeCode"; //零件生产组代码 public static final String PART_PROD_GROUP_CODE = "partProdGroupCode"; + //描述 + public static final String DESCRIPTION = "description"; + //描述 + public static final String REMARK = "remark"; + //BaseBean字段不包含工厂, 用于对象复制剔除属性BeanUtils.copyProperties(Object source, Object target, String... ignoreProperties) + public static final String[] BASE_BEAN_FIELDS = {ID, IS_DELETED, IS_VALID, CREATE_DATE_TIME, CREATE_USER, MODIFY_DATE_TIME, MODIFY_USER, DESCRIPTION, REMARK, SYSTEM_SYNC_DATE_TIME, SYSTEM_SYNC_STATUS}; // 客制化条码长度:通用 From 550fcee7aa9719d523d8f733b8e97ca06390fbd5 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 19 Sep 2024 16:20:12 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E8=A3=81=E7=89=87=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java index e5881f1..eb6b81a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CutWorkOrderPackageSnPrintStrategy.java @@ -54,7 +54,7 @@ public class CutWorkOrderPackageSnPrintStrategy implements IPrintTemplateStrateg resultMap.put(MesPcnExtConstWords.BAR_CODE, model.getPackageNo()); // 二维码 resultMap.put(MesPcnExtConstWords.QR_CODE, new StringJoiner(MesPcnExtConstWords.VERTIVAL_BAR).add("YFWHU") - .add(model.getPackageNo()).add(model.getOrganizeCode()).add(model.getQty().toString()) + .add(model.getPackageNo()).add(model.getOrganizeCode()).add(model.getPartNo()).add(String.valueOf(model.getQty().intValue())) .add("EA").toString()); printDataMapList.add(resultMap); }