From 41333ee8ee2127c39d25e6e58ff8ca507ff8f952 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Wed, 3 Sep 2025 14:40:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(wms):=20=E9=87=8D=E5=A4=8D=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=85=A5=E5=BA=93=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=96=B0=E5=8A=A0=E8=B4=A8=E6=A3=80=E8=A6=81=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 WmsAllocateTask、WmsInstockDetail、WmsInstockPrint 等领域模型的字段名称和含义 - 更新相关的 BO、VO 类以保持一致性 - 优化 WmsInstockDetailServiceImpl 和 WmsInstockPrintServiceImpl 中的逻辑 - 新增 printCode 方法实现批量打印功能 --- .../dromara/wms/domain/WmsAllocateTask.java | 4 +- .../dromara/wms/domain/WmsInstockDetail.java | 4 +- .../dromara/wms/domain/WmsInstockOrder.java | 2 - .../dromara/wms/domain/WmsInstockPrint.java | 9 ++++- .../wms/domain/bo/WmsAllocateTaskBo.java | 4 +- .../wms/domain/bo/WmsInstockDetailBo.java | 8 ++-- .../wms/domain/bo/WmsInstockPrintBo.java | 13 +++++-- .../wms/domain/vo/WmsAllocateTaskVo.java | 8 ++-- .../wms/domain/vo/WmsInstockDetailVo.java | 2 +- .../wms/domain/vo/WmsInstockPrintVo.java | 13 +++++-- .../impl/WmsInstockDetailServiceImpl.java | 14 +++++-- .../impl/WmsInstockPrintServiceImpl.java | 37 +++++++++++++++++-- 12 files changed, 84 insertions(+), 34 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateTask.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateTask.java index 8e0c1edb..09599e07 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateTask.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateTask.java @@ -39,12 +39,12 @@ public class WmsAllocateTask extends TenantEntity { private String batchCode; /** - * 条码数量 + * 每包数量 */ private Long materialQty; /** - * 分包数量 + * 条码数量 */ private Long apportionQty; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java index 68515c21..1251e953 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java @@ -124,14 +124,14 @@ public class WmsInstockDetail{ private BigDecimal printedNum; /** - * 分包数量 + * 条码数量 */ private BigDecimal apportionQty; /** * 是否质检 */ - private String isInspection; +// private String isInspection; /** * 质检要求(0必检,1免检) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockOrder.java index facfeb0a..31aec082 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockOrder.java @@ -85,8 +85,6 @@ public class WmsInstockOrder{ private String agvStatus; - - @TableField(fill = FieldFill.INSERT) private String createBy; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockPrint.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockPrint.java index 37b4c7c5..bc8a02b0 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockPrint.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockPrint.java @@ -38,12 +38,12 @@ public class WmsInstockPrint{ private String batchCode; /** - * 条码数量 + * 每包数量 */ private Long materialQty; /** - * 分包数量 + * 条码数量 */ private BigDecimal apportionQty; @@ -137,6 +137,11 @@ public class WmsInstockPrint{ */ private String agvStatus; + /** + * 质检要求(0必检,1免检) + */ + private String inspectionRequest; + /** * 物料大类 */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateTaskBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateTaskBo.java index 7ffa34b9..9f14c259 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateTaskBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateTaskBo.java @@ -38,12 +38,12 @@ public class WmsAllocateTaskBo extends BaseEntity { private String batchCode; /** - * 条码数量 + * 每包数量 */ private Long materialQty; /** - * 分包数量 + * 条码数量 */ private Long apportionQty; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockDetailBo.java index 87f59762..f555bf01 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockDetailBo.java @@ -112,7 +112,7 @@ public class WmsInstockDetailBo{ private String tenantId; /** - * 分包数量 + * 条码数量 */ private BigDecimal apportionQty; @@ -123,7 +123,7 @@ public class WmsInstockDetailBo{ /** - * 分包数量 + * 条码数量 */ private BigDecimal printNum; /** @@ -175,7 +175,7 @@ public class WmsInstockDetailBo{ @TableField(exist = false) private Map params = new HashMap<>(); - // 分包数量 + // 条码数量 private Integer splitPackageCount; // 打印份数(仅当不分包时有效) @@ -193,7 +193,7 @@ public class WmsInstockDetailBo{ /** - * 每包数量列表(当分包数量>1时使用) + * 每包数量列表(当条码数量>1时使用) */ private List packageQtyList; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockPrintBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockPrintBo.java index 54a28be9..0205bcfb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockPrintBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInstockPrintBo.java @@ -41,15 +41,15 @@ public class WmsInstockPrintBo extends BaseEntity { private String batchCode; /** - * 条码数量 + * 每包数量 */ -// @NotNull(message = "条码数量不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotNull(message = "每包数量不能为空", groups = { AddGroup.class, EditGroup.class }) private Long materialQty; /** - * 分包数量 + * 条码数量 */ -// @NotNull(message = "分包数量不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotNull(message = "条码数量不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal apportionQty; /** @@ -122,4 +122,9 @@ public class WmsInstockPrintBo extends BaseEntity { */ private String agvStatus; + /** + * 质检要求(0必检,1免检) + */ + private String inspectionRequest; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateTaskVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateTaskVo.java index 05fbaf80..3ecb3282 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateTaskVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateTaskVo.java @@ -49,15 +49,15 @@ public class WmsAllocateTaskVo implements Serializable { private String batchCode; /** - * 条码数量 + * 每包数量 */ - @ExcelProperty(value = "条码数量") + @ExcelProperty(value = "每包数量") private Long materialQty; /** - * 分包数量 + * 条码数量 */ - @ExcelProperty(value = "分包数量") + @ExcelProperty(value = "条码数量") private Long apportionQty; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockDetailVo.java index cc3c8b09..b617f129 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockDetailVo.java @@ -140,7 +140,7 @@ public class WmsInstockDetailVo implements Serializable { private String tenantId; /** - * 分包数量 + * 条码数量 */ private BigDecimal apportionQty; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockPrintVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockPrintVo.java index 1a9a48e5..c8beed5d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockPrintVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInstockPrintVo.java @@ -46,15 +46,15 @@ public class WmsInstockPrintVo implements Serializable { private String batchCode; /** - * 条码数量 + * 每包数量 */ - @ExcelProperty(value = "条码数量") + @ExcelProperty(value = "每包数量") private Long materialQty; /** - * 分包数量 + * 条码数量 */ - @ExcelProperty(value = "分包数量") + @ExcelProperty(value = "条码数量") private BigDecimal apportionQty; /** @@ -153,4 +153,9 @@ public class WmsInstockPrintVo implements Serializable { */ private String agvStatus; + /** + * 质检要求(0必检,1免检) + */ + private String inspectionRequest; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java index f463bd03..188d94f1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java @@ -103,7 +103,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { .select(BaseMaterialInfo::getInspectionRequest) .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsInstockDetail::getMaterialId) - .eq(StringUtils.isNotBlank(bo.getIsInspection()), WmsInstockDetail::getIsInspection, bo.getIsInspection()) +// .eq(StringUtils.isNotBlank(bo.getIsInspection()), WmsInstockDetail::getIsInspection, bo.getIsInspection()) .eq(bo.getInstockQty() != null, WmsInstockDetail::getInstockQty, bo.getInstockQty()) .eq(bo.getInstockDetailId() != null, WmsInstockDetail::getInstockDetailId, bo.getInstockDetailId()) @@ -141,6 +141,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); WmsInstockDetail add = MapstructUtils.convert(detailBo, WmsInstockDetail.class); + add.setMaterialId(baseMaterialInfoVos.get(0).getMaterialId()); add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec()); @@ -230,6 +231,9 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { Integer printSeq = (int) wmsInstockPrintService.queryPrintNum(bo) + 1; String baseOrder = generateOrder(printSeq); BigDecimal totalPackaged = BigDecimal.ZERO; + Long materialId = bo.getMaterialId(); + BaseMaterialInfoVo baseMaterialInfo = baseMaterialInfoService.queryById(materialId); + String inspectionRequest = baseMaterialInfo.getInspectionRequest(); if (splitInt > 1) { // 分包逻辑 - 统一处理模式 List packageQtyList = bo.getPackageQtyList(); @@ -258,12 +262,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { WmsInstockPrint print = new WmsInstockPrint(); BeanUtils.copyProperties(bo, print); print.setBatchCode(batchCode); - print.setMaterialId(bo.getMaterialId()); + print.setMaterialId(materialId); print.setApportionQty(BigDecimal.ONE); // 打印的包数:1包 print.setMaterialQty(currentPackageQty.longValue()); // 每包的物料数量 print.setInboundStatus("0"); // 入库状态(0-待入库,1-已入库,2-入库中) print.setCreateBy(LoginHelper.getUsername()); print.setCreateTime(new Date()); + print.setInspectionRequest(inspectionRequest);//质检要求(0必检,1免检) wmsInstockPrintService.insertWmsInstockPrint(print); @@ -281,10 +286,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { WmsInstockPrint print = new WmsInstockPrint(); BeanUtils.copyProperties(bo, print); print.setBatchCode(batchCode); - print.setMaterialId(bo.getMaterialId()); + print.setMaterialId(materialId); print.setApportionQty(copies); // 打印的包数(打印份数) print.setMaterialQty(detail.getInstockQty().longValue()); // 每包的物料数量(全部入库数量) print.setInboundStatus("0");//入库状态(0-待入库,1-已入库,2-入库中) + print.setCreateBy(LoginHelper.getUsername()); + print.setCreateTime(new Date()); + print.setInspectionRequest(inspectionRequest);//质检要求(0必检,1免检) wmsInstockPrintService.insertWmsInstockPrint(print); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java index 19e83842..a4cd6b41 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java @@ -18,7 +18,9 @@ import org.dromara.wms.domain.vo.WmsInstockPrintVo; import org.dromara.wms.mapper.WmsInstockPrintMapper; import org.dromara.wms.service.IWmsInstockPrintService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Collection; import java.util.List; import java.util.Map; @@ -91,10 +93,6 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { .select(BaseMaterialCategory::getMaterialCategoryName) .leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsInstockPrint::getMaterialCategoryId) - //待入库列表新增 - .eq(bo.getActualInboundTime() != null, WmsInstockPrint::getActualInboundTime, bo.getActualInboundTime()) - .eq(StringUtils.isNotBlank(bo.getInboundStatus()), WmsInstockPrint::getInboundStatus, bo.getInboundStatus()) - .eq(bo.getLocationId() != null, WmsInstockPrint::getLocationId, bo.getLocationId()) //条码打印原有 .eq(bo.getInstockPrintId() != null, WmsInstockPrint::getInstockPrintId, bo.getInstockPrintId()) .eq(StringUtils.isNotBlank(bo.getInstockCode()), WmsInstockPrint::getInstockCode, bo.getInstockCode()) @@ -108,6 +106,16 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { .like(StringUtils.isNotBlank(bo.getUnitName()), WmsInstockPrint::getUnitName, bo.getUnitName()) .eq(StringUtils.isNotBlank(bo.getCodeYesNo()), WmsInstockPrint::getCodeYesNo, bo.getCodeYesNo()) .eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsInstockPrint::getMaterialCategoryId, bo.getMaterialCategoryId()) + + //质检要求(0必检,1免检) + .eq(StringUtils.isNotBlank(bo.getInspectionRequest()), WmsInstockPrint::getInspectionRequest, bo.getInspectionRequest()) + //待入库列表新增 + .eq(bo.getActualInboundTime() != null, WmsInstockPrint::getActualInboundTime, bo.getActualInboundTime()) + .eq(StringUtils.isNotBlank(bo.getInboundStatus()), WmsInstockPrint::getInboundStatus, bo.getInboundStatus()) + .eq(bo.getLocationId() != null, WmsInstockPrint::getLocationId, bo.getLocationId()) + //AGV列表新增 + .eq(StringUtils.isNotBlank(bo.getIsAgv()), WmsInstockPrint::getIsAgv, bo.getIsAgv()) + .eq(StringUtils.isNotBlank(bo.getAgvStatus()), WmsInstockPrint::getAgvStatus, bo.getAgvStatus()) .orderByDesc(WmsInstockPrint::getCreateTime); return lqw; } @@ -168,4 +176,25 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 入库单-物料打印条码信息 + * 批量打印 + * 调用打印机 + * + * @param WmsInstockPrintBos 入库单-物料打印条码信息 + * @return 是否打印成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean printCOde(List WmsInstockPrintBos) { + for (WmsInstockPrintVo vo : WmsInstockPrintBos){ + //条码数量+1 + BigDecimal apportionQty = vo.getApportionQty().add(new BigDecimal(1)); + WmsInstockPrintBo wmsInstockPrintBo = MapstructUtils.convert(vo, WmsInstockPrintBo.class); + wmsInstockPrintBo.setApportionQty(apportionQty); + updateByBo(wmsInstockPrintBo); + } + return true; + } }