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

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

zhoux 1 год назад
Родитель
Сommit
7a639712ff
26 измененных файлов с 880 добавлено и 299 удалено
  1. 10 0
      src/main/java/com/dk/mdm/controller/report/ReportController.java
  2. 13 0
      src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml
  3. 9 2
      src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml
  4. 7 1
      src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.xml
  5. 14 0
      src/main/java/com/dk/mdm/mapper/report/ReportMapper.java
  6. 86 2
      src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml
  7. 93 56
      src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml
  8. 165 124
      src/main/java/com/dk/mdm/mapper/sale/OrderMapper.xml
  9. 18 0
      src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java
  10. 24 1
      src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java
  11. 26 0
      src/main/java/com/dk/mdm/model/pojo/sale/Order.java
  12. 35 0
      src/main/java/com/dk/mdm/model/pojo/sale/OrderItem.java
  13. 3 0
      src/main/java/com/dk/mdm/model/query/ivt/InboundItemQuery.java
  14. 14 0
      src/main/java/com/dk/mdm/model/response/ivt/InboundItemResponse.java
  15. 24 1
      src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java
  16. 18 0
      src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java
  17. 36 0
      src/main/java/com/dk/mdm/model/response/sale/OrderItemResponse.java
  18. 25 0
      src/main/java/com/dk/mdm/model/response/sale/OrderResponse.java
  19. 24 0
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java
  20. 20 0
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java
  21. 34 0
      src/main/java/com/dk/mdm/model/vo/sale/OrderItemVO.java
  22. 6 1
      src/main/java/com/dk/mdm/model/vo/sale/OrderVO.java
  23. 5 0
      src/main/java/com/dk/mdm/service/common/CommonService.java
  24. 21 3
      src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java
  25. 1 0
      src/main/java/com/dk/mdm/service/mst/OrgService.java
  26. 149 108
      src/main/java/com/dk/mdm/service/report/ReportService.java

+ 10 - 0
src/main/java/com/dk/mdm/controller/report/ReportController.java

@@ -308,6 +308,16 @@ public class ReportController  {
         return reportService.getMacPayCurrentItemReport(param);
     }
 
+    /**
+     * @desc   : 客户收支表查询
+     * @author : 刘尧
+     * @date   : 2024/6/5 13:17
+     */
+    @PostMapping("get_cus_rec_pay_report_item")
+    public ResponseResultVO<List<Map<String, Object>>> getCusRecPayReportItem(@RequestBody Map<String, Object> params) {
+        return reportService.getCusRecPayReportItem(params);
+    }
+
 }
 
 

+ 13 - 0
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -113,6 +113,10 @@
         <result column="pack_box" property="packBox"/>
         <result column="subUnitName" property="subUnitName"/>
         <result column="unitName" property="unitName"/>
+        <result column="whName" property="whName"/>
+        <result column="intoDate" property="intoDate"  typeHandler="TimestampTypeHandler"/>
+        <result column="seriesName" property="seriesName"/>
+        <result column="intoStatusName" property="intoStatusName"/>
         <result column="flg_sub_unit" property="flgSubUnit"/>
     </resultMap>
 <!--    退货用-->
@@ -594,6 +598,10 @@
         ,sys.f_remove_zero(tppi.into_qty) as "purItemIntoQty"
         ,tmp.sup_code as "supCode"
         ,tmp.sup_name as "supName"
