Explorar o código

领用审批人查看库存

wangqiang %!s(int64=2) %!d(string=hai) anos
pai
achega
f20476514a

+ 7 - 33
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/collect/mapper/xml/CollectDetailedMapper.xml

@@ -2,39 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.test.materialManagement.collect.mapper.CollectDetailedMapper">
     <select id="getByBasicId" resultType="com.jeeplus.test.materialManagement.collect.domain.CollectDetailed">
-            SELECT
-        a.*,
-        su.NAME AS recipientAgent,
-        su.id AS recipientAgentId,
-        so.NAME AS recipientOffice,
-        d.id AS collectTypeId,
-        d.NAME AS collectType,
-        sum(test2.tradeNumber) as surplusNumber
-    FROM
-        material_management_collect_detailed a
-        LEFT JOIN sys_user su ON a.recipient_agent = su.id
-        LEFT JOIN sys_office so ON su.office_id = so.id
-        LEFT JOIN material_management_type d ON a.collect_type = d.id
-        LEFT JOIN (
-            SELECT
-                a.ware_house_type,
-                a.trade_name,
-                IFNULL((sum(trade_number) - collect_number),sum(trade_number)) as tradeNumber
-            FROM
-                material_management_warehouse_detailed a
-                left join
-                (select sum(collect_number) as collect_number,goods_name,status from material_management_collect_detailed e
-                left join material_management_collect_basics f on e.basic_id = f.id and f.del_flag = 0
-                WHERE f.`status` = 5
-                GROUP BY e.goods_name) b
-                on a.trade_name = b.goods_name
-
-                LEFT JOIN material_management_warehouse_basics bas on a.basic_id = bas.id
-                left join material_management_type c on a.ware_house_type = c.id
-                GROUP BY a.trade_name
-        ) test2 on a.collect_type = test2.ware_house_type
-    WHERE
-        a.basic_id = #{id} and a.del_flag = '0'
+        select a.*,su.name as recipientAgent,su.id as recipientAgentId,
+        so.name as recipientOffice,d.id as collectTypeId, d.name as collectType
+        from material_management_collect_detailed a
+        left join sys_user su on a.recipient_agent = su.id
+        left join sys_office so on su.office_id = so.id
+        left join material_management_type d on a.collect_type = d.id
+        where a.basic_id = #{basicId} and a.del_flag = '0'
     </select>
     <select id="getByAttachmentId" resultType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto">
         SELECT

+ 11 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/collect/service/CollectService.java

@@ -19,10 +19,13 @@ import com.jeeplus.test.materialManagement.collect.mapper.CollectBasicMapper;
 import com.jeeplus.test.materialManagement.collect.mapper.CollectDetailedMapper;
 import com.jeeplus.test.materialManagement.collect.service.dto.CollectDto;
 import com.jeeplus.test.materialManagement.collect.service.dto.WareHouseSummaryDto;
+import com.jeeplus.test.materialManagement.wareHouse.domain.WareHouseBasic;
 import com.jeeplus.test.materialManagement.wareHouse.domain.WareHouseDetailed;
 import com.jeeplus.test.materialManagement.wareHouse.domain.WareHouseSummary;
+import com.jeeplus.test.materialManagement.wareHouse.mapper.WareHouseBasicMapper;
 import com.jeeplus.test.materialManagement.wareHouse.mapper.WareHouseDetailedMapper;
 import com.jeeplus.test.materialManagement.wareHouse.mapper.WareHouseSummaryMapper;
+import com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto;
 import com.jeeplus.test.mould.service.SerialnumTplService;
 import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.oss.mapper.OssServiceMapper;
