From fe63a324d6cd68046ac1032fba61b885ae0f0ed3 Mon Sep 17 00:00:00 2001 From: xins Date: Tue, 21 May 2024 16:12:36 +0800 Subject: [PATCH] =?UTF-8?q?2.2.5=20MES=EF=BC=9A=201=E3=80=81=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E7=9A=84=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8E=9F=E6=9D=90=E6=96=99=E6=9D=A1=E7=A0=81?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=202=E3=80=81=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=9B=9B=E6=A5=BC=E6=88=90=E5=93=81=E5=88=B0=E4=BA=94=E6=A5=BC?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E5=8E=9F=E6=9D=90=E6=96=99=E7=9A=84=E9=9C=80?= =?UTF-8?q?=E6=B1=82=E5=A2=9E=E5=8A=A0=E5=AF=B9=E5=86=85=E5=8E=9F=E6=9D=90?= =?UTF-8?q?=E6=96=99=E6=9D=A1=E7=A0=81=E7=9A=84=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hw/mes/api/domain/MesBaseBarcodeInfo.java | 54 +++- .../mes/api/domain/MesBaseMaterialInfo.java | 26 ++ .../hw/common/core/constant/MesConstants.java | 8 +- .../MesBaseBarcodeInfoController.java | 39 +++ .../mes/mapper/MesBaseBarcodeInfoMapper.java | 10 + .../mes/mapper/MesBaseMaterialInfoMapper.java | 9 + .../com/hw/mes/mapper/MesOrderBindMapper.java | 61 ++++ .../hw/mes/mapper/MesProductOrderMapper.java | 27 +- .../service/IMesBaseBarcodeInfoService.java | 20 ++ .../service/IMesBaseMaterialInfoService.java | 12 + .../hw/mes/service/IMesOrderBindService.java | 61 ++++ .../impl/MesBaseBarcodeInfoServiceImpl.java | 182 ++++++++++-- .../impl/MesBaseMaterialInfoServiceImpl.java | 16 + .../service/impl/MesOrderBindServiceImpl.java | 96 ++++++ .../mapper/mes/MesBaseBarcodeInfoMapper.xml | 56 ++++ .../mapper/mes/MesBaseMaterialInfoMapper.xml | 31 ++ .../mapper/mes/MesBasePalletInfoMapper.xml | 1 + .../mapper/mes/MesOrderBindMapper.xml | 131 +++++++++ .../mapper/mes/MesProductOrderMapper.xml | 18 ++ hw-ui/src/api/mes/barcode.js | 28 ++ hw-ui/src/views/mes/barcode/index.vue | 277 ++++++++++++++++-- .../mes/purchaseOrder/addPurchaseOrder.vue | 4 +- .../mes/purchaseOrder/selectSaleOrder.vue | 4 +- 23 files changed, 1111 insertions(+), 60 deletions(-) create mode 100644 hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesOrderBindMapper.java create mode 100644 hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesOrderBindService.java create mode 100644 hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesOrderBindServiceImpl.java create mode 100644 hw-modules/hw-mes/src/main/resources/mapper/mes/MesOrderBindMapper.xml diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java index 79abc61..eac7699 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java @@ -62,10 +62,6 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "物料ID") private Long materialId; - /** 物料名称 */ - @Excel(name = "物料名称") - private String materialName; - /** 供应商ID */ @Excel(name = "供应商ID") private Long manufacturerId; @@ -74,6 +70,8 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "数量") private BigDecimal amount; + private String productBarcode; + /** 打印机台名称,打印时获取 */ @Excel(name = "打印机台名称,打印时获取") private String machineName; @@ -82,6 +80,9 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "打印次数") private Long printNumber; + /**采购订单ID*/ + private Long purchaseOrderId; + /** 采购订单号;适合原材料入库时 */ @Excel(name = "采购订单号") private String poNo; @@ -138,6 +139,25 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "绑定托盘时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date bindTime; + //需要打印的条码数量 + private BigDecimal barcodeAmount; + + + + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + public String getMaterialName() { return materialName; } @@ -270,6 +290,15 @@ public class MesBaseBarcodeInfo extends BaseEntity { return amount; } + + public String getProductBarcode() { + return productBarcode; + } + + public void setProductBarcode(String productBarcode) { + this.productBarcode = productBarcode; + } + public void setMachineName(String machineName) { this.machineName = machineName; @@ -279,6 +308,15 @@ public class MesBaseBarcodeInfo extends BaseEntity { return machineName; } + + public Long getPurchaseOrderId() { + return purchaseOrderId; + } + + public void setPurchaseOrderId(Long purchaseOrderId) { + this.purchaseOrderId = purchaseOrderId; + } + public void setPoNo(String poNo) { this.poNo = poNo; @@ -397,6 +435,14 @@ public class MesBaseBarcodeInfo extends BaseEntity return bindTime; } + public BigDecimal getBarcodeAmount() { + return barcodeAmount; + } + + public void setBarcodeAmount(BigDecimal barcodeAmount) { + this.barcodeAmount = barcodeAmount; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java index 57c2554..293de8d 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseMaterialInfo.java @@ -57,6 +57,10 @@ public class MesBaseMaterialInfo extends BaseEntity @Excel(name = "批次标识,(0否,1是)") private String batchFlag; + /** 批次数量,例如一袋螺丝有60个 */ + @Excel(name = "批次数量,例如一袋螺丝有60个") + private BigDecimal batchAmount; + /** 计量单位ID;对应FBaseUnitId */ @Excel(name = "计量单位ID;对应FBaseUnitId") private Long materialUnitId; @@ -81,6 +85,10 @@ public class MesBaseMaterialInfo extends BaseEntity @Excel(name = "毛重;FGROSSWEIGHT") private BigDecimal grossWeight; + /** 绑定标识(1是,0否),如果需要绑定,则需要将销售订单绑定具体的采购订单明细 */ + @Excel(name = "绑定标识(1是,0否),如果需要绑定,则需要将销售订单绑定具体的采购订单明细") + private String bindFlag; + /** 所属工厂,关联mes_base_factory_info的factory_id */ @Excel(name = "所属工厂,关联mes_base_factory_info的factory_id") private Long factoryId; @@ -206,6 +214,15 @@ public class MesBaseMaterialInfo extends BaseEntity { return batchFlag; } + + public BigDecimal getBatchAmount() { + return batchAmount; + } + + public void setBatchAmount(BigDecimal batchAmount) { + this.batchAmount = batchAmount; + } + public void setMaterialUnitId(Long materialUnitId) { this.materialUnitId = materialUnitId; @@ -260,6 +277,15 @@ public class MesBaseMaterialInfo extends BaseEntity { return grossWeight; } + + public String getBindFlag() { + return bindFlag; + } + + public void setBindFlag(String bindFlag) { + this.bindFlag = bindFlag; + } + public void setFactoryId(Long factoryId) { this.factoryId = factoryId; diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index 1ff0761..42dc5da 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -82,7 +82,7 @@ public class MesConstants { /**条码信息绑定状态*/ public static final String MES_BARCODE_BIND_STATUS_BINDING= "1";//绑定 - + public static final String MES_BARCODE_BIND_STATUS_UNBINDING= "0";//解绑 public static final String MES_ASSIGN_TASK_KEY = "fifth_floor_assign_task";//五楼分配柜体任务到具体工位的key @@ -96,4 +96,10 @@ public class MesConstants { /**采购订单销售订单绑定安全库存标识*/ public static final String MES_ORDER_BIND_SAFE_FLAG_YES = "1";//是 public static final String MES_ORDER_BIND_SAFE_FLAG_NO = "0";//否 + + + + /**生产工单销售类型*/ + public static final String MES_PRODUCT_ORDER_SALE = "1";//外部销售 + public static final String MES_PRODUCT_ORDER_INTERNAL = "2";//对内生产 } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java index 4b53b8f..cb18e45 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseBarcodeInfoController.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse; import com.hw.common.security.annotation.InnerAuth; import com.hw.common.security.utils.SecurityUtils; import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.mes.service.IMesBaseMaterialInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -37,6 +38,9 @@ public class MesBaseBarcodeInfoController extends BaseController @Autowired private IMesBaseBarcodeInfoService mesBaseBarcodeInfoService; + @Autowired + private IMesBaseMaterialInfoService mesBaseMaterialInfoService; + /** * 查询条码信息列表 */ @@ -118,6 +122,38 @@ public class MesBaseBarcodeInfoController extends BaseController return success(mesBaseBarcodeInfoService.printBarCode(barcodeIds)); } + /** + * 获取物料信息 + */ + @RequiresPermissions("mes:barcode:query") + @GetMapping(value = "/getMaterialInfoByErpId/{erpId}") + public AjaxResult getMaterialInfoByErpId(@PathVariable("erpId") Long erpId) + { + return success(mesBaseMaterialInfoService.selectMesBaseMaterialInfoByErpId(erpId)); + } + + + /** + * 根据条码信息获取条码信息详细信息 + */ + @RequiresPermissions("mes:barcode:query") + @GetMapping(value = "/selectProductBarcodeInfoByBarcodeInfo/{barcodeInfo}") + public AjaxResult selectProductBarcodeInfoByBarcodeInfo(@PathVariable("barcodeInfo") String barcodeInfo) + { + return success(mesBaseBarcodeInfoService.selectProductBarcodeInfoByBarcodeInfo(barcodeInfo)); + } + + /** + * 内部生产新增原材料条码信息 + */ + @RequiresPermissions("mes:barcode:add") + @Log(title = "条码信息", businessType = BusinessType.INSERT) + @PostMapping(value="/addInternalBarcode") + public AjaxResult addInternalBarcode(@RequestBody MesBaseBarcodeInfo mesBaseBarcodeInfo) + { + return toAjax(mesBaseBarcodeInfoService.insertInternalMesBaseBarcode(mesBaseBarcodeInfo)); + } + /** * 根据条码信息获取条码信息详细信息 @@ -139,4 +175,7 @@ public class MesBaseBarcodeInfoController extends BaseController return success(mesBaseBarcodeInfoService.selectMesBaseBarcodeInfoByBindBarcode(bindBarcode)); } + + + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java index 21efd6b..a398d70 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseBarcodeInfoMapper.java @@ -79,4 +79,14 @@ public interface MesBaseBarcodeInfoMapper * @return 条码信息 */ public MesBaseBarcodeInfo selectMesBaseBarcodeInfoByBindBarcode(String bindBarcode); + + + /** + * 获取物料条码信息数量 + * @param mesBaseBarcodeInfo + * @return + */ + public int selectMesBaseBarcodeInfoCount(MesBaseBarcodeInfo mesBaseBarcodeInfo); + + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseMaterialInfoMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseMaterialInfoMapper.java index 51fb398..6ebcd0b 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseMaterialInfoMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBaseMaterialInfoMapper.java @@ -80,4 +80,13 @@ public interface MesBaseMaterialInfoMapper public List selectMaterialInfos4AllocationWarehouse(MesBaseMaterialInfo mesBaseMaterialInfo); + + + /** + * 查询物料信息 + * + * @param erpId ERP物料信息主键 + * @return 物料信息 + */ + public MesBaseMaterialInfo selectMesBaseMaterialInfoByErpId(Long erpId); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesOrderBindMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesOrderBindMapper.java new file mode 100644 index 0000000..57f65e5 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesOrderBindMapper.java @@ -0,0 +1,61 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.MesOrderBind; + +/** + * 采购销售订单绑定信息Mapper接口 + * + * @author xins + * @date 2024-05-16 + */ +public interface MesOrderBindMapper +{ + /** + * 查询采购销售订单绑定信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 采购销售订单绑定信息 + */ + public MesOrderBind selectMesOrderBindByOrderBindId(Long orderBindId); + + /** + * 查询采购销售订单绑定信息列表 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 采购销售订单绑定信息集合 + */ + public List selectMesOrderBindList(MesOrderBind mesOrderBind); + + /** + * 新增采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + public int insertMesOrderBind(MesOrderBind mesOrderBind); + + /** + * 修改采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + public int updateMesOrderBind(MesOrderBind mesOrderBind); + + /** + * 删除采购销售订单绑定信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 结果 + */ + public int deleteMesOrderBindByOrderBindId(Long orderBindId); + + /** + * 批量删除采购销售订单绑定信息 + * + * @param orderBindIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesOrderBindByOrderBindIds(Long[] orderBindIds); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java index 60c0f27..4d42e19 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java @@ -5,15 +5,15 @@ import com.hw.mes.domain.MesProductOrder; /** * 生产工单Mapper接口 - * + * * @author Yinq * @date 2024-02-20 */ -public interface MesProductOrderMapper +public interface MesProductOrderMapper { /** * 查询生产工单 - * + * * @param productOrderId 生产工单主键 * @return 生产工单 */ @@ -21,7 +21,7 @@ public interface MesProductOrderMapper /** * 查询生产工单列表 - * + * * @param mesProductOrder 生产工单 * @return 生产工单集合 */ @@ -29,7 +29,7 @@ public interface MesProductOrderMapper /** * 新增生产工单 - * + * * @param mesProductOrder 生产工单 * @return 结果 */ @@ -37,7 +37,7 @@ public interface MesProductOrderMapper /** * 修改生产工单 - * + * * @param mesProductOrder 生产工单 * @return 结果 */ @@ -45,7 +45,7 @@ public interface MesProductOrderMapper /** * 删除生产工单 - * + * * @param productOrderId 生产工单主键 * @return 结果 */ @@ -53,9 +53,20 @@ public interface MesProductOrderMapper /** * 批量删除生产工单 - * + * * @param productOrderIds 需要删除的数据主键集合 * @return 结果 */ public int deleteMesProductOrderByProductOrderIds(Long[] productOrderIds); + + + + /** + * 查询生产工单 + * + * @param planCode 生产计划编号 + * @return 生产工单 + */ + public MesProductOrder selectMesProductOrderByPlanCode(String planCode); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java index 9c8db74..5c31428 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseBarcodeInfoService.java @@ -2,6 +2,7 @@ package com.hw.mes.service; import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.domain.vo.MesBindBarcodeVo; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -93,4 +94,23 @@ public interface IMesBaseBarcodeInfoService * @return 条码信息 */ public MesBaseBarcodeInfo selectMesBaseBarcodeInfoByBindBarcode(String bindBarcode); + + + + /** + * 验证成品条码信息(是否是对内生产的) + * + * @param barcodeInfo 条码信息UID + * @return 条码信息 + */ + public MesBaseBarcodeInfo selectProductBarcodeInfoByBarcodeInfo(String barcodeInfo); + + + + /** + * 对内生产的成品生成原材料条码 + * @param mesBaseBarcodeInfo + * @return + */ + public int insertInternalMesBaseBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java index ba7d14d..46f6d79 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java @@ -75,4 +75,16 @@ public interface IMesBaseMaterialInfoService * @return 物料信息 */ public List selectMaterialInfos4AllocationWarehouse(MesBaseMaterialInfo mesBaseMaterialInfo); + + + + + + /** + * 查询物料信息 + * + * @param erpId ERP物料信息主键 + * @return 物料信息 + */ + public MesBaseMaterialInfo selectMesBaseMaterialInfoByErpId(Long erpId); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesOrderBindService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesOrderBindService.java new file mode 100644 index 0000000..7afb5a7 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesOrderBindService.java @@ -0,0 +1,61 @@ +package com.hw.mes.service; + +import java.util.List; +import com.hw.mes.domain.MesOrderBind; + +/** + * 采购销售订单绑定信息Service接口 + * + * @author xins + * @date 2024-05-16 + */ +public interface IMesOrderBindService +{ + /** + * 查询采购销售订单绑定信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 采购销售订单绑定信息 + */ + public MesOrderBind selectMesOrderBindByOrderBindId(Long orderBindId); + + /** + * 查询采购销售订单绑定信息列表 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 采购销售订单绑定信息集合 + */ + public List selectMesOrderBindList(MesOrderBind mesOrderBind); + + /** + * 新增采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + public int insertMesOrderBind(MesOrderBind mesOrderBind); + + /** + * 修改采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + public int updateMesOrderBind(MesOrderBind mesOrderBind); + + /** + * 批量删除采购销售订单绑定信息 + * + * @param orderBindIds 需要删除的采购销售订单绑定信息主键集合 + * @return 结果 + */ + public int deleteMesOrderBindByOrderBindIds(Long[] orderBindIds); + + /** + * 删除采购销售订单绑定信息信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 结果 + */ + public int deleteMesOrderBindByOrderBindId(Long orderBindId); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java index b9ecd24..9babf2a 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java @@ -13,12 +13,20 @@ import com.hw.common.core.utils.StringUtils; import com.hw.common.core.utils.uuid.Seq; import com.hw.common.security.utils.SecurityUtils; import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.mes.domain.MesBasePalletInfo; +import com.hw.mes.domain.MesOrderBind; +import com.hw.mes.domain.MesProductOrder; import com.hw.mes.domain.vo.MesBindBarcodeVo; +import com.hw.mes.mapper.MesBasePalletInfoMapper; +import com.hw.mes.mapper.MesOrderBindMapper; +import com.hw.mes.mapper.MesProductOrderMapper; +import com.hw.mes.service.IMesOrderBindService; import com.hw.printer.api.RemotePrinterService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hw.mes.mapper.MesBaseBarcodeInfoMapper; import com.hw.mes.service.IMesBaseBarcodeInfoService; +import org.springframework.transaction.annotation.Transactional; /** * 条码信息Service业务层处理 @@ -34,6 +42,15 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService @Autowired private RemotePrinterService remotePrinterService; + @Autowired + private MesOrderBindMapper mesOrderBindMapper; + + @Autowired + private MesProductOrderMapper mesProductOrderMapper; + + @Autowired + private MesBasePalletInfoMapper mesBasePalletInfoMapper; + /** * 查询条码信息 * @@ -76,28 +93,70 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertMesBaseBarcodeInfo(MesBaseBarcodeInfo mesBaseBarcodeInfo) { + Long purchaseOrderId = mesBaseBarcodeInfo.getPurchaseOrderId(); + MesBaseBarcodeInfo queryBaseBarcodeInfo = new MesBaseBarcodeInfo(); + queryBaseBarcodeInfo.setPurchaseOrderId(purchaseOrderId); + int mesBaseBarcodeInfoCount = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoCount(queryBaseBarcodeInfo); + if (mesBaseBarcodeInfoCount > 0) { + throw new ServiceException("此采购订单已经生成条码,无需重复生成"); + } + + BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount(); + MesOrderBind queryOrderBind = new MesOrderBind(); + queryOrderBind.setPurchaseOrderId(purchaseOrderId); + List mesOrderBinds = mesOrderBindMapper.selectMesOrderBindList(queryOrderBind); + if (mesOrderBinds == null || mesOrderBinds.isEmpty()) { + throw new ServiceException("此采购订单还未绑定销售订单,不能生成条码"); + } + + BigDecimal totalBindAmount = mesOrderBinds.stream().map(MesOrderBind::getBindAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + if (barcodeAmount.compareTo(totalBindAmount) != 0) { + throw new ServiceException("采购订单还未完全绑定到销售订单"); + } + mesBaseBarcodeInfo.setCreateTime(DateUtils.getNowDate()); // 生成原材料条码 if (mesBaseBarcodeInfo.getBarcodeType().equals(MesConstants.MES_BARCODE_TYPE_RAW)) { - //同一批次的批次代码相同 - mesBaseBarcodeInfo.setBatchCode(Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode)); - if (mesBaseBarcodeInfo.getBatchFlag().equals(MesConstants.NOT_IS_BATCH)) { - int frequency = mesBaseBarcodeInfo.getAmount().intValue(); - for (int i = 0; i < frequency; i++) { + String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); + MesBaseBarcodeInfo toInsertedBarcodeInfo; + + for (MesOrderBind mesOrderBind : mesOrderBinds) { + BigDecimal bindAmount = mesOrderBind.getBindAmount(); + for (int i = 0; i < bindAmount.intValue(); i++) { // 生成数量条的不同条码内容 - mesBaseBarcodeInfo.setBarcodeInfo(Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode)); - mesBaseBarcodeInfo.setAmount(new BigDecimal(1)); - mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo); + toInsertedBarcodeInfo = new MesBaseBarcodeInfo(); + //同一批次的批次代码相同 + toInsertedBarcodeInfo.setBatchCode(batchCode); + toInsertedBarcodeInfo.setPurchaseOrderId(purchaseOrderId); + toInsertedBarcodeInfo.setPoNo(mesBaseBarcodeInfo.getPoNo()); + toInsertedBarcodeInfo.setBarcodeType(MesConstants.MES_BARCODE_TYPE_RAW); + toInsertedBarcodeInfo.setBarcodeInfo(Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode)); + toInsertedBarcodeInfo.setMaterialId(mesBaseBarcodeInfo.getMaterialId()); + toInsertedBarcodeInfo.setProductionDate(mesBaseBarcodeInfo.getProductionDate()); + toInsertedBarcodeInfo.setLastOutstockDate(mesBaseBarcodeInfo.getLastOutstockDate()); + toInsertedBarcodeInfo.setProjectNo(mesBaseBarcodeInfo.getProjectNo()); + toInsertedBarcodeInfo.setBatchFlag(mesBaseBarcodeInfo.getBatchFlag()); + + toInsertedBarcodeInfo.setSaleOrderId(mesOrderBind.getSaleOrderId()); + toInsertedBarcodeInfo.setSaleorderCode(mesOrderBind.getSaleOrderCode()); + + if (mesBaseBarcodeInfo.getBatchFlag().equals(MesConstants.NOT_IS_BATCH)) { + toInsertedBarcodeInfo.setAmount(new BigDecimal(1)); + } + + if (mesBaseBarcodeInfo.getBatchFlag().equals(MesConstants.IS_BATCH)) { + toInsertedBarcodeInfo.setAmount(mesBaseBarcodeInfo.getAmount()); + } + mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(toInsertedBarcodeInfo); } } - if (mesBaseBarcodeInfo.getBatchFlag().equals(MesConstants.IS_BATCH)) { - mesBaseBarcodeInfo.setBarcodeInfo(Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode)); - mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo); - } } + + // 生成成品条码 - if (mesBaseBarcodeInfo.getBarcodeType().equals(MesConstants.MES_BARCODE_TYPE_PRODUCT)) { + else if (mesBaseBarcodeInfo.getBarcodeType().equals(MesConstants.MES_BARCODE_TYPE_PRODUCT)) { // 批次代码 == 条码内容 int frequency = mesBaseBarcodeInfo.getAmount().intValue(); for (int i = 0; i < frequency; i++) { @@ -229,10 +288,6 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService } - - - - /** * 查询条码信息 * @@ -243,4 +298,97 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService public MesBaseBarcodeInfo selectMesBaseBarcodeInfoByBindBarcode(String bindBarcode) { return mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBindBarcode(bindBarcode); } + + + /** + * 验证成品条码信息(是否是对内生产的) + * + * @param barcodeInfo 条码信息 + * @return 条码信息 + */ + @Override + public MesBaseBarcodeInfo selectProductBarcodeInfoByBarcodeInfo(String barcodeInfo) { + MesBaseBarcodeInfo productBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(barcodeInfo); + if (productBarcodeInfo == null) { + throw new ServiceException("成品条码信息不存在"); + } + String barcodeType = productBarcodeInfo.getBarcodeType(); + if (!barcodeType.equals(MesConstants.MES_BARCODE_TYPE_PRODUCT)) { + throw new ServiceException("成品条码信息不存在"); + } + + + String planCode = productBarcodeInfo.getPlanCode(); + MesProductOrder productOrder = mesProductOrderMapper.selectMesProductOrderByPlanCode(planCode); + if (productOrder == null) { + throw new ServiceException("无此条码生产工单"); + } + + if (!productOrder.getSaleType().equals(MesConstants.MES_PRODUCT_ORDER_INTERNAL)) { + throw new ServiceException("此成品非对内生产"); + } + + return productBarcodeInfo; + } + + + /** + * 对内生产的成品生成原材料条码 + * + * @param mesBaseBarcodeInfo + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int insertInternalMesBaseBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) { + String productBarcode = mesBaseBarcodeInfo.getProductBarcode(); + //先判断此成品条码是否有绑定过原材料条码 + MesBaseBarcodeInfo queryBarcodeInfo = new MesBaseBarcodeInfo(); + queryBarcodeInfo.setProductBarcode(productBarcode); + int bindProductBarcodeCount = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoCount(queryBarcodeInfo); + if (bindProductBarcodeCount > 0) { + throw new ServiceException("此成品条码已经打印过原材料条码,无需重复打印"); + } + + //先根据之前的成品条码信息获取托盘信息 + MesBasePalletInfo queryPalletInfo = new MesBasePalletInfo(); + queryPalletInfo.setMaterialBarcode(productBarcode); + List basePalletInfos = mesBasePalletInfoMapper.selectMesBasePalletInfoList(queryPalletInfo); + if (basePalletInfos == null || basePalletInfos.isEmpty()) { + throw new ServiceException("此成品未绑定托盘信息"); + } + + String userName = SecurityUtils.getUsername(); + Date currentDate = DateUtils.getNowDate(); + String barcodeInfo = Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode); + //修改托盘信息的绑定关系为当前原材料的 + MesBasePalletInfo basePalletInfo = basePalletInfos.get(0); + basePalletInfo.setMaterialBarcode(barcodeInfo); + basePalletInfo.setUpdateBy(userName); + basePalletInfo.setUpdateTime(currentDate); + mesBasePalletInfoMapper.updateMesBasePalletInfo(basePalletInfo); + + + MesBaseBarcodeInfo productBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(productBarcode); + if(productBarcodeInfo==null){ + throw new ServiceException("成品条码不存在"); + } + productBarcodeInfo.setPalletInfoCode(""); + productBarcodeInfo.setBindStatus(MesConstants.MES_BARCODE_BIND_STATUS_UNBINDING); + productBarcodeInfo.setUpdateTime(currentDate); + productBarcodeInfo.setUpdateBy(userName); + mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(productBarcodeInfo); + + + mesBaseBarcodeInfo.setBarcodeInfo(barcodeInfo); + mesBaseBarcodeInfo.setBatchCode(barcodeInfo); + mesBaseBarcodeInfo.setBatchFlag(MesConstants.NOT_IS_BATCH); + mesBaseBarcodeInfo.setAmount(BigDecimal.ONE); + mesBaseBarcodeInfo.setBarcodeType(MesConstants.MES_BARCODE_TYPE_RAW); + mesBaseBarcodeInfo.setPalletInfoCode(basePalletInfo.getPalletInfoCode()); + mesBaseBarcodeInfo.setCreateTime(currentDate); + mesBaseBarcodeInfo.setCreateBy(userName); + + return mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java index c54024a..73c1b17 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java @@ -122,4 +122,20 @@ public class MesBaseMaterialInfoServiceImpl implements IMesBaseMaterialInfoServi return mesBaseMaterialInfoMapper.selectMaterialInfos4AllocationWarehouse(mesBaseMaterialInfo); } + + + + + + /** + * 查询物料信息 + * + * @param erpId ERP物料信息主键 + * @return 物料信息 + */ + @Override + public MesBaseMaterialInfo selectMesBaseMaterialInfoByErpId(Long erpId) + { + return mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByErpId(erpId); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesOrderBindServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesOrderBindServiceImpl.java new file mode 100644 index 0000000..65576dd --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesOrderBindServiceImpl.java @@ -0,0 +1,96 @@ +package com.hw.mes.service.impl; + +import java.util.List; +import com.hw.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.hw.mes.mapper.MesOrderBindMapper; +import com.hw.mes.domain.MesOrderBind; +import com.hw.mes.service.IMesOrderBindService; + +/** + * 采购销售订单绑定信息Service业务层处理 + * + * @author xins + * @date 2024-05-16 + */ +@Service +public class MesOrderBindServiceImpl implements IMesOrderBindService +{ + @Autowired + private MesOrderBindMapper mesOrderBindMapper; + + /** + * 查询采购销售订单绑定信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 采购销售订单绑定信息 + */ + @Override + public MesOrderBind selectMesOrderBindByOrderBindId(Long orderBindId) + { + return mesOrderBindMapper.selectMesOrderBindByOrderBindId(orderBindId); + } + + /** + * 查询采购销售订单绑定信息列表 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 采购销售订单绑定信息 + */ + @Override + public List selectMesOrderBindList(MesOrderBind mesOrderBind) + { + return mesOrderBindMapper.selectMesOrderBindList(mesOrderBind); + } + + /** + * 新增采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + @Override + public int insertMesOrderBind(MesOrderBind mesOrderBind) + { + mesOrderBind.setCreateTime(DateUtils.getNowDate()); + return mesOrderBindMapper.insertMesOrderBind(mesOrderBind); + } + + /** + * 修改采购销售订单绑定信息 + * + * @param mesOrderBind 采购销售订单绑定信息 + * @return 结果 + */ + @Override + public int updateMesOrderBind(MesOrderBind mesOrderBind) + { + mesOrderBind.setUpdateTime(DateUtils.getNowDate()); + return mesOrderBindMapper.updateMesOrderBind(mesOrderBind); + } + + /** + * 批量删除采购销售订单绑定信息 + * + * @param orderBindIds 需要删除的采购销售订单绑定信息主键 + * @return 结果 + */ + @Override + public int deleteMesOrderBindByOrderBindIds(Long[] orderBindIds) + { + return mesOrderBindMapper.deleteMesOrderBindByOrderBindIds(orderBindIds); + } + + /** + * 删除采购销售订单绑定信息信息 + * + * @param orderBindId 采购销售订单绑定信息主键 + * @return 结果 + */ + @Override + public int deleteMesOrderBindByOrderBindId(Long orderBindId) + { + return mesOrderBindMapper.deleteMesOrderBindByOrderBindId(orderBindId); + } +} diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml index dfb1a7a..8b22f4f 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml @@ -18,8 +18,10 @@ + + @@ -36,6 +38,7 @@ + @@ -50,8 +53,10 @@ bbi.pallet_info_code, bbi.bind_barcode, bbi.material_id, + bmi.material_code, bmi.material_name, bbi.manufacturer_id, + bbi.product_barcode, bbi.amount, bbi.machine_name, bbi.print_number, @@ -110,6 +115,7 @@ and bbi.update_by = #{updateBy} and bbi.update_time = #{updateTime} + order by bbi.barcode_id desc + + + + + + + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml index 5cc219a..4c026a8 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseMaterialInfoMapper.xml @@ -15,12 +15,14 @@ + + @@ -207,6 +209,8 @@ update_time = #{updateTime}, approve_date = #{approveDate}, erp_modify_date = #{erpModifyDate}, + bind_flag = #{bindFlag}, + batch_amount = #{batchAmount}, where material_id = #{materialId} @@ -296,4 +300,31 @@ + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBasePalletInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBasePalletInfoMapper.xml index 6c31e07..9f2ddcf 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBasePalletInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBasePalletInfoMapper.xml @@ -27,6 +27,7 @@ and pallet_info_code = #{palletInfoCode} + and material_barcode = #{materialBarcode} diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesOrderBindMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesOrderBindMapper.xml new file mode 100644 index 0000000..ba3e6d1 --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesOrderBindMapper.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select order_bind_id, safe_flag, sale_order_id, sale_order_code, product_id, product_code, product_name, purchase_order_id, po_no, material_id, material_code, material_name, bind_amount, remark, create_by, create_time, update_by, update_time from mes_order_bind + + + + + + + + insert into mes_order_bind + + safe_flag, + sale_order_id, + sale_order_code, + product_id, + product_code, + product_name, + purchase_order_id, + po_no, + material_id, + material_code, + material_name, + bind_amount, + remark, + create_by, + create_time, + update_by, + update_time, + + + #{safeFlag}, + #{saleOrderId}, + #{saleOrderCode}, + #{productId}, + #{productCode}, + #{productName}, + #{purchaseOrderId}, + #{poNo}, + #{materialId}, + #{materialCode}, + #{materialName}, + #{bindAmount}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mes_order_bind + + safe_flag = #{safeFlag}, + sale_order_id = #{saleOrderId}, + sale_order_code = #{saleOrderCode}, + product_id = #{productId}, + product_code = #{productCode}, + product_name = #{productName}, + purchase_order_id = #{purchaseOrderId}, + po_no = #{poNo}, + material_id = #{materialId}, + material_code = #{materialCode}, + material_name = #{materialName}, + bind_amount = #{bindAmount}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where order_bind_id = #{orderBindId} + + + + delete from mes_order_bind where order_bind_id = #{orderBindId} + + + + delete from mes_order_bind where order_bind_id in + + #{orderBindId} + + + \ No newline at end of file diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml index 95c4607..24980d3 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml @@ -240,4 +240,22 @@ #{productOrderId} + + + + + + + + + + + + + diff --git a/hw-ui/src/api/mes/barcode.js b/hw-ui/src/api/mes/barcode.js index 6d990e9..0117321 100644 --- a/hw-ui/src/api/mes/barcode.js +++ b/hw-ui/src/api/mes/barcode.js @@ -50,3 +50,31 @@ export function printBarCode(barcodeId) { method: 'get' }) } + + +// 查询物料信息详细 +export function getMaterialInfoByErpId(erpId) { + return request({ + url: '/mes/barcode/getMaterialInfoByErpId/' + erpId, + method: 'get' + }) +} + + +// 查询物料信息详细 +export function selectProductBarcodeInfoByBarcodeInfo(barcodeInfo) { + return request({ + url: '/mes/barcode/selectProductBarcodeInfoByBarcodeInfo/' + barcodeInfo, + method: 'get' + }) +} + + +// 内部生产新增原材料条码信息 +export function addInternalBarcode(data) { + return request({ + url: '/mes/barcode/addInternalBarcode', + method: 'post', + data: data + }) +} diff --git a/hw-ui/src/views/mes/barcode/index.vue b/hw-ui/src/views/mes/barcode/index.vue index 88b2c68..e04e473 100644 --- a/hw-ui/src/views/mes/barcode/index.vue +++ b/hw-ui/src/views/mes/barcode/index.vue @@ -46,9 +46,22 @@ size="mini" @click="handleAdd" v-hasPermi="['mes:barcode:add']" - >新增 + >采购新增 + + + 生产新增 + + + @@ -96,6 +109,8 @@ + + @@ -105,7 +120,7 @@ - + - + @@ -156,6 +172,13 @@ diff --git a/hw-ui/src/views/mes/purchaseOrder/addPurchaseOrder.vue b/hw-ui/src/views/mes/purchaseOrder/addPurchaseOrder.vue index 9829297..c7844e2 100644 --- a/hw-ui/src/views/mes/purchaseOrder/addPurchaseOrder.vue +++ b/hw-ui/src/views/mes/purchaseOrder/addPurchaseOrder.vue @@ -42,7 +42,7 @@ highlight-current-row > - + @@ -173,7 +173,7 @@ export default { ], }, columns: [ - { key: 0, label: `主键标识`, visible: false }, + { key: 0, label: `主键标识`, visible: true }, { key: 1, label: `ERP主键信息`, visible: false }, { key: 2, label: `金蝶ERP订单明细ID`, visible: false }, { key: 3, label: `采购订单编号`, visible: true }, diff --git a/hw-ui/src/views/mes/purchaseOrder/selectSaleOrder.vue b/hw-ui/src/views/mes/purchaseOrder/selectSaleOrder.vue index ab8ba01..1711395 100644 --- a/hw-ui/src/views/mes/purchaseOrder/selectSaleOrder.vue +++ b/hw-ui/src/views/mes/purchaseOrder/selectSaleOrder.vue @@ -82,7 +82,7 @@