+        ,tmw.wh_name AS "whName"
+        ,tpid.into_date AS "intoDate"
+        ,sys.f_get_name_i18n(tdk.kind_name_i18n, #{i18n}) AS  "intoStatusName"
+        ,tmgss.series_name AS "seriesName"
         ,sys.f_remove_zero(tpiv.inv_qty)  as inv_qty
         ,(select ul.decimal_places from  dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
         FROM dkic_b.t_psi_inbound_item tpii
@@ -603,9 +611,11 @@
         left join dkic_b.t_psi_purchase tpp on tpp.pur_id = tpii.from_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_mst_goods_series tmgss on tmgss.series_id = tmgs.series_id
         left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
         left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
         Left join dkic_b.t_mst_supplier tmp on tpid.sup_id = tmp.sup_id
+        LEFT JOIN sys.t_data_kind tdk   ON tdk.kind_code = tpid.into_status
         <where>
             tpii.flg_valid
             and tpii.into_qty &lt;&gt; 0
@@ -630,6 +640,9 @@
             <if test="cpId != null">
                 AND tpii.cp_id = #{cpId}
             </if>
+            <if test="searchText !=null">
+                AND  (tpid.into_no LIKE concat('%',my_ex.likequery(#{searchText}), '%')    OR   tmgs.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')   OR   tmgs.sku_code LIKE concat('%',my_ex.likequery(#{searchText}),'%'))
+            </if>
         </where>
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}

+ 9 - 2
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml

@@ -135,6 +135,10 @@ sys.f_remove_zero(out_qty) as out_qty, out_amt, sys.f_remove_zero(return_qty) as
         <result column="decimalPlaces" property="decimalPlaces"/>
         <result column="sup_id" property="supId"/>
         <result column="sup_name" property="supName"/>
+        <result column="fact_price" property="factPrice"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="discount" property="discount"/>
+        <result column="disc_amt" property="discAmt"/>
     </resultMap>
 
     <!-- 通用条件列 -->
@@ -456,8 +460,11 @@ sys.f_remove_zero(out_qty) as out_qty, out_amt, sys.f_remove_zero(return_qty) as
                        dkic_b.f_box_piece(tmgus.unit_name, tmgu.unit_name,
                                           floor(t.outing_qty / T.pack_box)::INT,
                                           floor(t.outing_qty % T.pack_box)::INT)
-                   end AS "unitInfo"
-
+                   end AS "unitInfo",
+               t.fact_price,
+               t.fact_amt,
+               t.discount,
+               t.disc_amt
         FROM dkic_b.t_psi_outbound_item as t
                  Left join dkic_b.t_mst_supplier tmp on t.sup_id = tmp.sup_id
                  left join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = t.wh_id

+ 7 - 1
src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.xml

@@ -107,6 +107,9 @@
         <result column="sumOutAmt" property="sumOutAmt" />
         <result column="sumOutQty" property="sumOutQty" />
         <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="discount" property="discount"/>
+        <result column="disc_amt" property="discAmt"/>
     </resultMap>
 
     <resultMap id="BaseResultMapDetailResponse" type="com.dk.mdm.model.response.ivt.OutboundResponse">
@@ -487,7 +490,10 @@
                t.out_reason,
                t.flg_auto_handle,
                t.flg_handle_setting,
-               tmd.data_value                                    as out_reason_name
+               tmd.data_value                                    as out_reason_name,
+               t.fact_amt,
+               t.discount,
+               t.disc_amt
         FROM dkic_b.t_psi_outbound as t
                  left join dkic_b.t_mst_customer tmc on tmc.cus_id = t.cus_id
                  left join dkic_b.t_mst_sale_channel tmsc on tmsc.channel_id = tmc.channel_id

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

@@ -258,4 +258,18 @@ public interface ReportMapper extends BaseMapper<JSONObject> {
      * @date   : 2024/5/10 10:37
      */
     List<Map<String, Object>> getMacPayCurrentItemReport(Map param);
+
+    /**
+     * @desc   : 根据用户信息和筛选信息查询账款明细
+     * @author : 刘尧
+     * @date   : 2024/6/5 17:25
+     * */
+    List<Map<String, Object>> getCusRecPayReportItemByUser(Map params);
+
+    /**
+     * @desc   : 查询用户欠款
+     * @author : 刘尧
+     * @date   : 2024/6/5 17:28
+     * */
+    List<Map<String, Object>> getUserArrears(Map params);
 }

+ 86 - 2
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -463,6 +463,7 @@
                 tpi.into_no   LIKE concat('%',my_ex.likequery(#{searchText}),'%')
                 or tmc.cus_phone LIKE concat('%',my_ex.likequery(#{searchText}),'%')
                 or tmc.cus_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
+                or tmc.address_full LIKE concat('%',my_ex.likequery(#{searchText}),'%')
                 )
             </if>
             <if test="whList != null  and whList.size()>0">
@@ -1644,8 +1645,7 @@
     </select>
 
     <select id="getSalesTrackingReportDetail"  resultType="java.util.Map">
-        SELECT T
-                   ."id",
+        SELECT T."id",
                T."no",
                T."itemId",
                T."type",
@@ -2933,5 +2933,89 @@
         select dkic_b.f_query_mac_pay_current_item(#{cpId},#{objectId} ::uuid,#{orgId} ::uuid,#{macType},#{accDateStart} ::date
                    ,#{accDateEnd} ::date,#{i18n} ,#{currentPage},#{pageSize})
     </select>
+    <select id="getCusRecPayReportItemByUser" resultType="java.util.Map">
+        SELECT a.object_id as "objectId"
+        , a.biznis_no as "biznisNo"
+        , COALESCE(SUM(tpo.out_amt), 0) as "outAmt"
+        , COALESCE(SUM(tpo.return_amt), 0) as "returnAmt"
+        , COALESCE(SUM(tmrp.sum_amt_rec), 0) as "sumAmtRec"
+        , a.acc_date as "accDate"
+        FROM
+            dkic_b.t_mac_account_item a
+                LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = a.biznis_id
+                LEFT JOIN dkic_b.t_mac_rec_pay tmrp ON tmrp.rp_id = a.biznis_id
+        WHERE a.flg_valid
+        <if test="objectId != null and objectId != ''">
+            AND a.object_id = #{objectId}::uuid
+        </if>
+        <if test="staffId != null and staffId != ''">
+            AND a.staff_id = #{staffId}::uuid
+        </if>
+        <if test="orgId != null and orgId != ''">
+            AND a.org_id = #{orgId}::uuid
+        </if>
+        <if test="makeTimeStart != null and makeTi8meStart != ''">
+            AND a.acc_date &gt;= #{makeTimeStart}::timestamp with time zone
+        </if>
+        <if test="makeTimeEnd != null and makeTimeEnd != ''">
+            AND a.acc_date &lt;= #{makeTimeStart}::timestamp with time zone
+        </if>
+        <if test="staffIds != null and staffIds.size() > 0">
+            AND a.staff_id IN
+            <foreach collection="staffIds" index="index" item="item" separator="," open="(" close=")">
+                #{item}::uuid
+            </foreach>
+        </if>
+        <if test="orgIds != null and orgIds.size() > 0">
+            AND a.org_id IN
+            <foreach collection="orgIds" index="index" item="item" separator="," open="(" close=")">
+                #{item}::uuid
+            </foreach>
+        </if>
+        <if test="recTypeIds != null and recTypeIds.size() > 0">
+            <foreach collection="recTypeIds" item="item">
+                <if test="item != null and item != '' and item == '收支类型-出库'">
+                    AND tpo.out_amt &gt; 0
+                </if>
+                <if test="item != null and item != '' and item == '收支类型-退货'">
+                    AND tpo.out_amt &lt; 0
+                </if>
+                <if test="item != null and item != '' and item == '收支类型-收款'">
+                    AND tmrp.sum_amt_rec &gt; 0
+                </if>
+                <if test="item != null and item != '' and item == '收支类型-退款'">
+                    AND tmrp.sum_amt_rec &lt; 0
+                </if>
+            </foreach>
+        </if>
+        group by a.object_id, a.biznis_no, a.acc_date, a.staff_id
+    </select>
+
+    <select id="getUserArrears" resultType="java.util.Map">
+        SELECT a.object_id as "objectId"
+        , tmc.cus_name as "cusName"
+        , tmc.cus_phone as "cusPhone"
+        , SUM(COALESCE(tpo.out_amt, 0) + COALESCE(tpo.return_amt, 0)) - SUM(COALESCE(tmrp.sum_amt_rec, 0)) as arrears
+        FROM
+        dkic_b.t_mac_account_item a
+        LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = a.biznis_id
+        LEFT JOIN dkic_b.t_mac_rec_pay tmrp ON tmrp.rp_id = a.biznis_id
+        LEFT JOIN dkic_b.t_mst_customer tmc ON tmc.cus_id = a.object_id
+        WHERE a.flg_valid
+        AND tmc.cus_name IS NOT NULL AND tmc.cus_name != ''
+        GROUP BY a.object_id, tmc.cus_name, tmc.cus_phone, tmc.address_full
+        HAVING SUM(COALESCE(tpo.out_amt, 0) + COALESCE(tpo.return_amt, 0)) - SUM(COALESCE(tmrp.sum_amt_rec, 0)) > 0
+        <if test="objectId != null">
+            AND a.object_id = #{objectId}::uuid
+        </if>
+        <if test="searchText != null and searchText != ''">
+            AND (tmc.cus_name LIKE concat('%',#{searchText},'%')
+            OR tmc.cus_phone LIKE concat('%',#{searchText},'%')
+            OR tmc.address_full LIKE concat('%',#{searchText},'%'))
+        </if>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            LIMIT #{pageSize} OFFSET #{currentPage}
+        </if>
+    </select>
 
 </mapper>

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

@@ -9,83 +9,95 @@
         , order_id, item_index, sku_id, sub_unit_id, unit_id,pack_box,box, piece,
         sys.f_remove_zero(item_qty) as item_qty, price_std, amt_std, price_sale, item_amt, price_discount, non_std_code, out_status,
         sys.f_remove_zero(outing_qty) as outing_qty, outing_amt, sys.f_remove_zero(out_qty) as out_qty, out_amt,
-        sys.f_remove_zero(return_qty) as return_qty, return_amt, remarks, flg_valid, cp_id, wh_id
+        sys.f_remove_zero(return_qty) as return_qty, return_amt, remarks, flg_valid, cp_id, wh_id,
+        fact_price,fact_amt,disc_amt,use_place,discount
     </sql>
 
     <sql id="Base_Column_List_Response">
         t.item_id, t.order_id, t.item_index, t.sku_id, sys.f_remove_zero(t.item_qty) as item_qty, t.price_std, t.amt_std, t.price_sale, t.item_amt, t.price_discount, t.non_std_code,
         t.out_status, sys.f_remove_zero(t.outing_qty) as outing_qty, t.outing_amt, sys.f_remove_zero(t.out_qty) as out_qty, t.out_amt,
         sys.f_remove_zero(t.return_qty) as return_qty, t.return_amt, t.remarks, t.flg_valid, t.cp_id, t.wh_id
-        ,t.box,t.piece,t.sub_unit_id,t.unit_id,t.pack_box
+        ,t.box,t.piece,t.sub_unit_id,t.unit_id,t.pack_box,
+        t.fact_price,t.fact_amt,t.disc_amt,t,use_place,t.discount
     </sql>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.sale.OrderItem">
         <id column="item_id" property="itemId"/>
-                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
-                <result column="item_index" property="itemIndex"/>
-                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
-                <result column="unit_id" property="unitId" typeHandler="UuidTypeHandler"/>
-                <result column="sub_unit_id" property="subUnitId" typeHandler="UuidTypeHandler"/>
-                <result column="pack_box" property="packBox"/>
-                <result column="box" property="box"/>
-                <result column="piece" property="piece"/>
-                <result column="item_qty" property="itemQty"/>
-                <result column="price_std" property="priceStd"/>
-                <result column="amt_std" property="amtStd"/>
-                <result column="price_sale" property="priceSale"/>
-                <result column="item_amt" property="itemAmt"/>
-                <result column="price_discount" property="priceDiscount"/>
-                <result column="non_std_code" property="nonStdCode"/>
-                <result column="out_status" property="outStatus"/>
-                <result column="outing_qty" property="outingQty"/>
-                <result column="outing_amt" property="outingAmt"/>
-                <result column="out_qty" property="outQty"/>
-                <result column="out_amt" property="outAmt"/>
-                <result column="return_qty" property="returnQty"/>
-                <result column="return_amt" property="returnAmt"/>
-                <result column="remarks" property="remarks"/>
-                <result column="flg_valid" property="flgValid"/>
-                <result column="cp_id" property="cpId"/>
-                <result column="wh_id" property="whId"/>
+        <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+        <result column="item_index" property="itemIndex"/>
+        <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+        <result column="unit_id" property="unitId" typeHandler="UuidTypeHandler"/>
+        <result column="sub_unit_id" property="subUnitId" typeHandler="UuidTypeHandler"/>
+        <result column="pack_box" property="packBox"/>
+        <result column="box" property="box"/>
+        <result column="piece" property="piece"/>
+        <result column="item_qty" property="itemQty"/>
+        <result column="price_std" property="priceStd"/>
+        <result column="amt_std" property="amtStd"/>
+        <result column="price_sale" property="priceSale"/>
+        <result column="item_amt" property="itemAmt"/>
+        <result column="price_discount" property="priceDiscount"/>
+        <result column="non_std_code" property="nonStdCode"/>
+        <result column="out_status" property="outStatus"/>
+        <result column="outing_qty" property="outingQty"/>
+        <result column="outing_amt" property="outingAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="out_amt" property="outAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="remarks" property="remarks"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="wh_id" property="whId"/>
         <result column="decimalPlaces" property="decimalPlaces"/>
+        <result column="fact_price" property="factPrice"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="disc_amt" property="discAmt"/>
+        <result column="use_place" property="usePlace"/>
+        <result column="discount" property="discount"/>
     </resultMap>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMapResponse" type="com.dk.mdm.model.response.sale.OrderItemResponse">
         <id column="item_id" property="itemId"/>
-                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
-                <result column="item_index" property="itemIndex"/>
-                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
-                <result column="unit_id" property="unitId" typeHandler="UuidTypeHandler"/>
-                <result column="sub_unit_id" property="subUnitId" typeHandler="UuidTypeHandler"/>
-                <result column="pack_box" property="packBox"/>
-                <result column="item_qty" property="itemQty"/>
-                <result column="price_std" property="priceStd"/>
-                <result column="amt_std" property="amtStd"/>
-                <result column="price_sale" property="priceSale"/>
-                <result column="item_amt" property="itemAmt"/>
-                <result column="price_discount" property="priceDiscount"/>
-                <result column="non_std_code" property="nonStdCode"/>
-                <result column="out_status" property="outStatus"/>
-                <result column="outing_qty" property="outingQty"/>
-                <result column="outing_amt" property="outingAmt"/>
-                <result column="out_qty" property="outQty"/>
-                <result column="out_amt" property="outAmt"/>
-                <result column="return_qty" property="returnQty"/>
-                <result column="return_amt" property="returnAmt"/>
-                <result column="remarks" property="remarks"/>
-                <result column="flg_valid" property="flgValid"/>
-                <result column="cp_id" property="cpId"/>
-                <result column="wh_id" property="whId"/>
-                <result column="wh_name" property="whName"/>
-                <result column="order_no" property="orderNo"/>
+        <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+        <result column="item_index" property="itemIndex"/>
+        <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+        <result column="unit_id" property="unitId" typeHandler="UuidTypeHandler"/>
+        <result column="sub_unit_id" property="subUnitId" typeHandler="UuidTypeHandler"/>
+        <result column="pack_box" property="packBox"/>
+        <result column="item_qty" property="itemQty"/>
+        <result column="price_std" property="priceStd"/>
+        <result column="amt_std" property="amtStd"/>
+        <result column="price_sale" property="priceSale"/>
+        <result column="item_amt" property="itemAmt"/>
+        <result column="price_discount" property="priceDiscount"/>
+        <result column="non_std_code" property="nonStdCode"/>
+        <result column="out_status" property="outStatus"/>
+        <result column="outing_qty" property="outingQty"/>
+        <result column="outing_amt" property="outingAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="out_amt" property="outAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="remarks" property="remarks"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="wh_id" property="whId"/>
+        <result column="wh_name" property="whName"/>
+        <result column="order_no" property="orderNo"/>
         <result column="brand_name" property="brandName"/>
         <result column="short_name" property="shortName"/>
         <result column="sku_images" property="skuImages" typeHandler="JsonTypeHandler"/>
-                <result column="transferableQuantity" property="transferableQuantity"/>
-                <result column="skuImages" property="skuImages" typeHandler="JsonTypeHandler"/>
+        <result column="transferableQuantity" property="transferableQuantity"/>
+        <result column="skuImages" property="skuImages" typeHandler="JsonTypeHandler"/>
         <result column="decimalPlaces" property="decimalPlaces"/>
+        <result column="fact_price" property="factPrice"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="disc_amt" property="discAmt"/>
+        <result column="use_place" property="usePlace"/>
+        <result column="discount" property="discount"/>
     </resultMap>
 
     <!-- 通用条件列 -->
@@ -184,6 +196,11 @@
                t.price_sale,
                t.item_amt,
                t.price_discount,
+               t.fact_price,
+               t.fact_amt,
+               t.disc_amt,
+               t.use_place,
+               t.discount,
                t.non_std_code,
                t.out_status,
         sys.f_remove_zero(t.outing_qty) as outing_qty,
@@ -496,6 +513,21 @@
             <if test=" et!=null and et.cpId != null">
                 cp_id = #{et.cpId,jdbcType=INTEGER},
             </if>
+            <if test=" et!=null and et.cpId != null">
+                fact_price = #{et.factPrice,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.cpId != null">
+                fact_amt = #{et.factAmt,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.cpId != null">
+                disc_amt = #{et.discAmt,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.usePlace != null">
+                use_place = #{et.usePlace,jdbcType=VARCHAR},
+            </if>
+            <if test=" et!=null and et.discount != null">
+                discount = #{et.discount,jdbcType=VARCHAR},
+            </if>
         </set>
         where item_id = #{et.itemId,typeHandler=UuidTypeHandler}
         and item_qty >=(out_qty + outing_qty)
@@ -601,6 +633,11 @@
         t.price_sale,
         t.item_amt,
         t.price_discount,
+        t.fact_price,
+        t.fact_amt,
+        t.disc_amt,
+        t.use_place,
+        t.discount,
         t.non_std_code,
         t.out_status,
         sys.f_remove_zero(t.outing_qty) as outing_qty,

+ 165 - 124
src/main/java/com/dk/mdm/mapper/sale/OrderMapper.xml

@@ -9,100 +9,111 @@
         address_full, contact_name, contact_phone, sales_channel, delivery_date, sys.f_remove_zero(sum_quantity) as sum_quantity,
         sum_standard, sum_amount, sale_discount, order_status, out_status, sys.f_remove_zero(outing_qty) as outing_qty, outing_amt,
         sys.f_remove_zero(out_qty) as out_qty, out_amt, sys.f_remove_zero(return_qty) as return_qty, return_amt, amt_receivable,
-        amt_handle, amt_residue, remarks, annex_paths, make_staff, make_time, flg_valid, cp_id
+        amt_handle, amt_residue, remarks, annex_paths, make_staff, make_time, flg_valid, cp_id,
+        fact_amt,disc_amt,discount,flg_auto_handle,flg_handle_setting
     </sql>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.sale.Order">
         <id column="order_id" property="orderId"/>
-            <result column="order_no" property="orderNo"/>
-            <result column="order_type" property="orderType"/>
-            <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
-            <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
-            <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
-            <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
-            <result column="address_name" property="addressName"/>
-            <result column="address_no" property="addressNo"/>
-            <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
-            <result column="address_full" property="addressFull"/>
-            <result column="contact_name" property="contactName"/>
-            <result column="contact_phone" property="contactPhone"/>
-            <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
-            <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
-            <result column="sum_quantity" property="sumQuantity"/>
-            <result column="sum_standard" property="sumStandard"/>
-            <result column="sum_amount" property="sumAmount"/>
-            <result column="sale_discount" property="saleDiscount"/>
-            <result column="order_status" property="orderStatus"/>
-            <result column="out_status" property="outStatus"/>
-            <result column="outing_qty" property="outingQty"/>
-            <result column="outing_amt" property="outingAmt"/>
-            <result column="out_qty" property="outQty"/>
-            <result column="out_amt" property="outAmt"/>
-            <result column="return_qty" property="returnQty"/>
-            <result column="return_amt" property="returnAmt"/>
-            <result column="amt_receivable" property="amtReceivable"/>
-            <result column="amt_handle" property="amtHandle"/>
-            <result column="amt_residue" property="amtResidue"/>
-            <result column="remarks" property="remarks"/>
-            <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
-            <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
-            <result column="flg_valid" property="flgValid"/>
-            <result column="cp_id" property="cpId"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="order_type" property="orderType"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+        <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
+        <result column="address_name" property="addressName"/>
+        <result column="address_no" property="addressNo"/>
+        <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
+        <result column="address_full" property="addressFull"/>
+        <result column="contact_name" property="contactName"/>
+        <result column="contact_phone" property="contactPhone"/>
+        <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
+        <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
+        <result column="sum_quantity" property="sumQuantity"/>
+        <result column="sum_standard" property="sumStandard"/>
+        <result column="sum_amount" property="sumAmount"/>
+        <result column="sale_discount" property="saleDiscount"/>
+        <result column="order_status" property="orderStatus"/>
+        <result column="out_status" property="outStatus"/>
+        <result column="outing_qty" property="outingQty"/>
+        <result column="outing_amt" property="outingAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="out_amt" property="outAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="amt_receivable" property="amtReceivable"/>
+        <result column="amt_handle" property="amtHandle"/>
+        <result column="amt_residue" property="amtResidue"/>
+        <result column="remarks" property="remarks"/>
+        <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+        <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+        <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="disc_amt" property="discAmt"/>
+        <result column="discount" property="discount"/>
+        <result column="flg_auto_handle" property="flgAutoHandle"/>
+        <result column="flg_handle_setting" property="flgHandleSetting"/>
     </resultMap>
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMapResponse" type="com.dk.mdm.model.response.sale.OrderResponse">
         <id column="order_id" property="orderId"/>
-            <result column="order_no" property="orderNo"/>
-            <result column="order_type" property="orderType"/>
-            <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
-            <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
-            <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
-            <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
-            <result column="address_name" property="addressName"/>
-            <result column="orgName" property="orgName"/>
-            <result column="orderTypeName" property="orderTypeName"/>
-            <result column="staffName" property="staffName"/>
-            <result column="cusCode" property="cusCode"/>
-            <result column="cusName" property="cusName"/>
-            <result column="cusPhone" property="cusPhone"/>
-            <result column="cusFrom" property="cusFrom"/>
-            <result column="cusFromName" property="cusFromName"/>
-            <result column="channelName" property="channelName"/>
-            <result column="orderStatusName" property="orderStatusName"/>
-            <result column="outStatusName" property="outStatusName"/>
-            <result column="makeStaffName" property="makeStaffName"/>
-            <result column="address_no" property="addressNo"/>
-            <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
-            <result column="address_full" property="addressFull"/>
-            <result column="contact_name" property="contactName"/>
-            <result column="contact_phone" property="contactPhone"/>
-            <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
-            <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
-            <result column="sum_quantity" property="sumQuantity"/>
-            <result column="sum_standard" property="sumStandard"/>
-            <result column="sum_amount" property="sumAmount"/>
-            <result column="sale_discount" property="saleDiscount"/>
-            <result column="order_status" property="orderStatus"/>
-            <result column="out_status" property="outStatus"/>
-            <result column="outing_qty" property="outingQty"/>
-            <result column="outing_amt" property="outingAmt"/>
-            <result column="out_qty" property="outQty"/>
-            <result column="out_amt" property="outAmt"/>
-            <result column="return_qty" property="returnQty"/>
-            <result column="return_amt" property="returnAmt"/>
-            <result column="amt_receivable" property="amtReceivable"/>
-            <result column="amt_handle" property="amtHandle"/>
-            <result column="amt_residue" property="amtResidue"/>
-            <result column="remarks" property="remarks"/>
-            <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
-            <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
-            <result column="flg_valid" property="flgValid"/>
-            <result column="cp_id" property="cpId"/>
-           <result column="orderItemResponseList" property="orderItemResponseList" typeHandler="JsonTypeHandler"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="order_type" property="orderType"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+        <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
+        <result column="address_name" property="addressName"/>
+        <result column="orgName" property="orgName"/>
+        <result column="orderTypeName" property="orderTypeName"/>
+        <result column="staffName" property="staffName"/>
+        <result column="cusCode" property="cusCode"/>
+        <result column="cusName" property="cusName"/>
+        <result column="cusPhone" property="cusPhone"/>
+        <result column="cusFrom" property="cusFrom"/>
+        <result column="cusFromName" property="cusFromName"/>
+        <result column="channelName" property="channelName"/>
+        <result column="orderStatusName" property="orderStatusName"/>
+        <result column="outStatusName" property="outStatusName"/>
+        <result column="makeStaffName" property="makeStaffName"/>
+        <result column="address_no" property="addressNo"/>
+        <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
+        <result column="address_full" property="addressFull"/>
+        <result column="contact_name" property="contactName"/>
+        <result column="contact_phone" property="contactPhone"/>
+        <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
+        <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
+        <result column="sum_quantity" property="sumQuantity"/>
+        <result column="sum_standard" property="sumStandard"/>
+        <result column="sum_amount" property="sumAmount"/>
+        <result column="sale_discount" property="saleDiscount"/>
+        <result column="order_status" property="orderStatus"/>
+        <result column="out_status" property="outStatus"/>
+        <result column="outing_qty" property="outingQty"/>
+        <result column="outing_amt" property="outingAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="out_amt" property="outAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="amt_receivable" property="amtReceivable"/>
+        <result column="amt_handle" property="amtHandle"/>
+        <result column="amt_residue" property="amtResidue"/>
+        <result column="remarks" property="remarks"/>
+        <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+        <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+        <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="orderItemResponseList" property="orderItemResponseList" typeHandler="JsonTypeHandler"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="disc_amt" property="discAmt"/>
+        <result column="discount" property="discount"/>
+        <result column="flg_auto_handle" property="flgAutoHandle"/>
+        <result column="flg_handle_setting" property="flgHandleSetting"/>
 <!--            <collection property="orderItemResponseList" resultMap="orderItemListMap"  />-->
     </resultMap>
 
@@ -140,45 +151,44 @@
 
     <!--小程序用 查询销售订单带明细-->
     <resultMap id="BaseResultMapDetailResponse" type="com.dk.mdm.model.response.sale.OrderResponse">
-            <id column="order_id" property="orderId"/>
-            <result column="order_no" property="orderNo"/>
-            <result column="order_type" property="orderType"/>
-            <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
-            <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
-            <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
-            <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
-            <result column="address_name" property="addressName"/>
-            <result column="address_no" property="addressNo"/>
-            <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
-            <result column="address_full" property="addressFull"/>
-            <result column="contact_name" property="contactName"/>
-            <result column="contact_phone" property="contactPhone"/>
-            <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
-            <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
-            <result column="sum_quantity" property="sumQuantity"/>
-            <result column="sum_standard" property="sumStandard"/>
-            <result column="sum_amount" property="sumAmount"/>
-            <result column="sale_discount" property="saleDiscount"/>
-            <result column="order_status" property="orderStatus"/>
-            <result column="out_status" property="outStatus"/>
-            <result column="outing_qty" property="outingQty"/>
-            <result column="outing_amt" property="outingAmt"/>
-            <result column="out_qty" property="outQty"/>
-            <result column="out_amt" property="outAmt"/>
-            <result column="return_qty" property="returnQty"/>
-            <result column="return_amt" property="returnAmt"/>
-            <result column="amt_receivable" property="amtReceivable"/>
-            <result column="amt_handle" property="amtHandle"/>
-            <result column="amt_residue" property="amtResidue"/>
-            <result column="remarks" property="remarks"/>
-            <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
-            <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
-            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
-            <result column="flg_valid" property="flgValid"/>
-            <result column="cp_id" property="cpId"/>
-            <result column="org_name" property="orgName"/>
-            <result column="staff_name" property="staffName"/>
-
+        <id column="order_id" property="orderId"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="order_type" property="orderType"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+        <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
+        <result column="address_name" property="addressName"/>
+        <result column="address_no" property="addressNo"/>
+        <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
+        <result column="address_full" property="addressFull"/>
+        <result column="contact_name" property="contactName"/>
+        <result column="contact_phone" property="contactPhone"/>
+        <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
+        <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
+        <result column="sum_quantity" property="sumQuantity"/>
+        <result column="sum_standard" property="sumStandard"/>
+        <result column="sum_amount" property="sumAmount"/>
+        <result column="sale_discount" property="saleDiscount"/>
+        <result column="order_status" property="orderStatus"/>
+        <result column="out_status" property="outStatus"/>
+        <result column="outing_qty" property="outingQty"/>
+        <result column="outing_amt" property="outingAmt"/>
+        <result column="out_qty" property="outQty"/>
+        <result column="out_amt" property="outAmt"/>
+        <result column="return_qty" property="returnQty"/>
+        <result column="return_amt" property="returnAmt"/>
+        <result column="amt_receivable" property="amtReceivable"/>
+        <result column="amt_handle" property="amtHandle"/>
+        <result column="amt_residue" property="amtResidue"/>
+        <result column="remarks" property="remarks"/>
+        <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+        <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+        <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="flg_valid" property="flgValid"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="org_name" property="orgName"/>
+        <result column="staff_name" property="staffName"/>
 
         <result column="cus_code" property="cusCode"/>
         <result column="cus_name" property="cusName"/>
@@ -192,8 +202,14 @@
         <result column="contact_phone" property="contactPhone"/>
         <result column="cus_from" property="cusFrom" typeHandler="UuidTypeHandler"/>
         <result column="channel_id" property="channelId" typeHandler="UuidTypeHandler"/>
+        <result column="fact_amt" property="factAmt"/>
+        <result column="disc_amt" property="discAmt"/>
+        <result column="discount" property="discount"/>
+        <result column="flg_auto_handle" property="flgAutoHandle"/>
+        <result column="flg_handle_setting" property="flgHandleSetting"/>
+
+        <collection property="orderItemResponseList" resultMap="itemListMap" columnPrefix="list_"/>
 
-            <collection property="orderItemResponseList" resultMap="itemListMap" columnPrefix="list_"/>
     </resultMap>
     <!--小程序用 关联映射-->
     <resultMap id="itemListMap" type="java.util.Map">
@@ -824,6 +840,11 @@
             make_time,
             cp_id,
             op_app_code,
+            fact_amt,
+            disc_amt,
+            discount,
+            flg_auto_handle,
+            flg_handle_setting,
         </trim>
         )
         values
@@ -865,6 +886,11 @@
                 #{item.makeTime},
                 #{item.cpId},
                 #{item.opAppCode},
+                #{item.factAmt},
+                #{item.discAmt},
+                #{item.discount},
+                #{item.flgAutoHandle},
+                #{item.flgHandleSetting},
             </trim>
             )
         </foreach>
@@ -976,6 +1002,21 @@
             <if test=" et!=null and et.cpId != null">
                 cp_id =#{et.cpId,jdbcType=INTEGER},
             </if>
+            <if test=" et!=null and et.factAmt != null">
+                fact_amt =#{et.factAmt,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.discAmt != null">
+                disc_amt =#{et.discAmt,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.discount != null">
+                discount =#{et.discount,jdbcType=NUMERIC},
+            </if>
+            <if test=" et!=null and et.flgAutoHandle != null">
+                flg_auto_handle =#{et.flgAutoHandle,jdbcType=BOOLEAN},
+            </if>
+            <if test=" et!=null and et.flgHandleSetting != null">
+                flg_handle_setting =#{et.flgHandleSetting,jdbcType=BOOLEAN},
+            </if>
         </set>
         where order_id =#{et.orderId,typeHandler=UuidTypeHandler}
         and sum_quantity >= (out_qty + outing_qty)

+ 18 - 0
src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java

@@ -49,6 +49,24 @@ public class Outbound extends PageInfo<Outbound> implements Serializable {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String outId;
 
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
 
     /**
      * 出库单号

+ 24 - 1
src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java

@@ -51,7 +51,30 @@ public class OutboundItem extends PageInfo<OutboundItem> implements Serializable
     @ApiModelProperty(value = "使用位置")
     private String usePlace;
 
-
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+    /**
+     * 实际单价
+     */
+    @Excel(name = "实际单价")
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
     /**
      * 出库ID
      */

+ 26 - 0
src/main/java/com/dk/mdm/model/pojo/sale/Order.java

@@ -340,6 +340,32 @@ public class Order extends PageInfo<Order> implements Serializable {
     @TableField(fill = FieldFill.INSERT)
     private Integer cpId;
 
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
+    @Excel(name = "折扣")
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+
+    @Excel(name = "自动办理标识")
+    @ApiModelProperty(value = "自动办理标识")
+    private Boolean flgAutoHandle;
+
+    @Excel(name = "自动办理参数")
+    @ApiModelProperty(value = "自动办理参数")
+    private Boolean flgHandleSetting;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 35 - 0
src/main/java/com/dk/mdm/model/pojo/sale/OrderItem.java

@@ -247,6 +247,41 @@ public class OrderItem extends PageInfo<OrderItem> implements Serializable {
     @TableField(exist = false)
     private Integer decimalPlaces;
 
+    /**
+     * 实际单价
+     */
+    @Excel(name = "实际单价")
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
+
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
+    /**
+     * 使用位置
+     */
+    @Excel(name = "使用位置")
+    @ApiModelProperty(value = "使用位置")
+    private String usePlace;
+
+    /**
+     * 折扣
+     */
+    @Excel(name = "折扣")
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 3 - 0
src/main/java/com/dk/mdm/model/query/ivt/InboundItemQuery.java

@@ -303,6 +303,9 @@ public class InboundItemQuery extends PageInfo<InboundItemQuery>  {
     @TableField(typeHandler = UuidTypeHandler.class)
     private String supId;
 
+    @ApiModelProperty(value = "查询")
+    private String searchText;
+
 
     private static final long serialVersionUID = 1L;
 

+ 14 - 0
src/main/java/com/dk/mdm/model/response/ivt/InboundItemResponse.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.dk.common.infrastructure.annotaiton.ExportTitle;
 import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -13,6 +15,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  *  入库明细
@@ -498,6 +501,17 @@ public class InboundItemResponse  {
     @ApiModelProperty(value = "包装数量")
     private String ingBoxPiece;
 
+    @ApiModelProperty(value = "系列")
+    private String seriesName;
+
+    @ApiModelProperty(value = "已入库状态")
+    private String intoStatusName;
+
+    @ApiModelProperty(value = "入库日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate intoDate;
+
     /**
      * 小数位数 ([0-6]能改大,不能改小)
      */

+ 24 - 1
src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java

@@ -399,7 +399,30 @@ public class OutboundItemResponse {
     @Excel(name = "外协供应商")
     @ApiModelProperty(value = "外协供应商")
     private String supName;
-
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+    /**
+     * 实际单价
+     */
+    @Excel(name = "实际单价")
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
     /**
      * 包装数量
      */

+ 18 - 0
src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java

@@ -244,6 +244,24 @@ public class OutboundResponse extends PageInfo<OutboundResponse> implements Seri
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
     private LocalDateTime opUpdateTime;
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
 
     /**
      * 备注

+ 36 - 0
src/main/java/com/dk/mdm/model/response/sale/OrderItemResponse.java

@@ -382,6 +382,42 @@ public class OrderItemResponse extends PageInfo<OrderItemResponse> implements Se
     @ApiModelProperty(value = "已出库箱数")
     private String outBoxPiece;
 
+
+    /**
+     * 实际单价
+     */
+    @Excel(name = "实际单价")
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
+
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
+    /**
+     * 使用位置
+     */
+    @Excel(name = "使用位置")
+    @ApiModelProperty(value = "使用位置")
+    private String usePlace;
+
+    /**
+     * 折扣
+     */
+    @Excel(name = "折扣")
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 25 - 0
src/main/java/com/dk/mdm/model/response/sale/OrderResponse.java

@@ -348,6 +348,20 @@ public class OrderResponse extends PageInfo<OrderResponse> implements Serializab
     @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
     private Boolean flgValid;
 
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
 
     /**
      * 企业ID
@@ -400,6 +414,17 @@ public class OrderResponse extends PageInfo<OrderResponse> implements Serializab
 
     private String channelId;
 
+    @Excel(name = "折扣")
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+
+    @ApiModelProperty(value = "自动办理标识")
+    private Boolean flgAutoHandle;
+
+    @ApiModelProperty(value = "自动办理参数")
+    private Boolean flgHandleSetting;
+
+
     private static final long serialVersionUID = 1L;
 
 }

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

@@ -41,6 +41,30 @@ public class OutboundItemVO {
     @Excel(name = "使用位置")
     @ApiModelProperty(value = "使用位置")
     private String usePlace;
+    /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+    /**
+     * 实际单价
+     */
+    @Excel(name = "实际单价")
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
 
     /**
      * 入库金额

+ 20 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java

@@ -50,6 +50,26 @@ public class OutboundVO{
     private BigDecimal sumAmtRec;
 
     /**
+     * 实际金额
+     */
+    @Excel(name = "实际金额")
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+    /**
+     * 整单折扣
+     */
+    @Excel(name = "整单折扣")
+    @ApiModelProperty(value = "整单折扣")
+    private BigDecimal discount;
+    /**
+     * 优惠金额
+     */
+    @Excel(name = "优惠金额")
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
+
+    /**
      * 收付款类型 (【系统字典】收款、付款)
      */
     @Excel(name = "收付款类型 (【系统字典】收款、付款)")

+ 34 - 0
src/main/java/com/dk/mdm/model/vo/sale/OrderItemVO.java

@@ -253,6 +253,40 @@ public class OrderItemVO extends PageInfo<OrderItemVO> implements Serializable {
 
     private String invId;
 
+
+    /**
+     * 实际单价
+     */
+    @ApiModelProperty(value = "实际单价")
+    private BigDecimal factPrice;
+
+    /**
+     * 实际金额
+     */
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    /**
+     * 优惠金额
+     */
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
+
+    /**
+     * 使用位置
+     */
+    @ApiModelProperty(value = "使用位置")
+    private String usePlace;
+
+    /**
+     * 折扣
+     */
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+
+
+
     private static final long serialVersionUID = 1L;
 
 }

+ 6 - 1
src/main/java/com/dk/mdm/model/vo/sale/OrderVO.java

@@ -377,10 +377,15 @@ public class OrderVO extends PageInfo<OrderVO> implements Serializable {
     @ApiModelProperty(value = "开单并出库办理标识")
     private Boolean outboundProcessingFlag;
 
-    @Excel(name = "自动办理标识")
     @ApiModelProperty(value = "自动办理标识")
     private Boolean flgAutoHandle;
 
+    @ApiModelProperty(value = "实际金额")
+    private BigDecimal factAmt;
+
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discAmt;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 5 - 0
src/main/java/com/dk/mdm/service/common/CommonService.java

@@ -800,6 +800,11 @@ public class CommonService extends BaseService<Map<String, Object>> {
             map.put("kindType", "初始款项");
             list = commonMapper.getDataKind(map);
         }
+        // 收支类型
+        if (dataSourceCode.equals("recType")) {
+            map.put("kindType", "收支类型");
+            list = commonMapper.getDataKind(map);
+        }
 
         return ResponseResultUtil.success(list);
     }

+ 21 - 3
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -835,7 +835,7 @@ public class InventoryService extends BaseService<Inventory> {
         //是负库存逻辑  这里要新建2次 一正一负
         if (inOutRecordVO.getCanNegativeFlag() && !Constant.InventoryType.INBOUND.getName().equals(inOutRecordVO.getInventoryType())) {
             //新建负数库存流水
-            inOutRecordVO.setIntoQty(inOutRecordVO.getIntoQty());
+            inOutRecordVO.setIntoQty(inOutRecordVO.getIntoQty().abs().negate());
             //实体转换
             InOutRecord inOutRecordNeg = inOutRecordConvert.convertToPo(inOutRecordVO);
             //新建
@@ -857,8 +857,11 @@ public class InventoryService extends BaseService<Inventory> {
         }
         //不是负库存逻辑
         else {
-            //销售退货出库  数量转换一下
-            if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+            //region 销售退货出库和入库(不是采退入库)  数量正数
+            if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
+                    ( !Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) &&
+                            Constant.InventoryType.INBOUND.getName().equals(inOutRecordVO.getInventoryType()))
+            ) {
                 //入库价
                 inOutRecordVO.setPriceInto(inOutRecordVO.getPriceInto().abs());
                 //入库数量
@@ -866,6 +869,21 @@ public class InventoryService extends BaseService<Inventory> {
                 //入库金额
                 inOutRecordVO.setIntoAmt(inOutRecordVO.getIntoAmt().abs());
             }
+            //endregion
+
+            //region 采退入库 和出库(不是销退出库) 数量负数
+            if (Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
+                    ( !Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) &&
+                            Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType()))
+            ) {
+                //入库价
+                inOutRecordVO.setPriceInto(inOutRecordVO.getPriceInto().abs().negate());
+                //入库数量
+                inOutRecordVO.setIntoQty(inOutRecordVO.getIntoQty().abs().negate());
+                //入库金额
+                inOutRecordVO.setIntoAmt(inOutRecordVO.getIntoAmt().abs().negate());
+            }
+            //endregion
             //实体转换
             InOutRecord inOutRecord = inOutRecordConvert.convertToPo(inOutRecordVO);
             //新建

+ 1 - 0
src/main/java/com/dk/mdm/service/mst/OrgService.java

@@ -231,6 +231,7 @@ public class OrgService extends BaseService<Org> {
         organizationNew.setOrgName("运营中心");
         organizationNew.setParentId(organization.getOrgId());
         organizationNew.setTopId(organization.getOrgId());
+        organizationNew.setFlgBusiness(true);
         organizationNew.setDisplayNo(1);
         codeMap = commonService.getUniqueNoteCode(
                 Constant.docNameConstant.ORG.getName(),orgVO.getCpId(), true);

+ 149 - 108
src/main/java/com/dk/mdm/service/report/ReportService.java

@@ -39,13 +39,15 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
- * @desc   : 报表数据源
  * @author : 常皓宁
- * @date   : 2024/4/11 8:49
+ * @desc : 报表数据源
+ * @date : 2024/4/11 8:49
  */
 @Service
 @Slf4j
@@ -64,19 +66,20 @@ public class ReportService {
     private RedisUtil redisUtil;
 
     /**
-     * @desc   : 查询库存
+     * @desc : 查询库存
      * @author : 常皓宁
-     * @date   : 2024/4/11 8:52
+     * @date : 2024/4/11 8:52
      */
     public ResponseResultVO<List<Map<String, Object>>> getIvtDetailReport(Map<String, Object> param) {
         // 获取系统基础数据
         List<Map<String, Object>> list = reportMapper.getIvtDetailReport(param);
         return ResponseResultUtil.success(list);
     }
+
     /**
-     * @desc   : 采购明细报表(明细)
+     * @desc : 采购明细报表(明细)
      * @author : 宋扬
-     * @date   : 2024/4/10 16:39
+     * @date : 2024/4/10 16:39
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getPurDetailReport(Map<String, Object> param) {
         // 校验分页参数
@@ -84,17 +87,17 @@ public class ReportService {
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
         }
         // 获取系统基础数据
-        List<Map<String, Object>> list=new ArrayList<>();
+        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){
+        if (param.get("flgViewItem") == null) {
             // 查询主表
-            dataList= reportMapper.getPurReport(param);
-        }else {
+            dataList = reportMapper.getPurReport(param);
+        } else {
             // 查询明细
-            dataList= reportMapper.getPurDetailReport(param);
+            dataList = reportMapper.getPurDetailReport(param);
         }
         data.setList(dataList);
         data.setTotal(reportMapper.getSalesTrackingReportCount(param));
@@ -104,9 +107,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 销售明细报表
+     * @desc : 销售明细报表
      * @author : 宋扬
-     * @date   : 2024/4/11 13:22
+     * @date : 2024/4/11 13:22
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getOrderDetailReport(Map<String, Object> param) {
         // 校验分页参数
@@ -114,17 +117,17 @@ public class ReportService {
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL, "请检查分页参数!");
         }
         // 获取系统基础数据
-        List<Map<String, Object>> list=new ArrayList<>();
+        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){
+        if (param.get("flgViewItem") == null) {
             // 查询主表
-            dataList= reportMapper.getOrderReport(param);
-        }else {
+            dataList = reportMapper.getOrderReport(param);
+        } else {
             // 查询明细
-            dataList= reportMapper.getOrderDetailReport(param);
+            dataList = reportMapper.getOrderDetailReport(param);
         }
         data.setList(dataList);
         data.setTotal(reportMapper.getSalesTrackingReportCount(param));
@@ -134,9 +137,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 出库明细报表
+     * @desc : 出库明细报表
      * @author : 宋扬
-     * @date   : 2024/4/11 16:54
+     * @date : 2024/4/11 16:54
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getOutboundDetailReport(Map<String, Object> param) {
         // 校验分页参数
@@ -148,12 +151,12 @@ public class ReportService {
         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){
+        if (param.get("flgViewItem") == null) {
             // 查询主表
-            dataList= reportMapper.getOutboundReport(param);
-        }else {
+            dataList = reportMapper.getOutboundReport(param);
+        } else {
             // 查询明细
-            dataList= reportMapper.getOutboundDetailReport(param);
+            dataList = reportMapper.getOutboundDetailReport(param);
         }
         data.setList(dataList);
         data.setTotal(reportMapper.getOutboundDetailReportCount(param));
@@ -163,9 +166,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 入库明细报表
+     * @desc : 入库明细报表
      * @author : 宋扬
-     * @date   : 2024/4/11 16:54
+     * @date : 2024/4/11 16:54
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getInboundDetailReport(Map<String, Object> param) {
         // 校验分页参数
@@ -177,12 +180,12 @@ public class ReportService {
         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){
+        if (param.get("flgViewItem") == null) {
             // 查询主表
-            dataList= reportMapper.getInboundlReport(param);
-        }else {
+            dataList = reportMapper.getInboundlReport(param);
+        } else {
             // 查询明细
-            dataList= reportMapper.getInboundDetailReport(param);
+            dataList = reportMapper.getInboundDetailReport(param);
         }
         data.setList(dataList);
         data.setTotal(reportMapper.getSalesTrackingReportCount(param));
@@ -192,9 +195,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 客户收款明细表
+     * @desc : 客户收款明细表
      * @author : 宋扬
-     * @date   : 2024/4/16 11:29
+     * @date : 2024/4/16 11:29
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getRecPayDetailReport(Map<String, Object> param) {
         // 校验分页参数
@@ -216,9 +219,9 @@ public class ReportService {
 
 
     /**
-     * @desc   : 销售跟踪表 列表查询
+     * @desc : 销售跟踪表 列表查询
      * @author : 于继渤
-     * @date   : 2024/4/16 11:27
+     * @date : 2024/4/16 11:27
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getSalesTrackingReport(Map<String, Object> param) {
 
@@ -241,9 +244,9 @@ public class ReportService {
 
 
     /**
-     * @desc   : 销售明细
+     * @desc : 销售明细
      * @author : 于继渤
-     * @date   : 2024/4/16 11:27
+     * @date : 2024/4/16 11:27
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getSalesItemReport(Map<String, Object> param) {
 
@@ -266,9 +269,9 @@ public class ReportService {
 
 
     /**
-     * @desc   : 采购跟踪表 列表查询
+     * @desc : 采购跟踪表 列表查询
      * @author : 王英杰
-     * @date   : 2024/4/16 11:27
+     * @date : 2024/4/16 11:27
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getPurTrackingReport(Map<String, Object> param) {
 
@@ -291,28 +294,28 @@ public class ReportService {
 
 
     /**
-     * @desc   : 采购跟踪表 明细查询
+     * @desc : 采购跟踪表 明细查询
      * @author : 王英杰
-     * @date   : 2024/4/16 11:27
+     * @date : 2024/4/16 11:27
      */
     public ResponseResultVO getPurTrackingReportDetail(String purId) {
 
-        return ResponseResultUtil.success(reportMapper.getPurTrackingReportDetail(purId) );
+        return ResponseResultUtil.success(reportMapper.getPurTrackingReportDetail(purId));
     }
 
     /**
-     * @desc   : 销售跟踪表 明细查询
+     * @desc : 销售跟踪表 明细查询
      * @author : 于继渤
-     * @date   : 2024/4/16 11:27
+     * @date : 2024/4/16 11:27
      */
     public ResponseResultVO getSalesTrackingReportDetail(String id) {
-        return ResponseResultUtil.success(reportMapper.getSalesTrackingReportDetail(id) );
+        return ResponseResultUtil.success(reportMapper.getSalesTrackingReportDetail(id));
     }
 
 
     /**
-     * @desc   : 日结对账表
-     * @date   : 2024/4/24 15:11
+     * @desc : 日结对账表
+     * @date : 2024/4/24 15:11
      * @author : 寇珊珊
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getDailyReconciliationReport(Map<String, Object> param) {
@@ -333,8 +336,8 @@ public class ReportService {
     }
 
     /**
-     * @desc   :  日结对账表-查销售订单
-     * @date   : 2024/4/24 15:11
+     * @desc :  日结对账表-查销售订单
+     * @date : 2024/4/24 15:11
      * @author : 寇珊珊
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getDailyReconciliationReportByOrder(Map<String, Object> param) {
@@ -356,8 +359,8 @@ public class ReportService {
 
 
     /**
-     * @desc   :  日结对账表-查销售出库
-     * @date   : 2024/4/24 15:11
+     * @desc :  日结对账表-查销售出库
+     * @date : 2024/4/24 15:11
      * @author : 寇珊珊
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getDailyReconciliationReportByOut(Map<String, Object> param) {
@@ -379,8 +382,8 @@ public class ReportService {
 
 
     /**
-     * @desc   :  日结对账表-查收款单
-     * @date   : 2024/4/24 15:11
+     * @desc :  日结对账表-查收款单
+     * @date : 2024/4/24 15:11
      * @author : 寇珊珊
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getDailyReconciliationReportByPay(Map<String, Object> param) {
@@ -401,14 +404,14 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 收发存汇总报表
+     * @desc : 收发存汇总报表
      * @author : 宋扬
-     * @date   : 2024/4/20 13:30
+     * @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);
+            param.put("querys", querys);
         }
 
         List<Map<String, Object>> list = reportMapper.getIvtSumReport(param);
@@ -430,9 +433,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 收发存汇总报表-明细
+     * @desc : 收发存汇总报表-明细
      * @author : 宋扬
-     * @date   : 2024/4/23 14:10
+     * @date : 2024/4/23 14:10
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getIvtItemReport(Map<String, Object> param) {
         // 校验分页参数
@@ -459,9 +462,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 供应商往来余额表
+     * @desc : 供应商往来余额表
      * @author : 常皓宁
-     * @date   : 2024/4/25 13:27
+     * @date : 2024/4/25 13:27
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getSupAccount(Map<String, Object> param) {
         param.put("start", (Integer.parseInt(param.get("currentPage").toString()) - 1) * Integer.parseInt(param.get("pageSize").toString()));
@@ -474,9 +477,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 供应商往来余额表明细
+     * @desc : 供应商往来余额表明细
      * @author : 常皓宁
-     * @date   : 2024/4/25 13:27
+     * @date : 2024/4/25 13:27
      */
     public ResponseResultVO<List<Map<String, Object>>> getSupAccountItem(Map<String, Object> param) {
         // 获取系统基础数据
@@ -485,9 +488,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 资金日记账
+     * @desc : 资金日记账
      * @author : 常皓宁
-     * @date   : 2024/4/26 16:43
+     * @date : 2024/4/26 16:43
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getFundReport(Map<String, Object> param) {
         // 校验分页参数
@@ -515,21 +518,21 @@ public class ReportService {
 
 
     /**
-     * @desc   : 销售简报
-     * @date   : 2024/5/6 8:43
+     * @desc : 销售简报
+     * @date : 2024/5/6 8:43
      * @author : 寇珊珊
      */
-    public ResponseResultVO<Map<String,Object>> getReportBatch(Map<String,Map<String,Object>> param){
-        Map<String,Object> result = new HashMap<>();
-        for(String key : param.keySet()){
-            JSONObject valueObj =  JSONObject.parseObject(reportMapper.getReportBatch(param.get(key)).get("report").getValue());
-            result.put(key,valueObj);
+    public ResponseResultVO<Map<String, Object>> getReportBatch(Map<String, Map<String, Object>> param) {
+        Map<String, Object> result = new HashMap<>();
+        for (String key : param.keySet()) {
+            JSONObject valueObj = JSONObject.parseObject(reportMapper.getReportBatch(param.get(key)).get("report").getValue());
+            result.put(key, valueObj);
         }
         return ResponseResultUtil.success(result);
     }
 
 
-//    @Autowired
+    //    @Autowired
 //    private LogReportExportFeign logReportExportFeign;
     @Transactional(rollbackFor = {Exception.class})
     public void export(HttpServletResponse response, String uuid) throws Exception {
@@ -538,29 +541,29 @@ public class ReportService {
 
         List<ExportView> exportViews = new ArrayList<>();
 
-        Map<String,Object> redisData = ((Map<String,Object>) redisUtil.get(uuid));
+        Map<String, Object> redisData = ((Map<String, Object>) redisUtil.get(uuid));
 
-        Map<String,Map<String,Object>> params = (Map<String, Map<String, Object>>)redisData.get("params") ;
+        Map<String, Map<String, Object>> params = (Map<String, Map<String, Object>>) redisData.get("params");
         /* 查询条件 */
         String searchCondition = redisData.get("searchCond").toString();
         /* 数据库查询出来的数据 */
-        Map<String,Object> reportData = getReportBatch(params).getData();
+        Map<String, Object> reportData = getReportBatch(params).getData();
 
         String fileName = redisData.get("fileName").toString();
 //        String filePath = redisData.get("filePath").toString();
 
         exportViews.add(new ExportView());
         exportViews.get(0).setCls(ExcelIndex.class);
-        ExportParams indexExportParams = new ExportParams(searchCondition,"报表目录");
+        ExportParams indexExportParams = new ExportParams(searchCondition, "报表目录");
         indexExportParams.setDataHandler(new ExcelDataHandler());
         exportViews.get(0).setExportParams(indexExportParams);
         exportViews.get(0).setTitleHeight(60);
         List<ExcelIndex> sheetList = new ArrayList<>();
 //        String currentUserId = null;
 //        Long cpId = null;
-        for(String key : params.keySet()){
+        for (String key : params.keySet()) {
             sheetList.add(new ExcelIndex().setSheetName(TITLE_MAP.get(key)));
-            Map<String,Object> currentMap = params.get(key);
+            Map<String, Object> currentMap = params.get(key);
             /* 手动处理一下 userId */
 //            if(currentUserId == null){
 //                currentUserId = currentMap.get("userId").toString();
@@ -570,15 +573,15 @@ public class ReportService {
 //                cpId = Long.valueOf(currentMap.get("cpId").toString());
 //            }
             Class<?> clazz = CLASS_MAP.get(key);
-            List<?> list = JSONArray.parseArray(JSONArray.toJSONString(((Map<String,Object>)reportData.get(key)).get(currentMap.get("items").toString())),clazz);
+            List<?> list = JSONArray.parseArray(JSONArray.toJSONString(((Map<String, Object>) reportData.get(key)).get(currentMap.get("items").toString())), clazz);
             ExportParams exportParams = new ExportParams(
                     TITLE_MAP.get(key),
-                    getTotal(currentMap.get("secondTitle").toString(), (Map<String,Object>)reportData.get(key), (List<String>)currentMap.get("calc10000")),
+                    getTotal(currentMap.get("secondTitle").toString(), (Map<String, Object>) reportData.get(key), (List<String>) currentMap.get("calc10000")),
                     TITLE_MAP.get(key));
 
             exportParams.setStyle(ExcelExportStyleImpl.class);
 
-            ExportView exportView = new ExportView(exportParams,list,clazz);
+            ExportView exportView = new ExportView(exportParams, list, clazz);
             exportViews.add(exportView);
         }
         exportViews.get(0).setDataList(sheetList);
@@ -597,21 +600,21 @@ public class ReportService {
 //                .setOpCreateUserId(currentUserId);
 //        ResponseResultVO<?> insertRes = logReportExportFeign.insert(logReportExportVo);
 //        if(insertRes.getCode() == 200){
-            ExcelUtils.defaultExportMoreSheet(fileName + "-" +currentTime +".xls",response,exportMoreView);
+        ExcelUtils.defaultExportMoreSheet(fileName + "-" + currentTime + ".xls", response, exportMoreView);
 //        }else{
 //            throw new BaseBusinessException(insertRes.getCode(),insertRes.getMessage());
 //        }
     }
 
     /**
-     * @desc   : 客户往来账
+     * @desc : 客户往来账
      * @author : 宋扬
-     * @date   : 2024/5/10 10:32
+     * @date : 2024/5/10 10:32
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getMacRecCurrentReport(Map<String, Object> param) {
         if (param.get("querys") != null) {
             JSONObject querys = JSONObject.parseObject(param.get("querys").toString());
-            param.put("querys",querys);
+            param.put("querys", querys);
         }
 
         List<Map<String, Object>> list = reportMapper.getMacRecCurrentReport(param);
@@ -633,9 +636,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 客户往来账明细
+     * @desc : 客户往来账明细
      * @author : 宋扬
-     * @date   : 2024/5/10 10:32
+     * @date : 2024/5/10 10:32
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getMacRecCurrentItemReport(Map<String, Object> param) {
         // 校验分页参数
@@ -662,14 +665,14 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 供应商往来账
+     * @desc : 供应商往来账
      * @author : 宋扬
-     * @date   : 2024/5/10 10:32
+     * @date : 2024/5/10 10:32
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getMacPayCurrentReport(Map<String, Object> param) {
         if (param.get("querys") != null) {
             JSONObject querys = JSONObject.parseObject(param.get("querys").toString());
-            param.put("querys",querys);
+            param.put("querys", querys);
         }
 
         List<Map<String, Object>> list = reportMapper.getMacPayCurrentReport(param);
@@ -691,9 +694,9 @@ public class ReportService {
     }
 
     /**
-     * @desc   : 供应商往来账明细
+     * @desc : 供应商往来账明细
      * @author : 宋扬
-     * @date   : 2024/5/10 10:32
+     * @date : 2024/5/10 10:32
      */
     public ResponseResultVO<PageList<Map<String, Object>>> getMacPayCurrentItemReport(Map<String, Object> param) {
         // 校验分页参数
@@ -719,7 +722,45 @@ public class ReportService {
         }
     }
 
-
+    /**
+     * @desc : 客户收支表查询
+     * @author : 刘尧
+     * @date : 2024/6/6 14:27
+     */
+    public ResponseResultVO<List<Map<String, Object>>> getCusRecPayReportItem(Map<String, Object> params) {
+        List<Map<String, Object>> items = reportMapper.getCusRecPayReportItemByUser(params);
+        List<Map<String, Object>> arrears = reportMapper.getUserArrears(params);
+        // 判断类型
+        for (Map<String, Object> item : items) {
+            if (Double.valueOf(String.valueOf(item.get("outAmt")).equals("null") ? "0" : String.valueOf(item.get("outAmt"))) > 0) {
+                item.put("type", "销售出库");
+            } else if (Double.valueOf(String.valueOf(item.get("outAmt")).equals("null") ? "0" : String.valueOf(item.get("outAmt"))) < 0) {
+                item.put("type", "销售退货");
+            } else if (Double.valueOf(String.valueOf(item.get("sumAmtRec")).equals("null") ? "0" : String.valueOf(item.get("sumAmtRec"))) > 0) {
+                item.put("type", "客户收款");
+            } else if (Double.valueOf(String.valueOf(item.get("sumAmtRec")).equals("null") ? "0" : String.valueOf(item.get("sumAmtRec"))) < 0) {
+                item.put("type", "客户退款");
+            }
+        }
+        for (Map<String, Object> map : arrears) {
+            // 筛选出符合条件的明细
+            List<Map<String, Object>> userArrearsItem = items.stream()
+                    .filter(item -> item.get("objectId").equals(map.get("objectId")))
+                    .filter(item -> (Double.valueOf(String.valueOf(item.get("outAmt")).equals("null") ? "0" : String.valueOf(item.get("outAmt"))) != 0
+                            || Double.valueOf(String.valueOf(item.get("sumAmtRec")).equals("null") ? "0" : String.valueOf(item.get("sumAmtRec"))) != 0))
+                    .collect(Collectors.toList());
+            AtomicReference<Double> total = new AtomicReference<>(0.00);
+            // 计算单用户的总计
+            userArrearsItem.forEach(item -> {
+                total.updateAndGet(v -> v + Double.valueOf(String.valueOf(item.get("outAmt")).equals("null") ? "0" : String.valueOf(item.get("outAmt")))
+                        + Double.valueOf(String.valueOf(item.get("sumAmtRec")).equals("null") ? "0" : String.valueOf(item.get("sumAmtRec"))));
+            });
+            map.put("item", userArrearsItem);
+            map.put("totalMoney", total);
+        }
+
+        return ResponseResultUtil.success(arrears);
+    }
 
     private static final Map<String, Class<?>> CLASS_MAP = ImmutableMap.<String, Class<?>>builder()
             /* 销售分析 */
@@ -786,18 +827,18 @@ public class ReportService {
             .put("staffSpuQty", StaffSpuQty.class)
 
             /* 订单参考利润 - 品类排行 */
-            .put("saleReferenceProfit1",categoryRanking.class)
+            .put("saleReferenceProfit1", categoryRanking.class)
             /* 订单参考利润 - 部门排行 */
-            .put("saleReferenceProfit2",orgRanking.class)
+            .put("saleReferenceProfit2", orgRanking.class)
             /* 订单参考利润 - 业务员排行 */
-            .put("saleReferenceProfit3",staffRanking.class)
+            .put("saleReferenceProfit3", staffRanking.class)
 
             /* 出库参考利润 - 品类排行 */
-            .put("outReferenceProfit1",categoryRanking.class)
+            .put("outReferenceProfit1", categoryRanking.class)
             /* 出库参考利润 - 部门排行 */
-            .put("outReferenceProfit2",orgRanking.class)
+            .put("outReferenceProfit2", orgRanking.class)
             /* 出库参考利润 - 业务员排行 */
-            .put("outReferenceProfit3",staffRanking.class)
+            .put("outReferenceProfit3", staffRanking.class)
 
             .build();
 
@@ -805,7 +846,7 @@ public class ReportService {
             /* 销售分析 */
             .put("saleTask", "销售分析-销售任务")
             .put("returnSituation", "销售分析-退货情况")
-            .put("customerUnitPrice","销售分析-客单价")
+            .put("customerUnitPrice", "销售分析-客单价")
 //            .put("activityEffect1","销售分析-促销套餐活动效果")
 //            .put("activityEffect2","销售分析-促销单品活动效果")
 //            .put("customizedWisdom1","销售分析-定+智品类")
@@ -864,23 +905,23 @@ public class ReportService {
             .put("staffSpuQty", "销售分析-业务员单品数量")
 
             /* 订单参考利润 - 品类排行 */
-            .put("saleReferenceProfit1","订单参考利润-品类排行")
+            .put("saleReferenceProfit1", "订单参考利润-品类排行")
             /* 订单参考利润 - 部门排行 */
-            .put("saleReferenceProfit2","订单参考利润-部门排行")
+            .put("saleReferenceProfit2", "订单参考利润-部门排行")
             /* 订单参考利润 - 业务员排行 */
-            .put("saleReferenceProfit3","订单参考利润-业务员排行")
+            .put("saleReferenceProfit3", "订单参考利润-业务员排行")
 
             /* 出库参考利润 - 品类排行 */
-            .put("outReferenceProfit1","出库参考利润-品类排行")
+            .put("outReferenceProfit1", "出库参考利润-品类排行")
             /* 出库参考利润 - 部门排行 */
-            .put("outReferenceProfit2","出库参考利润-部门排行")
+            .put("outReferenceProfit2", "出库参考利润-部门排行")
             /* 出库参考利润 - 业务员排行 */
-            .put("outReferenceProfit3","出库参考利润-业务员排行")
+            .put("outReferenceProfit3", "出库参考利润-业务员排行")
 
 
             .build();
 
-    private static String getTotal(String str,Map<String,Object> data,List<String> calcStr){
+    private static String getTotal(String str, Map<String, Object> data, List<String> calcStr) {
         String returnStr = str;
         Pattern dynamic = Pattern.compile(".*\\$\\{([A-Za-z0-9]+)\\}.*");
         Pattern dynamicLimitCount = Pattern.compile("\\$\\{([A-Za-z0-9]+)\\}");
@@ -891,9 +932,9 @@ public class ReportService {
         }
         for (String it : params) {
             String value = data.get(it).toString();
-            if(value != null && calcStr.contains(it)){
+            if (value != null && calcStr.contains(it)) {
                 BigDecimal b = new BigDecimal(value);
-                value = b.divide(BigDecimal.valueOf(10000),2, RoundingMode.HALF_UP).toString();
+                value = b.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP).toString();
             }
             returnStr = returnStr.replaceAll("\\$\\{" + it + "\\}", value);
         }