فهرست منبع

物资管理,当前库存展示修改,领用审核页面库存剩余数量展示修改,库存提醒页面领用量,剩余量展示修改

wangqiang 2 سال پیش
والد
کامیت
f94dadd0df

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

@@ -2,13 +2,41 @@
 <!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
-        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 a.id,a.create_by,a.create_date,a.update_by,a.update_date,a.del_flag,a.remarks,a.basic_id,a.recipient_agent,
+        a.collect_type,a.goods_name,a.collect_number,a.company,a.current_inventory,
+        su.name AS recipientAgent, su.id AS recipientAgentId, so.name AS recipientOffice,
+        d.id AS collectTypeId, d.name AS collectType,
+            IFNULL((
+                        sum( trade_number ) - b.collect_number
+                        ),
+                sum( trade_number )) 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 (
+                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
+                    AND e.del_flag = 0
+                GROUP BY
+                    e.goods_name
+                ) b ON a.goods_name = b.goods_name
+
+             LEFT JOIN material_management_warehouse_detailed c on a.goods_name = c.trade_name and a.collect_type = c.ware_house_type
+             LEFT JOIN material_management_warehouse_basics bas ON c.basic_id = bas.id
+
+             LEFT JOIN material_management_type d ON a.collect_type = d.id
+             WHERE a.basic_id = #{id} AND a.del_flag = '0' and c.del_flag = '0' AND ( bas.`status` = '0' OR bas.`status` = '5');
     </select>
     <select id="getByAttachmentId" resultType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto">
         SELECT

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

@@ -9,6 +9,7 @@ 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.Date;
 import java.util.List;
 
 /**
@@ -17,6 +18,34 @@ import java.util.List;
  **/
 public interface WareHouseBasicMapper extends BaseMapper<WareHouseBasic> {
 
+    /**
+     * 根据类型及物品名称查领用数量
+     * @param wareHouseType
+     * @param tradeName
+     * @return
+     */
+    String getCollectNumByType(@Param("wareHouseType") String wareHouseType,@Param("tradeName") String tradeName);
+
+    /**
+     * 根据时间查询库存数量
+     * @param tradeName
+     * @param wareHouseType
+     * @param createDate
+     * @return
+     */
+    String getWareHouseInfoByTime(@Param("tradeName") String tradeName,@Param("wareHouseType")String wareHouseType,
+                                  @Param("createDate")String createDate);
+
+    /**
+     * 根据时间查询库存数量
+     * @param tradeName
+     * @param wareHouseType
+     * @param createDate
+     * @return
+     */
+    String getCollectInfoByTime(@Param("tradeName") String tradeName,@Param("wareHouseType")String wareHouseType,
+                                  @Param("createDate")String createDate);
+
     IPage<WareHouseDto> findList(Page<WareHouseDto> page,@Param(Constants.WRAPPER) QueryWrapper<WareHouseDto> queryWrapper);
 
     String getUserNameByUserId(String id);

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

@@ -69,7 +69,7 @@
 				) b ON a.trade_name = b.goods_name
 				LEFT JOIN material_management_type c ON a.ware_house_type = c.id
 				${ew.customSqlSegment}
-				GROUP BY a.trade_name
+				GROUP BY a.trade_name,a.ware_house_type
 				HAVING sum( trade_number ) - IFNULL(collect_number,0) &lt;= 5
 				ORDER BY a.update_date DESC
 	</select>
@@ -109,6 +109,7 @@
 	<select id="wareHouseHistoryList"
 			resultType="com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto">
 		SELECT
+			b.create_date as dateTest,
 			a.id as wareHouseId,
 			a.ware_house_number,
 			a.ware_house_name,
@@ -117,7 +118,8 @@
 			so.name as wareHouseHandledByOff,
 			b.trade_name,
 			b.trade_number,
-			b.current_inventory
+			b.current_inventory,
+			b.ware_house_type
 		FROM
 			material_management_warehouse_basics a
 			LEFT JOIN
@@ -132,6 +134,7 @@
 	<select id="collectHistoryList"
 			resultType="com.jeeplus.test.materialManagement.wareHouse.service.dto.WareHouseDto">
 		SELECT
+			b.create_date as dateTest2,
 			a.id as collectId,
 			a.collect_no,
 			sy.name as collectHandleBy,
@@ -139,7 +142,8 @@
 			a.collect_date,
 			b.goods_name,
 			b.collect_number,
-			b.current_inventory
+			b.current_inventory,
+			b.collect_type as collectType
 		FROM
 			material_management_collect_basics a
 			LEFT JOIN
@@ -195,6 +199,52 @@
 		from material_management_warehouse_detailed
 		where trade_name = #{tradeName} and ware_house_type = #{typeId} and del_flag = '0'
 	</select>
