Parcourir la source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/dk/mdm/mapper/mac/RecPayMapper.xml
#	src/main/java/com/dk/mdm/model/query/mac/RecPayQuery.java
姜永辉 il y a 2 ans
Parent
commit
c7a75d741e

+ 13 - 5
src/main/java/com/dk/mdm/controller/report/ReportController.java

@@ -20,18 +20,26 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @author : 周兴
- * @desc : 控件数据源API
- * @date : 2023/1/3 17:21
+ * @desc   : 报表数据源
+ * @author : 常皓宁
+ * @date   : 2024/4/11 8:49
  */
-@Api(tags = "控件数据源API")
+@Api(tags = "报表数据源API")
 @RestController
-@RequestMapping("/mst/common")
+@RequestMapping("/mst/report")
 public class ReportController  {
 
     @Autowired
     private ReportService reportService;
 
+    @ApiOperation(
+            value = "获取库存",
+            notes = "获取库存"
+    )
+    @PostMapping("get_ivt_detail_report")
+    public ResponseResultVO<List<Map<String, Object>>> getIvtDetailReport(@RequestBody Map<String, Object> param) {
+        return reportService.getIvtDetailReport(param);
+    }
 
 }
 

+ 55 - 27
src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml

@@ -352,19 +352,29 @@
 
     <!-- 获取仓库 -->
     <select id="getWarehouse" resultType="java.util.Map">
-        SELECT tmw.wh_id as "whId"
-        ,tmw.wh_id AS "id"
-        ,tmw.wh_name as "whName"
-        ,tmw.wh_code as "whCode"
-        ,tmw.flg_default as "flgDefault"
-        FROM dkic_b.t_mst_warehouse tmw
-        WHERE tmw.cp_id = #{cpId}
-        and tmw.flg_valid
+        SELECT t.wh_id       as "whId"
+             , t.wh_id       AS "id"
+             , t.wh_name     as "whName"
+             , t.wh_code     as "whCode"
+             , t.flg_default as "flgDefault"
+        FROM dkic_b.t_mst_warehouse t
+        WHERE t.cp_id = #{cpId}
+          and t.flg_valid
         <if test="whCode!=null and whCode!=''">
