24282 преди 2 години
родител
ревизия
0a37602d6d

+ 0 - 2
hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockDetail.java

@@ -3,7 +3,6 @@ package com.fjhx.entity.stock;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -32,7 +31,6 @@ public class StockDetail implements Serializable {
     /**
      * 软删除
      */
-    @TableLogic
     @TableField("IsDelete")
     private Boolean isdelete;
 

+ 10 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockController.java

@@ -1,5 +1,7 @@
 package com.fjhx.stock.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.params.stock.StockOutDto;
 import com.fjhx.stock.service.StockService;
 import org.springblade.core.tool.api.R;
@@ -10,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  * 物料库存 前端控制器
@@ -34,5 +38,11 @@ public class StockController {
         return R.success();
     }
 
+    @PostMapping("/materialStock")
+    public R materialStock(BaseSelectDto dto) {
+        Page<Map<String, Object>> result = stockService.materialStock(dto);
+        return R.success(result);
+    }
+
 }
 

+ 8 - 1
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockMapper.java

@@ -1,7 +1,12 @@
 package com.fjhx.stock.mapper;
 
-import com.fjhx.entity.stock.Stock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.Stock;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface StockMapper extends BaseMapper<Stock> {
 
+    Page<Map<String, Object>> materialStock(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
+
 }

+ 12 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockMapper.xml

@@ -2,4 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.stock.mapper.StockMapper">
 
+    <select id="materialStock" resultType="java.util.Map">
+        SELECT s.MaterialCode,
+               m.`Name`,
+               sum(sd.Quantity) Quantity,
+               m.StockUnitID,
+               m.Spec
+        FROM stock s
+                 LEFT JOIN stock_detail sd ON s.MaterialCode = sd.MaterialCode
+                 LEFT JOIN material m ON sd.MaterialCode = m.`Code`
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 44 - 48
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.xml

@@ -82,54 +82,50 @@
     <select id="remainingTodayPage" resultType="java.util.LinkedHashMap">
         SELECT t.*,
                t2.changeNum
-        FROM (
-                 SELECT m.ID                                                                               AS materialId,
-                        mc.NAME                                                                            AS categoryName,
-                        m.NAME                                                                             AS materialName,
-                        m.CODE                                                                             AS materialCode,
-                        m.Width                                                                            AS materialWidth,
-                        sum(sd.Quantity)                                                                   AS sum,
-                        count(sd.Quantity)                                                                 AS count,
-                        m.SafetyStock                                                                      AS materialSafetyStock,
-                        if(a.MaterialCode is null, 1,
-                           IF(a.CheckTagCount = a.TagQuantity AND a.CheckTagCount = a.HandTagCount, 1,
-                              0))                                                                          AS inventoryResults,
-                        ifnull(a.CheckTagCount - a.TagQuantity, 0)                                         AS correctionQuantity,
-                        a.CheckTime                                                                        AS checkTime,
-                        uu.RealName                                                                        AS OperUserName
-                 FROM material m
-                          LEFT JOIN stock_detail sd ON sd.MaterialCode = m.`code`
-                          LEFT JOIN (
-                     SELECT HandTagCount,
-                            TagQuantity,
-                            CheckTagCount,
-                            MaterialCode,
-                            CheckTime,
-                            RecordId
-                     FROM (SELECT scd.HandTagCount,
-                                  scd.TagQuantity,
-                                  scd.CheckTagCount,
-                                  scd.MaterialCode,
-                                  scd.CheckTime,
-                                  scd.RecordId,
-                                  row_number() over ( PARTITION BY MaterialCode ORDER BY CheckTime DESC ) AS r_index
-                           FROM stock_checkrecorddetail scd
-                           WHERE CheckTime IS NOT NULL) aaa
-                     WHERE r_index = 1
-                 ) a ON m.CODE = a.MaterialCode
-                          LEFT JOIN stock_checkrecord sc ON a.RecordId = sc.ID
-                          LEFT JOIN u_user uu ON uu.id = sc.OperUserId
-                          LEFT JOIN material_category mc ON mc.CODE = m.CategoryCode
-                     ${ew.customSqlSegment}
-             ) t
-                 LEFT JOIN (
-            SELECT swd.materialCode,
-                   sum(swd.ChangeNum) changeNum
-            FROM stock_waterdetial swd
-            WHERE datediff(now(), swd.CreatedTime) &lt; 30
-              AND swd.StockChangeType IN (20, 23)
-            GROUP BY swd.MaterialCode
-        ) t2 on t2.materialCode = t.materialCode
+        FROM (SELECT m.ID                                       AS materialId,
+                     mc.NAME                                    AS categoryName,
+                     m.NAME                                     AS materialName,
+                     m.CODE                                     AS materialCode,
+                     m.Width                                    AS materialWidth,
+                     sum(sd.Quantity)                           AS sum,
+                     count(sd.Quantity)                         AS count,
+                     m.SafetyStock                              AS materialSafetyStock,
+                     if(a.MaterialCode is null, 1,
+                        IF(a.CheckTagCount = a.TagQuantity AND a.CheckTagCount = a.HandTagCount, 1,
+                           0))                                  AS inventoryResults,
+                     ifnull(a.CheckTagCount - a.TagQuantity, 0) AS correctionQuantity,
+                     a.CheckTime                                AS checkTime,
+                     uu.RealName                                AS OperUserName
+              FROM material m
+                       LEFT JOIN stock_detail sd ON sd.MaterialCode = m.`code`
+                       LEFT JOIN (SELECT HandTagCount,
+                                         TagQuantity,
+                                         CheckTagCount,
+                                         MaterialCode,
+                                         CheckTime,
+                                         RecordId
+                                  FROM (SELECT scd.HandTagCount,
+                                               scd.TagQuantity,
+                                               scd.CheckTagCount,
+                                               scd.MaterialCode,
+                                               scd.CheckTime,
+                                               scd.RecordId,
+                                               row_number() over ( PARTITION BY MaterialCode ORDER BY CheckTime DESC ) AS r_index
+                                        FROM stock_checkrecorddetail scd
+                                        WHERE CheckTime IS NOT NULL) aaa
+                                  WHERE r_index = 1) a ON m.CODE = a.MaterialCode
+                       LEFT JOIN stock_checkrecord sc ON a.RecordId = sc.ID
+                       LEFT JOIN u_user uu ON uu.id = sc.OperUserId
+                       LEFT JOIN material_category mc ON mc.CODE = m.CategoryCode
+                  ${ew.customSqlSegment}) t
+                 LEFT JOIN
+             (SELECT swd.materialCode,
+                     sum(swd.ChangeNum) changeNum
+              FROM stock_waterdetial swd
+              WHERE datediff(now(), swd.CreatedTime) &lt; 30
+                AND swd.StockChangeType IN (20, 23)
+                AND swd.IsDelete = 0
+              GROUP BY swd.MaterialCode) t2 on t2.materialCode = t.materialCode
         order by t2.changeNum desc
     </select>
 

+ 6 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockService.java

@@ -1,9 +1,13 @@
 package com.fjhx.stock.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.base.BaseService;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.params.stock.StockOutDto;
 
+import java.util.Map;
+
 /**
  * <p>
  * 物料库存 服务类
@@ -16,4 +20,6 @@ public interface StockService extends BaseService<Stock> {
 
     void out(StockOutDto dto);
 
+    Page<Map<String, Object>> materialStock(BaseSelectDto dto);
+
 }

+ 16 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockServiceImpl.java

@@ -2,7 +2,9 @@ package com.fjhx.stock.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.stock.StockDetail;
 import com.fjhx.entity.stock.StockWater;
@@ -13,6 +15,8 @@ import com.fjhx.stock.service.StockDetailService;
 import com.fjhx.stock.service.StockService;
 import com.fjhx.stock.service.StockWaterService;
 import com.fjhx.stock.service.StockWaterdetialService;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import com.fjhx.utils.wrapperUtil.KeywordData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -83,6 +87,18 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     }
 
+    @Override
+    public Page<Map<String, Object>> materialStock(BaseSelectDto dto) {
+        IWrapper<Object> wrapper = IWrapper.getWrapper(dto)
+                .keyword(new KeywordData("s.MaterialCode"), new KeywordData("m.`Name`"))
+                .eq("s.IsDelete", 0)
+                .eq("sd.IsDelete", 0)
+                .groupBy("s.MaterialCode")
+                .orderByAsc("s.MaterialCode");
+
+        return baseMapper.materialStock(dto.getPage(), wrapper);
+    }
+
     /**
      * 扣减库存
      */

+ 1 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterServiceImpl.java

@@ -760,6 +760,7 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
                 .getWrapper();
 
         wrapper.eq("m.IsDelete", 0);
+        wrapper.eq("sd.IsDelete", 0);
 
         // 01.
         // 03.008.