Эх сурвалжийг харах

结算接口,物流结算待完成

xucaiqin 2 жил өмнө
parent
commit
2c7dc38815
18 өөрчлөгдсөн 1284 нэмэгдсэн , 167 устгасан
  1. 16 56
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementLogisticsController.java
  2. 50 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementOfflineController.java
  3. 15 99
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementTradeController.java
  4. 66 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementWalletController.java
  5. 20 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementLogisticsMapper.java
  6. 8 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementOfflineMapper.java
  7. 25 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementTradeMapper.java
  8. 10 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementWalletMapper.java
  9. 180 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/SettlementLogistics.java
  10. 144 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/SettlementTrade.java
  11. 183 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementLogisticsService.java
  12. 86 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementOfflineService.java
  13. 118 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementTradeService.java
  14. 96 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementWalletService.java
  15. 98 5
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml
  16. 14 0
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementOfflineMapper.xml
  17. 125 0
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml
  18. 30 0
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementWalletMapper.xml

+ 16 - 56
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementLogisticsController.java

@@ -6,14 +6,17 @@ import com.sckw.payment.model.constant.LogisticsUnitType;
 import com.sckw.payment.model.dto.SettlementLogisticsDto;
 import com.sckw.payment.model.vo.req.SettlementReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsVo;
-import com.sckw.payment.service.KwpSettlementLogisticsService;
+import com.sckw.payment.service.operate.SettlementLogisticsService;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -26,68 +29,26 @@ import java.util.stream.Collectors;
  */
 @RestController
 @Slf4j
-@RequestMapping( "/settlementLogistics")
+@RequestMapping("/settlementLogistics")
 public class SettlementLogisticsController {
-
     @Resource
-    private KwpSettlementLogisticsService kwpSettlementLogisticsService;
-
-    //   ========= 运费收款 承运方 =========
-    @PostMapping(name = "运费收款-物流订单列表", path = "pageListCollection")
-    public HttpResult pageSelectCollection(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementLogisticsService.pageSelectCollection(settlementReq));
-    }
-
-    @PostMapping(name = "运费收款-物流订单各状态列表总数", path = "getCountListCollection")
-    public HttpResult getCountListCollection(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementLogisticsService.getCountListCollection(settlementReq));
-    }
-
-    @PostMapping(name = "运费收款-根据条件导出物流订单表数据", path = "exportCollection")
-    public HttpResult exportCollection(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
-        settlementReq.setUnitType(LogisticsUnitType.CARRIER);
-        List<SettlementLogisticsDto> list;
-        list = kwpSettlementLogisticsService.selectList(settlementReq);
-        return this.export(response, list);
-    }
+    private SettlementLogisticsService settlementLogisticsService;
 
-    @GetMapping(name = "运费收款-物流订单详情", path = "detailCollection")
-    public HttpResult detailCollection(@RequestParam("id") Long id) {
-        return HttpResult.ok(kwpSettlementLogisticsService.detailCollection(id));
+    @PostMapping("list")
+    public HttpResult list(@RequestBody @Valid SettlementReq settlementReq) {
+        return HttpResult.ok(settlementLogisticsService.list(settlementReq));
     }
 
-
-    //   ========= 运费付款 托运方 =========
-    @PostMapping(name = "运费付款-物流订单列表", path = "pageListPayment")
-    public HttpResult pageSelectPayment(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementLogisticsService.pageSelectPayment(settlementReq));
-    }
-
-    @PostMapping(name = "运费付款-物流订单各状态列表总数", path = "getCountListPayment")
-    public HttpResult getCountListPayment(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementLogisticsService.getCountListPayment(settlementReq));
+    @PostMapping("count")
+    public HttpResult count(@RequestBody @Valid SettlementReq settlementReq) {
+        return HttpResult.ok(settlementLogisticsService.count(settlementReq));
     }
 
-    @PostMapping(name = "运费付款-根据条件导出物流订单表数据", path = "exportPayment")
-    public HttpResult exportPayment(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
+    @PostMapping("export")
+    public HttpResult export(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
         settlementReq.setUnitType(LogisticsUnitType.SHIPPER);
         List<SettlementLogisticsDto> list;
-        list = kwpSettlementLogisticsService.selectList(settlementReq);
-        return this.export(response, list);
-    }
-
-    @GetMapping(name = "物流订单详情", path = "detailPayment")
-    public HttpResult detailPayment(@RequestParam("id") Long id) {
-        return HttpResult.ok(kwpSettlementLogisticsService.detailPayment(id));
-    }
-
-    /**
-     * 导出
-     *
-     * @author Aick Spt
-     * @date 2023-07-24 15:49
-     */
-    private HttpResult export(HttpServletResponse response, List<SettlementLogisticsDto> list) {
+        list = settlementLogisticsService.selectList(settlementReq);
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }
@@ -100,5 +61,4 @@ public class SettlementLogisticsController {
         return null;
     }
 
-
 }

+ 50 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementOfflineController.java

@@ -0,0 +1,50 @@
+package com.sckw.payment.controller.operate;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.payment.model.constant.SettlementOrderTypeEnum;
+import com.sckw.payment.model.vo.req.SettlementOfflineReq;
+import com.sckw.payment.service.operate.SettlementOfflineService;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 结算-线下记录(交易订单结算/物流订单结算)
+ *
+ * @author xucaiqin
+ * @date 2023-07-20 11:42
+ */
+@RestController
+@RequestMapping("/settlementOffline")
+public class SettlementOfflineController {
+
+    @Resource
+    private SettlementOfflineService settlementOfflineService;
+
+    /**
+     * 贸易-线下付款记录
+     *
+     * @param settlementOfflineReq
+     * @return
+     */
+    @GetMapping("tradeList")
+    public HttpResult list(@Valid SettlementOfflineReq settlementOfflineReq) {
+        settlementOfflineReq.setOrderType(SettlementOrderTypeEnum.TRADE.getStatus());
+        return HttpResult.ok(settlementOfflineService.list(settlementOfflineReq));
+    }
+
+    /**
+     * 物流线下结算记录
+     *
+     * @param settlementOfflineReq
+     * @return
+     */
+    @GetMapping("logisticsList")
+    public HttpResult logisticsList(@Valid SettlementOfflineReq settlementOfflineReq) {
+        settlementOfflineReq.setOrderType(SettlementOrderTypeEnum.LOGISTICS.getStatus());
+        return HttpResult.ok(settlementOfflineService.list(settlementOfflineReq));
+    }
+
+}

+ 15 - 99
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementTradeController.java

@@ -1,14 +1,13 @@
 package com.sckw.payment.controller.operate;
 
 import com.sckw.core.model.page.PageRes;
