From d332c0455a1fc385105185e7284809e73b2b0ad9 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 5 Sep 2025 15:29:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E8=B0=83?= =?UTF-8?q?=E6=8B=A8=E5=B7=A5=E5=8D=95=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E5=92=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsAllocateOrderService 中添加 approveAllocateOrder 方法用于审批调拨工单 - 在 WmsAllocateOrderController 中添加 approveAllocateOrder 接口 - 在 WmsAllocateOrderServiceImpl 中实现 approveAllocateOrder 方法 - 优化 WmsAllocateOrder 和 WmsAllocateOrderDetail 实体类,将 createBy 和 updateBy 字段类型改为 Long - 修改 WmsAllocateOrderDetailServiceImpl 中的查询方法,简化代码结构 - 更新 WmsAllocateTask 实体类,添加表主键标注 --- .../controller/ProdOrderInfoController.java | 2 +- .../controller/WmsAllocateOrderController.java | 10 ++++++++++ .../dromara/wms/domain/WmsAllocateOrder.java | 4 ++-- .../wms/domain/WmsAllocateOrderDetail.java | 8 ++++++-- .../dromara/wms/domain/WmsAllocateTask.java | 10 ++++++---- .../wms/service/IWmsAllocateOrderService.java | 8 ++++++++ .../impl/WmsAllocateOrderServiceImpl.java | 18 +++++++++++++++++- .../impl/WmsInstockOrderServiceImpl.java | 6 ++++++ .../mapper/wms/ProdOrderInfoMapper.xml | 2 +- 9 files changed, 57 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/ProdOrderInfoController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/ProdOrderInfoController.java index 6f818538..57994ec2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/ProdOrderInfoController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/ProdOrderInfoController.java @@ -24,7 +24,7 @@ import java.util.List; /** * 生产订单信息 - * 前端访问路由地址为:/mes/orderInfo + * 前端访问路由地址为:/wms/orderInfo * * @author Yinq * @date 2025-01-09 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java index 135ed10c..b30348eb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java @@ -103,4 +103,14 @@ public class WmsAllocateOrderController extends BaseController { @PathVariable Long[] aoIds) { return toAjax(wmsAllocateOrderService.deleteWithValidByIds(List.of(aoIds), true)); } + + /** + * 调拨工单审批 + * @param bo + * @return + */ + @PutMapping("/approveAllocateOrder") + public R approveAllocateOrder(@RequestBody WmsAllocateOrderBo bo) { + return R.ok(wmsAllocateOrderService.approveAllocateOrder(bo)); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java index ff88f2a6..35260647 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java @@ -107,7 +107,7 @@ public class WmsAllocateOrder{ */ private String tenantId; @TableField(fill = FieldFill.INSERT) - private String createBy; + private Long createBy; /** * 创建时间 @@ -119,7 +119,7 @@ public class WmsAllocateOrder{ * 更新者 */ @TableField(fill = FieldFill.INSERT_UPDATE) - private String updateBy; + private Long updateBy; /** * 更新时间 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java index d63560cb..76f3364b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java @@ -61,8 +61,12 @@ public class WmsAllocateOrderDetail { * 租户id */ private String tenantId; + + /** + * 创建者 + */ @TableField(fill = FieldFill.INSERT) - private String createBy; + private Long createBy; /** * 创建时间 @@ -74,7 +78,7 @@ public class WmsAllocateOrderDetail { * 更新者 */ @TableField(fill = FieldFill.INSERT_UPDATE) - private String updateBy; + private Long updateBy; /** * 更新时间 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 09599e07..864b8cc8 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 @@ -1,13 +1,14 @@ package org.dromara.wms.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.Date; /** * 调拨打印对象 wms_allocate_task @@ -26,6 +27,7 @@ public class WmsAllocateTask extends TenantEntity { /** * 调拨任务表主键 */ + @TableId(value = "allocate_task_id", type = IdType.AUTO) private Long allocateTaskId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java index 258f8b37..8663d4b8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java @@ -65,4 +65,12 @@ public interface IWmsAllocateOrderService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 审批调拨工单 + * + * @param bo 调拨工单 + * @return 是否审批成功 + */ + Integer approveAllocateOrder(WmsAllocateOrderBo bo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java index 476b440e..8e0b07fb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -200,7 +200,6 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { public Boolean updateByBo(WmsAllocateOrderBo bo) { WmsAllocateOrder update = MapstructUtils.convert(bo, WmsAllocateOrder.class); validEntityBeforeSave(update); - update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } @@ -225,4 +224,21 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 审批调拨工单 + * + * @param bo 调拨工单 + * @return 是否审批成功 + */ + @Override + public Integer approveAllocateOrder(WmsAllocateOrderBo bo) { + String username = LoginHelper.getUsername(); + WmsAllocateOrder update = MapstructUtils.convert(bo, WmsAllocateOrder.class); + validEntityBeforeSave(update); + update.setAuditTime(new Date()); + update.setAuditBy(username); + int rows = baseMapper.updateById(update); + return rows; + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index cf0ab6f1..53c172b4 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -530,6 +530,12 @@ if("1".equals(bo.getInstockType())){ // 工单类型(1采购订单) //TODO 做一些数据校验,如唯一约束 } + /** + * 审批入库单 + * + * @param bo 入库单 + * @return 是否审批成功 + */ @Override public Integer approveInstockOrder(WmsInstockOrderBo bo) { String username = LoginHelper.getUsername(); diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/ProdOrderInfoMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/ProdOrderInfoMapper.xml index 6aae2c18..8adc9d33 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/ProdOrderInfoMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/ProdOrderInfoMapper.xml @@ -20,7 +20,7 @@ * from prod_order_info t - left join base_material_info bmi on bmi.material_id = t.material_id + left join base_material_info_copy1 bmi on bmi.material_id = t.material_id left join prod_base_prod_line_info pli on t.dispatch_type = 1 and pli.prod_line_id = t.dispatch_id left join prod_base_route rt on t.dispatch_type = 2 and rt.route_id = t.dispatch_id left join prod_base_process_info pi on t.dispatch_type = 3 and pi.process_id = t.dispatch_id From 862806ea0ad51b3814e11a507d0b8472b31de412 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 5 Sep 2025 15:29:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?refactor(wms):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E5=88=86=E9=85=8D=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 合并了 queryPageList 和 queryList 方法的查询逻辑 - 优化了查询条件的构建方式,提高了代码可读性和维护性 - 移除了未使用的导入和冗余代码,简化了代码结构 --- .../WmsAllocateOrderDetailServiceImpl.java | 50 +++++++------------ 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index 4e0de819..9ab176ef 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -1,8 +1,5 @@ package org.dromara.wms.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -11,7 +8,6 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsAllocateOrderDetail; import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; @@ -58,7 +54,7 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai @Override public TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { // LambdaQueryWrapper lqw = buildQueryWrapper(bo); - MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -71,34 +67,27 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai */ @Override public List queryList(WmsAllocateOrderDetailBo bo) { - MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private MPJLambdaWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { - Map params = bo.getParams(); - MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class); - lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); - lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); - lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); - lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); - lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); - lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()); - return lqw; - } - private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderDetailBo bo) { + private MPJLambdaWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class) .selectAll(WmsAllocateOrderDetail.class) - .select(BaseMaterialInfo::getMaterialCode,BaseMaterialInfo::getMaterialName) - .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsAllocateOrderDetail::getMaterialId); - lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); - lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); - lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); - lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); - lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); - lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()).orderByDesc(WmsAllocateOrderDetail::getCreateTime); + + // 关联查询 + .select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsAllocateOrderDetail::getMaterialId) + + .eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()) + .eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()) + .eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()) + .eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()) + .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()) + .eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()) + .orderByDesc(WmsAllocateOrderDetail::getCreateTime); return lqw; } @@ -109,14 +98,14 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai * @return 是否新增成功 */ @Override - @Transactional(rollbackFor = Exception.class) + @Transactional( rollbackFor = Exception.class ) public Boolean insertByBo(List bo) { int i = 0; for (WmsAllocateOrderDetailBo detailBo : bo) { WmsAllocateOrderDetail add = MapstructUtils.convert(detailBo, WmsAllocateOrderDetail.class); /* add.setCreateBy(LoginHelper.getUsername()); add.setTenantId(LoginHelper.getTenantId());*/ - i = baseMapper.insert(add); + i = baseMapper.insert(add); } // int i = baseMapper.insertDetails(list); return i > 0; @@ -132,14 +121,13 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai public Boolean updateByBo(WmsAllocateOrderDetailBo bo) { WmsAllocateOrderDetail update = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); validEntityBeforeSave(update); - update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ - private void validEntityBeforeSave(WmsAllocateOrderDetail entity) { + private void validEntityBeforeSave(WmsAllocateOrderDetail entity){ //TODO 做一些数据校验,如唯一约束 } @@ -152,7 +140,7 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { + if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0;