Quellcode durchsuchen

app端,对账金额统计和对账单数量统计规则单独处理

xucaiqin vor 2 Jahren
Ursprung
Commit
2f9b3e6e7d

+ 9 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java

@@ -87,12 +87,19 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
     List<LedgerCarrierDto> selectCarrierIds(@Param("ids") List<Long> ids);
 
     /**
-     * 统计对账金额、对账单数量
+     * app统计对账单数量
      *
      * @param logisticsReq
      * @return
      */
-    LedgerCountSumVo countSum(@Param("logisticsReq") LogisticsReq logisticsReq);
+    LedgerCountSumVo countSum(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("status") List<Integer> status);
+    /**
+     * app统计对账金额
+     *
+     * @param logisticsReq
+     * @return
+     */
+    LedgerCountSumVo countSumMoney(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("status") List<Integer> status);
 
     /**
      * @param entId     托运方企业

+ 8 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerTradeMapper.java

@@ -73,6 +73,14 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
      * @return
      */
     LedgerCountSumVo countSum(@Param("tradeReq") TradeReq tradeReq, @Param("status") List<Integer> status);
+    /**
+     * app端对账统计
+     *
+     * @param tradeReq
+     * @param status
+     * @return
+     */
+    LedgerCountSumVo countSumMoney(@Param("tradeReq") TradeReq tradeReq, @Param("status") List<Integer> status);
 
     void updatePrice(@Param("id") Long id, @Param("totalPrice") BigDecimal totalPrice);
 

+ 4 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/res/LedgerCountSumVo.java

@@ -1,6 +1,8 @@
 package com.sckw.payment.model.vo.res;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 /**
@@ -9,6 +11,8 @@ import lombok.Setter;
  */
 @Getter
 @Setter