-import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.payment.model.constant.TradeUnitType;
-import com.sckw.payment.model.dto.ISettlement;
+import com.sckw.payment.model.vo.SettlementTrade;
 import com.sckw.payment.model.vo.req.SettlementTradeReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsVo;
-import com.sckw.payment.service.KwpSettlementTradeService;
+import com.sckw.payment.service.operate.SettlementTradeService;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
@@ -32,9 +31,7 @@ import java.util.stream.Collectors;
 public class SettlementTradeController {
 
     @Resource
-    private KwpSettlementTradeService kwpSettlementTradeService;
-
-    //   ========= 收款 销售 =========
+    private SettlementTradeService settlementTradeService;
 
     /**
      * 销售分页列表
@@ -42,12 +39,10 @@ public class SettlementTradeController {
      * @param settlementReq
      * @return
      */
-    @PostMapping(name = "收款-销售结算单列表", path = "pageSellList")
-    public HttpResult pageListCollection(@RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.setUnitType(TradeUnitType.PURCHASE);
-        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
+    @PostMapping( "list")
+    public HttpResult list(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
-        return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
+        return HttpResult.ok(settlementTradeService.list(settlementReq));
     }
 
     /**
@@ -56,13 +51,10 @@ public class SettlementTradeController {
      * @param settlementReq
      * @return
      */
-    @PostMapping(name = "收款-表头统计数量", path = "getSellCount")
+    @PostMapping( "count")
     public HttpResult getCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.setUnitType(TradeUnitType.PURCHASE);
-        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
-        settlementReq.setEntId(LoginUserHolder.getEntId());
         settlementReq.check();
-        return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
+        return HttpResult.ok(settlementTradeService.getCount(settlementReq));
     }
 
     /**
@@ -71,98 +63,24 @@ public class SettlementTradeController {
      * @param settlementReq
      * @return
      */
-    @PostMapping(name = "收款-表尾金额结算数据", path = "getSellSum")
-    public HttpResult getSellSum(@RequestBody @Valid SettlementTradeReq settlementReq) {
+    @PostMapping(name = "收款-表尾金额结算数据", path = "sum")
+    public HttpResult sum(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
-        settlementReq.setUnitType(TradeUnitType.PURCHASE);
-        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
-        settlementReq.setEntId(LoginUserHolder.getEntId());
-        return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
+        return HttpResult.ok(settlementTradeService.sumMoney(settlementReq));
     }
 
-    @PostMapping(name = "收款-根据ids导出销售结算单列表", path = "exportCollection")
+    @PostMapping("export")
     public HttpResult exportCollection(HttpServletResponse response, @RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
-        List<ISettlement> list;
+        List<SettlementTrade> list = null;
         settlementReq.setUnitType(TradeUnitType.PURCHASE);
         settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
         if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
-            PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
-            list = pageResult.getList();
-        } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(), TradeUnitType.PURCHASE);
-        }
-        return this.export(response, list);
-    }
-
-
-    //   ========= 付款 采购 =========
-
-    /**
-     * 采购分页列表
-     *
-     * @param settlementReq
-     * @return
-     */
-    @PostMapping(name = "付款-采购结算单列表", path = "pagePurchaseList")
-    public HttpResult pageListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.check();
-        settlementReq.setUnitType(TradeUnitType.SELL);
-        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
-        return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
-    }
-
-    /**
-     * 待结算、部分结算、全部结算
-     *
-     * @param settlementReq
-     * @return
-     */
-    @PostMapping(name = "收款-表头统计数量", path = "getPurchaseCount")
-    public HttpResult getPurchaseCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.check();
-        settlementReq.setUnitType(TradeUnitType.SELL);
-        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
-        settlementReq.setEntId(LoginUserHolder.getEntId());
-        return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
-    }
-
-    /**
-     * 表尾金额结算数据
-     *
-     * @param settlementReq
-     * @return
-     */
-    @PostMapping(name = "收款-物流结算订单列表头部汇总数量", path = "getPurchaseSum")
-    public HttpResult getCountListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.check();
-        settlementReq.setUnitType(TradeUnitType.SELL);
-        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
-        settlementReq.setEntId(LoginUserHolder.getEntId());
-        return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
-    }
-
-    @PostMapping(name = "付款-根据ids导出采购结算单列表", path = "exportPayment")
-    public HttpResult exportPayment(HttpServletResponse response, @RequestBody @Valid SettlementTradeReq settlementReq) {
-        settlementReq.check();
-        List<ISettlement> list;
-        settlementReq.setUnitType(TradeUnitType.SELL);
-        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
-        if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
-            PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
+            PageRes<SettlementTrade> pageResult = settlementTradeService.list(settlementReq);
             list = pageResult.getList();
         } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(), TradeUnitType.SELL);
+//            list = settlementTradeService.selectList(settlementReq.getIdList(), TradeUnitType.PURCHASE);
         }
-        return this.export(response, list);
-    }
-    /**
-     * 导出
-     *
-     * @author Aick Spt
-     * @date 2023-07-24 15:49
-     */
-    private HttpResult export(HttpServletResponse response, List<ISettlement> list) {
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }
@@ -174,6 +92,4 @@ public class SettlementTradeController {
         ExcelUtil.downData(response, SettlementLogisticsVo.class, collect);
         return null;
     }
-
-
 }

+ 66 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementWalletController.java

@@ -0,0 +1,66 @@
+package com.sckw.payment.controller.operate;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.payment.model.constant.SettlementOrderTypeEnum;
+import com.sckw.payment.model.constant.SettlementWalletPayTypeEnum;
+import com.sckw.payment.model.vo.req.SettlementWalletReq;
+import com.sckw.payment.service.operate.SettlementWalletService;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 结算-电子钱包结算记录(交易订单结算/物流订单结算)
+ *
+ * @author xucaiqin
+ * @date 2023-07-20 14:42
+ */
+@Validated
+@RestController
+@RequestMapping("/settlementWallet")
+public class SettlementWalletController {
+    @Resource
+    private SettlementWalletService settlementWalletService;
+
+    /**
+     * 货到付款-物流
+     *
+     * @param settlementWalletReq
+     * @return
+     */
+    @PostMapping(name = "物流-电子钱包付款(货到付款)结算记录-列表", path = "logisticsList")
+    public HttpResult logisticsList(@RequestBody @Valid SettlementWalletReq settlementWalletReq) {
+        settlementWalletReq.setPayType(SettlementWalletPayTypeEnum.CASH_ON_DELIVERY.getStatus());
+        settlementWalletReq.setOrderType(SettlementOrderTypeEnum.LOGISTICS.getStatus());
+        return HttpResult.ok(settlementWalletService.pageList(settlementWalletReq));
+    }
+
+    /**
+     * 货到付款-贸易
+     *
+     * @param settlementWalletReq
+     * @return
+     */
+    @GetMapping(name = "销售-付款记录列表(采购电子钱包结算记录)", path = "tradeList")
+    public HttpResult tradeList(@Valid SettlementWalletReq settlementWalletReq) {
+        settlementWalletReq.setPayType(SettlementWalletPayTypeEnum.CASH_ON_DELIVERY.getStatus());
+        settlementWalletReq.setOrderType(SettlementOrderTypeEnum.TRADE.getStatus());
+        return HttpResult.ok(settlementWalletService.pageList(settlementWalletReq));
+    }
+
+    /**
+     * 预付款-贸易
+     * 没有预付款-物流这种情况
+     *
+     * @param settlementWalletReq
+     * @return
+     */
+    @GetMapping(name = "销售-收款记录列表-预付款(电子钱包)", path = "tradePreList")
+    public HttpResult tradePreList(@Valid SettlementWalletReq settlementWalletReq) {
+        settlementWalletReq.setPayType(SettlementWalletPayTypeEnum.ADVANCE_PAYMENT.getStatus());
+        settlementWalletReq.setOrderType(SettlementOrderTypeEnum.TRADE.getStatus());
+        return HttpResult.ok(settlementWalletService.pageList(settlementWalletReq));
+    }
+
+}

