From 8c7bd9143f75ef085c36f11b95c8627160706ba8 Mon Sep 17 00:00:00 2001
From: youjie <272855983@qq.com>
Date: Mon, 18 Sep 2023 16:17:28 +0800
Subject: [PATCH] 通过物料编码在库存查看界面查询库存

---
 ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue                                                     | 15 ++++++++++-----
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java                |  8 ++++++--
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java    | 19 +++++++++++++++++--
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java                  |  4 ++++
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java         |  2 ++
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java |  9 +++++++++
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java                |  3 +++
 7 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
index 2d23e41..ded4c9f 100644
--- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
@@ -20,11 +20,16 @@
               <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
             </a-form-item>
           </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="容器编码">
-                <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
-              </a-form-item>
-            </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="物料编码">
+              <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="容器编码">
+              <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
+            </a-form-item>
+          </a-col>
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="容器状态">
               <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus"
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
index 971beac..71453eb 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
@@ -196,8 +196,12 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container
             .eq(StringUtils.isNotEmpty(container.getCode()), Container::getCode, container.getCode())
             .eq(StringUtils.isNotEmpty(container.getLocationCode()), Container::getLocationCode, container.getLocationCode());
         List<Container> list = this.list(lambdaQueryWrapper);
-        list.addAll(containerList);
-        return list;
+        if (containerList.size() != 0) {
+            containerList.addAll(list);
+            return containerList;
+        } else {
+            return list;
+        }
     }
 
     private int getStartNumber(String containerTypeCode, String warehouseCode) {
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java
index f646847..f903443 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java
@@ -43,6 +43,7 @@ import org.springframework.web.servlet.ModelAndView;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
@@ -86,13 +87,14 @@ public class InventoryHeaderController extends JeecgController<InventoryHeader, 
     public Result<IPage<InventoryHeader>> queryPageList(InventoryHeader inventoryHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
         HuahengJwtUtil.setWarehouseCode(req, inventoryHeader);
+        String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
         String realName = HuahengJwtUtil.getCurrentOperator();
+        String materialCode = inventoryHeader.getMaterialCode();
         String inventoryHeaderZoneCode = inventoryHeader.getZoneCode();
         LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery();
         QueryWrapper<InventoryHeader> queryWrapper = QueryGenerator.initQueryWrapper(inventoryHeader, req.getParameterMap());
         queryWrapper.orderByDesc("id");
-        Page<InventoryHeader> page = new Page<InventoryHeader>(pageNo, pageSize);
-        IPage<InventoryHeader> pageList = inventoryHeaderService.page(page, queryWrapper);
+        inventoryHeaderLambdaQueryWrapper = queryWrapper.lambda();
         if (StringUtils.isEmpty(inventoryHeaderZoneCode)) {
             if (StringUtils.isNotEmpty(realName)) {
                 SysUser sysUser = sysUserService.getUserByRealName(realName);
@@ -105,6 +107,19 @@ public class InventoryHeaderController extends JeecgController<InventoryHeader, 
                 }
             }
         }
+        if (StringUtils.isNotEmpty(materialCode)) {
+            InventoryDetail inventoryDetail = new InventoryDetail();
+            inventoryDetail.setMaterialCode(materialCode);
+            List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByMaterialCode(materialCode, warehouseCode);
+            if (CollectionUtils.isNotEmpty(inventoryDetailList)) {
+                List<String> containerCodeList = inventoryDetailList.stream().distinct().map(InventoryDetail::getContainerCode).collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(containerCodeList)) {
+                    inventoryHeaderLambdaQueryWrapper.in(InventoryHeader::getContainerCode, containerCodeList);
+                }
+            }
+        }
+        Page<InventoryHeader> page = new Page<InventoryHeader>(pageNo, pageSize);
+        IPage<InventoryHeader> pageList = inventoryHeaderService.page(page, queryWrapper);
         return Result.OK(pageList);
     }
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
index 799015e..4daf9c3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
@@ -74,6 +74,10 @@ public class InventoryHeader implements Serializable {
     @Excel(name = "总重量", width = 15)
     @ApiModelProperty(value = "总重量")
     private Integer totalWeight;
+    /** 物料编码 */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "物料编码")
+    private String materialCode;
     /** 备用字段1 */
     @Excel(name = "备用字段1", width = 15)
     @ApiModelProperty(value = "备用字段1")
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
index f7fe95a..572289d 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java
@@ -27,6 +27,8 @@ public interface IInventoryDetailService extends IService<InventoryDetail> {
 
     List<InventoryDetail> getInventoryDetailListByContainerCode(String containerCode, String warehouseCode);
 
+    List<InventoryDetail> getInventoryDetailListByMaterialCode(String materialCode, String warehouseCode);
+
     // 求一种物料的库存之和(总数)
     BigDecimal getInventorySumQty(InventoryDetail inventoryDetail);
 
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
index f9ef9c1..11d84e8 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java
@@ -89,6 +89,15 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
     }
 
     @Override
+    public List<InventoryDetail> getInventoryDetailListByMaterialCode(String materialCode, String warehouseCode) {
+        LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
+        inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getMaterialCode, materialCode).eq(InventoryDetail::getWarehouseCode, warehouseCode)
+            .eq(InventoryDetail::getEnable, QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE);
+        List<InventoryDetail> inventoryDetailList = list(inventoryDetailLambdaQueryWrapper);
+        return inventoryDetailList;
+    }
+
+    @Override
     public BigDecimal getInventorySumQty(InventoryDetail inventoryDetail) {
         LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
         inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getInventoryStatus, inventoryDetail.getInventoryStatus())
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
index 06f7675..4661a15 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -1887,6 +1887,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 throw new JeecgBootException("快速入库, 生成补充任务时必须有入库口");
             }
         }
+        if (!receiptHeaderService.updateReceiptHeader(receiptHeader.getId())) {
+            throw new JeecgBootException("快速入库, 更新入库表单头失败");
+        }
         return Result.OK("快速入库成功");
     }
 
--
libgit2 0.22.2