Răsfoiți Sursa

Merge remote-tracking branch 'origin/dev' into dev

czh 2 ani în urmă
părinte
comite
1598c69c68

+ 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);
 

+ 3 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/wallet/CashItem.java

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * @author xucaiqin
@@ -27,8 +28,8 @@ public class CashItem implements Serializable {
     private String channelLabel;
     @JSONField(name = "platform_no")
     private String platformNo;
-    private Integer money;
-    private Integer balance;
+    private BigDecimal money;
+    private BigDecimal balance;
     private String remarks;
     @JSONField(name = "create_time")
     private String createTime;

+ 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) {

+ 42 - 19
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java

@@ -1410,25 +1410,36 @@ public class WalletService {
      * @return
      */
     public PageRes<WalletDetailBase> cashOrder(MoneyPage moneyPage) {
-        WalletDetailBase chargeDetailVo = new WalletDetailBase();
-        chargeDetailVo.setOrderNo("");
-        chargeDetailVo.setChannel("");
-        chargeDetailVo.setChannelDict("");
-        chargeDetailVo.setChannelLabel("");
-        chargeDetailVo.setUid("");
-        chargeDetailVo.setUidName("");
-        chargeDetailVo.setFilter("");
-        chargeDetailVo.setFilterName("");
-        chargeDetailVo.setStatus(0);
-        chargeDetailVo.setStatusLabel("");
-        chargeDetailVo.setMoney(new BigDecimal("0"));
-        chargeDetailVo.setRemark("");
-//        chargeDetailVo.setCreateTime(LocalDateTime.now());
-        List<WalletDetailBase> objects = new ArrayList<>() {{
-            add(chargeDetailVo);
-        }};
-        PageInfo<WalletDetailBase> objectPageInfo = new PageInfo<>();
-        return new PageRes<>(objectPageInfo, objects);
+        String channel = moneyPage.getChannel();
+        ChannelEnum channelEnum = ChannelEnum.getByChannel(channel);
+        if (Objects.isNull(channelEnum)) {
+            throw new BusinessException("支付通道不存在");
+        }
+        R<CashPage> cashPageR = payCenterService.withdrawIndex(moneyPage.getUid(), channelEnum, "all", moneyPage.getPage(), moneyPage.getPageSize());
+        if (!cashPageR.getStatus()) {
+            return new PageRes<>(moneyPage.getPage(), moneyPage.getPageSize(), 0, 0, new ArrayList<>());
+        }
+        CashPage data = cashPageR.getData();
+        List<CashItem> rows = data.getRows();
+        List<WalletDetailBase> collect = rows.stream().map(a -> {
+            WalletDetailBase walletDetailBase = new WalletDetailBase();
+            walletDetailBase.setOrderNo(a.getOrderNo());
+            walletDetailBase.setChannel(a.getChannel());
+            walletDetailBase.setChannelDict(ChannelEnum.getDict(a.getChannel()));
+            walletDetailBase.setChannelLabel(ChannelEnum.getDesc(a.getChannel()));
+            walletDetailBase.setUid(a.getUid());
+            walletDetailBase.setUidName(getFirmName(a.getUid()));
+            walletDetailBase.setFilter("");
+            walletDetailBase.setFilterName("");
+            walletDetailBase.setStatus(a.getStatus());
+            walletDetailBase.setStatusLabel(a.getStatusLabel());
+            walletDetailBase.setMoney(walletDetailBase.smallMoney(a.getMoney()));
+            walletDetailBase.setRemark(a.getRemarks());
+            walletDetailBase.setCreateTime(a.getCreateTime());
+
+            return walletDetailBase;
+        }).collect(Collectors.toList());
+        return new PageRes<>(moneyPage.getPage(), moneyPage.getPageSize(), data.getTotal(), (int) (data.getTotal() / moneyPage.getPageSize() + 1), collect);
     }
 
     /**
@@ -1575,6 +1586,12 @@ public class WalletService {
         return HttpResult.ok("冻结成功");
     }
 
+    /**
+     * 预付-详细记录
+     *
+     * @param moneyPage
+     * @return
+     */
     public PageRes<PrePayDetailVo> prePayOrder(MoneyPage moneyPage) {
         PrePayDetailVo chargeDetailVo = new PrePayDetailVo();
         chargeDetailVo.setOrderNo("123");
@@ -1597,6 +1614,12 @@ public class WalletService {
         return new PageRes<>(objectPageInfo, objects);
     }
 
+    /**
+     * 预收-详细记录
+     *
+     * @param moneyPage
+     * @return
+     */
     public PageRes<PrePayDetailVo> preReceiveOrder(MoneyPage moneyPage) {
         PrePayDetailVo chargeDetailVo = new PrePayDetailVo();
         chargeDetailVo.setOrderNo("123");

+ 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",