+ 20 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementLogisticsMapper.java

@@ -6,6 +6,7 @@ import com.sckw.payment.model.KwpSettlementRecord;
 import com.sckw.payment.model.dto.LedgerUnitDto;
 import com.sckw.payment.model.dto.MoneyType;
 import com.sckw.payment.model.dto.SettlementLogisticsDto;
+import com.sckw.payment.model.vo.SettlementLogistics;
 import com.sckw.payment.model.vo.req.SettlementReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsSumVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -29,6 +30,14 @@ public interface KwpSettlementLogisticsMapper extends BaseMapper<KwpSettlementLo
      */
     List<SettlementLogisticsDto> pageSelect(@Param("settlementReq") SettlementReq settlementReq);
 
+    /**
+     * 运营端查询物流结算列表
+     *
+     * @param settlementReq
+     * @return
+     */
+    List<SettlementLogistics> list(@Param("settlementReq") SettlementReq settlementReq);
+
     /**
      * 运费-物流订单各状态列表总数
      *
@@ -45,6 +54,14 @@ public interface KwpSettlementLogisticsMapper extends BaseMapper<KwpSettlementLo
      */
     SettlementLogisticsSumVo selectSum(@Param("settlementReq") SettlementReq settlementReq);
 
+    /**
+     * 运营端接口
+     *
+     * @param settlementReq
+     * @return
+     */
+    SettlementLogisticsSumVo sum(@Param("settlementReq") SettlementReq settlementReq);
+
     /**
      * 运费-物流订单详情
      *
@@ -71,10 +88,11 @@ public interface KwpSettlementLogisticsMapper extends BaseMapper<KwpSettlementLo
      * @return
      */
     List<String> selectJoin(@Param("entId") Long entId, @Param("entTarget") Long entTarget);
+
     /**
      * @param entId    顶级企业id
-     * @param cur       当月/周
-     * @param pre       上月/周
+     * @param cur      当月/周
+     * @param pre      上月/周
      * @param unitType 企业类型
      */
     List<MoneyType> sumMoneyType(@Param("entId") Long entId, @Param("cur") List<LocalDateTime> cur, @Param("pre") List<LocalDateTime> pre, @Param("unitType") Integer unitType);

+ 8 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementOfflineMapper.java

@@ -10,7 +10,6 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 /**
- *
  * @author Aick Spt
  * @date 2023-07-25 10:44
  */
@@ -23,4 +22,12 @@ public interface KwpSettlementOfflineMapper extends BaseMapper<KwpSettlementOffl
     Integer confirmLogisticsCollection(@Param("id") Long id, @Param("price") Float price);
 
     List<SettlementOfflineDto> pageList(@Param("offlineReq") SettlementOfflineReq settlementOfflineReq);
+
+    /**
+     * 运营端查询
+     *
+     * @param settlementOfflineReq
+     * @return
+     */
+    List<SettlementOfflineDto> list(@Param("offlineReq") SettlementOfflineReq settlementOfflineReq);
 }

+ 25 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementTradeMapper.java

@@ -6,6 +6,7 @@ import com.sckw.payment.model.KwpSettlementTrade;
 import com.sckw.payment.model.dto.LedgerUnitDto;
 import com.sckw.payment.model.dto.MoneyType;
 import com.sckw.payment.model.dto.SettlementTradeDto;
