Просмотр исходного кода

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

# Conflicts:
#	src/main/java/com/dk/mdm/controller/report/ReportController.java
#	src/main/java/com/dk/mdm/mapper/report/ReportMapper.java
#	src/main/java/com/dk/mdm/service/report/ReportService.java
koushanshan 1 год назад
Родитель
Сommit
69a263f2b8
38 измененных файлов с 1192 добавлено и 287 удалено
  1. 1 1
      src/main/java/com/dk/mdm/controller/mst/OrgController.java
  2. 14 7
      src/main/java/com/dk/mdm/controller/mst/PrintLayoutController.java
  3. 1 1
      src/main/java/com/dk/mdm/controller/mst/StaffController.java
  4. 11 1
      src/main/java/com/dk/mdm/controller/pur/PurchaseController.java
  5. 37 5
      src/main/java/com/dk/mdm/controller/report/ReportController.java
  6. 6 0
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.java
  7. 17 2
      src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml
  8. 11 1
      src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml
  9. 2 1
      src/main/java/com/dk/mdm/mapper/ivt/InventoryBatchMapper.xml
  10. 15 0
      src/main/java/com/dk/mdm/mapper/ivt/InventoryMapper.xml
  11. 7 0
      src/main/java/com/dk/mdm/mapper/mst/MenuFrequencyMapper.java
  12. 6 21
      src/main/java/com/dk/mdm/mapper/mst/MenuFrequencyMapper.xml
  13. 16 1
      src/main/java/com/dk/mdm/mapper/mst/PrintLayoutMapper.java
  14. 18 0
      src/main/java/com/dk/mdm/mapper/mst/PrintLayoutMapper.xml
  15. 1 1
      src/main/java/com/dk/mdm/mapper/mst/StaffMapper.java
  16. 3 0
      src/main/java/com/dk/mdm/mapper/mst/SupplierMapper.java
  17. 16 0
      src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.java
  18. 155 2
      src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml
  19. 32 1
      src/main/java/com/dk/mdm/mapper/report/ReportMapper.java
  20. 396 70
      src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml
  21. 2 2
      src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml
  22. 1 1
      src/main/java/com/dk/mdm/model/pojo/mst/Staff.java
  23. 14 7
      src/main/java/com/dk/mdm/model/query/ivt/InboundQuery.java
  24. 4 0
      src/main/java/com/dk/mdm/model/query/ivt/InventoryQuery.java
  25. 9 0
      src/main/java/com/dk/mdm/model/query/pur/PurchaseQuery.java
  26. 3 0
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java
  27. 9 12
      src/main/java/com/dk/mdm/service/common/ExportService.java
  28. 3 3
      src/main/java/com/dk/mdm/service/ivt/inbound/InboundItemService.java
  29. 1 1
      src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java
  30. 7 8
      src/main/java/com/dk/mdm/service/mac/MacTransferService.java
  31. 30 23
      src/main/java/com/dk/mdm/service/mst/MenuFrequencyService.java
  32. 3 10
      src/main/java/com/dk/mdm/service/mst/OrgService.java
  33. 73 0
      src/main/java/com/dk/mdm/service/mst/PrintLayoutService.java
  34. 10 1
      src/main/java/com/dk/mdm/service/mst/StaffService.java
  35. 68 62
      src/main/java/com/dk/mdm/service/mst/SupplierService.java
  36. 20 15
      src/main/java/com/dk/mdm/service/pur/PurchaseService.java
  37. 169 26
      src/main/java/com/dk/mdm/service/report/ReportService.java
  38. 1 1
      src/main/resources/test/bootstrap.yml

+ 1 - 1
src/main/java/com/dk/mdm/controller/mst/OrgController.java