+	<select id="getWareHouseInfoByTime" resultType="java.lang.String">
+		SELECT
+		IFNULL((sum(trade_number) - collect_number),sum(trade_number)) as tradeNumber
+		FROM
+		material_management_warehouse_detailed a
+		left join material_management_type c on a.ware_house_type = c.id
+
+		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 and e.del_flag = 0 and e.create_date &lt;= #{createDate} and e.collect_type = #{wareHouseType} and e.goods_name = #{tradeName}) b
+		on a.trade_name = b.goods_name
+
+		WHERE a.ware_house_type = #{wareHouseType} and a.trade_name = #{tradeName} and a.create_date &lt;= #{createDate}
+		GROUP BY a.trade_name,a.ware_house_type
+		ORDER BY a.ware_house_type DESC
+	</select>
+	<select id="getCollectInfoByTime" resultType="java.lang.String">
+		SELECT
+		IFNULL((sum(trade_number) - collect_number),sum(trade_number)) as tradeNumber
+		FROM
+		material_management_warehouse_detailed a
+		left join material_management_type c on a.ware_house_type = c.id
+
+		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 and e.del_flag = 0 and e.create_date &lt;= #{createDate} and e.collect_type = #{wareHouseType} and e.goods_name = #{tradeName}) b
+		on a.trade_name = b.goods_name
+
+		WHERE a.ware_house_type = #{wareHouseType} and a.trade_name = #{tradeName} and a.create_date &lt;= #{createDate}
+		GROUP BY a.trade_name,a.ware_house_type
+		ORDER BY a.ware_house_type DESC
+	</select>
+	<select id="getCollectNumByType" resultType="java.lang.String">
+		SELECT
+		sum( collect_number ) AS collect_number
+	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
+		AND e.del_flag = 0
+		and e.collect_type = #{wareHouseType} and e.goods_name = #{tradeName}
+	</select>
 	<update id="updateWarnFlagByTradeNameAndType">
 		update material_management_warehouse_detailed
 		set warn_flag = #{warnFlag}

+ 34 - 13
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/service/WareHouseBasicService.java

@@ -44,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -101,11 +102,11 @@ public class WareHouseBasicService {
 
         queryWrapper.eq("a.del_flag", "0");
         if (StringUtils.isNotEmpty(dto.getTradeName())) {
-            queryWrapper.like("b.trade_name", dto.getTradeName());
+            queryWrapper.eq("b.trade_name", dto.getTradeName());
         }
 
         if (StringUtils.isNotEmpty(dto.getWareHouseNumber())) {
-            queryWrapper.like("a.ware_house_number", dto.getWareHouseNumber());
+            queryWrapper.eq("a.ware_house_number", dto.getWareHouseNumber());
         }
 
         String[] wareHouseDates = dto.getWareHouseDates();
@@ -120,7 +121,15 @@ public class WareHouseBasicService {
                     .eq("a.`status`","5");
         });
 
-        return basicMapper.wareHouseHistoryList(page, queryWrapper);
+        IPage<WareHouseDto> iPage = basicMapper.wareHouseHistoryList(page, queryWrapper);
+        //根据时间查询当前库存
+        iPage.getRecords().stream().forEach(i->{
+            //根据商品名称,物品类型,时间查当前库存
+            String d = basicMapper.getWareHouseInfoByTime(i.getTradeName(),i.getWareHouseType(),i.getDateTest());
+            i.setCurrentInventory(d);
+        });
+        //根据查询领用明细
+        return iPage;
     }
 
     /**
@@ -132,11 +141,11 @@ public class WareHouseBasicService {
         queryWrapper.eq("a.del_flag", "0");
         queryWrapper.eq("a.status", "5");
         if (StringUtils.isNotEmpty(dto.getTradeName())) {
-            queryWrapper.like("b.goods_name", dto.getTradeName());
+            queryWrapper.eq("b.goods_name", dto.getTradeName());
         }
 
         if (StringUtils.isNotEmpty(dto.getCollectNo())) {
-            queryWrapper.like("a.collect_no", dto.getCollectNo());
+            queryWrapper.eq("a.collect_no", dto.getCollectNo());
         }
 
         String[] collectDates = dto.getCollectDates();
@@ -144,14 +153,14 @@ public class WareHouseBasicService {
 
             queryWrapper.between("a.collect_date", collectDates[0], collectDates[1]);
         }
-
-//        queryWrapper.and(wq ->{
-//            wq.eq("a.`status`","0")
-//                    .or()
-//                    .eq("a.`status`","5");
-//        });
-
-        return basicMapper.collectHistoryList(page, queryWrapper);
+        IPage<WareHouseDto> iPage = basicMapper.collectHistoryList(page, queryWrapper);
+        //根据时间查询当前库存
+        iPage.getRecords().stream().forEach(i->{
+            //根据商品名称,物品类型,时间查当前库存
+            String d = basicMapper.getCollectInfoByTime(i.getGoodsName(),i.getCollectType(),i.getDateTest2());
+            i.setCurrentInventory(d);
+        });
+        return iPage;
     }
 
     public String remove(String id) {
@@ -676,6 +685,18 @@ public class WareHouseBasicService {
         if (StringUtils.isNotEmpty(dto.getWareHouseType())) {
             queryWrapper.eq("c.id", dto.getWareHouseType());
         }
+        IPage<WareHouseDto> iPage = basicMapper.summaryList2(page, queryWrapper);
+        iPage.getRecords().stream().forEach(i->{
+            //根据领用类型及领用物品名称查领用数量
+            String collectNum = basicMapper.getCollectNumByType(i.getWareHouseType(),i.getTradeName());
+            i.setBorrowNumber(collectNum);
+            BigDecimal decimal1 = new BigDecimal(i.getAllNumber());
+            BigDecimal decimal2 = new BigDecimal(i.getBorrowNumber());
+
+            i.setTradeNumber(decimal1.subtract(decimal2).toString());
+        });
+
+
         return basicMapper.summaryList2(page, queryWrapper);
     }
 

+ 9 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/materialManagement/wareHouse/service/dto/WareHouseDto.java

@@ -17,6 +17,10 @@ import java.util.List;
 @Data
 public class WareHouseDto {
 
+    private String dateTest;
+
+    private String dateTest2;
+
     /**
      * 当前库存
      */
@@ -63,6 +67,11 @@ public class WareHouseDto {
     private String wareHouseType;
 
     /**
+     * 领用类型
+     */
+    private String collectType;
+
+    /**
      * 入库类型名称
      */
     private String wareHouseTypeName;