From dc188542fed8c3c807f9ba667f2684c72c6d50f1 Mon Sep 17 00:00:00 2001 From: yxw Date: Thu, 21 Mar 2024 15:21:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E5=B7=A5=E5=8D=95=E8=B0=83WM?= =?UTF-8?q?S=E7=94=9F=E6=88=90=E5=B7=A5=E5=8D=95BOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/bu/BuWorkOrderExtService.java | 42 ++++++++++++++++ .../mes/icloud/sdk/IWmsWorkOrderBomCheckCloud.java | 6 +++ .../WmsWorkOrderBomCheckFallbackFactory.java | 7 +++ .../pojo/model/jx/SxGenerateWorkOrderBomModel.java | 57 ++++++++++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/SxGenerateWorkOrderBomModel.java diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java index 49d2248..1d30573 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java @@ -27,6 +27,7 @@ import cn.estsh.i3plus.ext.mes.pojo.model.GenerateWorkOrderDto; import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderPageVo; import cn.estsh.i3plus.ext.mes.pojo.model.WorkOrderQueryDto; import cn.estsh.i3plus.ext.mes.pojo.model.bu3.SxOutPutStatisticsModel; +import cn.estsh.i3plus.ext.mes.pojo.model.jx.SxGenerateWorkOrderBomModel; import cn.estsh.i3plus.ext.mes.pojo.repository.*; import cn.estsh.i3plus.ext.mes.pojo.util.ConvertBeanExt; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; @@ -217,7 +218,27 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { mesWorkOrderExt.setOrderNo(getOrderNo(userName,organizeCode)); mesWorkOrderExt.setWorkOrderSource(MesExtEnumUtil.WORK_ORDER_SOURCE.MANUALLY_GENERATE.getValue()); + if (workOrderDto.getWorkOrderType() == MesExtEnumUtil.WORK_ORDER_TYPE.STANDARD_ORDER.getValue()) { + SxGenerateWorkOrderBomModel sxGenerateWorkOrderBomModel = new SxGenerateWorkOrderBomModel(); + sxGenerateWorkOrderBomModel.setUserName(userName); + sxGenerateWorkOrderBomModel.setOrganizeCode(workOrderDto.getOrganizeCode()); + SxGenerateWorkOrderBomModel.WorkOrderModel workOrderModel = new SxGenerateWorkOrderBomModel.WorkOrderModel(mesWorkOrderExt.getOrderNo(), workOrderDto.getPartNo(), workOrderDto.getQty()); + sxGenerateWorkOrderBomModel.addWorkOrderModel(workOrderModel); + + // 调WMS生成工单BOM + BaseResultBean baseResultBean = wmsWorkOrderBomCheckCloud.doGenerateWorkOrderBom(sxGenerateWorkOrderBomModel); + + if (!baseResultBean.success) { + throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail(baseResultBean.getErrorMsg()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .build(); + } + } + + // 绑定条码 doBindSn(workOrderDto, addWorkOrder(mesWorkOrderExt), data); + } private void doBindSn(GenerateWorkOrderDto workOrderDto, MesWorkOrderExt mesWorkOrderExt, Object data) { @@ -939,6 +960,7 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { @Transactional(rollbackFor = Exception.class) public void importGenerate(List mesWorkOrderExtList) { + SxGenerateWorkOrderBomModel sxGenerateWorkOrderBomModel = new SxGenerateWorkOrderBomModel(); MesWorkCenter mesWorkCenter = null; @@ -1046,7 +1068,27 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { i++; + if (mesWorkOrderExt.getWorkOrderType() == MesExtEnumUtil.WORK_ORDER_TYPE.STANDARD_ORDER.getValue()) { + sxGenerateWorkOrderBomModel.setUserName(AuthUtil.getSessionUser().getUserName()); + sxGenerateWorkOrderBomModel.setOrganizeCode(organizeCode); + SxGenerateWorkOrderBomModel.WorkOrderModel workOrderModel = new SxGenerateWorkOrderBomModel.WorkOrderModel(mesWorkOrderExt.getOrderNo(), mesWorkOrderExt.getPartNo(), mesWorkOrderExt.getQty()); + sxGenerateWorkOrderBomModel.addWorkOrderModel(workOrderModel); + } + + } + + if (!CollectionUtils.isEmpty(sxGenerateWorkOrderBomModel.getWorkOrderModelList())) { + // 调WMS生成工单BOM + BaseResultBean baseResultBean = wmsWorkOrderBomCheckCloud.doGenerateWorkOrderBom(sxGenerateWorkOrderBomModel); + + if (!baseResultBean.success) { + throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail(baseResultBean.getErrorMsg()) + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .build(); + } } + } /** diff --git a/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdk/IWmsWorkOrderBomCheckCloud.java b/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdk/IWmsWorkOrderBomCheckCloud.java index 36d4842..7c5306b 100644 --- a/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdk/IWmsWorkOrderBomCheckCloud.java +++ b/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdk/IWmsWorkOrderBomCheckCloud.java @@ -1,11 +1,14 @@ package cn.estsh.i3plus.ext.mes.icloud.sdk; import cn.estsh.i3plus.ext.mes.icloud.sdkfallback.WmsWorkOrderBomCheckFallbackFactory; +import cn.estsh.i3plus.ext.mes.pojo.model.jx.SxGenerateWorkOrderBomModel; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name = "i3wms", @@ -16,4 +19,7 @@ public interface IWmsWorkOrderBomCheckCloud { @GetMapping(value = "/ext/base/get-wms-work-order-bom") BaseResultBean getWorkOrderBom(@RequestParam(MesExtConstWords.WORK_ORDER_NO) String workOrderNo, @RequestParam(MesExtConstWords.ORGANIZE_CODE) String organizeCode); + + @PostMapping(value = "/ext/base/generate-work-order-bom") + BaseResultBean doGenerateWorkOrderBom(@RequestBody SxGenerateWorkOrderBomModel model); } diff --git a/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdkfallback/WmsWorkOrderBomCheckFallbackFactory.java b/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdkfallback/WmsWorkOrderBomCheckFallbackFactory.java index aaf408d..6869a23 100644 --- a/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdkfallback/WmsWorkOrderBomCheckFallbackFactory.java +++ b/modules/i3plus-ext-mes-icloud/src/main/java/cn/estsh/i3plus/ext/mes/icloud/sdkfallback/WmsWorkOrderBomCheckFallbackFactory.java @@ -1,10 +1,12 @@ package cn.estsh.i3plus.ext.mes.icloud.sdkfallback; import cn.estsh.i3plus.ext.mes.icloud.sdk.IWmsWorkOrderBomCheckCloud; +import cn.estsh.i3plus.ext.mes.pojo.model.jx.SxGenerateWorkOrderBomModel; import cn.estsh.i3plus.pojo.base.bean.BaseFallBackBean; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import feign.hystrix.FallbackFactory; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestBody; @Component public class WmsWorkOrderBomCheckFallbackFactory extends BaseFallBackBean implements FallbackFactory { @@ -15,6 +17,11 @@ public class WmsWorkOrderBomCheckFallbackFactory extends BaseFallBackBean implem public BaseResultBean getWorkOrderBom(String workOrderBom, String organizeCode) { return makeBaseFallBack("微服调用出错", throwable); } + + @Override + public BaseResultBean doGenerateWorkOrderBom(@RequestBody SxGenerateWorkOrderBomModel model) { + return makeBaseFallBack("微服调用出错", throwable); + } }; } } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/SxGenerateWorkOrderBomModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/SxGenerateWorkOrderBomModel.java new file mode 100644 index 0000000..e839937 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/SxGenerateWorkOrderBomModel.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.jx; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 质检单主表信息model + * @author: jiaqi.hou + * @date: 2022/06/22 + */ +@Data +@Api("生成工单BOM model") +public class SxGenerateWorkOrderBomModel implements Serializable { + + private static final long serialVersionUID = 5505049563478175586L; + + @ApiParam(value = "工单信息") + private List workOrderModelList = new ArrayList<>(); + + @ApiParam(value = "工厂代码") + private String organizeCode; + + @ApiParam(value = "操作人") + private String userName; + + @Data + public static class WorkOrderModel{ + + @ApiParam("工单号") + public String workOrderNo; + + @ApiParam("物料编码") + public String partNo; + + @ApiParam("计划数量") + public Double qty; + + public WorkOrderModel(String workOrderNo, String partNo, Double qty) { + this.workOrderNo = workOrderNo; + this.partNo = partNo; + this.qty = qty; + } + + public WorkOrderModel() { + } + } + + public SxGenerateWorkOrderBomModel addWorkOrderModel(WorkOrderModel model) { + workOrderModelList.add(model); + return this; + } +}