+@AllArgsConstructor
+@NoArgsConstructor
 public class LedgerCountSumVo {
     private String totalPrice;
     private String ledgerCount;

+ 11 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -142,7 +142,13 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         fillPara(logisticsReq);
         logisticsReq.setUnitType(LogisticsUnitType.CARRIER);
         logisticsReq.setUnitTypeTwo(LogisticsUnitType.SHIPPER);
-        return logisticsMapper.countSum(logisticsReq);
+        List<Integer> status = new ArrayList<>() {{
+            add(LedgerEnum.SAVE.getStatus());
+            add(LedgerEnum.REVOCATION.getStatus());
+        }};
+        LedgerCountSumVo ledgerCountSumVo = logisticsMapper.countSum(logisticsReq, status);
+        LedgerCountSumVo ledgerCountSumVo2 = logisticsMapper.countSumMoney(logisticsReq, status);
+        return new LedgerCountSumVo(ledgerCountSumVo2.getTotalPrice(), ledgerCountSumVo.getLedgerCount());
     }
 
     public PageRes<ILedger> carrierList(LogisticsReq logisticsReq) {
@@ -164,7 +170,10 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         fillPara(logisticsReq);
         logisticsReq.setUnitType(LogisticsUnitType.SHIPPER);
         logisticsReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
-        return logisticsMapper.countSum(logisticsReq);
+        List<Integer> status = new ArrayList<>();
+        LedgerCountSumVo ledgerCountSumVo = logisticsMapper.countSum(logisticsReq, status);
+        LedgerCountSumVo ledgerCountSumVo2 = logisticsMapper.countSumMoney(logisticsReq, status);
+        return new LedgerCountSumVo(ledgerCountSumVo2.getTotalPrice(), ledgerCountSumVo.getLedgerCount());
     }
 
     /**

+ 7 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -147,7 +147,10 @@ public class KwpLedgerTradeService extends AbsLedger {
         tradeReq.setUnitType(TradeUnitType.PURCHASE);
         tradeReq.setUnitTypeTwo(TradeUnitType.SELL);
         List<Integer> status = new ArrayList<>();
-        return tradeMapper.countSum(tradeReq, status);
+
+        LedgerCountSumVo ledgerCountSumVo = tradeMapper.countSum(tradeReq, status);
+        LedgerCountSumVo ledgerCountSumVo2 = tradeMapper.countSumMoney(tradeReq, status);
+        return new LedgerCountSumVo(ledgerCountSumVo2.getTotalPrice(), ledgerCountSumVo.getLedgerCount());
     }
 
     /**
@@ -180,7 +183,9 @@ public class KwpLedgerTradeService extends AbsLedger {
             add(LedgerEnum.SAVE.getStatus());
             add(LedgerEnum.REVOCATION.getStatus());
         }};
-        return tradeMapper.countSum(tradeReq, status);
+        LedgerCountSumVo ledgerCountSumVo = tradeMapper.countSum(tradeReq, status);
+        LedgerCountSumVo ledgerCountSumVo2 = tradeMapper.countSumMoney(tradeReq, status);
+        return new LedgerCountSumVo(ledgerCountSumVo2.getTotalPrice(), ledgerCountSumVo.getLedgerCount());
     }
 
     private void removeDraft(Long id) {

+ 49 - 2
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml

@@ -249,9 +249,50 @@
             </foreach>
         </where>
     </select>
+    <!--金额统计规则:未筛选状态,统计已完成的对账单,结算金额。筛选状态统计具体的状态-->
+    <select id="countSumMoney" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
+        select sum(kll.settle_price) "totalPrice"
+        from kwp_ledger_logistics kll
+                 inner join kwp_ledger_logistics_unit kllu
+                            on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
+                               kllu.unit_type = #{logisticsReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_logistics_unit kllu2
+                            on kll.id = kllu2.l_ledger_id and kllu2.del_flag = 0 and
+                               kllu2.unit_type = #{logisticsReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kll.del_flag = 0
+              and kllu2.top_ent_id = #{logisticsReq.entId,jdbcType=BIGINT}
+            <if test="logisticsReq.status != null">
+                and kll.status = #{logisticsReq.status}
+            </if>
+            <if test="logisticsReq.status == null">
+                and kll.status = 4
+            </if>
+            <if test="status != null and status.size() > 0">
+                and kll.status not in
+                <foreach collection="status" item="id" close=")" open="(" separator=",">
+                    #{id,jdbcType=BIGINT}
+                </foreach>
+            </if>
+            <if test="logisticsReq.trading != null">
+                and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="logisticsReq.startCreateTime != null and logisticsReq.startCreateTime != '' and logisticsReq.endCreateTime != null and logisticsReq.endCreateTime != ''">
+                and kll.generate_time between #{logisticsReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{logisticsReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="logisticsReq.keywords != null and logisticsReq.keywords != ''">
+                and (
+                            kll.l_ledger_no like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.firm_name like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+        </where>
+    </select>
+    <!--数量统计规则:未筛选,统计所有。需要根据企业方,排除已保存,已撤回两个状态-->
     <select id="countSum" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
-        select IFNULL(count(1), 0)  "ledgerCount",
-               sum(kll.total_price) "totalPrice"
+        select IFNULL(count(1), 0) "ledgerCount"
         from kwp_ledger_logistics kll
                  inner join kwp_ledger_logistics_unit kllu
                             on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
@@ -265,6 +306,12 @@
             <if test="logisticsReq.status != null">
                 and kll.status = #{logisticsReq.status}
             </if>
+            <if test="status != null and status.size() > 0">
+                and kll.status not in
+                <foreach collection="status" item="id" close=")" open="(" separator=",">
+                    #{id,jdbcType=BIGINT}
+                </foreach>
+            </if>
             <if test="logisticsReq.trading != null">
                 and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}
             </if>

+ 50 - 0
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml

@@ -302,7 +302,53 @@
         </where>
         order by klt.generate_time desc
     </select>
+    <!--数量统计规则:未筛选,统计所有。需要根据企业方,排除已保存,已撤回两个状态-->
     <select id="countSum" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
+        select IFNULL(count(1), 0) "ledgerCount"
+        from kwp_ledger_trade klt
+                 inner join kwp_ledger_trade_unit kltu
+                            on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                               kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2
+                            on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                               kltu2.unit_type = #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            klt.del_flag = 0
+              and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
+            <if test="tradeReq.status != null">
+                and klt.status = #{tradeReq.status}
+            </if>
+            <if test="status != null and status.size() > 0">
+                and klt.status not in
+                <foreach collection="status" item="id" close=")" open="(" separator=",">
+                    #{id,jdbcType=BIGINT}
+                </foreach>
+            </if>
+            <if test="tradeReq.trading != null">
+                and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
+                and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
+                and (
+                            klt.t_ledger_no like concat('%'
+                            , #{tradeReq.keywords,jdbcType=VARCHAR}
+                            , '%')
+                        or kltu.firm_name like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                        or kltu.contacts like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                    )
+            </if>
+        </where>
+    </select>
+
+    <!--金额统计规则:未筛选状态,统计已完成的对账单,结算金额。筛选状态统计具体的状态-->
+    <select id="countSumMoney" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
         select IFNULL(count(1), 0)   "ledgerCount",
                sum(klt.settle_price) "totalPrice"
         from kwp_ledger_trade klt
@@ -318,6 +364,9 @@
             <if test="tradeReq.status != null">
                 and klt.status = #{tradeReq.status}
             </if>
+            <if test="tradeReq.status == null">
+                and klt.status = 4
+            </if>
             <if test="status != null and status.size() > 0">
                 and klt.status not in
                 <foreach collection="status" item="id" close=")" open="(" separator=",">
@@ -346,6 +395,7 @@
             </if>
         </where>
     </select>
+
     <select id="countOrder" resultType="java.util.Map">
         SELECT count(1)                           "0",
                count(IF(klt.status = 1, 1, NULL)) "1",