@@ -70,6 +73,9 @@ public class CollectService {
     @Resource
     private WareHouseDetailedMapper wareHouseDetailedMapper;
 
+    @Resource
+    private WareHouseBasicMapper wareHouseBasicMapper;
+
     public void updateStatusById(CollectDto dto) {
         basicMapper.updateStatusById(dto.getId(), dto.getStatus());
     }
@@ -195,6 +201,8 @@ public class CollectService {
                         Double wareHouseNum = summaryMapper.getInfoByTradeName(detailInfo.getGoodsName(), detailInfo.getCollectType());
                         if (null != wareHouseNum) {
                             double num = wareHouseNum - Double.parseDouble(detailInfo.getCollectNumber());
+                            detailInfo.setSurplusNumber(num + "");
+                            detailedMapper.updateById(detailInfo);
                             //当小于5的时候发起通知
                             if (num < 5 ) {
                                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
@@ -270,6 +278,9 @@ public class CollectService {
                 detailed.setDelFlag(0);
                 // 保存基础表信息主键值
                 detailed.setBasicId(id);
+                //获取该商品对应的库存数据
+                WareHouseDto wareHouseDto = wareHouseBasicMapper.getByTypeAndGoodsName(detailed.getGoodsName(), detailed.getCollectTypeId());
+                detailed.setSurplusNumber(wareHouseDto.getTradeNumber());
                 detailedMapper.insert(detailed);
                 //保存详情列表附件信息
                 if (CollectionUtils.isNotEmpty(detailed.getFileInfoLost())){

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/controller/WareHouseController.java

@@ -115,6 +115,18 @@ public class WareHouseController {
     }
 
     /**
+     * 入库汇总列表查询只展示小于等于5的数据
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value = "入库汇总列表查询只展示小于等于5的数据")
+    @GetMapping("/wareHouseSummaryList2")
+    public ResponseEntity<IPage<WareHouseDto>> wareHouseSummaryList2(Page<WareHouseDto> page, WareHouseDto dto) throws Exception{
+        IPage<WareHouseDto> iPage = basicService.summaryList2(page, dto);
+        return ResponseEntity.ok(iPage);
+    }
+
+    /**
      * 新增/修改
      * @param dto
      * @return

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/mapper/WareHouseBasicMapper.java

@@ -9,6 +9,8 @@ import com.jeeplus.test.materialManagement.wareHouse.domain.WareHouseBasic;
 import com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * @author: 王强
  * @create: 2022-12-29 16:39
@@ -21,9 +23,19 @@ public interface WareHouseBasicMapper extends BaseMapper<WareHouseBasic> {
 
     IPage<WareHouseDto> summaryList(Page<WareHouseDto> page,@Param(Constants.WRAPPER) QueryWrapper<WareHouseDto> queryWrapper);
 
+    IPage<WareHouseDto> summaryList2(Page<WareHouseDto> page,@Param(Constants.WRAPPER) QueryWrapper<WareHouseDto> queryWrapper);
+
     IPage<WareHouseDto> wareHouseHistoryList(Page<WareHouseDto> page,@Param(Constants.WRAPPER) QueryWrapper<WareHouseDto> queryWrapper);
 
     IPage<WareHouseDto> collectHistoryList(Page<WareHouseDto> page,@Param(Constants.WRAPPER) QueryWrapper<WareHouseDto> queryWrapper);
 
     String findRequestId(String purchaseNo);
+
+    /**
+     * 根据领用类型和商品名称获取库存数量
+     * @param collectTypeId
+     * @param goodsName
+     */
+    WareHouseDto getByTypeAndGoodsName(@Param("goodsName")String goodsName,
+                               @Param("collectTypeId")String collectTypeId);
 }

+ 58 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/mapper/xml/WareHouseBasicMapper.xml

@@ -28,6 +28,35 @@
 	<select id="getUserNameByUserId" resultType="java.lang.String">
 		select name from sys_user where id = #{id}
 	</select>
+	<select id="summaryList2"
+			resultType="com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto">
+		SELECT
+			a.id,
+			a.create_by,
+			a.create_date,
+			a.ware_house_type,
+			a.trade_name,
+			a.company,
+			c.name as wareHouseTypeName,
+			sum(trade_number) as allNumber,
+			b.collect_number as borrowNumber,
+			IFNULL((sum(trade_number) - collect_number),sum(trade_number)) as tradeNumber
+		FROM
+			material_management_warehouse_detailed a
+			left join
+			(select sum(collect_number) as collect_number,goods_name,status from material_management_collect_detailed e
+			left join material_management_collect_basics f on e.basic_id = f.id and f.del_flag = 0
+			WHERE f.`status` = 5
+			GROUP BY e.goods_name) b
+			on a.trade_name = b.goods_name
+
+			LEFT JOIN material_management_warehouse_basics bas on a.basic_id = bas.id
+			left join material_management_type c on a.ware_house_type = c.id
+			${ew.customSqlSegment}
+			GROUP BY a.trade_name
+			HAVING sum( trade_number ) - IFNULL(collect_number,0) &lt;= 5
+			ORDER BY a.update_date DESC
+	</select>
     <select id="summaryList"
             resultType="com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto">
 		SELECT
@@ -103,4 +132,33 @@
 			${ew.customSqlSegment}
 		ORDER BY a.update_date DESC
 	</select>
+	<select id="getByTypeAndGoodsName"
+			resultType="com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto">
+		SELECT
+			a.id,
+			a.create_by,
+			a.create_date,
+			a.ware_house_type,
+			a.trade_name,
+			a.company,
+			c.name as wareHouseTypeName,
+			sum(trade_number) as allNumber,
+			b.collect_number as borrowNumber,
+			IFNULL((sum(trade_number) - collect_number),sum(trade_number)) as tradeNumber
+		FROM
+			material_management_warehouse_detailed a
+			left join
+			(select sum(collect_number) as collect_number,goods_name,status from material_management_collect_detailed e
+			left join material_management_collect_basics f on e.basic_id = f.id and f.del_flag = 0
+			WHERE f.`status` = 5
+			GROUP BY e.goods_name) b
+			on a.trade_name = b.goods_name
+
+			LEFT JOIN material_management_warehouse_basics bas on a.basic_id = bas.id
+			left join material_management_type c on a.ware_house_type = c.id
+			where a.trade_name = #{goodsName} and a.ware_house_type = #{collectTypeId}
+			GROUP BY a.trade_name
+			HAVING sum( trade_number ) - IFNULL(collect_number,0) > 0
+			ORDER BY a.update_date DESC
+	</select>
 </mapper>

+ 28 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/service/WareHouseBasicService.java

@@ -475,6 +475,34 @@ public class WareHouseBasicService {
     /**
      * 列表查询
      */
+    public IPage<WareHouseDto> summaryList2(Page<WareHouseDto> page , WareHouseDto dto) throws Exception{
+        QueryWrapper<WareHouseDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dto, WareHouseDto.class);
+
+        queryWrapper.eq("a.del_flag", "0");
+        // 库存数量小于等于0的不展示
+//        queryWrapper.gt("a.trade_number - b.collect_number", "0");
+//        if (StringUtils.isNotEmpty(dto.getWareHouseNumber())) {
+//            queryWrapper.like("c.ware_house_number", dto.getWareHouseNumber());
+//        }
+        if (StringUtils.isNotEmpty(dto.getTradeName())) {
+            queryWrapper.like("a.trade_name", dto.getTradeName());
+        }
+        queryWrapper.and(wq ->{
+            wq.eq("bas.`status`","0")
+                    .or()
+                    .eq("bas.`status`","5");
+        });
+
+        //入库类型
+        if (StringUtils.isNotEmpty(dto.getWareHouseType())) {
+            queryWrapper.eq("c.id", dto.getWareHouseType());
+        }
+        return basicMapper.summaryList(page, queryWrapper);
+    }
+
+    /**
+     * 列表查询
+     */
     public IPage<WareHouseDto> summaryList(Page<WareHouseDto> page , WareHouseDto dto) throws Exception{
         QueryWrapper<WareHouseDto> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dto, WareHouseDto.class);