@@ -92,7 +92,7 @@ public class OrgController{
 
     /**
      * @desc   : 编辑组织机构
-     * @author : 宋扬
+     * @author : 王英杰
      * @date   : 2024/3/22 17:14
      */
     @ApiOperation(value = "编辑组织机构", notes = "编辑组织机构")

+ 14 - 7
src/main/java/com/dk/mdm/controller/mst/PrintLayoutController.java

@@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.mst.PrintLayoutService;
 
+import java.util.Map;
+
 @Api(tags = "打印模版API接口")
 @RestController
 @RequestMapping("/mst/printLayout")
@@ -24,10 +26,6 @@ public class PrintLayoutController{
     @Autowired
     private PrintLayoutService printLayoutService;
 
-    @Autowired
-    private CommonService commonService;
-
-
     /**
      * @desc   : 条件查询
      * @author : 张潇木
@@ -47,8 +45,7 @@ public class PrintLayoutController{
     @ApiOperation( value = "新建", notes = "新建" )
     @PostMapping({"insert"})
     public ResponseResultVO<?> insert(@RequestBody PrintLayout printLayout) {
-        printLayout.setDisplayNo(commonService.getMaxDisplayNo(Constant.DisplayNoTable.PRINT_LAYOUT));
-        return this.getService().insert(printLayout);
+        return printLayoutService.insert(printLayout);
     }
 
     /**
@@ -59,7 +56,7 @@ public class PrintLayoutController{
     @ApiOperation( value = "编辑", notes = "编辑" )
     @PostMapping({"update"})
     public ResponseResultVO<?> update(@RequestBody PrintLayout printLayout) {
-        return this.getService().updateByUuid(printLayout);
+        return printLayoutService.update(printLayout);
     }
 
     /**
@@ -92,4 +89,14 @@ public class PrintLayoutController{
     public ResponseResultVO<Boolean> enable(@PathVariable String id) {
         return this.getService().enable(id);
     }
+
+    /**
+     * @desc : 查询打印数据
+     * @author : 周兴
+     * @date : 2024/4/22 15:28
+     */
+    @PostMapping("get_print_data")
+    public ResponseResultVO<?> getPrintData(@RequestBody Map<String, Object> param) {
+        return printLayoutService.getPrintData(param);
+    }
 }

+ 1 - 1
src/main/java/com/dk/mdm/controller/mst/StaffController.java

@@ -198,7 +198,7 @@ public class StaffController {
      */
     @PostMapping({"/feign_get_experience"})
     ResponseResultVO<StaffResponse> getFeignExperience(@RequestBody Map<String, Object> map) {
-        log.info("feign_get_experience1" + map.toString());
+        log.info("feign_get_experience111111111" + map.toString());
         StaffQuery staffQuery = new StaffQuery();
         staffQuery.setCpId(Integer.parseInt(map.get("cpId").toString()));
         staffQuery.setStaffCode(map.get("staffCode").toString());

+ 11 - 1
src/main/java/com/dk/mdm/controller/pur/PurchaseController.java

@@ -51,7 +51,7 @@ public class PurchaseController{
             notes = "分页、关联、条件查询"
     )
     @PostMapping({"list_by_item"})
-    public ResponseResultVO<PageList<PurchaseResponse>> selectByCondItem(@RequestBody PurchaseQuery purchaseQuery) {
+    public ResponseResultVO<PageList<Map<String, Object>>> selectByCondItem(@RequestBody PurchaseQuery purchaseQuery) {
         return purchaseService.selectByCondItem(purchaseQuery);
     }
     /**
@@ -115,4 +115,14 @@ public class PurchaseController{
     public ResponseResultVO<Boolean> insertInbound(@RequestBody  PurchaseVO Purchasevo) {
         return purchaseService.insertInbound(Purchasevo);
     }
+
+    /**
+     * @desc   : 采购跟踪
+     * @author : 常皓宁
+     * @date   : 2024/4/22 10:19
+     */
+    @PostMapping("select_track_report")
+    public ResponseResultVO<PageList> selectTrackReport(@RequestBody Map<String, Object> param) {
+        return purchaseService.selectTrackReport(param);
+    }
 }

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

@@ -44,7 +44,7 @@ public class ReportController  {
      * @date   : 2024/4/10 16:37
      */
     @PostMapping("pur_detail_report")
-    public ResponseResultVO<List<Map<String, Object>>> getPurDetailReport(@RequestBody Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getPurDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getPurDetailReport(param);
     }
 
@@ -54,7 +54,7 @@ public class ReportController  {
      * @date   : 2024/4/11 16:22
      */
     @PostMapping("order_detail_report")
-    public ResponseResultVO<List<Map<String, Object>>> getOrderDetailReport(@RequestBody Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getOrderDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getOrderDetailReport(param);
     }
 
@@ -64,7 +64,7 @@ public class ReportController  {
      * @date   : 2024/4/11 16:53
      */
     @PostMapping("outbound_detail_report")
-    public ResponseResultVO<List<Map<String, Object>>> getOutboundDetailReport(@RequestBody Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getOutboundDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getOutboundDetailReport(param);
     }
     /**
@@ -73,7 +73,7 @@ public class ReportController  {
      * @date   : 2024/4/11 16:53
      */
     @PostMapping("inbound_detail_report")
-    public ResponseResultVO<List<Map<String, Object>>> getInboundDetailReport(@RequestBody Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getInboundDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getInboundDetailReport(param);
     }
 
@@ -83,7 +83,7 @@ public class ReportController  {
      * @date   : 2024/4/16 11:27
      */
     @PostMapping("rec_pay_detail_report")
-    public ResponseResultVO<List<Map<String, Object>>> getRecPayDetailReport(@RequestBody Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getRecPayDetailReport(@RequestBody Map<String, Object> param) {
         return reportService.getRecPayDetailReport(param);
     }
     /**
@@ -95,6 +95,17 @@ public class ReportController  {
     public ResponseResultVO<PageList<Map<String, Object>>> getSalesTrackingReport(@RequestBody Map<String, Object> param) {
         return reportService.getSalesTrackingReport(param);
     }
+
+    /**
+     * @desc   : 销售明细
+     * @author : 于继渤
+     * @date   : 2024/4/16 11:27
+     */
+    @PostMapping("sales_item_report")
+    public ResponseResultVO<PageList<Map<String, Object>>> getSalesItemReport(@RequestBody Map<String, Object> param) {
+        return reportService.getSalesItemReport(param);
+    }
+
     /**
      * @desc   : 采购跟踪表 列表查询
      * @author : 王英杰
@@ -134,6 +145,27 @@ public class ReportController  {
         return reportService.getDailyReconciliationReport(param);
     }
 
+    /**
+     * @desc   : 收发存汇总报表
+     * @author : 宋扬
+     * @date   : 2024/4/23 14:08
+     */
+    @PostMapping("ivt_sum_report")
+    public ResponseResultVO<PageList<Map<String, Object>>> getIvtSumReport(@RequestBody Map<String, Object> param) {
+        return reportService.getIvtSumReport(param);
+    }
+
+    /**
+     * @desc   : 收发存汇总报表-明细
+     * @author : 宋扬
+     * @date   : 2024/4/23 14:08
+     */
+    @PostMapping("ivt_item_report")
+    public ResponseResultVO<PageList<Map<String, Object>>> getIvtItemReport(@RequestBody Map<String, Object> param) {
+        return reportService.getIvtItemReport(param);
+    }
+
+
 }
 
 

+ 6 - 0
src/main/java/com/dk/mdm/mapper/common/CommonMapper.java

@@ -143,6 +143,12 @@ public interface CommonMapper extends BaseMapper<Map<String, Object>> {
 
 
     /**
+     * @desc : 查出一个map对象
+     * @author : 姜宁
+     * @date : 2023/2/7 14:45
+     */
+    Map<String, Object> selectDictionaryData (Map param );
+    /**
      * @desc : 获取用户隐藏列
      * @author : 周兴
      * @date : 2023/4/4 15:05

+ 17 - 2
src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml

@@ -166,6 +166,7 @@
         top_Id     AS "topId",
         display_no AS "displayNo",
         remarks
+        ,flg_valid as "flgValid"
         from dkic_b.t_mst_org
         where flg_valid
         and cp_id = #{cpId}
@@ -256,6 +257,7 @@
         ,tmg.org_id as "orgId"
         ,tmg.org_code as "orgCode"
         ,tmg.org_name as "orgName"
+        ,staff.flg_valid as "flgValid"
         from dkic_b.t_mst_staff AS staff
         left join  dkic_b.t_mst_org tmg on tmg.org_id = staff.org_id
         where staff.flg_valid
@@ -1693,10 +1695,10 @@
         from dkic_b.t_psi_inventory as tpi
         inner join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
         where tpi.flg_valid
-        AND tpi.cp_id = #{cpId}
+        AND tpi.cp_id = #{cpId} AND
         <foreach collection="skuIdNonStdCodeWhIdList" item="condition" separator=" OR ">
             <if test="condition.skuId != null">
-                AND tpi.sku_id = #{condition.skuId} ::uuid
+                 tpi.sku_id = #{condition.skuId} ::uuid
             </if>
             <if test="condition.nonStdCode != null">
                 AND tpi.non_std_code = #{condition.nonStdCode}
@@ -1792,6 +1794,19 @@
             AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
         </if>
     </select>
+    <select id="selectDictionaryData" resultType="java.util.Map">
+        select dd.data_id     as "dataId",
+               dd.data_id     as "id",
+               dd.dict_code   as "dictCode",
+               dd.data_code   as "dataCode",
+               dd.data_value  as "dataValue",
+               dd.flg_default as "flgDefault"
+        from dkic_b.t_mst_dictionary_data as dd
+        where dd.flg_valid
+          and dd.cp_id = #{cpId}
+          and dd.dict_code = #{dictCode}
+          and dd.data_value = #{dataValue}
+    </select>
 
 
 </mapper>

+ 11 - 1
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml

@@ -154,6 +154,7 @@
     <resultMap id="inboundItemListMap" type="java.util.Map">
         <result column="item_id" property="itemId" typeHandler="UuidTypeHandler"/>
         <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
+        <result column="into_no" property="intoNo" typeHandler="UuidTypeHandler"/>
         <result column="into_type" property="intoType"/>
         <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
         <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
@@ -241,6 +242,9 @@
             <if test="staffName != null and staffName != ''">
                 AND tms.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
             </if>
+            <if test="whName != null and whName != ''">
+                AND tmw.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
+            </if>
             <if test="staffId != null and staffId != ''">
                 AND tpi.staff_id = #{staffId}::uuid
             </if>
@@ -253,6 +257,7 @@
             <if test="makeStaff != null and makeStaff != ''">
                 AND tpi.make_staff = #{makeStaff}
             </if>
+
             <if test="makeTime != null">
                 AND tpi.make_time = #{makeTime}
             </if>
@@ -277,6 +282,10 @@
             <if test="staffIdList != null and staffIdList.size() > 0">
                 AND tms.staff_id  =any(#{staffIdList, typeHandler=uuidListTypeHandler})
             </if>
+            <if test="intoDateStart != null and intoDateEnd != null">
+                AND tpi.into_date &gt;= #{intoDateStart}::timestamp with time zone
+                AND tpi.into_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
+            </if>
             <if test="makeTimeStart != null and makeTimeEnd != null">
                 AND tpi.make_time &gt;= #{makeTimeStart}::timestamp with time zone
                 AND tpi.make_time &lt; #{makeTimeEnd}::timestamp with time zone + interval '1 day'
@@ -495,6 +504,7 @@
         AS list_item_id,
         tpii.item_id  AS list_into_item_Id,
         tpii.into_id AS list_into_id,
+        tpi.into_no AS list_into_no,
         tpii.into_type AS list_into_type,
         tpii.from_id AS list_from_id,
         tpii.from_item_id AS list_from_item_id,
@@ -1058,7 +1068,7 @@
         Left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpi.wh_id
         left join dkic_b.t_mst_dictionary_data tmd on tmd.data_id = tpi.into_reason
         left join dkic_b.t_mac_account_item tmai on tmai.item_id = tpi.receivable_id
-        WHERE tpi.into_id = #{intoId}::uuid AND tpi.flg_valid = true
+        WHERE tpi.into_id = #{id}::uuid AND tpi.flg_valid = true
     </select>
 
 

+ 2 - 1
src/main/java/com/dk/mdm/mapper/ivt/InventoryBatchMapper.xml

@@ -70,7 +70,7 @@
     <sql id="Condition">
         <where>
             <if test="invId != null and invId != ''">
-                AND inv_id = #{invId}
+                AND inv_id = #{invId}::uuid
             </if>
             <if test="fromId != null and fromId != ''">
                 AND from_id = #{fromId}
@@ -147,6 +147,7 @@
     <sql id="Join_Table">
         left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpib.sku_id
         left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpib.wh_id
+        left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
     </sql>
 
     <!-- 根据主键查询表dkic_b.t_psi_inventory_batch的一行数据 -->

+ 15 - 0
src/main/java/com/dk/mdm/mapper/ivt/InventoryMapper.xml

@@ -98,6 +98,15 @@
             <if test="freezeQty != null">
                 AND tpi.freeze_qty = #{freezeQty}
             </if>
+            <if test="categoryId != null and categoryId != ''">
+                AND tmgs.category_id = #{categoryId}::UUID
+            </if>
+            <if  test="searchText != null">
+                AND (tmgs.sku_code  like concat('%', my_ex.likequery(#{searchText}) , '%')
+                OR  tmgs.sku_name like concat('%', my_ex.likequery(#{searchText}) , '%')
+                OR  tpi.non_std_code like concat('%', my_ex.likequery(#{searchText}) , '%')
+                )
+            </if>
         </where>
     </sql>
 
@@ -127,6 +136,12 @@
         FROM dkic_b.t_psi_inventory tpi
         <include refid="Join_Table"/>
         <include refid="Condition"/>
+        <if test="desc != null and desc != ''">
+            order by tpi.usable_qty desc
+        </if>
+        <if test="desc == null or desc == ''">
+            order by tpi.usable_qty
+        </if>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>

+ 7 - 0
src/main/java/com/dk/mdm/mapper/mst/MenuFrequencyMapper.java

@@ -27,5 +27,12 @@ public interface MenuFrequencyMapper extends BaseMapper<MenuFrequency>{
      * @date   : 2024-03-28 10:30
      */
     List<MenuFrequencyResponse> selectByCond(MenuFrequencyQuery menuFrequencyQuery);
+
+    /**
+     * @desc   : 查询功能频率
+     * @author : 周兴
+     * @date   : 2024-03-28 10:30
+     */
+    MenuFrequencyResponse selectMenuById(MenuFrequency menuFrequency);
 }
 

+ 6 - 21
src/main/java/com/dk/mdm/mapper/mst/MenuFrequencyMapper.xml

@@ -98,33 +98,18 @@
         )
         on conflict (menu_uuid,staff_id,app_code) do update set
         cp_id = excluded."cp_id",
-        qty = excluded."qty" + 1;
+        qty = excluded."qty" ;
     </insert>
 
     <!-- 根据主键查询表t_mst_menu_frequency的一行数据 -->
-    <select id="selectById" resultMap="BaseResultMap">
+    <select id="selectMenuById" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
         FROM dkic_b.t_mst_menu_frequency
-        WHERE menu_uuid = #{id}::uuid
-    </select>
-
-    <!-- 根据主键锁定表t_mst_menu_frequency的一行数据 -->
-    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM t_mst_menu_frequency
-        WHERE menu_uuid = #{menuUuid}
-        for update
-    </select>
-
-    <!-- 根据主键锁定表t_mst_menu_frequency的多行数据 -->
-    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
-        SELECT
-        <include refid="Base_Column_List"/>
-        FROM t_mst_menu_frequency
-        <include refid="idsForeach"/>
-        for update
+        WHERE menu_uuid = #{menuUuid}::uuid
+        and cp_id = #{cpId}
+        and app_code = #{appCode}
+        and staff_id = #{staffId} ::uuid
     </select>
 
     <insert id="insertBatch">

+ 16 - 1
src/main/java/com/dk/mdm/mapper/mst/PrintLayoutMapper.java

@@ -1,14 +1,29 @@
 package com.dk.mdm.mapper.mst;
 
+import com.dk.mdm.model.pojo.core.Factory;
 import com.dk.mdm.model.pojo.mst.PrintLayout;
 import com.dk.common.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.Map;
+
 /**
 *  打印模版 Mapper
 */
 @Repository
 public interface PrintLayoutMapper extends BaseMapper<PrintLayout>{
-	
+    /**
+     * @desc : 获取打印数据
+     * @author : 周兴
+     * @date : 2024-4-22 15:47
+     */
+    Map<String, Object> getPrintData(Map param);
+
+    /**
+     * @desc   : 票据名称是否重复
+     * @date   : 2024/4/23 16:39
+     * @author : 周兴
+     */
+    Long selectByName(PrintLayout printLayout);
 }
 

+ 18 - 0
src/main/java/com/dk/mdm/mapper/mst/PrintLayoutMapper.xml

@@ -111,6 +111,24 @@
         for update
     </select>
 
+    <!--票据名称是否重复-->
+    <select id="selectByName" resultType="Long">
+        select count(1)
+        from dkic_b.t_mst_print_layout
+        where #{layoutName} = layout_name
+        and cp_id = #{cpId}
+        <if test="layoutId != null">
+            and layout_id != #{layoutId} ::uuid
+        </if>
+    </select>
+
+    <!--获取打印数据-->
+    <select id="getPrintData" resultType="java.util.Map">
+        SELECT *
+        FROM
+            dkic_b.f_get_print_data(#{dataId} ::uuid, #{objectCode}, #{i18n})
+    </select>
+
     <insert id="insertBatch">
         insert into dkic_b.t_mst_print_layout
         (

+ 1 - 1
src/main/java/com/dk/mdm/mapper/mst/StaffMapper.java

@@ -42,7 +42,7 @@ public interface StaffMapper extends BaseMapper<Staff>{
      * @author : 周兴
      * @date   : 2024/3/6 10:42
      */
-    StaffResponse selectByUserId(@Param("id") String id);
+    StaffResponse selectByUserId(String id,Integer cpId);
 
     /**
      * @desc   : 根据staffId获取当前企业的员工信息

+ 3 - 0
src/main/java/com/dk/mdm/mapper/mst/SupplierMapper.java

@@ -8,6 +8,7 @@ import com.dk.mdm.model.vo.mst.SupplierVo;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 *  供应商 Mapper
@@ -49,6 +50,8 @@ public interface SupplierMapper extends BaseMapper<Supplier>{
      * @date   : 2024/2/29 17:49
      */
     int   batchDeleteBrand (String supId );
+
+
     /**
      * @desc   : 自动生id
      * @author : 王英杰

+ 16 - 0
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.java

@@ -2,6 +2,7 @@ package com.dk.mdm.mapper.pur;
 
 import com.dk.mdm.model.pojo.pur.Purchase;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.pur.PurchaseItemQuery;
 import com.dk.mdm.model.query.pur.PurchaseQuery;
 import com.dk.mdm.model.response.pur.PurchaseResponse;
 import com.dk.mdm.model.vo.pur.PurchaseVO;
@@ -10,6 +11,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 *  采购订单 Mapper
@@ -25,6 +27,13 @@ public interface PurchaseMapper extends BaseMapper<Purchase>{
     List<PurchaseResponse> selectByCond(PurchaseQuery purchaseQuery);
 
     /**
+     * @desc   : 采购入库 查询采购订单带明细
+     * @author : 王英杰
+     * @date   : 2024/2/28 15:17
+     */
+    List<Map<String, Object>>  selectPurOrderAndDeatil(PurchaseQuery purchaseQuery);
+
+    /**
      * @desc   : 查询采购订单 带明细
      * @author : 王英杰
      * @date   : 2024/2/28 9:48
@@ -68,5 +77,12 @@ public interface PurchaseMapper extends BaseMapper<Purchase>{
 
     Purchase selectPurchaseByRighting(PurchaseQuery purchaseQuery);
 
+    /**
+     * @desc   : 采购跟踪
+     * @author : 常皓宁
+     * @date   : 2024/4/22 10:19
+     */
+    Map<String, Object> selectTrackReport(Map param);
+
 }
 

+ 155 - 2
src/main/java/com/dk/mdm/mapper/pur/PurchaseMapper.xml

@@ -308,6 +308,13 @@
     <!-- 通用条件列 -->
     <sql id="Condition_1">
         <where>
+
+            <if test="orgName != null and orgName != ''">
+                AND tmo.org_name LIKE concat('%',my_ex.likequery(#{orgName}),'%')
+            </if>
+            <if test="staffName != null and staffName != ''">
+                AND tms.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
+            </if>
             <if test="purId != null and purId != ''">
                 AND tpp.pur_id = #{purId}::uuid
             </if>
@@ -446,7 +453,7 @@
                 AND tpp.pickup_date &lt; #{pickupDateEnd}::timestamp with time zone + interval '1 day'
             </if>
             <if test="searchText !=null and searchText!='' " >
-                AND   tpp.pur_no LIKE concat('%',my_ex.likequery(#{searchText}), '%')
+                AND   tmp.sup_name LIKE concat('%',my_ex.likequery(#{searchText}), '%')
             </if>
         </where>
     </sql>
@@ -586,7 +593,7 @@
         SELECT
         <include refid="Base_Column_List"/>
         FROM dkic_b.t_psi_purchase
-        WHERE pur_id = #{id}
+        WHERE pur_id = #{id}::uuid
         for update
     </select>
 
@@ -768,4 +775,150 @@
     </update>
 
 
+    <!-- 采购跟踪-->
+    <select id="selectTrackReport" resultType="java.util.Map">
+        SELECT *
+        FROM dkic_b.f_query_pur_for_track(#{purId}::uuid,#{cpId})
+    </select>
+    <select id="selectPurOrderAndDeatil" resultType="java.util.Map">
+        SELECT
+        tpp.pur_id AS "purId"
+        ,tpp.pur_no AS "purNo"
+        ,tpp.pur_type AS "purType"
+        ,tpp.org_id AS "orgId"
+        ,tpp.staff_id AS "staffId"
+        ,tpp.sup_id AS "supId"
+        ,tpp.contact_name AS "contactName"
+        ,tpp.contact_phone AS "contactPhone"
+        ,tpp.pickup_date AS "pickupDate"
+        ,tpp.sum_quantity AS "sumQuantity"
+        ,tpp.sum_standard AS "sumStandard"
+        ,tpp.sum_amount AS "sumAmount"
+        ,tpp.pur_discount AS "purDiscount"
+        ,tpp.pur_status AS "purStatus"
+        ,tpp.into_status AS "intoStatus"
+        ,tpp.intoing_qty AS "intoingQty"
+        ,tpp.intoing_amt AS "intoingAmt"
+        ,tpp.into_qty AS "intoQty"
+        ,tpp.into_amt AS "intoAmt"
+        ,tpp.return_qty AS "returnQty"
+        ,tpp.return_amt AS "returnAmt"
+        ,tpp.amt_payable AS "amtPayable"
+        ,tpp.amt_handle AS "amtHandle"
+        ,tpp.amt_residue AS "amtResidue"
+        ,tpp.remarks AS "remarks"
+        ,tpp.annex_paths AS "annexPaths"
+        ,tpp.make_staff AS "makeStaff"
+        ,tpp.make_time AS "makeTime"
+        ,tpp.flg_valid AS "flgValid"
+        ,tpp.cp_id AS "cpId"
+        ,tpp.op_create_time AS "opCreateTime"
+        ,tpp.op_create_user_id AS "opCreateUserId"
+        ,tpp.op_update_time AS "opUpdateTime"
+        ,tpp.op_update_user_id AS "opUpdateUserId"
+        ,tpp.op_app_code AS "opAppCode"
+        ,tpp.op_timestamp AS "opTimestamp"
+        ,tpp.op_db_user AS "opDbUser"
+        ,tpp.wh_id AS "whId"
+        ,tpp.from_ids AS "fromIds"
+        ,tpp.from_nos AS "fromNos"
+        ,tmo.org_name as "orgName"
+        ,tms.staff_name as "staffName"
+        ,tms1.staff_name as "makeStaffName"
+        ,tmp.sup_name as "supplierName"
+        ,tmp.return_address as "returnAddress"
+        ,tmw.wh_name as "whName"
+        ,sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "intoStatusName"
+        ,sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "purStatusName"
+        ,CASE
+        WHEN tpp.pur_status = '订单状态-暂存' THEN   sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n})
+        WHEN tpp.pur_status != '订单状态-暂存' THEN  sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n})
+        END AS "displayedStatus"
+       , (
+        SELECT
+        json_agg ( row_to_json ( item ) )
+        FROM
+        ( SELECT
+            tppi.item_id AS "itemId"
+            ,tppi.pur_id AS "purId"
+            ,tppi.item_index AS "itemIndex"
+            ,tppi.sku_id AS "skuId"
+            ,tppi.item_qty AS "itemQty"
+            ,tppi.price_std as "priceStd"
+            ,tppi.amt_std AS "amtStd"
+            ,tppi.price_pur AS "pricePur"
+            ,tppi.item_amt AS "itemAmt"
+            ,tppi.price_discount AS "priceDiscount"
+            ,tppi.non_std_code AS "nonStdCode"
+            ,tppi.into_status AS "intoStatus"
+            ,tppi.intoing_qty AS "intoingQty"
+            ,tppi.intoing_amt AS "intoingAmt"
+            ,tppi.into_qty AS "intoQty"
+            ,tppi.into_amt AS "intoAmt"
+            ,tppi.return_qty AS "returnQty"
+            ,tppi.return_amt AS "returnAmt"
+            ,tppi.remarks AS "remarks"
+            ,tppi.flg_valid AS "flagValid"
+            ,tppi.cp_id AS "cpId"
+            ,tppi.op_create_time AS "opCreateTime"
+            ,tppi.op_create_user_id AS "opCreateUserId"
+            ,tppi.op_update_time AS "opUpdateTime"
+            ,tppi.op_update_user_id AS "opUpdateUserId"
+            ,tppi.op_app_code AS "opAppCode"
+            ,tppi.op_timestamp AS "opTimestamp"
+            ,tppi.op_db_user AS "opDbUser"
+            ,tppi.from_id AS "fromId"
+            ,tppi.from_item_id AS "fromItemId"
+            ,tpoitem.order_no  as "orderNo"
+            ,tmgsitem.sku_code  as "skuCode"
+            ,tmgsitem.sku_model as "skuModel"
+            ,tmgsitem.sku_name  as "skuName"
+            ,tmgbitem.brand_name  as "brandName"
+            ,tmgbitem.short_name  as "shortName"
+            ,tmgsitem.sku_spec  as "skuSpec"
+            ,tmgsitem.price_purchase  as "pricePurchase"
+            ,tmgsitem.price_standard  as "priceStandard"
+            ,sys.f_get_name_i18n(tdk1item.kind_name_i18n, #{i18n}) as "intoStatusName"
+            ,i.inv_id AS "invId"
+            ,i.inv_qty AS "invQty"
+            ,i.usable_qty AS "usableQty"
+        ,tppitem.pur_no as "purNo"
+        FROM dkic_b.t_psi_purchase_item tppi
+        left join(SELECT T.*
+        FROM (select tpi.inv_id,
+        tpi.wh_id,
+        tpi.inv_qty,
+        tpi.usable_qty,
+        tpi.sku_id,
+        tpi.non_std_code,
+        tpi.cp_id,
+        tmwitem.wh_name,
+        rank()
+        over (partition by tpi.cp_id,tpi.sku_id,tpi.non_std_code order by tpi.inv_id) as RK
+        from dkic_b.t_psi_inventory as tpi
+        left join dkic_b.t_mst_warehouse as tmwitem on tmwitem.wh_id = tpi.wh_id) T
+        WHERE T.RK = 1) as i on i.sku_id = tppi.sku_id and i.non_std_code = tppi.non_std_code and i.cp_id = tppi.cp_id
+        left join dkic_b.t_psi_order tpoitem on tpoitem.order_id = tppi.from_id
+        left join dkic_b.t_mst_goods_sku tmgsitem on tppi.sku_id = tmgsitem.sku_id
+        left join dkic_b.t_mst_goods_brand tmgbitem on tmgbitem.brand_id = tmgsitem.brand_id
+        left join sys.t_data_kind tdk1item on tdk1item.kind_code = tppi.into_status
+        left join dkic_b.t_psi_purchase tppitem  on tppitem.pur_id = tppi.pur_id
+        WHERE
+        tppi.pur_id = tpp.pur_id
+        ) item
+        )  AS  "purchaseItemResponseList"
+        FROM dkic_b.t_psi_purchase tpp
+        Left join dkic_b.t_mst_org tmo on tpp.org_id = tmo.org_id
+        Left join dkic_b.t_mst_supplier tmp on tpp.sup_id = tmp.sup_id
+        Left join dkic_b.t_mst_staff tms on tpp.staff_id = tms.staff_id
+        Left join dkic_b.t_mst_staff tms1 on tpp.make_staff = tms1.staff_id
+        Left join dkic_b.t_mst_warehouse tmw on tpp.wh_id = tmw.wh_id
+        left join sys.t_data_kind tdk1 on tdk1.kind_code = tpp.into_status
+        left join sys.t_data_kind tdk2 on tdk2.kind_code = tpp.pur_status
+        <include refid="Condition_1"/>
+        order by  tpp.make_time desc
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
 </mapper>

+ 32 - 1
src/main/java/com/dk/mdm/mapper/report/ReportMapper.java

@@ -30,6 +30,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/10 16:43
      */
     List<Map<String, Object>> getPurReport(Map param);
+    Long getPurReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 采购明细表(明细)
@@ -37,6 +38,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/10 16:43
      */
     List<Map<String, Object>> getPurDetailReport(Map param);
+    Long getPurDetailReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 销售明细报表(主表)
@@ -44,6 +46,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:28
      */
     List<Map<String, Object>> getOrderReport(Map param);
+    Long getOrderReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 销售明细报表(明细)
@@ -51,6 +54,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:28
      */
     List<Map<String, Object>> getOrderDetailReport(Map param);
+    Long getOrderDetailReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 出库明细报表(主表)
@@ -58,6 +62,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:55
      */
     List<Map<String, Object>> getOutboundReport(Map param);
+    Long getOutboundReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 出库明细报表(明细)
@@ -65,6 +70,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:55
      */
     List<Map<String, Object>> getOutboundDetailReport(Map param);
+    Long getOutboundDetailReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 入库明细报表(主表)
@@ -72,6 +78,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:56
      */
     List<Map<String, Object>> getInboundlReport(Map param);
+    Long getInboundlReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 入库明细报表(明细)
@@ -79,6 +86,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/11 16:56
      */
     List<Map<String, Object>> getInboundDetailReport(Map param);
+    Long getInboundDetailReportCount(Map<String, Object> param);
 
     /**
      * @desc   : 客户收款明细表(主表)
@@ -86,7 +94,7 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/4/16 11:30
      */
     List<Map<String, Object>> getRecPayDetailReport(Map param);
-
+    Long getRecPayDetailReportCount(Map<String, Object> param);
     /**
      * @desc   : 销售跟踪表 列表查询
      * @author : 于继渤
@@ -94,9 +102,18 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      */
     List<Map<String, Object>> getSalesTrackingReport(Map param);
 
+    /**
+     * @desc   : 销售明细表 列表查询
+     * @author : 于继渤
+     * @date   : 2024/4/16 11:27
+     */
+    List<Map<String, Object>> getSalesItemReport(Map param);
+
     List<Map<String, Object>> getSalesTrackingReportDetail(String id);
     Long getSalesTrackingReportCount(Map<String, Object> param);
 
+    Long getSalesItemReportCount(Map<String, Object> param);
+
 
     /**
      * @desc   : 采购跟踪表 列表查询
@@ -125,4 +142,18 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      */
     Long getDailyReconciliationReportCount(Map<String, Object> param);
 
+    /**
+     * @desc   : 收发存汇总报表
+     * @author : 宋扬
+     * @date   : 2024/4/20 13:34
+     */
+    List<Map<String, Object>> getIvtSumReport(Map param);
+
+    /**
+     * @desc   : desc
+     * @author : 宋扬
+     * @date   : 2024/4/23 15:52
+     */
+    List<Map<String, Object>> getIvtItemReport(Map param);
+
 }

+ 396 - 70
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -584,6 +584,20 @@
         </if>
     </select>
 
+    <!-- 采购明细报表主表Count-->
+    <select id="getPurReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_purchase tpp
+        Left join dkic_b.t_mst_org tmo on tpp.org_id = tmo.org_id
+        Left join dkic_b.t_mst_supplier tmp on tpp.sup_id = tmp.sup_id
+        Left join dkic_b.t_mst_staff tms on tpp.staff_id = tms.staff_id
+        Left join dkic_b.t_mst_staff tms1 on tpp.make_staff = tms1.staff_id
+        Left join dkic_b.t_mst_warehouse tmw on tpp.wh_id = tmw.wh_id
+        left join sys.t_data_kind tdk2 on tdk2.kind_code = tpp.pur_status
+        left join sys.t_data_kind tdk1 on tdk1.kind_code = tpp.pur_type
+        <include refid="Condition_PurReport"/>
+    </select>
+
     <!-- 采购明细报表明细 -->
     <select id="getPurDetailReport" resultType="java.util.Map">
         select
@@ -627,8 +641,8 @@
         FROM dkic_b.t_psi_purchase as tpp
         Left join dkic_b.t_mst_org as tmo on tpp.org_id = tmo.org_id
         Left join dkic_b.t_mst_supplier as tmp on tpp.sup_id = tmp.sup_id
-        Left join dkic_b.t_mst_staff as tms on tpp.staff_id = tms.staff_id
-        Left join dkic_b.t_mst_staff as tms1 on tpp.make_staff = tms1.staff_id
+        Left join dkic_b.t_mst_staff as tms  on tpp.staff_id = tms.staff_id
+        Left join dkic_b.t_mst_staff as tms1  on tpp.make_staff = tms1.staff_id
         Left join dkic_b.t_mst_warehouse as tmw on tpp.wh_id = tmw.wh_id
         left join sys.t_data_kind as tdk2 on tdk2.kind_code = tpp.pur_status
         left join sys.t_data_kind tdk1 on tdk1.kind_code = tpp.pur_type
@@ -647,6 +661,28 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 采购明细报表明细Count-->
+    <select id="getPurDetailReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_purchase as tpp
+        Left join dkic_b.t_mst_org as tmo on tpp.org_id = tmo.org_id
+        Left join dkic_b.t_mst_supplier as tmp on tpp.sup_id = tmp.sup_id
+        Left join dkic_b.t_mst_staff as tms  on tpp.staff_id = tms.staff_id
+        Left join dkic_b.t_mst_staff as tms1  on tpp.make_staff = tms1.staff_id
+        Left join dkic_b.t_mst_warehouse as tmw on tpp.wh_id = tmw.wh_id
+        left join sys.t_data_kind as tdk2 on tdk2.kind_code = tpp.pur_status
+        left join sys.t_data_kind tdk1 on tdk1.kind_code = tpp.pur_type
+        left join dkic_b.t_psi_purchase_item as tppi on tppi.pur_id = tpp.pur_id
+        left join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tppi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgb.brand_id = tmgs.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgc.cat_id = tmgs.category_id
+        left join dkic_b.t_mst_goods_series as series on series.series_id = tmgs.series_id
+        left join dkic_b.t_psi_order as tpo on tpo.order_id = tppi.from_id
+        left join dkic_b.t_psi_inbound_item as ibi on ibi.from_item_id=tppi.item_id
+        left join dkic_b.t_psi_inbound as ib on ibi.into_id=ib.into_id
+        left join sys.t_data_kind tdk1 on tdk1.kind_code = tppi.into_status
+        <include refid="Condition_PurDetailReport"/>
+    </select>
 
     <!-- 销售明细报表主表 -->
     <select id="getOrderReport" resultType="java.util.Map">
@@ -689,6 +725,20 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 销售明细报表主表Count-->
+    <select id="getOrderReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_order as t
+        left join dkic_b.t_mst_sale_channel as tmsc on t.sales_channel = tmsc.channel_id
+        left join dkic_b.t_mst_org as tmo on t.org_id = tmo.org_id
+        left join dkic_b.t_mst_staff as tms on t.staff_id = tms.staff_id
+        left join dkic_b.t_mst_staff as makestaff on t.make_staff = makestaff.staff_id
+        left join dkic_b.t_mst_customer as tmc on t.cus_id = tmc.cus_id
+        left join dkic_b.t_mst_dictionary_data as tmdd on tmc.cus_from = tmdd.data_id
+        left join sys.t_data_kind as tdk1 on t.order_type = tdk1.kind_code
+        left join sys.t_data_kind as tdk2 on t.order_status = tdk2.kind_code
+        <include refid="Condition_OrdReport"/>
+    </select>
 
     <!-- 销售明细报表明细 -->
     <select id="getOrderDetailReport" resultType="java.util.Map">
@@ -758,6 +808,27 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 销售明细报表明细Count-->
+    <select id="getOrderDetailReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_order as t
+        left join dkic_b.t_mst_sale_channel tmsc on t.sales_channel = tmsc.channel_id
+        left join dkic_b.t_mst_org tmo on t.org_id = tmo.org_id
+        left join dkic_b.t_mst_staff tms on t.staff_id = tms.staff_id
+        left join dkic_b.t_mst_staff as makestaff on t.make_staff = makestaff.staff_id
+        left join dkic_b.t_mst_customer tmc on t.cus_id = tmc.cus_id
+        left join dkic_b.t_mst_dictionary_data tmdd on tmc.cus_from = tmdd.data_id
+        left join sys.t_data_kind as tdk1 on t.order_type = tdk1.kind_code
+        left join sys.t_data_kind as tdk2 on t.order_status = tdk2.kind_code
+        left join dkic_b.t_psi_order_item as toi on toi.order_id = t.order_id
+        left join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = toi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgb.brand_id = tmgs.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgc.cat_id = tmgs.category_id
+        left join dkic_b.t_mst_goods_series as series on series.series_id = tmgs.series_id
+        left join sys.t_data_kind as tdk3 on tdk3.kind_code = toi.out_status
+        left join dkic_b.t_psi_outbound as tpo on tpo.from_id=t.order_id
+        <include refid="Condition_OrdDetailReport"/>
+    </select>
 
     <!-- 出库明细报表主表 -->
     <select id="getOutboundReport" resultType="java.util.Map">
@@ -799,6 +870,20 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 出库明细报表主表Count-->
+    <select id="getOutboundReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_outbound as t
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        Left join dkic_b.t_mst_supplier tmp on tmp.sup_id = t.sup_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.cus_id
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmc.cus_from
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.out_status
+        LEFT JOIN sys.t_data_kind tdktype   ON tdktype.kind_code = t.out_type
+        <include refid="Condition_OutboundReport"/>
+    </select>
 
     <!-- 出库明细报表明细 -->
     <select id="getOutboundDetailReport" resultType="java.util.Map">
@@ -860,6 +945,27 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 出库明细报表明细Count-->
+    <select id="getOutboundDetailReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_outbound as t
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        Left join dkic_b.t_mst_supplier tmp on tmp.sup_id = t.sup_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.cus_id
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmc.cus_from
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.out_status
+        left join sys.t_data_kind tdktype   ON tdktype.kind_code = t.out_type
+        left join dkic_b.t_psi_outbound_item as tpoi on tpoi.out_id = t.out_id
+        left join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tpoi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgb.brand_id = tmgs.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgc.cat_id = tmgs.category_id
+        left join dkic_b.t_mst_goods_series as series on series.series_id = tmgs.series_id
+        left join dkic_b.t_psi_inventory as tpi on tpi.inv_id = tpoi.inv_id
+        left join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id
+        <include refid="Condition_OutboundDetailReport"/>
+    </select>
 
     <!-- 入库明细报表主表 -->
     <select id="getInboundlReport" resultType="java.util.Map">
@@ -903,6 +1009,21 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 入库明细报表主表Count-->
+    <select id="getInboundlReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_inbound as t
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        Left join dkic_b.t_mst_supplier tmp on tmp.sup_id = t.sup_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.cus_id
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmc.cus_from
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.into_status
+        left join sys.t_data_kind tdktype   ON tdktype.kind_code = t.into_type
+        left join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = t.wh_id
+        <include refid="Condition_IntoboundReport"/>
+    </select>
 
     <!-- 入库明细报表明细 -->
     <select id="getInboundDetailReport" resultType="java.util.Map">
@@ -962,6 +1083,26 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 入库明细报表明细Count-->
+    <select id="getInboundDetailReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_inbound as t
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        Left join dkic_b.t_mst_supplier tmp on tmp.sup_id = t.sup_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.cus_id
+        left join dkic_b.t_mst_dictionary_data tmdd on tmdd.data_id = tmc.cus_from
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.into_status
+        LEFT JOIN sys.t_data_kind tdktype   ON tdktype.kind_code = t.into_type
+        left join dkic_b.t_psi_inbound_item as tpoi on tpoi.into_id = t.into_id
+        left join dkic_b.t_mst_goods_sku as tmgs on tmgs.sku_id = tpoi.sku_id
+        left join dkic_b.t_mst_goods_brand as tmgb on tmgb.brand_id = tmgs.brand_id
+        left join dkic_b.t_mst_goods_category as tmgc on tmgc.cat_id = tmgs.category_id
+        left join dkic_b.t_mst_goods_series as series on series.series_id = tmgs.series_id
+        left join dkic_b.t_psi_inventory as tpi on tpi.inv_id = tpoi.inv_id
+        <include refid="Condition_IntoboundDetailReport"/>
+    </select>
 
     <!-- 客户收款明细报表主表 -->
     <select id="getRecPayDetailReport" resultType="java.util.Map">
@@ -992,15 +1133,21 @@
             limit #{end} offset #{start}
         </if>
     </select>
+    <!-- 客户收款明细报表主表Count-->
+    <select id="getRecPayDetailReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM dkic_b.t_mac_rec_pay_item as tmrpi
+        left join dkic_b.t_mac_rec_pay t on tmrpi.rp_id = t.rp_id
+        left join dkic_b.t_mst_org tmo on tmo.org_id = t.org_id
+        left join dkic_b.t_mst_staff tms on tms.staff_id = t.staff_id
+        left join dkic_b.t_mst_staff as makestaff on makestaff.staff_id = t.make_staff
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.object_id
+        left join sys.t_data_kind as tdk1 on tdk1.kind_code = t.rp_type
+        left join dkic_b.t_mst_money_account tmma on tmma.mac_id = tmrpi.mac_id
+        <include refid="Condition_RecPayDetailReport"/>
+    </select>
 
 
-    <sql id="ConditionSalesTrackingReport">
-        <where>
-            <if test="cpId != null">
-                tpo.cp_id = #{cpId}
-            </if>
-        </where>
-    </sql>
 
     <sql id="ConditionPurTrackingReport">
         <where>
@@ -1050,6 +1197,10 @@
             ,tpo.make_time AS "makeTime"
             ,tms.staff_name as "staffName"
             ,tmo.org_name   as "orgName"
+            ,tmrp.sum_amt_rec AS "sumAmtRec"
+            ,tmrp.sum_should_handle AS "sumShouldHandle"
+            ,tmrp.sum_use_payment_residue  AS "sumUsePaymentResidue"
+            ,tmrp.sum_waive_amt AS "sumWaiveAmt"
         FROM
             dkic_b.t_psi_order tpo
         left join dkic_b.t_mst_customer tmc on tpo.cus_id = tmc.cus_id
@@ -1058,14 +1209,167 @@
         left join sys.t_data_kind as tdk3 on tpo.out_status = tdk3.kind_code
         left join dkic_b.t_mst_staff tms on tpo.staff_id = tms.staff_id
         left join dkic_b.t_mst_org tmo on tpo.org_id = tmo.org_id
+        left join dkic_b.t_mac_rec_pay tmrp on  tmrp.biznis_id = tpo.order_id
         <include refid="ConditionSalesTrackingReport"/>
-        order by  tpo.op_create_time desc
+        <if test="sort!=null and sort == 'balanceDesc'">
+            ORDER BY  tpo.make_time  desc
+        </if>
+        <if test="sort!=null and sort == 'balanceAsc'">
+            ORDER BY  tpo.make_time  asc
+        </if>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>
     </select>
 
+    <sql id="ConditionSalesTrackingReport">
+        <where>
+            <if test="orderNo != null">
+                tpo.order_no = #{orderNo}
+            </if>
+            <if test="cusName != null">
+                tmc.cus_name  = #{cusName}
+            </if>
+            <if test="cpId != null">
+                tpo.cp_id = #{cpId}
+            </if>
+            <if test="createtimeStart != null and createtimeEnd != null">
+                AND tpo.op_create_time &gt;= #{createtimeStart}::timestamp with time zone
+                AND tpo.op_create_time &lt; #{createtimeEnd}::timestamp with time zone + interval '1 day'
+            </if>
+            <if  test="searchText != null">
+                AND (tpo.order_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 tpo.address_full   like concat('%', my_ex.likequery(#{searchText}) , '%')
+                OR  tpo.remarks like concat('%', my_ex.likequery(#{searchText}) , '%')
+                )
+            </if>
+        </where>
+    </sql>
+
+
+    <!--  销售明细查询 -->
+    <select id="getSalesItemReport" resultType="java.util.Map">
+        SELECT
+            t.item_id AS "itemId",
+            t.order_id AS "orderId",
+            t.item_index AS "itemIndex",
+            t.sku_id AS "skuId",
+            tmgs.sku_code  as "skuCode",
+            tmgs.sku_model as "skuModel",
+            tmgs.sku_name  as "skuName",
+            tmgb.brand_name AS "brandName",
+            t.item_qty AS "itemQty",
+            sys.f_get_name_i18n(tdk3.kind_name_i18n, #{i18n}) as "outStatusName",
+            t.price_std AS "priceStd",
+            t.amt_std AS "amtStd",
+            t.price_sale AS "priceSale",
+            t.item_amt AS "itemAmt",
+            t.price_discount AS "priceDiscount",
+            t.non_std_code AS "nonStdCode",
+            t.out_status AS "outStatus",
+            t.outing_qty AS "outingQty",
+            t.outing_amt AS "outingAmt",
+            t.out_qty AS "outQty",
+            t.out_amt AS "outAmt",
+            t.return_qty AS "returnQty",
+            t.return_amt AS "returnAmt",
+            t.remarks,
+            t.wh_id AS "whId",
+            tmw.wh_name AS "whName",
+            tpo.order_no AS "orderNo",
+            tpo.make_time AS "makeTime",
+             tmc.cus_id AS "cusId",
+             tmc.cus_code AS "cusCode",
+             tmc.cus_name AS "cusName",
+             tmc.cus_phone AS "cusPhone"
+        FROM dkic_b.t_psi_order_item as t
+        inner join dkic_b.t_psi_order tpo on tpo.order_id = t.order_id
+        inner join dkic_b.t_mst_goods_sku tmgs on t.sku_id = tmgs.sku_id
+        left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = t.wh_id
+        left join dkic_b.t_mst_customer tmc on tmc.cus_id = tpo.cus_id
+        LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
+        left join sys.t_data_kind as tdk3 on tpo.out_status = tdk3.kind_code
+        <include refid="ConditionSaleItem"/>
+        order by t.item_index
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+
+    </select>
 
+    <sql id="ConditionSaleItem">
+        <where>
+            <if test="orderId != null and orderId != ''">
+                AND t.order_id = #{orderId}::uuid
+            </if>
+            <if test="itemIndex != null">
+                AND t.item_index = #{itemIndex}
+            </if>
+            <if test="skuId != null and skuId != ''">
+                AND t.sku_id = #{skuId}
+            </if>
+            <if test="itemQty != null">
+                AND t.item_qty = #{itemQty}
+            </if>
+            <if test="priceStd != null">
+                AND t.price_std = #{priceStd}
+            </if>
+            <if test="amtStd != null">
+                AND t.amt_std = #{amtStd}
+            </if>
+            <if test="priceSale != null">
+                AND t.price_sale = #{priceSale}
+            </if>
+            <if test="itemAmt != null">
+                AND t.item_amt = #{itemAmt}
+            </if>
+            <if test="priceDiscount != null">
+                AND t.price_discount = #{priceDiscount}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND t.non_std_code = #{nonStdCode}
+            </if>
+            <if test="outStatus != null and outStatus != ''">
+                AND t.out_status = #{outStatus}
+            </if>
+            <if test="outingQty != null">
+                AND t.outing_qty = #{outingQty}
+            </if>
+            <if test="outingAmt != null">
+                AND t.outing_amt = #{outingAmt}
+            </if>
+            <if test="outQty != null">
+                AND t.out_qty = #{outQty}
+            </if>
+            <if test="outAmt != null">
+                AND t.out_amt = #{outAmt}
+            </if>
+            <if test="returnQty != null">
+                AND t.return_qty = #{returnQty}
+            </if>
+            <if test="returnAmt != null">
+                AND t.return_amt = #{returnAmt}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND t.remarks = #{remarks}
+            </if>
+            <if test="flgValid != null">
+                AND t.flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND t.cp_id = #{cpId}
+            </if>
+        </where>
+    </sql>
+    <select id="getSalesItemReportCount" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM
+         dkic_b.t_psi_order_item t
+        <include refid="ConditionSaleItem"/>
+    </select>
 
     <select id="getSalesTrackingReportCount" resultType="java.lang.Long">
         SELECT count(1)
@@ -1074,6 +1378,17 @@
         <include refid="ConditionSalesTrackingReport"/>
     </select>
 
+    <!-- 收发存汇总报表 -->
+    <select id="getIvtSumReport" resultType="java.util.Map">
+        select dkic_b.f_query_ivt_rds(#{cpId},#{currentPage},#{pageSize}, #{querys, typeHandler=JsonTypeHandler})
+    </select>
+
+    <!-- 收发存汇总报表明细 -->
+    <select id="getIvtItemReport" resultType="java.util.Map">
+        select dkic_b.f_query_ivt_rds_item(#{cpId},#{invId} ::uuid,#{invType},#{accDateStart} ::date
+                   ,#{accDateEnd} ::date,#{i18n} ,#{currentPage},#{pageSize})
+    </select>
+
     <select id="getSalesTrackingReportDetail"  resultType="java.util.Map">
         SELECT T
                    ."id",
@@ -1091,6 +1406,8 @@
                T."outingQty",
                T."priceSale",
                T."itemQty",
+               T."sumQuantity",
+               T."sumAmount",
                T."sumAmtRec",
                T."sumShouldHandle",
                T."sumUsePaymentResidue",
@@ -1117,6 +1434,8 @@
                     tpo.outing_qty AS "outingQty",
                     tpoi.price_sale AS "priceSale",
                     tpoi.item_qty AS "itemQty",
+                    tpo.sum_quantity AS "sumQuantity",
+                    tpo.sum_amount AS "sumAmount",
                     0.00 AS "sumAmtRec",
                     0.00 AS "sumShouldHandle",
                     0.00 AS "sumUsePaymentResidue",
@@ -1154,6 +1473,8 @@
                     WHEN tpobi.out_status = '出库状态-出库中' THEN
                     tpobi.outing_qty ELSE tpobi.out_qty
                     END AS "itemQty",
+                    0.00 AS "sumQuantity",
+                    0.00 AS "sumAmount",
                     0.00 AS "sumAmtRec",
                     0.00 AS "sumShouldHandle",
                     0.00 AS "sumUsePaymentResidue",
@@ -1190,6 +1511,8 @@
                     WHEN tpobi.out_status = '出库状态-出库中' THEN
                     tpobi.outing_qty ELSE tpobi.out_qty
                     END AS "itemQty",
+                    0.00 AS "sumQuantity",
+                    0.00 AS "sumAmount",
                     0.00 AS "sumAmtRec",
                     0.00 AS "sumShouldHandle",
                     0.00 AS "sumUsePaymentResidue",
@@ -1222,6 +1545,8 @@
                     NULL AS "outingQty",
                     NULL AS "priceSale",
                     NULL AS "itemQty",
+                    0.00 AS "sumQuantity",
+                    0.00 AS "sumAmount",
                     tmrp.sum_amt_rec AS "sumAmtRec",
                     tmrp.sum_should_handle AS "sumShouldHandle",
                     tmrp.sum_use_payment_residue AS "sumUsePaymentResidue",
@@ -1240,7 +1565,7 @@
     <!--  采购跟踪表 列表查询 -->
     <select id="getPurTrackingReport" resultType="java.util.Map">
         SELECT
-         tpp.pur_id AS "purId"
+        tpp.pur_id AS "purId"
         ,tpp.pur_no AS "purNo"
         ,tpp.pur_type AS "purType"
         ,sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) AS "purTypeName"
@@ -1336,7 +1661,8 @@
         <result column="itemQty" property="itemQty"/>
         <result column="remarks" property="remarks"/>
     </resultMap>
-<!--采购跟踪表 明细查询-->
+    
+    <!--采购跟踪表 明细查询-->
     <select id="getPurTrackingReportDetail" resultMap="PurTrackingReportResultMapResponse">
         SELECT T."id"
              ,T."no"
@@ -1406,72 +1732,72 @@
                 UNION  ALL
                 SELECT
                     tpi.into_id AS "id"
-                     ,tpi.into_no AS "no"
-                     ,NULL AS "contactName"
-                     ,NULL AS "contactPhone"
-                     ,NULL AS "whId"
-                     ,NULL AS "makeTime"
-                     ,NULL AS "pickupDate"
-                     ,NULL AS "sumQuantity"
-                     ,NULL AS "sumAmount"
-                     ,NULL AS "intoQty"
-                     ,0 AS "returnQty"
-                     ,0.00 AS "sumAmtRec"
-                     ,0.00 AS "sumShouldHandle"
-                     ,0.00 AS "sumUsePaymentResidue"
-                     ,0.00 AS "sumWaiveAmt"
-                     ,tpii.item_id AS "itemId"
-                     ,'采购入库' AS "type"
-                     ,tpii.sku_id AS "skuId"
-                     ,tmgs.sku_code AS "skuCode"
-                     ,tmgs.sku_name AS "skuName"
-                     ,tmgs.sku_model AS "skuModel"
-                     ,tmgs.sku_images AS "skuImages"
-                     ,tmgb.brand_name AS "brandName"
-                     ,tmgb.short_name AS "shortName"
-                     ,tpii.price_into AS "pricePur"
-                     , CASE
-                           WHEN tpii.into_status = '入库状态-入库中' THEN  tpii.intoing_qty
-                           ELSE tpii.into_qty
+                        ,tpi.into_no AS "no"
+                        ,NULL AS "contactName"
+                        ,NULL AS "contactPhone"
+                        ,NULL AS "whId"
+                        ,NULL AS "makeTime"
+                        ,NULL AS "pickupDate"
+                        ,NULL AS "sumQuantity"
+                        ,NULL AS "sumAmount"
+                        ,NULL AS "intoQty"
+                        ,0 AS "returnQty"
+                        ,0.00 AS "sumAmtRec"
+                        ,0.00 AS "sumShouldHandle"
+                        ,0.00 AS "sumUsePaymentResidue"
+                        ,0.00 AS "sumWaiveAmt"
+                        ,tpii.item_id AS "itemId"
+                        ,'采购入库' AS "type"
+                        ,tpii.sku_id AS "skuId"
+                        ,tmgs.sku_code AS "skuCode"
+                        ,tmgs.sku_name AS "skuName"
+                        ,tmgs.sku_model AS "skuModel"
+                        ,tmgs.sku_images AS "skuImages"
+                        ,tmgb.brand_name AS "brandName"
+                        ,tmgb.short_name AS "shortName"
+                        ,tpii.price_into AS "pricePur"
+                        , CASE
+                    WHEN tpii.into_status = '入库状态-入库中' THEN  tpii.intoing_qty
+                    ELSE tpii.into_qty
                     END AS "itemQty"
-                     --  入库中显示入库中数量  已入库显示 已入库数量
-                     ,tpii.remarks AS "remarks"
+                    --  入库中显示入库中数量  已入库显示 已入库数量
+                        ,tpii.remarks AS "remarks"
                 FROM
                     dkic_b.t_psi_inbound_item tpii
-                        LEFT JOIN dkic_b.t_psi_inbound tpi ON tpi.into_id = tpii.into_id
-                        LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpii.sku_id
-                        LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
+                    LEFT JOIN dkic_b.t_psi_inbound tpi ON tpi.into_id = tpii.into_id
+                    LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpii.sku_id
+                    LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
                 WHERE
                     tpi.from_id = = #{id}::uuid
                 UNION ALL
                 SELECT
                     tmrp.rp_id AS "id"
-                     ,tmrp.rp_no AS "no"
-                     ,NULL AS "contactName"
-                     ,NULL AS "contactPhone"
-                     ,NULL AS "whId"
-                     ,NULL AS "makeTime"
-                     ,NULL AS "pickupDate"
-                     ,NULL AS "sumQuantity"
-                     ,NULL AS "sumAmount"
-                     ,NULL AS "intoQty"
-                     ,NULL AS "returnQty"
-                     ,tmrp.sum_amt_rec AS "sumAmtRec"
-                     ,tmrp.sum_should_handle AS "sumShouldHandle"
-                     ,tmrp.sum_use_payment_residue AS "sumUsePaymentResidue"
-                     ,tmrp.sum_waive_amt AS "sumWaiveAmt"
-                     ,Null AS "itemId"
-                     ,'核销信息' AS "type"
-                     ,Null AS "skuId"
-                     ,Null AS "skuCode"
-                     ,Null AS "skuName"
-                     ,Null AS "skuModel"
-                     ,Null AS "skuImages"
-                     ,Null AS "brandName"
-                     ,Null AS "shortName"
-                     ,Null AS "pricePur"
-                     ,Null AS "itemQty"
-                     ,Null AS "remarks"
+                        ,tmrp.rp_no AS "no"
+                        ,NULL AS "contactName"
+                        ,NULL AS "contactPhone"
+                        ,NULL AS "whId"
+                        ,NULL AS "makeTime"
+                        ,NULL AS "pickupDate"
+                        ,NULL AS "sumQuantity"
+                        ,NULL AS "sumAmount"
+                        ,NULL AS "intoQty"
+                        ,NULL AS "returnQty"
+                        ,tmrp.sum_amt_rec AS "sumAmtRec"
+                        ,tmrp.sum_should_handle AS "sumShouldHandle"
+                        ,tmrp.sum_use_payment_residue AS "sumUsePaymentResidue"
+                        ,tmrp.sum_waive_amt AS "sumWaiveAmt"
+                        ,Null AS "itemId"
+                        ,'核销信息' AS "type"
+                        ,Null AS "skuId"
+                        ,Null AS "skuCode"
+                        ,Null AS "skuName"
+                        ,Null AS "skuModel"
+                        ,Null AS "skuImages"
+                        ,Null AS "brandName"
+                        ,Null AS "shortName"
+                        ,Null AS "pricePur"
+                        ,Null AS "itemQty"
+                        ,Null AS "remarks"
                 FROM
                     dkic_b.t_mac_rec_pay tmrp
 

+ 2 - 2
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml

@@ -524,7 +524,7 @@
         FROM dkic_b.t_psi_order_item as t
         left join dkic_b.t_psi_order as tpo on tpo.order_id = t.order_id
         inner join dkic_b.t_mst_goods_sku tmgs on t.sku_id = tmgs.sku_id
-        left join(select from_item_id,sum(item_qty) as sumQty from t_psi_purchase_item
+        left join(select from_item_id,sum(item_qty) as sumQty from dkic_b.t_psi_purchase_item
             group by from_item_id) as pi on pi.from_item_id = t.item_id
         <where>
             t.item_qty - coalesce(sumQty,0) > 0
@@ -544,7 +544,7 @@
         FROM dkic_b.t_psi_order_item as t
         left join dkic_b.t_psi_order as tpo on tpo.order_id = t.order_id
         inner join dkic_b.t_mst_goods_sku tmgs on t.sku_id = tmgs.sku_id
-        left join(select from_item_id,sum(item_qty) as sumQty from t_psi_purchase_item
+        left join(select from_item_id,sum(item_qty) as sumQty from dkic_b.t_psi_purchase_item
         group by from_item_id) as pi on pi.from_item_id = t.item_id
         <where>
             t.item_qty - coalesce(sumQty,0) > 0

+ 1 - 1
src/main/java/com/dk/mdm/model/pojo/mst/Staff.java

@@ -118,7 +118,7 @@ public class Staff extends PageInfo<Staff> implements Serializable {
      */
     @Excel(name = "企业ID")
     @ApiModelProperty(value = "企业ID")
-    @TableField(fill = FieldFill.INSERT)
+//    @TableField(fill = FieldFill.INSERT)
     private Integer cpId;
 
 

+ 14 - 7
src/main/java/com/dk/mdm/model/query/ivt/InboundQuery.java

@@ -116,13 +116,6 @@ public class InboundQuery extends PageInfo<InboundQuery>{
 
 
 
-    /**
-     * 入库日期
-     */
-    @ApiModelProperty(value = "入库日期")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDate intoDate;
 
 
     /**
@@ -208,6 +201,20 @@ public class InboundQuery extends PageInfo<InboundQuery>{
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate makeTimeEnd;
 
+    @ApiModelProperty(value = "入库时间开始")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate intoDateStart;
+
+    @ApiModelProperty(value = "入库时间结束")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate intoDateEnd;
+
+    /**
+     * 收货仓库
+     */
+    @Excel(name = "仓库")
+    @ApiModelProperty(value = "收货仓库")
+    private String whName;
     /**
      * 商品型号
      */

+ 4 - 0
src/main/java/com/dk/mdm/model/query/ivt/InventoryQuery.java

@@ -116,7 +116,11 @@ public class InventoryQuery extends PageInfo<InventoryQuery>{
     @ApiModelProperty(value = "冻结数量")
     private BigDecimal freezeQty;
 
+    @ApiModelProperty(value = "模糊查询")
+    private String searchText;
 
+    @ApiModelProperty(value = "排序")
+    private String desc;
     /*
      * 相关属性
      * @TableField(exist = false)

+ 9 - 0
src/main/java/com/dk/mdm/model/query/pur/PurchaseQuery.java

@@ -391,6 +391,15 @@ public class PurchaseQuery extends PageInfo<PurchaseQuery> implements Serializab
     @TableField(typeHandler = TimestampTypeHandler.class,exist = false)
     private LocalDate  pickupDateEnd;
 
+
+    @ApiModelProperty(value = "业务员")
+    private String staffName;
+
+    @ApiModelProperty(value = "业务部门")
+    private String orgName;
+
+    @ApiModelProperty(value = "供应商")
+    private String supName;
     /*
      * 相关属性
      * @TableField(exist = false)

+ 3 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java

@@ -229,6 +229,9 @@ public class OutboundItemVO {
     @ApiModelProperty(value = "新建编辑标识true:新建,false:编辑")
     private Boolean addOrEditFlag;
 
+    @ApiModelProperty(value = "可以输入负数出库标识")
+    private Boolean canNegativeFlag;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 9 - 12
src/main/java/com/dk/mdm/service/common/ExportService.java

@@ -55,28 +55,25 @@ public class ExportService {
         List list = null;
         try {
             Class interfz = Class.forName(constant.getInterfz());
-            Object instance;
+            Object instance = Proxy.newProxyInstance(interfz.getClassLoader(),new Class[]{interfz} ,new MesProxy(sqlSession.getMapper(interfz)));
             Method selectMethod;
-            if (constant.getInterfz().endsWith("Feign")){
-                instance = ApplicationContextUtil.getBean(interfz);
+            // 查询条件是map
+            if(constant.getMapFlag()){
                 selectMethod = instance.getClass().getDeclaredMethod(constant.getMethod(),Map.class);
-            } else {
-                instance = Proxy.newProxyInstance(interfz.getClassLoader(),new Class[]{interfz} ,new MesProxy(sqlSession.getMapper(interfz)));
+            }else{
                 selectMethod = instance.getClass().getDeclaredMethod(constant.getMethod(),Object.class);
             }
-            if (constant.getInterfz().endsWith("Feign")){
-                ResponseResultVO<PageList> resultVO = (ResponseResultVO<PageList>) selectMethod.invoke(instance, param);
-                list = (resultVO).getData().getList();
-            } else {
-                list = (List)selectMethod.invoke(instance,param);
-            }
+            list = (List)selectMethod.invoke(instance,param);
         } catch (Exception e) {
             e.printStackTrace();
         }
         if (list != null && list.size() > 0) {
             // 处理数据
             List<Map<String, Object>> mapList = filterExportColumns(condition, list);
-            String path = ExcelPoiUtils.createExcel(mapList, title + "_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss")) + ".xlsx", title);
+            String fileName = UUID.randomUUID().toString();
+            String path = ExcelPoiUtils.createExcel(mapList,
+                    fileName + "_" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss")) + ".xlsx",
+                    title, param.get("name").toString());
             return ResponseResultUtil.success(path);
         }
         return ResponseResultUtil.success("");

+ 3 - 3
src/main/java/com/dk/mdm/service/ivt/inbound/InboundItemService.java

@@ -142,7 +142,7 @@ public class InboundItemService extends BaseService<InboundItem> {
 								.setCostAmt(outCostAmt);
 						outboundItemMapper.updateOutCost(outboundItemQuery);
 
-						outCostAmtTotal.add(outCostAmt);
+						outCostAmtTotal = outCostAmtTotal.add(outCostAmt);
 						//修改存货批次明细
 						InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
 								.setBatchId(inventoryBatchResponse.getBatchId())
@@ -211,11 +211,11 @@ public class InboundItemService extends BaseService<InboundItem> {
 
 		BigDecimal inventoryCostTotal = BigDecimal.ZERO;
 		for(InventoryBatchResponse inventoryBatchResponse1 : inventoryBatchList){
-			inventoryCostTotal.add(inventoryBatchResponse1.getCostAmt());
+			inventoryCostTotal = inventoryCostTotal.add(inventoryBatchResponse1.getCostAmt());
 		}
 		Inventory inventory = new Inventory()
 				.setInvId(inventoryBatchQuery.getInvId())
-				.setCostPrice(inventoryCostTotal.divide(inventoryResponse.getInvQty()).setScale(2, BigDecimal.ROUND_HALF_UP))
+				.setCostPrice(inventoryCostTotal.divide(inventoryResponse.getInvQty(),BigDecimal.ROUND_HALF_UP))
 				.setCostAmt(inventoryCostTotal);
 		inventoryMapper.updateCost(inventory);
 		return ResponseResultUtil.success(inventoryBatchQuery);

+ 1 - 1
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java

@@ -319,7 +319,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
                 InboundItem inboundItem = new InboundItem();
                 inboundItem.setItemId(inboundItemVO.getItemId());
-                if (inboundItemVO.getRemarks() != null || inboundItemVO.getRemarks() != " ") {
+                if (inboundItemVO.getRemarks() != null && inboundItemVO.getRemarks() != "") {
                     inboundItem.setRemarks(inboundItemVO.getRemarks());
                     inboundItemMapper.update(inboundItem,
                             new UpdateWrapper<InboundItem>().lambda()

+ 7 - 8
src/main/java/com/dk/mdm/service/mac/MacTransferService.java

@@ -83,18 +83,17 @@ public class MacTransferService extends BaseService<MacTransfer> {
 	 */
 	@Pagination
 	public ResponseResultVO<PageList<MacTransferResponse>> selectByCond(MacTransferQuery macTransferQuery) {
-		List<MacTransferResponse> list = new ArrayList<>();
-		list = macTransferMapper.selectByCond(macTransferQuery);
+		List<MacTransferResponse> list = macTransferMapper.selectByCond(macTransferQuery);
 		for(int i =0;i<list.size();i++){ //显示明细第一条的 内容
-			list.get(i).getTrfId();
 			// 转账明细
 			List<MacTransferItemResponse> itemList = macTransferItemMapper.selectByCond(new MacTransferItemQuery().setTrfId(list.get(i).getTrfId()));
 	     if(itemList.size()>0){
-			 list.get(i).setTrfInMac(itemList.get(0).getTrfInMac());
-			 list.get(i).setTrfOutMac(itemList.get(0).getTrfOutMac());
-			 list.get(i).setAmtTrf(itemList.get(0).getAmtTrf());
-			 list.get(i).setTrfInMacName(itemList.get(0).getTrfInMacName());
-			 list.get(i).setTrfOutMacName(itemList.get(0).getTrfOutMacName());
+			 MacTransferItemResponse macTransferItemResponse = itemList.get(0);
+			 list.get(i).setTrfInMac(macTransferItemResponse.getTrfInMac());
+			 list.get(i).setTrfOutMac(macTransferItemResponse.getTrfOutMac());
+			 list.get(i).setAmtTrf(macTransferItemResponse.getAmtTrf());
+			 list.get(i).setTrfInMacName(macTransferItemResponse.getTrfInMacName());
+			 list.get(i).setTrfOutMacName(macTransferItemResponse.getTrfOutMacName());
 		 }
 		}
 

+ 30 - 23
src/main/java/com/dk/mdm/service/mst/MenuFrequencyService.java

@@ -7,6 +7,7 @@ import com.dk.mdm.model.pojo.mst.MenuFrequency;
 import com.dk.mdm.mapper.mst.MenuFrequencyMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.response.mst.MenuFrequencyResponse;
 import com.dk.mdm.model.vo.mst.MenuFrequencyVO;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,31 +17,37 @@ import org.springframework.transaction.annotation.Transactional;
 @Transactional
 public class MenuFrequencyService extends BaseService<MenuFrequency> {
 
-	@Override
-	public BaseMapper<MenuFrequency> getRepository() {
-		return menuFrequencyMapper;
-	}
+    @Override
+    public BaseMapper<MenuFrequency> getRepository() {
+        return menuFrequencyMapper;
+    }
 
-	@Autowired
-	private MenuFrequencyMapper menuFrequencyMapper;
+    @Autowired
+    private MenuFrequencyMapper menuFrequencyMapper;
 
-	@Autowired
-	private MenuFrequencyConvert menuFrequencyConvert;
+    @Autowired
+    private MenuFrequencyConvert menuFrequencyConvert;
 
-	/**
-	 * @desc : 保存用户功能频率表
-	 * @author : 周兴
-	 * @date : 2024/3/28 9:39
-	 */
-	@Transactional(
-			rollbackFor = {Exception.class}
-	)
-	public ResponseResultVO<?> save(MenuFrequencyVO menuFrequencyVO) {
-		MenuFrequency  menuFrequency = menuFrequencyConvert.convertToPo(menuFrequencyVO);
-		menuFrequency.setQty(1);
-		// 保存用户功能频率表
-		menuFrequencyMapper.save(menuFrequency);
-		return ResponseResultUtil.success();
-	}
+    /**
+     * @desc : 保存用户功能频率表
+     * @author : 周兴
+     * @date : 2024/3/28 9:39
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<?> save(MenuFrequencyVO menuFrequencyVO) {
+        MenuFrequency menuFrequency = menuFrequencyConvert.convertToPo(menuFrequencyVO);
+        // 先查出数量
+        MenuFrequencyResponse mf = menuFrequencyMapper.selectMenuById(menuFrequency);
+        if (mf == null) {
+            menuFrequency.setQty(1);
+        }else{
+            menuFrequency.setQty(mf.getQty() + 1);
+        }
+        // 保存用户功能频率表
+        menuFrequencyMapper.save(menuFrequency);
+        return ResponseResultUtil.success();
+    }
 
 }

+ 3 - 10
src/main/java/com/dk/mdm/service/mst/OrgService.java

@@ -65,8 +65,7 @@ public class OrgService extends BaseService<Org> {
      */
     @Pagination
     public ResponseResultVO<PageList<OrgResponse>> selectByCond(OrgQuery orgQuery) {
-        List<OrgResponse> list = new ArrayList<>();
-        list = orgMapper.selectByCond(orgQuery);
+        List<OrgResponse>   list = orgMapper.selectByCond(orgQuery);
         if (orgQuery.getParentId() != null) { //说明传这个id就是部门档案查三级部门以下有没有子级
             for (OrgResponse item : list) {
                 OrgQuery qry = new OrgQuery();
@@ -98,8 +97,8 @@ public class OrgService extends BaseService<Org> {
     }
 
     /**
-     * @desc   : 条件查询
-     * @author : 宋扬
+     * @desc   : 通过ID查询 带出对应的 组织资金账户 以及组织仓库
+     * @author : 王英杰
      * @date   : 2023/2/29 10:40
      */
     @Pagination
@@ -227,9 +226,6 @@ public class OrgService extends BaseService<Org> {
     public ResponseResultVO<Boolean> update(OrgVO orgVO) {
         // 转化实体
         Org org = orgConvert.convertToPo(orgVO);
-
-
-
         // 修改组织机构
         super.update(org, new UpdateWrapper<Org>().lambda().eq(Org::getOrgId,
                 UUID.fromString(org.getOrgId())));
@@ -238,14 +234,11 @@ public class OrgService extends BaseService<Org> {
             //插入TOPid
             org.setTopId(org_.getTopId());
         }
-
         //执行函数
         orgMapper.resetLevelOrg(new Org().setTopId(org.getTopId()).setCpId(org.getCpId()));
-
         //删除组织仓库和组织资金账户
         orgWhMapper.deleteByOrgId(org.getOrgId());
         orgMacMapper.deleteByOrgId(org.getOrgId());
-
         // 添加组织仓库
         if (orgVO.getWarehouseList() != null && orgVO.getWarehouseList().size() > 0) {
             for (Map<String, Object> map : orgVO.getWarehouseList()) {

+ 73 - 0
src/main/java/com/dk/mdm/service/mst/PrintLayoutService.java

@@ -1,13 +1,29 @@
 package com.dk.mdm.service.mst;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.dk.common.infrastructure.constant.Constant;
+import com.dk.common.infrastructure.enums.ErrorCodeEnum;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseCodeEnum;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.PrintLayout;
 import com.dk.mdm.mapper.mst.PrintLayoutMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.mst.Role;
+import com.dk.mdm.model.vo.mst.RoleVo;
+import com.dk.mdm.service.common.CommonService;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Service
 @Transactional
 public class PrintLayoutService extends BaseService<PrintLayout> {
@@ -25,4 +41,61 @@ public class PrintLayoutService extends BaseService<PrintLayout> {
 	@Autowired
 	private PrintLayoutMapper printLayoutMapper;
 
+	@Autowired
+	private CommonService commonService;
+
+	/**
+	 * @desc : 获取打印数据
+	 * @author : 周兴
+	 * @date : 2024/4/22 15:28
+	 */
+	public ResponseResultVO<?> getPrintData(Map<String, Object> param) {
+		Map<String, Object> map = printLayoutMapper.getPrintData(param);
+		JSONObject obj = JSONObject.parseObject(map.get("f_get_print_data").toString());
+		return ResponseResultUtil.success(obj.get("data"));
+	}
+
+	/**
+	 * @desc   : 新建票据
+	 * @author : 周兴
+	 * @date   : 2024/4/23 8:38
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> insert(PrintLayout printLayout) {
+		// 判断票据名称是否重复
+		Long count = printLayoutMapper.selectByName(printLayout);
+		if(count > 0){
+			return ResponseResultUtil.error(ErrorCodeEnum.LAYOUT_NAME_EXISTS.getCode(),
+					ErrorCodeEnum.LAYOUT_NAME_EXISTS.getMessage());
+		}
+		// 获取显示顺序
+		Integer displayNo =commonService.getMaxDisplayNo(Constant.DisplayNoTable.PRINT_LAYOUT);
+		printLayout.setDisplayNo(displayNo);
+		//新建
+		super.insert(printLayout);
+		return ResponseResultUtil.success();
+	}
+
+	/**
+	 * @desc   : 更新票据
+	 * @author : 周兴
+	 * @date   : 2024/4/23 8:38
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<Boolean> update(PrintLayout printLayout) {
+		// 判断票据名称是否重复
+		Long count = printLayoutMapper.selectByName(printLayout);
+		if(count > 0){
+			return ResponseResultUtil.error(ErrorCodeEnum.LAYOUT_NAME_EXISTS.getCode(),
+					ErrorCodeEnum.LAYOUT_NAME_EXISTS.getMessage());
+		}
+		// 更新
+		super.updateByUuid(printLayout);
+		return ResponseResultUtil.success();
+	}
+
 }

+ 10 - 1
src/main/java/com/dk/mdm/service/mst/StaffService.java

@@ -92,6 +92,11 @@ public class StaffService extends BaseService<Staff> {
      */
     @Pagination
     public ResponseResultVO<PageList<StaffResponse>> selectByCond(StaffQuery staffQuery) {
+        // 获取当前公司的cpId
+        if (staffQuery.getCpId()==null){
+            Integer cpId = authUtils.getStaff().getCpId();
+            staffQuery.setCpId(cpId);
+        }
         return super.mergeListWithCount(staffQuery, staffMapper.selectByCond(staffQuery),
                 staffMapper.countByCond(staffQuery));
     }
@@ -107,9 +112,13 @@ public class StaffService extends BaseService<Staff> {
     public ResponseResultVO<?> insert(StaffVO staffVO) {
         // 转化实体
         Staff staff = staffConvert.convertToPo(staffVO);
+        // 获取当前公司的cpId
+        Integer cpId = authUtils.getStaff().getCpId();
         // 校验同一个公司的电话不能重复
         StaffQuery staffQuery = new StaffQuery();
         staffQuery.setStaffPhone(staff.getStaffPhone());
+        staffQuery.setCpId(cpId);
+        staff.setCpId(cpId);
         List<StaffResponse> staffResponses = staffMapper.selectByCond(staffQuery);
         if (staffResponses != null && staffResponses.size() > 0) {
             return ResponseResultUtil.error(ResponseCodeEnum.ERROR_STAFF_PHONE_EXIST);
@@ -308,7 +317,7 @@ public class StaffService extends BaseService<Staff> {
     )
     public ResponseResultVO<Dictionary<String, Object>> getInfoAfterLogin(Map<String, Object> param) {
         // 先根据userId查询当前企业的员工信息
-        StaffResponse staff = staffMapper.selectByUserId(param.get("userId").toString());
+        StaffResponse staff = staffMapper.selectByUserId(param.get("userId").toString(),Integer.parseInt(param.get("cpId").toString()));
         if (staff != null) {
             // 存Redis
             authUtils.saveStaff(new StaffEntity().setStaffId(staff.getStaffId())

+ 68 - 62
src/main/java/com/dk/mdm/service/mst/SupplierService.java

@@ -6,6 +6,8 @@ import com.dk.common.model.pojo.PageList;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.mst.SupplierConvert;
+import com.dk.mdm.infrastructure.util.AuthUtils;
+import com.dk.mdm.mapper.common.CommonMapper;
 import com.dk.mdm.mapper.mac.OtherPayableMapper;
 import com.dk.mdm.model.pojo.mst.Supplier;
 import com.dk.mdm.mapper.mst.SupplierMapper;
@@ -31,6 +33,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -46,6 +49,7 @@ public class SupplierService extends BaseService<Supplier> {
     public String getPrimaryKey() {
         return "sup_id";
     }
+
     @Override
     public BaseMapper<Supplier> getRepository() {
         return supplierMapper;
@@ -53,6 +57,8 @@ public class SupplierService extends BaseService<Supplier> {
 
     @Autowired
     private SupplierMapper supplierMapper;
+    @Autowired
+    private AuthUtils authUtils;
 
     @Autowired
     private SupplierConvert supplierConvert;
@@ -63,6 +69,9 @@ public class SupplierService extends BaseService<Supplier> {
     private OtherPayableService otherPayableService;
     @Autowired
     private OtherPayableMapper otherPayableMapper;
+    @Autowired
+    private CommonMapper commonMapper;
+
     /**
      * @desc : 条件查询
      * @author : 王英杰
@@ -72,33 +81,30 @@ public class SupplierService extends BaseService<Supplier> {
     public ResponseResultVO<PageList<Supplier>> selectByCond(SupplierQuery supplierQuery) {
         List<SpplierResponse> list = new ArrayList<>();
         list = supplierMapper.selectByCond(supplierQuery);
-
-
-
-        for(int i =0;i<list.size();i++){ //显示明细第一条的 内容
+        for (int i = 0; i < list.size(); i++) { //显示明细第一条的 内容
             list.get(i).getSupId();
             // 转账明细
             List<OtherPayableResponse> itemList = otherPayableMapper.selectByCond(new OtherPayableQuery().setObjectId(list.get(i).getSupId()).setBusinessType(0));
-            if(itemList.size()>0){
+            if (itemList.size() > 0) {
                 BigDecimal sumAmtPayableValue = (itemList != null && !itemList.isEmpty() && itemList.get(0).getSumAmtPayable() != null) ?
                         itemList.get(0).getSumAmtPayable() :
                         BigDecimal.ZERO;
                 list.get(i).setSumAmtPayable(sumAmtPayableValue);
             }
         }
-
-
-        return super.mergeListWithCount(supplierQuery,list ,
+        return super.mergeListWithCount(supplierQuery, list,
                 supplierMapper.countByCond(supplierQuery));
     }
+
     /**
      * @desc : 停用 供应商
      * @author : 王英杰
      * @date : 2023/1/10 17:19
      */
     public ResponseResultVO<?> deactivateData(SupplierVo supplierVo) {
-        return  super.disable(supplierVo.getSupId());
+        return super.disable(supplierVo.getSupId());
     }
+
     /**
      * @desc : 新建供应商
      * @author : 王英杰
@@ -108,46 +114,46 @@ public class SupplierService extends BaseService<Supplier> {
     public ResponseResultVO<?> insert(SupplierVo supplierVo) {
         // 转化实体
         Supplier supplier = supplierConvert.convertToPo(supplierVo);
-
-
-            Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.SUPPLIER.getName(), true);
-
-            supplier.setSupId(codeMap.get("outId").toString());
-            supplier.setSupCode(codeMap.get("outNote").toString());  //插入供应商表的实体
-
-            super.insert(supplier);// 先插入自己的供应商表
-            if ((supplier.getBrandIds() != null) && (supplier.getBrandIds().size()>0)) {  //如果有 商品品牌 一起插入品牌
-                List<Supplier>  Supplierlst   = new ArrayList<>();
-                List<String> BrandIdList =  new ArrayList<>();
-                BrandIdList = supplier.getBrandIds();
-                Supplier supplier_center = null;
-                 for (int i = 0;  i< BrandIdList.size();i++){
-                     supplier_center= new Supplier();
-                     supplier_center.setBrandId(BrandIdList.get(i));
-                     supplier_center.setSupId(supplier.getSupId());
-                     Supplierlst.add(supplier_center);
-                 }
-                supplierMapper.insertSupplierBrandtBatch(Supplierlst); // 向供应商品牌表插入数据
+        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.SUPPLIER.getName(), true);
+        supplier.setSupId(codeMap.get("outId").toString());
+        supplier.setSupCode(codeMap.get("outNote").toString());  //插入供应商表的实体
+        super.insert(supplier);// 先插入自己的供应商表
+        if ((supplier.getBrandIds() != null) && (supplier.getBrandIds().size() > 0)) {  //如果有 商品品牌 一起插入品牌
+            List<Supplier> Supplierlst = new ArrayList<>();
+            List<String> BrandIdList = new ArrayList<>();
+            BrandIdList = supplier.getBrandIds();
+            Supplier supplier_center = null;
+            for (int i = 0; i < BrandIdList.size(); i++) {
+                supplier_center = new Supplier();
+                supplier_center.setBrandId(BrandIdList.get(i));
+                supplier_center.setSupId(supplier.getSupId());
+                Supplierlst.add(supplier_center);
             }
-
-             if(supplierVo.getStartAmount()!=null && supplierVo.getStartAmount().compareTo(BigDecimal.ZERO) > 0) { //说明有起始欠款  需要插入其他支出
-                 //先组装明细
-                 List<OtherPayableItemVO> itemList = new ArrayList<>();
-                 OtherPayableItemVO otherPayableItemVO = new OtherPayableItemVO();
-                 otherPayableItemVO.setPayableType("10112024-0415-0000-0000-0000300dd508");
-                 otherPayableItemVO.setAmtPayable(supplierVo.getStartAmount());
-                 itemList.add(otherPayableItemVO);
-                 //调用 新建其他支出
-                 OtherPayableVO otherPayableVO = new OtherPayableVO().setBusinessType(0).setObjectId(supplier.getSupId())
-                         .setSumAmtPayable(supplierVo .getStartAmount()).setStaffId(supplier.getStaffId())
-                         .setOrgId(supplier.getOrgId()).setAccDate(LocalDate.now()).setMakeStaff(supplierVo
-                                 .getMakeStaff()).setItemList(itemList).setSumAmtPay(BigDecimal.ZERO);
-                 otherPayableService.insert(otherPayableVO);
-             }
-            return ResponseResultUtil.success();
-
-
+            supplierMapper.insertSupplierBrandtBatch(Supplierlst); // 向供应商品牌表插入数据
+        }
+        if (supplierVo.getStartAmount() != null && supplierVo.getStartAmount().compareTo(BigDecimal.ZERO) > 0) { //说明有起始欠款  需要插入其他支出
+            //先组装明细
+            List<OtherPayableItemVO> itemList = new ArrayList<>();
+            OtherPayableItemVO otherPayableItemVO = new OtherPayableItemVO();
+            Map<String, Object> param = new HashMap<>();
+            param.put("cpId", authUtils.getStaff().getCpId());
+            param.put("dictCode", "基础资料-支出");
+            param.put("dataValue", "期初");
+            Map<String, Object> data = commonMapper.selectDictionaryData(param);
+            String dataId = String.valueOf(data.get("dataId"));
+            otherPayableItemVO.setPayableType(dataId);
+            otherPayableItemVO.setAmtPayable(supplierVo.getStartAmount());
+            itemList.add(otherPayableItemVO);
+            //调用 新建其他支出
+            OtherPayableVO otherPayableVO = new OtherPayableVO().setBusinessType(0).setObjectId(supplier.getSupId())
+                    .setSumAmtPayable(supplierVo.getStartAmount()).setStaffId(supplier.getStaffId())
+                    .setOrgId(supplier.getOrgId()).setAccDate(LocalDate.now()).setMakeStaff(supplierVo
+                            .getMakeStaff()).setItemList(itemList).setSumAmtPay(BigDecimal.ZERO);
+            otherPayableService.insert(otherPayableVO);
+        }
+        return ResponseResultUtil.success();
     }
+
     /**
      * @desc : 编辑方法
      * @author : 王英杰
@@ -159,22 +165,22 @@ public class SupplierService extends BaseService<Supplier> {
     public ResponseResultVO<?> update(SupplierVo supplierVo) {
         // 转化实体
         Supplier supplier = supplierConvert.convertToPo(supplierVo);
-       super.updateByUuid(supplier);// 先更新的供应商表
-            if ((supplier.getBrandIds() != null) && (supplier.getBrandIds().size()>0)) {  //如果有 商品品牌 一起插入品牌
-                supplierMapper.batchDeleteBrand(supplier.getSupId());//批量删除供应商对应的供应商品牌
-                List<Supplier>  Supplierlst   = new ArrayList<>();
-                List<String> BrandIdList =  new ArrayList<>();
-                BrandIdList = supplier.getBrandIds();
-                Supplier supplier_center = null;
-                for (int i = 0;  i< BrandIdList.size();i++){
-                    supplier_center= new Supplier();
-                    supplier_center.setBrandId(BrandIdList.get(i));
-                    supplier_center.setSupId(supplier.getSupId());
-                    Supplierlst.add(supplier_center);
-                }
-                supplierMapper.insertSupplierBrandtBatch(Supplierlst); // 向供应商品牌表插入数据
+        super.updateByUuid(supplier);// 先更新的供应商表
+        if ((supplier.getBrandIds() != null) && (supplier.getBrandIds().size() > 0)) {  //如果有 商品品牌 一起插入品牌
+            supplierMapper.batchDeleteBrand(supplier.getSupId());//批量删除供应商对应的供应商品牌
+            List<Supplier> supplierlst = new ArrayList<>();
+            List<String> BrandIdList = new ArrayList<>();
+            BrandIdList = supplier.getBrandIds();
+            Supplier supplier_center = null;
+            for (int i = 0; i < BrandIdList.size(); i++) {
+                supplier_center = new Supplier();
+                supplier_center.setBrandId(BrandIdList.get(i));
+                supplier_center.setSupId(supplier.getSupId());
+                supplierlst.add(supplier_center);
             }
-          return ResponseResultUtil.success();
+            supplierMapper.insertSupplierBrandtBatch(supplierlst); // 向供应商品牌表插入数据
+        }
+        return ResponseResultUtil.success();
 
     }
 }

+ 20 - 15
src/main/java/com/dk/mdm/service/pur/PurchaseService.java

@@ -1,5 +1,6 @@
 package com.dk.mdm.service.pur;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.dk.common.exception.BaseBusinessException;
 import com.dk.common.infrastructure.annotaiton.Pagination;
@@ -94,21 +95,8 @@ public class PurchaseService extends BaseService<Purchase> {
      * @date : 2024/2/28 9:47
      */
     @Pagination
-    public ResponseResultVO<PageList<PurchaseResponse>> selectByCondItem(PurchaseQuery purchaseQuery) {
-        // todo xml 明细修改json
-         List<PurchaseResponse> purchaseOrders = purchaseMapper.selectByCond(purchaseQuery); // 总单数据
-        for (PurchaseResponse order : purchaseOrders) {
-            PurchaseItemQuery purchaseItemQuery = new PurchaseItemQuery ();
-            purchaseItemQuery.setPageSize(1000);
-            purchaseItemQuery.setCurrentPage(1);
-            purchaseItemQuery.setPurId(order.getPurId());
-            purchaseItemQuery.setCpId(order.getCpId());
-            List<PurchaseItemResponse> items =  purchaseItemMapper.selectByCond(purchaseItemQuery);// 明细数据
-
-            order.setPurchaseItemResponseList(items);
-        }
-
-        return super.mergeListWithCount(purchaseQuery, purchaseOrders, purchaseMapper.countByCond(purchaseQuery));
+    public ResponseResultVO<PageList<Map<String, Object>>> selectByCondItem(PurchaseQuery purchaseQuery) {
+        return super.mergeListWithCount(purchaseQuery, purchaseMapper.selectPurOrderAndDeatil(purchaseQuery), purchaseMapper.countByCond(purchaseQuery));
     }
     /**
      * @desc : 采购订单 待入库查询
@@ -386,4 +374,21 @@ public class PurchaseService extends BaseService<Purchase> {
         return InboundItemVOList;
 
     }
+
+    /**
+     * @desc   : 采购跟踪
+     * @author : 常皓宁
+     * @date   : 2024/4/22 10:19
+     */
+    public ResponseResultVO<PageList> selectTrackReport(Map<String, Object> param) {
+        // 获取组合商品
+        Map<String, Object> map = purchaseMapper.selectTrackReport(param);
+        JSONObject sku = JSONObject.parseObject(map.get("f_query_pur_for_track").toString());
+        // 定义返回值
+        PageList data = new PageList<>();
+        List dataList = sku.get("data") != null ? JSONObject.parseArray(sku.get("data").toString()).toJavaList(Map.class) : new ArrayList();
+        // 组装返回值
+        data.setList(dataList);
+        return ResponseResultUtil.success(data);
+    }
 }

+ 169 - 26
src/main/java/com/dk/mdm/service/report/ReportService.java

@@ -11,11 +11,10 @@ import com.dk.common.response.ResponseResultVO;
 import com.dk.common.service.BaseService;
 import com.dk.mdm.infrastructure.util.AuthUtils;
 import com.dk.mdm.mapper.common.CommonMapper;
+import com.dk.mdm.mapper.ivt.InboundItemMapper;
+import com.dk.mdm.mapper.ivt.OutboundItemMapper;
 import com.dk.mdm.mapper.mst.StaffMapper;
 import com.dk.mdm.mapper.report.ReportMapper;
-import com.dk.mdm.model.query.pur.PurchaseItemQuery;
-import com.dk.mdm.model.response.pur.PurchaseItemResponse;
-import com.dk.mdm.model.response.pur.PurchaseResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.postgresql.util.PGobject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +37,11 @@ public class ReportService {
     @Autowired
     private ReportMapper reportMapper;
 
+    @Autowired
+    private InboundItemMapper inboundItemMapper;
+
+    @Autowired
+    private OutboundItemMapper outboundItemMapper;
     /**
      * @desc   : 查询库存
      * @author : 常皓宁
@@ -53,17 +57,29 @@ public class ReportService {
      * @author : 宋扬
      * @date   : 2024/4/10 16:39
      */
-    public ResponseResultVO<List<Map<String, Object>>> getPurDetailReport(Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getPurDetailReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
         // 获取系统基础数据
         List<Map<String, Object>> list=new ArrayList<>();
+        PageList data = new PageList<>();
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
+        List<Map<String, Object>> dataList = new ArrayList<>();
         if(param.get("flgViewItem")==null){
             // 查询主表
-            list= reportMapper.getPurReport(param);
+            dataList= reportMapper.getPurReport(param);
         }else {
             // 查询明细
-            list= reportMapper.getPurDetailReport(param);
+            dataList= reportMapper.getPurDetailReport(param);
         }
-        return ResponseResultUtil.success(list);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getSalesTrackingReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
     }
 
     /**
@@ -71,17 +87,29 @@ public class ReportService {
      * @author : 宋扬
      * @date   : 2024/4/11 13:22
      */
-    public ResponseResultVO<List<Map<String, Object>>> getOrderDetailReport(Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getOrderDetailReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
         // 获取系统基础数据
         List<Map<String, Object>> list=new ArrayList<>();
+        PageList data = new PageList<>();
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
+        List<Map<String, Object>> dataList = new ArrayList<>();
         if(param.get("flgViewItem")==null){
             // 查询主表
-            list= reportMapper.getOrderReport(param);
+            dataList= reportMapper.getOrderReport(param);
         }else {
             // 查询明细
-            list= reportMapper.getOrderDetailReport(param);
+            dataList= reportMapper.getOrderDetailReport(param);
         }
-        return ResponseResultUtil.success(list);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getSalesTrackingReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
     }
 
     /**
@@ -89,17 +117,28 @@ public class ReportService {
      * @author : 宋扬
      * @date   : 2024/4/11 16:54
      */
-    public ResponseResultVO<List<Map<String, Object>>> getOutboundDetailReport(Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getOutboundDetailReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
         // 获取系统基础数据
-        List<Map<String, Object>> list=new ArrayList<>();
+        PageList data = new PageList<>();
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
+        List<Map<String, Object>> dataList = new ArrayList<>();
         if(param.get("flgViewItem")==null){
             // 查询主表
-            list= reportMapper.getOutboundReport(param);
+            dataList= reportMapper.getOutboundReport(param);
         }else {
             // 查询明细
-            list= reportMapper.getOutboundDetailReport(param);
+            dataList= reportMapper.getOutboundDetailReport(param);
         }
-        return ResponseResultUtil.success(list);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getSalesTrackingReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
     }
 
     /**
@@ -107,17 +146,28 @@ public class ReportService {
      * @author : 宋扬
      * @date   : 2024/4/11 16:54
      */
-    public ResponseResultVO<List<Map<String, Object>>> getInboundDetailReport(Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getInboundDetailReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
         // 获取系统基础数据
-        List<Map<String, Object>> list=new ArrayList<>();
+        PageList data = new PageList<>();
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
+        List<Map<String, Object>> dataList = new ArrayList<>();
         if(param.get("flgViewItem")==null){
             // 查询主表
-            list= reportMapper.getInboundlReport(param);
+            dataList= reportMapper.getInboundlReport(param);
         }else {
             // 查询明细
-            list= reportMapper.getInboundDetailReport(param);
+            dataList= reportMapper.getInboundDetailReport(param);
         }
-        return ResponseResultUtil.success(list);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getSalesTrackingReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
     }
 
     /**
@@ -125,12 +175,22 @@ public class ReportService {
      * @author : 宋扬
      * @date   : 2024/4/16 11:29
      */
-    public ResponseResultVO<List<Map<String, Object>>> getRecPayDetailReport(Map<String, Object> param) {
+    public ResponseResultVO<PageList<Map<String, Object>>> getRecPayDetailReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
         // 获取系统基础数据
-        List<Map<String, Object>> list=new ArrayList<>();
+        PageList data = new PageList<>();
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
         // 查询主表
-        list= reportMapper.getRecPayDetailReport(param);
-        return ResponseResultUtil.success(list);
+        List<Map<String, Object>> dataList = reportMapper.getRecPayDetailReport(param);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getRecPayDetailReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
     }
 
 
@@ -160,6 +220,31 @@ public class ReportService {
 
 
     /**
+     * @desc   : 销售明细
+     * @author : 于继渤
+     * @date   : 2024/4/16 11:27
+     */
+    public ResponseResultVO<PageList<Map<String, Object>>> getSalesItemReport(Map<String, Object> param) {
+
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
+        // 定义返回值
+        PageList data = new PageList<>();
+        // 获取SKU商品
+        param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
+        param.put("end", Integer.parseInt(param.get("pageSize").toString()));
+        List<Map<String, Object>> dataList = reportMapper.getSalesItemReport(param);
+        data.setList(dataList);
+        data.setTotal(reportMapper.getSalesItemReportCount(param));
+        data.setPageSize((Integer) param.get("pageSize"));
+        data.setCurrentPage((Integer) param.get("currentPage"));
+        return ResponseResultUtil.success(data);
+    }
+
+
+    /**
      * @desc   : 采购跟踪表 列表查询
      * @author : 王英杰
      * @date   : 2024/4/16 11:27
@@ -203,7 +288,7 @@ public class ReportService {
         return ResponseResultUtil.success(reportMapper.getSalesTrackingReportDetail(id) );
     }
 
-    
+
     /**
      * @desc   : 日结对账表
      * @date   : 2024/4/24 15:11
@@ -226,5 +311,63 @@ public class ReportService {
         return ResponseResultUtil.success(data);
     }
 
+    /**
+     * @desc   : 收发存汇总报表
+     * @author : 宋扬
+     * @date   : 2024/4/20 13:30
+     */
+    public ResponseResultVO<PageList<Map<String, Object>>> getIvtSumReport(Map<String, Object> param) {
+        if (param.get("querys") != null) {
+            JSONObject querys = JSONObject.parseObject(param.get("querys").toString());
+            param.put("querys",querys);
+        }
+
+        List<Map<String, Object>> list = reportMapper.getIvtSumReport(param);
+        JSONObject jObject = JSONObject.parseObject(list.get(0).get("f_query_ivt_rds").toString());
+        List dataList = jObject.get("data") != null ? JSONObject.parseArray(jObject.get("data").toString())
+                .toJavaList(Map.class) : new ArrayList();
+
+        // 定义返回值
+        PageList data = new PageList<>();
+        data.setPageSize((int) param.get("pageSize")).setCurrentPage((int) param.get("currentPage"))
+                .setTotal(Long.parseLong(jObject.get("pageTotal").toString()))
+                .setList(dataList);
+
+        if ("查询成功".equals(jObject.get("message").toString())) {
+            return ResponseResultUtil.success(data);
+        } else {
+            return ResponseResultUtil.error(666, jObject.get("message").toString());
+        }
+    }
+
+    /**
+     * @desc   : 收发存汇总报表-明细
+     * @author : 宋扬
+     * @date   : 2024/4/23 14:10
+     */
+    public ResponseResultVO<PageList<Map<String, Object>>> getIvtItemReport(Map<String, Object> param) {
+        // 校验分页参数
+        if (param.get("pageSize") == null || param.get("currentPage") == null) {
+            return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
+        }
+
+        List<Map<String, Object>> list = reportMapper.getIvtItemReport(param);
+        JSONObject jObject = JSONObject.parseObject(list.get(0).get("f_query_ivt_rds_item").toString());
+        List dataList = jObject.get("data") != null ? JSONObject.parseArray(jObject.get("data").toString())
+                .toJavaList(Map.class) : new ArrayList();
+
+        // 定义返回值
+        PageList data = new PageList<>();
+        data.setPageSize((int) param.get("pageSize")).setCurrentPage((int) param.get("currentPage"))
+                .setTotal(Long.parseLong(jObject.get("pageTotal").toString()))
+                .setList(dataList);
+
+        if ("查询成功".equals(jObject.get("message").toString())) {
+            return ResponseResultUtil.success(data);
+        } else {
+            return ResponseResultUtil.error(666, jObject.get("message").toString());
+        }
+    }
+
 
 }

+ 1 - 1
src/main/resources/test/bootstrap.yml

@@ -178,7 +178,7 @@ apk-version-smtt: 23.05.18.01
 apk-file-name-crosswalk: crosswalk-v23.05.18.01.apk
 apk-version-crosswalk: 23.05.18.01
 
-excel-folder: /data/java_project/dkic/mdm-server/excel/
+excel-folder: /data/java_project/dkic/excel/
 
 #文件上传
 upload-path: /data/java_project/dkic/file/