diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsInventoryDetailsController.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsInventoryDetailsController.java index 4cace20f..09847a68 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsInventoryDetailsController.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/controller/WmsInventoryDetailsController.java @@ -45,6 +45,11 @@ public class WmsInventoryDetailsController extends BaseController { public TableDataInfo list(WmsInventoryDetailsBo bo, PageQuery pageQuery) { return wmsInventoryDetailsService.queryPageList(bo, pageQuery); } + @SaCheckPermission("wms:inventoryDetails:list") + @GetMapping("/listCount") + public TableDataInfo listCount(WmsInventoryDetailsBo bo, PageQuery pageQuery) { + return wmsInventoryDetailsService.listCount(bo, pageQuery); + } /** * 导出库存明细列表 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 4eab5ba5..2ccf5552 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 @@ -79,22 +79,39 @@ public class WmsInStockDetails extends TenantEntity { */ private String delFlag; + @TableField(exist = false) + /** + * 成品编码 + */ + private String productCode; + + @TableField(exist = false) + /** + * 成品名称 + */ + private String productName; + + @TableField(exist = false) + private String externalBrand; + + /* @TableField(exist = false) /// SAP物料编码 private String materialCode; @TableField(exist = false) - /** + *//** * SAP物料名称 - */ + *//* private String materialName; @TableField(exist = false) + */ /** * 物料品牌 - */ + *//* private String materialBrand; @TableField(exist = false) - private String materialModel; + private String materialModel;*/ @TableField(exist = false) /** 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 c8d0b15f..9474e624 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 @@ -51,6 +51,7 @@ public class WmsInventoryDetails extends TenantEntity { * 库存数量 */ private Double inventoryAmount; + private Double startInventoryAmount; /** * 锁定数量 @@ -70,21 +71,7 @@ public class WmsInventoryDetails extends TenantEntity { @TableField(exist = false) private Double useAmount; - @TableField(exist = false) - /** - * SAP物料编码 - */ - private String materialCode; - @TableField(exist = false) - /** - * SAP物料名称 - */ - private String materialName; - @TableField(exist = false) - /** - * 物料品牌 - */ - private String materialBrand; + @TableField(exist = false) /** * 仓库编码 @@ -110,4 +97,25 @@ public class WmsInventoryDetails extends TenantEntity { * 项目ID */ private Long projectId; + + + @TableField(exist = false) + /** + * 成品编码 + */ + private String productCode; + + @TableField(exist = false) + /** + * 成品名称 + */ + private String productName; + + @TableField(exist = false) + /** + * 成品描述 + */ + private String productSpe; + @TableField(exist = false) + private String externalBrand; } 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 a303264d..5be2b9d9 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 @@ -68,6 +68,14 @@ public class WmsInventoryDetailsBo extends BaseEntity { * 项目ID */ private Long projectId; + /** + * 成品编码 + */ + private String productCode; - + /** + * 成品名称 + */ + private String productName; + private String externalBrand; } 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 a6d87ad8..e4fbf117 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 @@ -91,26 +91,35 @@ public class WmsInStockDetailsVo implements Serializable { */ @ExcelProperty(value = "更新时间") private Date updateTime; + /** + * 成品编码 + */ + private String productCode; /** - * SAP物料编码 + * 成品名称 */ + private String productName; + private String externalBrand; +/* *//** + * SAP物料编码 + *//* private String materialCode; - /** + *//** * SAP物料名称 - */ + *//* private String materialName; - /** + *//** * 物料品牌 - */ + *//* private String materialBrand; - /** + *//** * 物料型号 - */ - private String materialModel; + *//* + private String materialModel;*/ /** * 仓库名称 */ 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 b88c2efc..0bada427 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 @@ -123,4 +123,19 @@ public class WmsInventoryDetailsVo implements Serializable { * 项目ID */ private Long projectId; + + /** + * 成品编码 + */ + private String productCode; + + /** + * 成品名称 + */ + private String productName; + private String externalBrand; + /** + * 成品描述 + */ + private String productSpe; } 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 13c02454..079038c2 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 @@ -68,4 +68,6 @@ public interface IWmsInventoryDetailsService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); void insertList(List inventoryDetailsList); + + TableDataInfo listCount(WmsInventoryDetailsBo bo, PageQuery pageQuery); } 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 1fae4382..a352bf11 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 @@ -16,7 +16,6 @@ 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; @@ -42,9 +41,10 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService { private final WmsInStockBillMapper baseMapper; private final WmsInStockDetailsMapper wmsInStockDetailsMapper; - private RemoteCodeRuleService remoteCodeRuleService; private final IWmsInventoryDetailsService inventoryService; private final IWmsWarehouseInfoService warehouseService; + @DubboReference + private RemoteCodeRuleService remoteCodeRuleService; @DubboReference(timeout = 30000)//超时时间 private RemoteWorkflowService remoteWorkflowService;//流程 @@ -111,36 +111,30 @@ public class WmsInStockBillServiceImpl implements IWmsInStockBillService { public Boolean insertByBo(WmsInStockBillBo bo) { WmsInStockBill add = MapstructUtils.convert(bo, WmsInStockBill.class); add.setInStockCode(remoteCodeRuleService.selectCodeRuleCode("1005")); - Long inStockBillId = add.getInStockBillId(); - // WmsWarehouseInfoVo wmsWarehouseInfoVo = warehouseService.queryById(add.getWarehouseId()); - // boolean insertInventortState = wmsWarehouseInfoVo.getWmsStoreType().equals("1"); - // add.setInStockBillStatus(insertInventortState ? "3" : "4"); - // 查询创建时间为今天的入库单条数 - // 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"); - // } + add.setInStockBillStatus("3"); boolean flag = baseMapper.insert(add) > 0; if (flag) { + Long inStockBillId = add.getInStockBillId(); List inStockDetailsList = bo.getInStockDetailsList(); List inventoryDetailsList = new ArrayList<>(inStockDetailsList.size());//库存集合 + Long projectId = bo.getProjectId();// 项目ID 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); - // } + item.setProjectId(projectId); // 关联项目 + + WmsInventoryDetails inventory = new WmsInventoryDetails(); + inventory.setWarehouseId(item.getWarehouseId()); // 关联仓库 + inventory.setProjectId(projectId); // 关联项目 + inventory.setBatchNumber(item.getBatchNumber()); // 关联批次号 + inventory.setMaterielId(item.getMaterialId()); // 关联物料 + inventory.setUnitPrice(item.getUnitPrice()); + Double inStockAmount = item.getInStockAmount(); + inventory.setInventoryAmount(inStockAmount); + inventory.setStartInventoryAmount(inStockAmount); // 初始库存数量 + inventoryDetailsList.add(inventory); }); - wmsInStockDetailsMapper.insert(inStockDetailsList); //插入子表 - // if (insertInventortState) { - // inventoryService.insertList(inventoryDetailsList); //插入库存 - // } + wmsInStockDetailsMapper.insert(inStockDetailsList); //插入子表 + inventoryService.insertList(inventoryDetailsList); //插入库存 } return flag; } diff --git a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockDetailsServiceImpl.java b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockDetailsServiceImpl.java index 3fb54ac0..90c437ab 100644 --- a/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-wms/src/main/java/org/dromara/wms/service/impl/WmsInStockDetailsServiceImpl.java @@ -9,6 +9,7 @@ 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.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseProduct; import org.dromara.wms.domain.WmsInStockDetails; import org.dromara.wms.domain.WmsWarehouseInfo; import org.dromara.wms.domain.bo.WmsInStockDetailsBo; @@ -74,8 +75,8 @@ public class WmsInStockDetailsServiceImpl implements IWmsInStockDetailsService { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInStockDetails.class) .selectAll(WmsInStockDetails.class) - .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsInStockDetails::getMaterialId) - .select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialModel) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsInStockDetails::getMaterialId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getProductSpe) .leftJoin(WmsWarehouseInfo.class, WmsWarehouseInfo::getWarehouseId, WmsInStockDetails::getWarehouseId) .select(WmsWarehouseInfo::getWarehouseName) .eq(bo.getInStockBillId() != null, WmsInStockDetails::getInStockBillId, bo.getInStockBillId()) 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 1edf4d3d..4ca7c339 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 @@ -8,7 +8,7 @@ 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.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseProduct; import org.dromara.wms.domain.WmsInventoryDetails; import org.dromara.wms.domain.WmsWarehouseInfo; import org.dromara.wms.domain.bo.WmsInventoryDetailsBo; @@ -19,7 +19,6 @@ import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; -import java.util.WeakHashMap; /** * 库存明细Service业务层处理 @@ -58,6 +57,31 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi return TableDataInfo.build(result); } + @Override + public TableDataInfo listCount(WmsInventoryDetailsBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildCountWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + private MPJLambdaWrapper buildCountWrapper(WmsInventoryDetailsBo bo) { + // Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryDetails.class) + .selectAs("sum(inventory_amount) ", WmsInventoryDetails::getInventoryAmount) + .selectAs("sum(locked_amount)", WmsInventoryDetails::getLockedAmount) + .select(WmsInventoryDetails::getWarehouseId, WmsInventoryDetails::getMaterielId) + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsInventoryDetails::getMaterielId) // 物料 + .select(WmsBaseProduct::getProductName, WmsBaseProduct::getProductCode, WmsBaseProduct::getExternalBrand,WmsBaseProduct::getProductSpe) // 物料名称、编码、品牌 + .leftJoin(WmsWarehouseInfo.class, WmsWarehouseInfo::getWarehouseId, WmsInventoryDetails::getWarehouseId) // 仓库 + .select(WmsWarehouseInfo::getWarehouseName) + .eq(bo.getWarehouseId() != null, WmsInventoryDetails::getWarehouseId, bo.getWarehouseId()) // 仓库id + .like(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode()) // 物料编码 + .like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) // 物料名称 + .eq(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand, bo.getExternalBrand()) // 品牌 + .groupBy(WmsInventoryDetails::getMaterielId, WmsInventoryDetails::getWarehouseId); + return lqw; + } + /** * 查询符合条件的库存明细列表 * @@ -70,14 +94,15 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi return baseMapper.selectVoList(lqw); } + private MPJLambdaWrapper buildQueryWrapper(WmsInventoryDetailsBo bo) { // Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryDetails.class) .selectAll(WmsInventoryDetails.class) - .selectAs("inventory_amount - locked_amount", WmsInventoryDetailsVo::getUseAmount) + // .selectAs("inventory_amount - locked_amount", WmsInventoryDetailsVo::getUseAmount) .eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryDetails::getLocationCode, bo.getLocationCode()) .eq(bo.getWarehouseId() != null, WmsInventoryDetails::getWarehouseId, bo.getWarehouseId()) - .like(bo.getMaterielId() != null, WmsInventoryDetails::getMaterielId, bo.getMaterielId()) + .eq(bo.getMaterielId() != null, WmsInventoryDetails::getMaterielId, bo.getMaterielId()) .eq(StringUtils.isNotBlank(bo.getBatchNumber()), WmsInventoryDetails::getBatchNumber, bo.getBatchNumber()) .eq(bo.getInventoryAmount() != null, WmsInventoryDetails::getInventoryAmount, bo.getInventoryAmount()) .eq(bo.getLockedAmount() != null, WmsInventoryDetails::getLockedAmount, bo.getLockedAmount()) @@ -85,12 +110,11 @@ public class WmsInventoryDetailsServiceImpl implements IWmsInventoryDetailsServi .leftJoin(WmsWarehouseInfo.class, WmsWarehouseInfo::getWarehouseId, WmsInventoryDetails::getWarehouseId) .select(WmsWarehouseInfo::getWarehouseName, WmsWarehouseInfo::getWarehouseCode) // 关联物料信息 - .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsInventoryDetails::getMaterielId) - .select(BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialBrand, BaseMaterialInfo::getMaterialModel) - - - - ; + .leftJoin(WmsBaseProduct.class, WmsBaseProduct::getProductId, WmsInventoryDetails::getMaterielId) + .select(WmsBaseProduct::getProductCode, WmsBaseProduct::getProductName, WmsBaseProduct::getExternalBrand, WmsBaseProduct::getProductSpe) + .like(StringUtils.isNotBlank(bo.getProductCode()), WmsBaseProduct::getProductCode, bo.getProductCode()) + .like(StringUtils.isNotBlank(bo.getProductName()), WmsBaseProduct::getProductName, bo.getProductName()) + .eq(StringUtils.isNotBlank(bo.getExternalBrand()), WmsBaseProduct::getExternalBrand, bo.getExternalBrand()); return lqw; }