-            and position(#{whCode} in tmw.wh_code) > 0
+            and position(#{whCode} in t.wh_code) > 0
         </if>
         <if test="whName!=null and whName!=''">
-            and position(#{whName} in tmw.wh_name) > 0
+            and position(#{whName} in t.wh_name) > 0
+        </if>
+        <!-- 部门上有仓库,只能选部门上的仓库;部门上没有仓库,可选所有仓库 -->
+        <if test="orgId != null">
+                and (select count(1)
+                     from dkic_b.t_mst_org_wh as tmow
+                     where tmow.org_id = #{orgId}::uuid) = 0
+               or (exists(select 1
+                          from dkic_b.t_mst_org_wh as tmow
+                          where tmow.org_id = #{orgId}::uuid
+                            and tmow.wh_id = t.wh_id))
         </if>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
@@ -837,21 +847,30 @@
 
     <!--获取仓库档案-->
     <select id="getWarehouseByPage" resultType="java.util.Map">
-        SELECT
-        wh_id AS "whId",
-        wh_code AS "whCode",
-        wh_name AS "whName",
-        supervisor AS "supervisor",
-        contact_phone AS "contactPhone",
-        flg_valid AS "flgValid"
-        FROM  dkic_b.t_mst_warehouse
+        SELECT t.wh_id         AS "whId",
+               t.wh_code       AS "whCode",
+               t.wh_name       AS "whName",
+               t.supervisor    AS "supervisor",
+               t.contact_phone AS "contactPhone",
+               t.flg_valid     AS "flgValid"
+        FROM dkic_b.t_mst_warehouse as t
         <where>
             <if test="searchText !=null">
-                AND ( wh_name LIKE concat('%', my_ex.likequery(#{searchText}), '%')
-                or  remarks LIKE concat('%', my_ex.likequery(#{searchText}), '%'))
+                AND ( t.wh_name LIKE concat('%', my_ex.likequery(#{searchText}), '%')
+                or  t.remarks LIKE concat('%', my_ex.likequery(#{searchText}), '%'))
             </if>
             <if test="cpId != null">
-                AND cp_id = #{cpId}
+                AND t.cp_id = #{cpId}
+            </if>
+            <!-- 部门上有仓库,只能选部门上的仓库;部门上没有仓库,可选所有仓库 -->
+            <if test="orgId != null">
+                and (select count(1)
+                     from dkic_b.t_mst_org_wh as tmow
+                     where tmow.org_id = #{orgId}::uuid) = 0
+               or (exists(select 1
+                          from dkic_b.t_mst_org_wh as tmow
+                          where tmow.org_id = #{orgId}::uuid
+                            and tmow.wh_id = t.wh_id))
             </if>
         </where>
         order by display_no asc
@@ -862,16 +881,25 @@
 
     <!--获取仓库档案个数-->
     <select id="countWarehouseByPage" resultType="Long">
-        SELECT
-        count(1)
-        FROM  dkic_b.t_mst_warehouse
+        SELECT count(1)
+        FROM  dkic_b.t_mst_warehouse as t
         <where>
             <if test="searchText !=null">
-                AND ( wh_name LIKE concat('%', my_ex.likequery(#{searchText}), '%')
-                or  remarks LIKE concat('%', my_ex.likequery(#{searchText}), '%'))
+                AND ( t.wh_name LIKE concat('%', my_ex.likequery(#{searchText}), '%')
+                or  t.remarks LIKE concat('%', my_ex.likequery(#{searchText}), '%'))
             </if>
             <if test="cpId != null">
-                AND cp_id = #{cpId}
+                AND t.cp_id = #{cpId}
+            </if>
+            <!-- 部门上有仓库,只能选部门上的仓库;部门上没有仓库,可选所有仓库 -->
+            <if test="orgId != null">
+                and (select count(1)
+                     from dkic_b.t_mst_org_wh as tmow
+                     where tmow.org_id = #{orgId}::uuid) = 0
+               or (exists(select 1
+                          from dkic_b.t_mst_org_wh as tmow
+                          where tmow.org_id = #{orgId}::uuid
+                            and tmow.wh_id = t.wh_id))
             </if>
         </where>
     </select>

+ 19 - 0
src/main/java/com/dk/mdm/mapper/mac/RecPayMapper.xml

@@ -149,6 +149,25 @@
         <if test="supName != null and supName != ''">
             AND tmp.sup_name LIKE concat('%',my_ex.likequery(#{supName}),'%')
         </if>
+        <if test="rpTypeList != null and rpTypeList.size() > 0">
+            AND t.rp_type  =any(#{rpTypeList, typeHandler=StringListTypeHandler})
+        </if>
+        <if test="staffIds != null and staffIds.size() > 0">
+            AND t.staff_id  =any(#{staffIdList, typeHandler=UuidListTypeHandler})
+        </if>
+        <if test="createtimeStart != null and createtimeEnd != null">
+            AND t.op_create_time &gt;= #{createtimeStart}::timestamp with time zone
+            AND t.op_create_time &lt; #{createtimeEnd}::timestamp with time zone + interval '1 day'
+        </if>
+        <if  test="searchText != null">
+            AND ( t.rp_no  like concat('%', my_ex.likequery(#{searchText}) , '%')
+            OR   tmc.cus_code  like concat('%', my_ex.likequery(#{searchText}) , '%')
+            OR  tmc.cus_name  like concat('%', my_ex.likequery(#{searchText}) , '%')
+            OR   tmc.cus_phone  like concat('%', my_ex.likequery(#{searchText}) , '%')
+            OR   tmc.address_full  like concat('%', my_ex.likequery(#{searchText}) , '%')
+            OR  t.remarks like concat('%', my_ex.likequery(#{searchText}) , '%')
+            )
+        </if>
         <if test="staffName != null and staffName != ''">
             AND tms.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
         </if>

+ 4 - 1
src/main/java/com/dk/mdm/mapper/mst/GoodsBrandMapper.xml

@@ -75,7 +75,10 @@
                 AND tmgb.op_create_time = #{opCreateTime}
             </if>
 
-
+            <if test="flgValidList != null and flgValidList.size()>0">
+                AND tmgb.flg_valid =
+                any(#{flgValidList, typeHandler=BooleanListTypeHandler})
+            </if>
             <if  test="searchText != null">
                 AND (tmgb.brand_code  like concat('%', my_ex.likequery(#{searchText}) , '%')
                 OR  tmgb.brand_name  like concat('%', my_ex.likequery(#{searchText}) , '%')

+ 4 - 1
src/main/java/com/dk/mdm/mapper/mst/GoodsCategoryMapper.xml

@@ -109,7 +109,10 @@
             </if>
 
 
-
+            <if test="flgValidList != null and flgValidList.size()>0">
+                AND tmgc.flg_valid =
+                any(#{flgValidList, typeHandler=BooleanListTypeHandler})
+            </if>
             <if  test="searchText != null">
                 AND (tmgc.cat_code  like concat('%', my_ex.likequery(#{searchText}) , '%')
                 OR  tmgc.cat_name  like concat('%', my_ex.likequery(#{searchText}) , '%')

+ 4 - 1
src/main/java/com/dk/mdm/mapper/mst/GoodsSeriesMapper.xml

@@ -69,7 +69,10 @@
             <if test="opDbUser != null and opDbUser != ''">
                 AND op_db_user = #{opDbUser}
             </if>
-
+            <if test="flgValidList != null and flgValidList.size()>0">
+                AND flg_valid =
+                any(#{flgValidList, typeHandler=BooleanListTypeHandler})
+            </if>
 
             <if  test="searchText != null">
                 AND (series_code  like concat('%', my_ex.likequery(#{searchText}) , '%')

+ 4 - 1
src/main/java/com/dk/mdm/mapper/mst/UnitMapper.xml

@@ -72,7 +72,10 @@
             <if test="opDbUser != null and opDbUser != ''">
                 AND op_db_user = #{opDbUser}
             </if>
-
+            <if test="flgValidList != null and flgValidList.size()>0">
+                AND flg_valid =
+                any(#{flgValidList, typeHandler=BooleanListTypeHandler})
+            </if>
             <if  test="searchText != null">
                 AND (unit_code  like concat('%', my_ex.likequery(#{searchText}) , '%')
                 OR  unit_name  like concat('%', my_ex.likequery(#{searchText}) , '%')

+ 10 - 3
src/main/java/com/dk/mdm/mapper/report/ReportMapper.java

@@ -9,11 +9,18 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @author : 周兴
- * @desc : 报表Mapper
- * @date : 2023/1/3 17:21
+ * @desc   : 报表数据源
+ * @author : 常皓宁
+ * @date   : 2024/4/11 8:49
  */
 @Repository
 public interface ReportMapper extends BaseMapper<JSONObject> {
 
+    /**
+     * @desc   : 查询库存
+     * @author : 常皓宁
+     * @date   : 2024/4/11 8:52
+     */
+    List<Map<String, Object>> getIvtDetailReport(Map param);
+
 }

+ 60 - 0
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -2,5 +2,65 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dk.mdm.mapper.report.ReportMapper">
 
+    <!--库存查询-->
+    <select id="getIvtDetailReport" resultType="java.util.Map">
+        select tpi.inv_id             as "invId",
+        tpi.sku_id             as "skuId",
+        tmgs.sku_code          as "skuCode",
+        tmgs.sku_name          as "skuName",
+        tmgs.sku_model         as "skuModel",
+        tmgs.brand_id          as "brandId",
+        tmgb.brand_name        as "brandName",
+        tmgs.category_id       as "categoryId",
+        tmgc.cat_name          as "categoryName",
+        tmgs.unit_id           as "unitId",
+        tmgu.unit_name         as "unitName",
+        tmgs.sub_unit_id       as "subUnitId",
+        tmgs.conversion_factor as "conversionFactor",
+        tmgs.series_id         as "seriesId",
+        tmgseries.series_name  as "seriesName",
+        tmgs.sku_spec          as "skuSpec",
+        tmgs.price_purchase    as "pricePurchase",
+        tmgs.price_standard    as "priceStandard",
+        tmgs.price_wholesale   as "priceWholesale",
+        tmgs.price_limited     as "priceLimited",
+        tmgs.sku_images        as "skuImages",
+        tpi.non_std_code       as "nonStdCode",
+        tpi.inv_qty            as "invQty",
+        tpi.outing_qty         as "outingQty",
+        tpi.usable_qty         as "usableQty",
+        tpi.wh_id              as "whId",
+        tmw.wh_code            as "whCode",
+        tmw.wh_name            as "whName",
+        dkic_b.f_get_last_ivt_price(tpi.inv_id,null,null,null) as "priceInto",
+        tpi.remarks
+        from dkic_b.t_psi_inventory as tpi
+        inner join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
+        inner join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tpi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgs.brand_id = tmgb.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgs.category_id = tmgc.cat_id
+        left join dkic_b.t_mst_goods_series as tmgseries on tmgs.series_id = tmgseries.series_id
+        left join dkic_b.t_mst_unit as tmgu on tmgs.unit_id = tmgu.unit_id
+        where tpi.flg_valid
+        AND tpi.cp_id = #{cpId}
+        <if test="skuId != null">
+            AND tpi.sku_id = #{skuId} ::uuid
+        </if>
+        <if test="nonStdCode != null">
+            AND tpi.non_std_code = #{nonStdCode}
+        </if>
+        <if test="skuCode != null">
+            AND tmgs.sku_code LIKE concat('%',my_ex.likequery(#{skuCode}),'%')
+        </if>
+        <if test="skuName != null">
+            AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
+        </if>
+        <if test="whName != null">
+            AND tmgs.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
+        </if>
+        <if test="whId != null">
+            AND tpi.wh_id = #{whId} ::uuid
+        </if>
+    </select>
 
 </mapper>

+ 15 - 0
src/main/java/com/dk/mdm/model/query/mac/RecPayQuery.java

@@ -235,6 +235,7 @@ public class RecPayQuery extends PageInfo<RecPayQuery> implements Serializable {
     @ApiModelProperty(value = "业务员List")
     private List<String> staffIdList;
 
+
     @ApiModelProperty(value = "制单时间开始")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate makeTimeStart;
@@ -255,6 +256,20 @@ public class RecPayQuery extends PageInfo<RecPayQuery> implements Serializable {
     @ApiModelProperty(value = "员工名称")
     private String staffName;
 
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate createtimeStart;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate createtimeEnd;
+
+    @ApiModelProperty(value = "业务员idList")
+    private List<String> staffIds;
+
+    private List<String> rpTypeList;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 2 - 1
src/main/java/com/dk/mdm/model/query/mst/GoodsBrandQuery.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  商品品牌
@@ -115,7 +116,7 @@ public class GoodsBrandQuery extends PageInfo<GoodsBrandQuery> implements Serial
     private String searchText;
 
 
-
+    private List<Boolean> flgValidList;
 
     private static final long serialVersionUID = 1L;
 

+ 2 - 0
src/main/java/com/dk/mdm/model/query/mst/GoodsCategoryQuery.java

@@ -21,6 +21,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  商品种类
@@ -239,6 +240,7 @@ public class GoodsCategoryQuery extends PageInfo<GoodsCategoryQuery> implements
      */
     private String searchText;
 
+    private List<Boolean> flgValidList;
     private static final long serialVersionUID = 1L;
 
 }

+ 3 - 0
src/main/java/com/dk/mdm/model/query/mst/GoodsSeriesQuery.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  商品系列
@@ -170,6 +171,8 @@ public class GoodsSeriesQuery extends PageInfo<GoodsSeriesQuery> implements Seri
      */
     private String searchText;
 
+    private List<Boolean> flgValidList;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 3 - 0
src/main/java/com/dk/mdm/model/query/mst/UnitQuery.java

@@ -20,6 +20,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *  计量单位
@@ -178,6 +179,8 @@ public class UnitQuery extends PageInfo<UnitQuery> implements Serializable {
      */
     private String searchText;
 
+    private List<Boolean> flgValidList;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 13 - 3
src/main/java/com/dk/mdm/service/report/ReportService.java

@@ -23,9 +23,9 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @author : 周兴
- * @desc : 控件数据源API
- * @date : 2023/1/3 17:21
+ * @desc   : 报表数据源
+ * @author : 常皓宁
+ * @date   : 2024/4/11 8:49
  */
 @Service
 @Slf4j
@@ -34,5 +34,15 @@ public class ReportService {
     @Autowired
     private ReportMapper reportMapper;
 
+    /**
+     * @desc   : 查询库存
+     * @author : 常皓宁
+     * @date   : 2024/4/11 8:52
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getIvtDetailReport(Map<String, Object> param) {
+        // 获取系统基础数据
+        List<Map<String, Object>> list = reportMapper.getIvtDetailReport(param);
+        return ResponseResultUtil.success(list);
+    }
 
 }