From 344cdc52fb279bdfa1205abc4b0dd04d0be4fc2c Mon Sep 17 00:00:00 2001 From: wanghao Date: Mon, 10 Nov 2025 11:10:46 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=85=A5=E5=BA=93=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/wms/domain/WmsInStockDetails.java | 5 ++ .../wms/domain/WmsInventoryDetails.java | 9 +++ .../dromara/wms/domain/WmsWarehouseInfo.java | 1 + .../wms/domain/bo/WmsInStockDetailsBo.java | 4 ++ .../wms/domain/bo/WmsInventoryDetailsBo.java | 8 +++ .../wms/domain/bo/WmsWarehouseInfoBo.java | 1 + .../wms/domain/vo/WmsInStockDetailsVo.java | 6 ++ .../wms/domain/vo/WmsInventoryDetailsVo.java | 9 +++ .../wms/domain/vo/WmsWarehouseInfoVo.java | 1 + .../service/IWmsInventoryDetailsService.java | 2 + .../impl/WmsInStockBillServiceImpl.java | 55 +++++++++++++------ .../impl/WmsInventoryDetailsServiceImpl.java | 5 ++ 12 files changed, 89 insertions(+), 17 deletions(-) diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInStockDetails.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInStockDetails.java index 4491b2ff..4eab5ba5 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInStockDetails.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInStockDetails.java @@ -54,6 +54,10 @@ public class WmsInStockDetails extends TenantEntity { * 单价 */ private Double unitPrice; + /** + * 项目ID + */ + private Long projectId; /** * 入库数量 @@ -97,4 +101,5 @@ public class WmsInStockDetails extends TenantEntity { * 仓库名称 */ private String warehouseName; + } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInventoryDetails.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInventoryDetails.java index d80c232d..c8d0b15f 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInventoryDetails.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsInventoryDetails.java @@ -101,4 +101,13 @@ public class WmsInventoryDetails extends TenantEntity { * 物料型号 */ private String materialModel; + + /** + * 单价 + */ + private Double unitPrice; + /** + * 项目ID + */ + private Long projectId; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsWarehouseInfo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsWarehouseInfo.java index 87e1a42b..a5d585a9 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsWarehouseInfo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/WmsWarehouseInfo.java @@ -61,6 +61,7 @@ public class WmsWarehouseInfo extends TenantEntity { * 仓库状态(1启用 0禁用) */ private String activeFlag; + private String wmsStoreType; /** * 删除标志(0代表存在 1代表删除) diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInStockDetailsBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInStockDetailsBo.java index ac441951..d3039886 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInStockDetailsBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInStockDetailsBo.java @@ -51,6 +51,10 @@ public class WmsInStockDetailsBo extends BaseEntity { */ private Double unitPrice; + /** + * 项目ID + */ + private Long projectId; /** * 入库数量 */ diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryDetailsBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryDetailsBo.java index d7e2aa16..a303264d 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryDetailsBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryDetailsBo.java @@ -60,6 +60,14 @@ public class WmsInventoryDetailsBo extends BaseEntity { * 备注 */ private String remark; + /** + * 单价 + */ + private Double unitPrice; + /** + * 项目ID + */ + private Long projectId; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsWarehouseInfoBo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsWarehouseInfoBo.java index 180b4340..0139cfdf 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsWarehouseInfoBo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/bo/WmsWarehouseInfoBo.java @@ -55,6 +55,7 @@ public class WmsWarehouseInfoBo extends BaseEntity { * 仓库状态(1启用 0禁用) */ private String activeFlag; + private String wmsStoreType; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInStockDetailsVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInStockDetailsVo.java index 40f572c6..a6d87ad8 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInStockDetailsVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInStockDetailsVo.java @@ -115,4 +115,10 @@ public class WmsInStockDetailsVo implements Serializable { * 仓库名称 */ private String warehouseName; + + + /** + * 项目ID + */ + private Long projectId; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryDetailsVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryDetailsVo.java index 24d72b21..b88c2efc 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryDetailsVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryDetailsVo.java @@ -114,4 +114,13 @@ public class WmsInventoryDetailsVo implements Serializable { */ private String materialModel; + + /** + * 单价 + */ + private Double unitPrice; + /** + * 项目ID + */ + private Long projectId; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsWarehouseInfoVo.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsWarehouseInfoVo.java index 4349432c..69d8e61e 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsWarehouseInfoVo.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/domain/vo/WmsWarehouseInfoVo.java @@ -122,5 +122,6 @@ public class WmsWarehouseInfoVo implements Serializable { private Date updateTime; private String deptName; + private String wmsStoreType; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsInventoryDetailsService.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsInventoryDetailsService.java index 10b3cadc..13c02454 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsInventoryDetailsService.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/IWmsInventoryDetailsService.java @@ -66,4 +66,6 @@ public interface IWmsInventoryDetailsService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + void insertList(List inventoryDetailsList); } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockBillServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockBillServiceImpl.java index b9939909..def7e482 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockBillServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockBillServiceImpl.java @@ -5,30 +5,30 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.common.core.enums.FormatsType; -import org.dromara.common.core.utils.DateUtils; 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.tenant.helper.TenantHelper; +import org.dromara.system.api.RemoteCodeRuleService; import org.dromara.wms.domain.WmsInStockBill; import org.dromara.wms.domain.WmsInStockDetails; +import org.dromara.wms.domain.WmsInventoryDetails; import org.dromara.wms.domain.bo.WmsInStockBillBo; import org.dromara.wms.domain.vo.WmsInStockBillVo; +import org.dromara.wms.domain.vo.WmsWarehouseInfoVo; import org.dromara.wms.mapper.WmsInStockBillMapper; import org.dromara.wms.mapper.WmsInStockDetailsMapper; import org.dromara.wms.service.IWmsInStockBillService; +import org.dromara.wms.service.IWmsInventoryDetailsService; +import org.dromara.wms.service.IWmsWarehouseInfoService; import org.dromara.workflow.api.RemoteWorkflowService; import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.event.ProcessEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 物料入库Service业务层处理 @@ -42,6 +42,9 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService { private final WmsInStockBillMapper baseMapper; private final WmsInStockDetailsMapper wmsInStockDetailsMapper; + private final RemoteCodeRuleService remoteCodeRuleService; + private final IWmsInventoryDetailsService inventoryService; + private final IWmsWarehouseInfoService warehouseService; @DubboReference(timeout = 30000)//超时时间 private RemoteWorkflowService remoteWorkflowService;//流程 @@ -107,22 +110,40 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService { @Override public Boolean insertByBo(WmsInStockBillBo bo) { WmsInStockBill add = MapstructUtils.convert(bo, WmsInStockBill.class); + add.setInStockCode(remoteCodeRuleService.selectCodeRuleCode("1005")); // 查询创建时间为今天的入库单条数 - int count = baseMapper.selectCountNowInStore(); - String dateTimeNow = DateUtils.dateTimeNow(FormatsType.YYYYMMDD); - if (count > 0) { - String tag = String.format("%03d", count + 1); - add.setInStockCode("RK" + dateTimeNow + "-" + tag); - } else { - add.setInStockCode("RK" + dateTimeNow + "-" + "001"); - } + // int count = baseMapper.selectCountNowInStore(); + // String dateTimeNow = DateUtils.dateTimeNow(FormatsType.YYYYMMDD); + // if (count > 0) { + // String tag = String.format("%03d", count + 1); + // add.setInStockCode("RK" + dateTimeNow + "-" + tag); + // } else { + // add.setInStockCode("RK" + dateTimeNow + "-" + "001"); + // } boolean flag = baseMapper.insert(add) > 0; if (flag) { Long inStockBillId = add.getInStockBillId(); + WmsWarehouseInfoVo wmsWarehouseInfoVo = warehouseService.queryById(add.getWarehouseId()); + boolean insertInventortState = wmsWarehouseInfoVo.getWmsStoreType().equals("1"); + List inStockDetailsList = bo.getInStockDetailsList(); - // 设置入库单明细的入库单ID - inStockDetailsList.forEach(item -> item.setInStockBillId(inStockBillId)); - wmsInStockDetailsMapper.insert(inStockDetailsList); + List inventoryDetailsList = new ArrayList<>(inStockDetailsList.size()); + + + inStockDetailsList.forEach(item -> { + item.setInStockBillId(inStockBillId); // 设置入库单明细的入库单ID + item.setProjectId(bo.getProjectId()); //关联项目 + if (insertInventortState) { + WmsInventoryDetails inventoryDetails = MapstructUtils.convert(item, WmsInventoryDetails.class); + inventoryDetails.setInventoryAmount(item.getInStockAmount()); + inventoryDetailsList.add(inventoryDetails); + } + + }); + wmsInStockDetailsMapper.insert(inStockDetailsList); //插入子表 + if (insertInventortState) { + inventoryService.insertList(inventoryDetailsList); //插入库存 + } } return flag; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryDetailsServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryDetailsServiceImpl.java index b5fdb9d1..1edf4d3d 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryDetailsServiceImpl.java @@ -145,4 +145,9 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public void insertList(List inventoryDetailsList) { + baseMapper.insert(inventoryDetailsList); + } }