+import com.sckw.payment.model.vo.SettlementTrade;
 import com.sckw.payment.model.vo.req.SettlementTradeReq;
 import com.sckw.payment.model.vo.res.SettlementSumVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -24,10 +25,32 @@ import java.util.Map;
 public interface KwpSettlementTradeMapper extends BaseMapper<KwpSettlementTrade> {
     List<SettlementTradeDto> pageSelect(@Param("settlementReq") SettlementTradeReq settlementReq);
 
+    /**
+     * 运营端列表查询
+     *
+     * @param settlementReq
+     * @return
+     */
+    List<SettlementTrade> list(@Param("settlementReq") SettlementTradeReq settlementReq);
+
     SettlementSumVo sumMoney(@Param("settlementReq") SettlementTradeReq settlementReq);
 
+    /**
+     * 运营端统计
+     * @param settlementReq
+     * @return
+     */
+    SettlementSumVo sumMoney2(@Param("settlementReq") SettlementTradeReq settlementReq);
+
     Map<String, Long> countOrder(@Param("settlementReq") SettlementTradeReq settlementReq);
 
+    /**
+     * 运营端统计结算单数量
+     * @param settlementReq
+     * @return
+     */
+    Map<String, Long> count(@Param("settlementReq") SettlementTradeReq settlementReq);
+
     List<SettlementTradeDto> selectByIds(@Param("ids") List<Long> ids, @Param("unitType") Integer unitType);
 
     SettlementTradeDto getById(@Param("id") Long id, @Param("unitType") Integer unitType);
@@ -47,8 +70,8 @@ public interface KwpSettlementTradeMapper extends BaseMapper<KwpSettlementTrade>
 
     /**
      * @param entId    顶级企业id
-     * @param cur       当月/周
-     * @param pre       上月/周
+     * @param cur      当月/周
+     * @param pre      上月/周
      * @param unitType 企业类型
      */
     List<MoneyType> sumMoneyType(@Param("entId") Long entId, @Param("cur") List<LocalDateTime> cur, @Param("pre") List<LocalDateTime> pre, @Param("unitType") Integer unitType);

+ 10 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementWalletMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
  */
 
 @Mapper
-public interface KwpSettlementWalletMapper  extends BaseMapper<KwpSettlementWallet> {
+public interface KwpSettlementWalletMapper extends BaseMapper<KwpSettlementWallet> {
 
     /**
      * 运费付款-物流订单列表
@@ -29,5 +29,13 @@ public interface KwpSettlementWalletMapper  extends BaseMapper<KwpSettlementWall
 
     Integer confirmLogisticsPayment(@Param("id") Long id, @Param("price") Float price);
 
-    List<SettlementWalletDto> pageList(@Param("walletReq")SettlementWalletReq walletReq);
+    List<SettlementWalletDto> pageList(@Param("walletReq") SettlementWalletReq walletReq);
+
+    /**
+     * 运营端查询钱包结算记录
+     *
+     * @param walletReq
+     * @return
+     */
+    List<SettlementWalletDto> list(@Param("walletReq") SettlementWalletReq walletReq);
 }

+ 180 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/SettlementLogistics.java

@@ -0,0 +1,180 @@
+package com.sckw.payment.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.payment.model.dto.ISettlement;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author Aick Spt
+ * @date 2023-07-18 17:33
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class SettlementLogistics implements ISettlement {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 物流订单对账id
+     */
+    @JsonProperty("lLedgerId")
+    private Long lLedgerId;
+
+    /**
+     * 结算单编号
+     */
+    private String slOrderNo;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 对账金额
+     */
+    private BigDecimal totalPrice;
+
+    /**
+     * 已收账款
+     */
+    private BigDecimal actualPrice;
+
+    /**
+     * 预计收款日期
+     */
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date receiptTime;
+    /**
+     * 生成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime generateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 对账托运方财务联系人
+     */
+    private String auditUser;
+
+    /**
+     * 对账托运方财务联系人电话
+     */
+    private String auditPhone;
+
+    /**
+     * 对账承运方财务联系人
+     */
+    private String successUser;
+
+    /**
+     * 对账承运方财务联系人电话
+     */
+    private String successPhone;
+
+    /**
+     * 状态(1待结算2部分结算3全部结算)
+     */
+    private Integer status;
+
+    private String statusLabel;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建人名称
+     */
+    private String createByLabel;
+
+    /**
+     * 创建时间
+     */
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人名称
+     */
+    private String updateByLabel;
+
+    /**
+     * 更新时间
+     */
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+
+    /**
+     * 交易方式
+     */
+    private String trading;
+
+    /**
+     * 交易方式文字
+     */
+    private String tradingLabel;
+
+    /**
+     * 对账单编号
+     */
+    @JsonProperty("lLedgerNo")
+    private String lLedgerNo;
+
+    /**
+     * 托运方
+     */
+    private String shipperFirmName;
+    /**
+     * 承运方
+     */
+    private String carrierFirmName;
+
+
+    /**
+     * 实际应收还款
+     */
+    private BigDecimal settlePrice;
+
+    /**
+     * 剩余待还款
+     */
+    private BigDecimal waitPrice;
+
+    /**
+     * 附件
+     */
+    private String url;
+
+}

+ 144 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/SettlementTrade.java

@@ -0,0 +1,144 @@
+package com.sckw.payment.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.payment.model.dto.ISettlement;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 运营端 贸易结算
+ *
+ * @author 徐才钦
+ * @date 2023-07-20 12:26
+ */
+@Getter
+@Setter
+public class SettlementTrade implements ISettlement {
+    /**
+     * 对账单id主键
+     */
+    private Long ledgerId;
+    /**
+     * 交易订单对账id
+     */
+    @JsonProperty("tLedgerId")
+    private Long tLedgerId;
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 结算单编号
+     */
+    private String stOrderNo;
+    @JsonProperty("tLedgerNo")
+    private String tLedgerNo;
+
+    /**
+     * 结算单名称
+     */
+    private String name;
+
+    /**
+     * 总应收/元
+     */
+    private BigDecimal totalPrice;
+
+    /**
+     * 已收款/元
+     */
+    private BigDecimal actualPrice;
+    /**
+     * 带回款金额(扩展的计算字段)
+     */
+    private BigDecimal waitPrice;
+    private String trading;
+    private String tradingLabel;
+
+    /**
+     * 预计收款日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date receiptTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime generateTime;
+
+    /**
+     * 对账采购财务联系人名称
+     */
+    private String auditUser;
+
+    /**
+     * 对账采购财务联系人电话
+     */
+    private String auditPhone;
+
+    /**
+     * 对账销售财务联系人名称
+     */
+    private String successUser;
+
+    /**
+     * 对账销售财务联系人电话
+     */
+    private String successPhone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态(待回款、部分回款、全部回款、回退)
+     */
+    private Integer status;
+    private String statusLabel;
+    //销售企业
+    private String sellFirmName;
+    private String purchaseFirmName;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+    private String createByLabel;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+    private String updateByLabel;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+    //百分比
+    private String percentage;
+
+
+}

+ 183 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementLogisticsService.java

@@ -0,0 +1,183 @@
+package com.sckw.payment.service.operate;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.vo.TableTop;
+import com.sckw.core.utils.StringTimeUtil;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.payment.dao.KwpSettlementLogisticsMapper;
+import com.sckw.payment.model.constant.LogisticsUnitType;
+import com.sckw.payment.model.constant.SettlementEnum;
+import com.sckw.payment.model.dto.SettlementLogisticsDto;
+import com.sckw.payment.model.vo.SettlementLogistics;
+import com.sckw.payment.model.vo.req.SettlementReq;
+import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
+import com.sckw.payment.model.vo.res.SettlementLogisticsSumVo;
+import com.sckw.payment.utils.CommonValidator;
+import com.sckw.payment.utils.PageMoreRes;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+
+@RequiredArgsConstructor
+@Service
+@Slf4j
+public class SettlementLogisticsService {
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+    private final KwpSettlementLogisticsMapper settlementLogisticsMapper;
+
+
+    public List<TableTop> count(SettlementReq settlementReq) {
+        settlementReq.setUnitType(LogisticsUnitType.SHIPPER);
+        settlementReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
+        validSettlementReq(settlementReq);
+        SettlementLogisticsStatusCountVo settlementLogisticsStatusCountVos = new SettlementLogisticsStatusCountVo();
+
+        //加上当前登录者顶级企业id用于过滤数据
+        settlementReq.setEntId(LoginUserHolder.getEntId());
+
+        List<TableTop> tableTops = new ArrayList<>();
+        TableTop tableTop = new TableTop();
+        //总
+        settlementReq.setStatus(SettlementEnum.ALL.getStatus());
+        settlementLogisticsStatusCountVos.setAllCount(settlementLogisticsMapper.getCountList(settlementReq));
+        tableTop.setName("全部").setValue(settlementReq.getStatus()).setTotal(Math.toIntExact(settlementLogisticsStatusCountVos.getAllCount()));
+        tableTops.add(tableTop);
+
+        //待结算
+        settlementReq.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());
+//        settlementLogisticsStatusCountVos.setWaitingPaymentCount(settlementLogisticsMapper.getCountList(settlementReq));
+        Long a = settlementLogisticsMapper.getCountList(settlementReq);
+        settlementLogisticsStatusCountVos.setWaitingPaymentCount(a);
+        TableTop tableTop1 = new TableTop();
+        tableTop1.setName("待结算").setValue(SettlementEnum.WAITING_PAYMENT.getStatus()).setTotal(Math.toIntExact(a));
+        tableTops.add(tableTop1);
+
+        //部分结算
+        settlementReq.setStatus(SettlementEnum.PARTIAL_PAYMENT.getStatus());
+        settlementLogisticsStatusCountVos.setPartialPaymentCount(settlementLogisticsMapper.getCountList(settlementReq));
+        TableTop tableTop2 = new TableTop();
+        tableTop2.setName("部分结算").setValue(SettlementEnum.PARTIAL_PAYMENT.getStatus()).setTotal(Math.toIntExact(settlementLogisticsStatusCountVos.getPartialPaymentCount()));
+        tableTops.add(tableTop2);
+
+        //全部结算
+        settlementReq.setStatus(SettlementEnum.ALL_PAYMENT.getStatus());
+        settlementLogisticsStatusCountVos.setAllPaymentCount(settlementLogisticsMapper.getCountList(settlementReq));
+        TableTop tableTop3 = new TableTop();
+        tableTop3.setName("全部结算").setValue(SettlementEnum.ALL_PAYMENT.getStatus()).setTotal(Math.toIntExact(settlementLogisticsStatusCountVos.getAllPaymentCount()));
+        tableTops.add(tableTop3);
+
+        return tableTops;
+    }
+
+    /**
+     * 列表分页查询
+     *
+     * @param settlementReq
+     * @return
+     */
+    public PageMoreRes<SettlementLogistics> list(SettlementReq settlementReq) {
+        settlementReq.setUnitType(LogisticsUnitType.SHIPPER);
+        settlementReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
+        //验证相关参数
+        validSettlementReq(settlementReq);
+        //添加默认分页数据
+        PageHelper.startPage(settlementReq.getPage(), settlementReq.getPageSize());
+        //查询分页数据
+        List<SettlementLogistics> kwpLedgerLogisticsList = settlementLogisticsMapper.list(settlementReq);
+        //查询同样条件下的合计
+        SettlementLogisticsSumVo settlementLogisticsSum = settlementLogisticsMapper.sum(settlementReq);
+
+        // 对查询结果进行处理,转换 status 等状态值为对应中文描述
+        return new PageMoreRes<>(getSettlementLogisticsDtoPageRes(kwpLedgerLogisticsList), settlementLogisticsSum);
+    }
+
+
+    public List<SettlementLogisticsDto> selectList(SettlementReq settlementReq) {
+        validSettlementReq(settlementReq);
+        return settlementLogisticsMapper.selectLogisticsList(settlementReq, settlementReq.getIdList());
+    }
+
+
+    private void validSettlementReq(SettlementReq settlementReq) {
+        //判断时间是否成对
+        CommonValidator.isValidCoexisting(settlementReq.getStartCreateTime(), settlementReq.getEndCreateTime(), "");
+        CommonValidator.isValidCoexisting(settlementReq.getStartReceiptTime(), settlementReq.getEndReceiptTime(), "预计付款开始和结束时间");
+        //补全时间信息
+        if (StringUtils.isNotBlank(settlementReq.getStartCreateTime())) {
+            settlementReq.setStartCreateTime(StringTimeUtil.fillStart(settlementReq.getStartCreateTime()));
+        }
+        if (StringUtils.isNotBlank(settlementReq.getEndCreateTime())) {
+            settlementReq.setEndCreateTime(StringTimeUtil.fillEnd(settlementReq.getEndCreateTime()));
+        }
+        if (StringUtils.isNotBlank(settlementReq.getStartReceiptTime())) {
+            settlementReq.setStartCreateTime(StringTimeUtil.fillStart(settlementReq.getStartReceiptTime()));
+        }
+        if (StringUtils.isNotBlank(settlementReq.getEndReceiptTime())) {
+            settlementReq.setEndCreateTime(StringTimeUtil.fillEnd(settlementReq.getEndReceiptTime()));
+        }
+    }
+
+    private PageInfo<SettlementLogistics> getSettlementLogisticsDtoPageRes(List<SettlementLogistics> kwpLedgerLogisticsList) {
+        Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+
+        for (SettlementLogistics settlementLogisticsDto : kwpLedgerLogisticsList) {
+            SysDictResDto sysDictResDto = dictResDtoMap.get(settlementLogisticsDto.getTrading());
+            if (Objects.nonNull(sysDictResDto)) {
+                settlementLogisticsDto.setTradingLabel(sysDictResDto.getLabel());
+            }
+            //更改创建、更新人名称及字段
+            settlementLogisticsDto.setStatusLabel(SettlementEnum.getStatusDesc(settlementLogisticsDto.getStatus()));
+            if (settlementLogisticsDto.getTotalPrice() != null) {
+                if (settlementLogisticsDto.getActualPrice() != null) {
+                    settlementLogisticsDto.setWaitPrice(settlementLogisticsDto.getTotalPrice().subtract(settlementLogisticsDto.getActualPrice()));
+                } else {
+                    settlementLogisticsDto.setWaitPrice(settlementLogisticsDto.getTotalPrice());
+                }
+            } else {
+                settlementLogisticsDto.setWaitPrice(new BigDecimal(0));
+            }
+            //"创建人名称"
+            settlementLogisticsDto.setCreateByLabel("创建人名称");
+            //"更新人名称"
+            settlementLogisticsDto.setUpdateByLabel("更新人名称");
+
+            Long createBy = settlementLogisticsDto.getCreateBy();
+            Long updateBy = settlementLogisticsDto.getUpdateBy();
+            UserCacheResDto userCacheResDto = map.get(createBy);
+            if (Objects.isNull(userCacheResDto)) {
+                //通过缓存拿对应数据
+                userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
+                map.put(createBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                //写入对应数据
+                settlementLogisticsDto.setCreateByLabel(userCacheResDto.getName());
+            }
+            userCacheResDto = map.get(updateBy);
+            if (Objects.isNull(userCacheResDto)) {
+                //通过缓存拿对应数据
+                userCacheResDto = remoteSystemService.queryUserCacheById(updateBy);
+                map.put(updateBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                //写入对应数据
+                settlementLogisticsDto.setUpdateByLabel(userCacheResDto.getName());
+            }
+        }
+        return new PageInfo<>(kwpLedgerLogisticsList);
+    }
+}

+ 86 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementOfflineService.java

@@ -0,0 +1,86 @@
+package com.sckw.payment.service.operate;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.page.PageRes;
+import com.sckw.payment.dao.KwpSettlementOfflineMapper;
+import com.sckw.payment.model.dto.SettlementOfflineDto;
+import com.sckw.payment.model.vo.req.SettlementOfflineReq;
+import com.sckw.payment.model.vo.res.SettlementOfflineVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @author xucaiqin
+ * @date 2023-07-10 16:38:36
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class SettlementOfflineService {
+    private final KwpSettlementOfflineMapper settlementOfflineMapper;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    /**
+     * 分页查询线下结算记录
+     *
+     * @param settlementOfflineReq
+     * @return
+     */
+    public PageRes<SettlementOfflineVo> list(SettlementOfflineReq settlementOfflineReq) {
+        PageHelper.startPage(settlementOfflineReq.getPage(), settlementOfflineReq.getPageSize());
+        List<SettlementOfflineDto> settlementOfflineDto = settlementOfflineMapper.list(settlementOfflineReq);
+        if (CollectionUtils.isEmpty(settlementOfflineDto)) {
+            return new PageRes<>();
+        }
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        DecimalFormat df = new DecimalFormat("0.00");
+        PageInfo<SettlementOfflineDto> pageInfo = new PageInfo<>(settlementOfflineDto);
+        //指定返回值
+        List<SettlementOfflineVo> collect = settlementOfflineDto.stream().map(a -> {
+            SettlementOfflineVo settlementOfflineVo = new SettlementOfflineVo();
+            BeanUtils.copyProperties(a, settlementOfflineVo);
+
+            Long createBy = a.getCreateBy();
+            Long updateBy = a.getUpdateBy();
+            //创建人赋值
+            UserCacheResDto userCacheResDto = map.get(createBy);
+            if (Objects.isNull(userCacheResDto)) {
+                userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
+                map.put(createBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                settlementOfflineVo.setCreateByText(userCacheResDto.getName());
+            }
+            userCacheResDto = map.get(updateBy);
+            if (Objects.isNull(userCacheResDto)) {
+                userCacheResDto = remoteSystemService.queryUserCacheById(updateBy);
+                map.put(updateBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                settlementOfflineVo.setUpdateByText(userCacheResDto.getName());
+            }
+            settlementOfflineVo.setPayPrice(df.format(Objects.isNull(a.getPayPrice()) ? new BigDecimal("0.0") : a.getPayPrice()));
+            settlementOfflineVo.setTopayPrice(df.format(Objects.isNull(a.getTopayPrice()) ? new BigDecimal("0.0") : a.getTopayPrice()));
+            return settlementOfflineVo;
+        }).collect(Collectors.toList());
+        return PageRes.build(pageInfo, collect);
+    }
+
+}

+ 118 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementTradeService.java

@@ -0,0 +1,118 @@
+package com.sckw.payment.service.operate;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.TableTop;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.payment.dao.KwpSettlementTradeMapper;
+import com.sckw.payment.model.constant.SettlementEnum;
+import com.sckw.payment.model.constant.TradeUnitType;
+import com.sckw.payment.model.dto.ISettlement;
+import com.sckw.payment.model.dto.SettlementPurchaseDto;
+import com.sckw.payment.model.dto.SettlementSellDto;
+import com.sckw.payment.model.dto.SettlementTradeDto;
+import com.sckw.payment.model.vo.SettlementTrade;
+import com.sckw.payment.model.vo.req.SettlementTradeReq;
+import com.sckw.payment.model.vo.res.SettlementSumVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 贸易结算
+ *
+ * @author xucaiqin
+ * @date 2023-07-10 16:38:36
+ */
+@Service
+@RequiredArgsConstructor
+public class SettlementTradeService {
+    private final KwpSettlementTradeMapper settlementTradeMapper;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    /**
+     * 字典转换
+     *
+     * @param list 结算单列表数据
+     */
+    private void changeDict(List<? extends ISettlement> list) {
+        //字典等数据转换
+        Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
+        for (ISettlement iSettlement : list) {
+            String trading = iSettlement.getTrading();
+            SysDictResDto sysDictResDto = dictResDtoMap.get(trading);
+            if (Objects.nonNull(sysDictResDto)) {
+                iSettlement.setTradingLabel(sysDictResDto.getLabel());
+            }
+            iSettlement.setStatusLabel(SettlementEnum.getStatusDesc(iSettlement.getStatus()));
+        }
+    }
+
+    /**
+     * 分页查询结算单数据
+     *
+     * @param settlementReq 结算单查询参数
+     * @return
+     */
+    public PageRes<SettlementTrade> list(SettlementTradeReq settlementReq) {
+        PageHelper.startPage(settlementReq.getPage(), settlementReq.getPageSize());
+        List<SettlementTrade> kwpLedgerLogisticsList = settlementTradeMapper.list(settlementReq);
+        PageInfo<SettlementTrade> settlementPageInfo = new PageInfo<>(kwpLedgerLogisticsList);
+        if (!CollectionUtils.isEmpty(kwpLedgerLogisticsList)) {
+            //根据企业类型转换对应的数据
+            for (SettlementTrade settlementTradeDto : kwpLedgerLogisticsList) {
+                UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(settlementTradeDto.getUpdateBy());
+                settlementTradeDto.setUpdateByLabel(Objects.nonNull(userCacheResDto) ? userCacheResDto.getName() : "");
+                UserCacheResDto userCacheResDto2 = remoteSystemService.queryUserCacheById(settlementTradeDto.getCreateBy());
+                settlementTradeDto.setUpdateByLabel(Objects.nonNull(userCacheResDto2) ? userCacheResDto2.getName() : "");
+            }
+            changeDict(kwpLedgerLogisticsList);
+            return new PageRes<>(settlementPageInfo, kwpLedgerLogisticsList);
+        }
+        return new PageRes<>(settlementPageInfo);
+    }
+
+    /**
+     * 统计列表的表头数据
+     *
+     * @param settlementReq 结算单查询参数
+     * @return
+     */
+    public List<TableTop> getCount(SettlementTradeReq settlementReq) {
+        Map<String, Long> stringIntegerMap = settlementTradeMapper.count(settlementReq);
+        List<TableTop> res = new ArrayList<>(4);
+        for (SettlementEnum value : SettlementEnum.values()) {
+            TableTop tableTop = new TableTop();
+            tableTop.setName(value.getDesc());
+            tableTop.setValue(value.getStatus());
+            tableTop.setTotal(Math.toIntExact(stringIntegerMap.get(value.getLabel())));
+            res.add(tableTop);
+        }
+        return res;
+    }
+
+    /**
+     * 表尾统计数据
+     *
+     * @param settlementReq 结算单查询参数
+     * @return
+     */
+    public SettlementSumVo sumMoney(SettlementTradeReq settlementReq) {
+        return settlementTradeMapper.sumMoney2(settlementReq);
+    }
+
+
+
+}

+ 96 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementWalletService.java

@@ -0,0 +1,96 @@
+package com.sckw.payment.service.operate;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.page.PageRes;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.payment.dao.KwpSettlementLogisticsTrackMapper;
+import com.sckw.payment.dao.KwpSettlementWalletMapper;
+import com.sckw.payment.model.dto.SettlementWalletDto;
+import com.sckw.payment.model.vo.req.SettlementWalletReq;
+import com.sckw.payment.model.vo.res.SettlementWalletVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import com.sckw.transport.api.dubbo.TransportDubboService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @author Aick Spt
+ * @date 2023-07-20 14:55
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class SettlementWalletService {
+    private final KwpSettlementWalletMapper settlementWalletMapper;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private TradeOrderInfoService tradeOrderInfoService;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private TransportDubboService transportDubboService;
+    private final KwpSettlementLogisticsTrackMapper kwpSettlementLogisticsTrackMapper;
+
+
+    /**
+     * 预付款、货到付款记录
+     * 前端接口分开
+     *
+     * @param settlementWalletReq 请求参数
+     * @return
+     */
+    public PageRes<SettlementWalletVo> pageList(SettlementWalletReq settlementWalletReq) {
+        PageHelper.startPage(settlementWalletReq.getPage(), settlementWalletReq.getPageSize());
+        List<SettlementWalletDto> settlementWalletDto = settlementWalletMapper.list(settlementWalletReq);
+
+        if (CollectionUtils.isEmpty(settlementWalletDto)) {
+            return new PageRes<>();
+        }
+        //增加对应创建人和更新人名称
+        Map<Long, UserCacheResDto> map = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        PageInfo<SettlementWalletDto> pageInfo = new PageInfo<>(settlementWalletDto);
+        DecimalFormat df = new DecimalFormat("0.00");
+        //指定返回值
+        List<SettlementWalletVo> collect = settlementWalletDto.stream().map(a -> {
+            SettlementWalletVo settlementWalletVo = new SettlementWalletVo();
+            BeanUtils.copyProperties(a, settlementWalletVo);
+            Long createBy = a.getCreateBy();
+            Long updateBy = a.getUpdateBy();
+            UserCacheResDto userCacheResDto = map.get(createBy);
+            if (Objects.isNull(userCacheResDto)) {
+                userCacheResDto = remoteSystemService.queryUserCacheById(createBy);
+                map.put(createBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                settlementWalletVo.setCreateByText(userCacheResDto.getName());
+            }
+            userCacheResDto = map.get(updateBy);
+            if (Objects.isNull(userCacheResDto)) {
+                userCacheResDto = remoteSystemService.queryUserCacheById(updateBy);
+                map.put(updateBy, userCacheResDto);
+            }
+            if (Objects.nonNull(userCacheResDto)) {
+                settlementWalletVo.setUpdateByText(userCacheResDto.getName());
+            }
+            settlementWalletVo.setPayPrice(df.format(Objects.isNull(a.getPayPrice()) ? new BigDecimal("0.0") : a.getPayPrice()));
+            settlementWalletVo.setTopayPrice(df.format(Objects.isNull(a.getTopayPrice()) ? new BigDecimal("0.0") : a.getTopayPrice()));
+            return settlementWalletVo;
+        }).collect(Collectors.toList());
+        return PageRes.build(pageInfo, collect);
+    }
+}
+

+ 98 - 5
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml

@@ -150,6 +150,63 @@
         </where>
         order by s.update_time desc
     </select>
+    <select id="list" resultType="com.sckw.payment.model.vo.SettlementLogistics">
+        select s.id,
+               s.ent_id        as entId,
+               s.l_ledger_id   as lLedgerId,
+               s.sl_order_no   as slOrderNo,
+               s.total_price   as totalPrice,
+               s.actual_price  as actualPrice,
+               s.receipt_time  as receiptTime,
+               s.remark,
+               s.audit_user    as auditUser,
+               s.audit_phone   as auditPhone,
+               s.success_user  as successUser,
+               s.success_phone as successPhone,
+               s.status,
+               s.create_by     as createBy,
+               s.create_time   as createTime,
+               s.update_by     as updateBy,
+               s.update_time   as updateTime,
+               l.name,
+               l.generate_time as generateTime,
+               l.l_ledger_no   as lLedgerNo,
+               l.trading       as trading,
+               l.settle_price  as settlePrice,
+               l.url           as url,
+               lu.firm_name    as shipperFirmName,
+               lu2.firm_name   as carrierFirmName
+        from kwp_settlement_logistics s
+                 inner join kwp_ledger_logistics l on s.l_ledger_id = l.id and l.del_flag = 0
+                 inner join kwp_ledger_logistics_unit lu on s.l_ledger_id = lu.l_ledger_id and lu.del_flag = 0 and
+                                                            lu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_logistics_unit lu2
+                            on s.l_ledger_id = lu2.l_ledger_id and lu2.del_flag = 0
+                                and lu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            s.del_flag = 0
+            <if test="settlementReq.status != null and settlementReq.status != 0">
+                and s.status = #{settlementReq.status}
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and l.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != ''  and settlementReq.endCreateTime != null  and settlementReq.endCreateTime != ''">
+                and s.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.endReceiptTime != null">
+                and s.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (l.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    or lu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    or lu2.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    or s.sl_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+        </where>
+        order by s.update_time desc
+    </select>
 
     <!--  结算运费-物流订单列表合计  -->
     <select id="selectSum" resultType="com.sckw.payment.model.vo.res.SettlementLogisticsSumVo">
@@ -164,6 +221,42 @@
         </where>
         ) a
     </select>
+    <select id="sum" resultType="com.sckw.payment.model.vo.res.SettlementLogisticsSumVo">
+        select a.*, (a.actualReceivable - a.currentReceipt) AS remainingReceivables From (
+        select count(l.id)            total,
+               sum(l.settle_price) as actualReceivable,
+               sum(s.actual_price) as currentReceipt
+        from kwp_settlement_logistics s
+                 inner join kwp_ledger_logistics l on s.l_ledger_id = l.id and l.del_flag = 0
+                 inner join kwp_ledger_logistics_unit lu on s.l_ledger_id = lu.l_ledger_id and lu.del_flag = 0 and
+                                                            lu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_logistics_unit lu2
+                            on s.l_ledger_id = lu2.l_ledger_id and lu2.del_flag = 0
+                                and lu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            s.del_flag = 0
+            <if test="settlementReq.status != null and settlementReq.status != 0">
+                and s.status = #{settlementReq.status}
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and l.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != ''  and settlementReq.endCreateTime != null  and settlementReq.endCreateTime != ''">
+                and s.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.endReceiptTime != null">
+                and s.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (l.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                or lu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                or lu2.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                or s.sl_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                )
+            </if>
+        </where>
+        ) a
+    </select>
 
     <!-- 结算运费-物流订单列表头部汇总数  -->
     <select id="getCountList" resultType="java.lang.Long">
@@ -227,14 +320,14 @@
 
     <select id="getListById" resultType="com.sckw.payment.model.dto.LedgerUnitDto">
         select kltu.top_ent_id,
-        kltu.ent_id,
-        kltu.unit_type
+               kltu.ent_id,
+               kltu.unit_type
         from kwp_settlement_logistics kst
-        inner join kwp_ledger_logistics klt on kst.l_ledger_id = klt.id and klt.del_flag = 0
-        inner join kwp_ledger_logistics_unit kltu on klt.id = kltu.l_ledger_id and kltu.del_flag = 0
+                 inner join kwp_ledger_logistics klt on kst.l_ledger_id = klt.id and klt.del_flag = 0
+                 inner join kwp_ledger_logistics_unit kltu on klt.id = kltu.l_ledger_id and kltu.del_flag = 0
         <where>
             kst.del_flag = 0
-            and kst.id = #{id,jdbcType=BIGINT}
+              and kst.id = #{id,jdbcType=BIGINT}
         </where>
     </select>
 

+ 14 - 0
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementOfflineMapper.xml

@@ -81,4 +81,18 @@
             </if>
         </where>
     </select>
+    <select id="list" resultType="com.sckw.payment.model.dto.SettlementOfflineDto">
+        select
+        <include refid="Base_Column_List"/>
+        FROM kwp_settlement_offline
+        <where>
+            del_flag = 0
+            <if test="offlineReq.orderType != null">
+                and order_type = #{offlineReq.orderType,jdbcType=INTEGER}
+            </if>
+            <if test="offlineReq.id != null and offlineReq.id != ''">
+                and settlement_id = #{offlineReq.id,jdbcType=INTEGER}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 125 - 0
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml

@@ -123,6 +123,60 @@
         </where>
         order by kst.create_time desc
     </select>
+    <select id="list" resultType="com.sckw.payment.model.vo.SettlementTrade">
+        select kst.id,
+               kst.status,
+               kst.st_order_no                                    stOrderNo,
+               kst.receipt_time                                   receiptTime,
+               cast(kst.actual_price as char)                     actualPrice,
+               cast(kst.total_price as char)                      totalPrice,
+               cast((kst.total_price - kst.actual_price) as char) waitPrice,
+               kst.audit_user                                     auditUser,
+               kst.audit_phone                                    auditPhone,
+               kst.success_user                                   successUser,
+               kst.success_phone                                  successPhone,
+               kst.create_by                                      createBy,
+               kst.create_time                                    createTime,
+               kst.t_ledger_id                                    tLedgerId,
+               klt.id                                             ledgerId,
+               klt.name,
+               klt.trading,
+               klt.t_ledger_no                                    tLedgerNo,
+               klt.generate_time                                  generateTime,
+               kltu.firm_name                                     sellFirmName,
+               kltu2.firm_name                                    purchaseFirmName,
+               kst.update_by                                      updateBy
+        from kwp_settlement_trade kst
+                 inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = 2
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type = 1
+        <where>
+            kst.del_flag = 0
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu2.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
+        order by kst.create_time desc
+    </select>
 
     <select id="sumMoney" resultType="com.sckw.payment.model.vo.res.SettlementSumVo">
         select count(1)                                                allCount,
@@ -160,6 +214,41 @@
             </if>
         </where>
     </select>
+    <select id="sumMoney2" resultType="com.sckw.payment.model.vo.res.SettlementSumVo">
+        select count(1)                                                allCount,
+               IFNULL(sum(kst.total_price), 0)                         receiveAll,
+               IFNULL(sum(kst.actual_price), 0)                        alreadyReceive,
+               IFNULL(sum(kst.total_price) - sum(kst.actual_price), 0) waitReceive
+        from kwp_settlement_trade kst
+                 inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = 2
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type = 1
+        <where>
+            kst.del_flag = 0
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu2.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
+    </select>
     <select id="countOrder" resultType="java.util.Map">
         select count(1)                           "0",
                count(if(kst.status = 3, 1, null)) "3",
@@ -196,6 +285,42 @@
             </if>
         </where>
     </select>
+    <select id="count" resultType="java.util.Map">
+        select count(1)                           "0",
+               count(if(kst.status = 3, 1, null)) "3",
+               count(if(kst.status = 2, 1, null)) "2",
+               count(if(kst.status = 1, 1, null)) "1"
+        from kwp_settlement_trade kst
+                 inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = 2
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type = 1
+        <where>
+            kst.del_flag = 0
+              and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu2.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
+    </select>
 
     <select id="selectByIds" resultType="com.sckw.payment.model.dto.SettlementTradeDto">
         select kst.id,

+ 30 - 0
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementWalletMapper.xml

@@ -121,4 +121,34 @@
             </if>
         </where>
     </select>
+    <select id="list" resultType="com.sckw.payment.model.dto.SettlementWalletDto">
+        select ksw.id,
+               ksw.ent_id,
+               ksw.settlement_id,
+               ksw.order_type,
+               ksw.channel,
+               ksw.order_type,
+               ksw.pay_time,
+               ksw.pay_price,
+               ksw.topay_price,
+               ksw.type,
+               ksw.remark,
+               ksw.create_by,
+               ksw.create_time,
+               ksw.update_by,
+               ksw.update_time
+        from kwp_settlement_wallet ksw
+        <where>
+            ksw.del_flag = 0
+            <if test="walletReq.id != null and walletReq.id != ''">
+                and ksw.settlement_id = #{walletReq.id,jdbcType=INTEGER}
+            </if>
+            <if test="walletReq.orderType != null">
+                and ksw.order_type = #{walletReq.orderType,jdbcType=INTEGER}
+            </if>
+            <if test="walletReq.payType != null">
+                and ksw.type = #{walletReq.payType,jdbcType=INTEGER}
+            </if>
+        </where>
+    </select>
 </mapper>