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

贸易结算接口,列表查询页、列表统计、列表尾部金额统计

xucaiqin 2 лет назад
Родитель
Сommit
d921bbef5f

+ 78 - 21
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementTradeController.java

@@ -3,8 +3,9 @@ package com.sckw.payment.controller;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
-import com.sckw.payment.model.dto.SettlementTradeDto;
-import com.sckw.payment.model.vo.req.SettlementReq;
+import com.sckw.payment.model.constant.TradeUnitType;
+import com.sckw.payment.model.dto.ISettlement;
+import com.sckw.payment.model.vo.req.SettlementTradeReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsVo;
 import com.sckw.payment.service.KwpSettlementTradeService;
 import jakarta.annotation.Resource;
@@ -30,24 +31,52 @@ public class KwpSettlementTradeController {
     private KwpSettlementTradeService kwpSettlementTradeService;
 
     //   ========= 收款 销售 =========
-    @PostMapping(name = "收款-销售结算单列表", path = "pageListCollection")
-    public HttpResult pageListCollection(@RequestBody @Valid SettlementReq settlementReq) {
+
+    /**
+     * 销售分页列表
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "收款-销售结算单列表", path = "pageSellList")
+    public HttpResult pageListCollection(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.PURCHASE);
         return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
     }
 
-    @GetMapping(name = "收款-销售结算单列表头部汇总数量", path = "getCountListCollection")
-    public HttpResult getCountListCollection(@RequestBody @Valid SettlementReq settlementReq) {
+    /**
+     * 待结算、部分结算、全部结算
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "收款-表头统计数量", path = "getSellCount")
+    public HttpResult getCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.PURCHASE);
+        return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
+    }
+
+    /**
+     * 表尾金额结算数据
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "收款-表尾金额结算数据", path = "getSellSum")
+    public HttpResult getSellSum(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.PURCHASE);
         return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
     }
 
     @PostMapping(name = "收款-根据ids导出销售结算单列表", path = "exportCollection")
-    public HttpResult exportCollection(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
-        List<SettlementTradeDto> list;
+    public HttpResult exportCollection(HttpServletResponse response, @RequestBody @Valid SettlementTradeReq settlementReq) {
+        List<ISettlement> list;
+        settlementReq.setUnitType(TradeUnitType.PURCHASE);
         if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
-            PageRes<SettlementTradeDto> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
+            PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
             list = pageResult.getList();
         } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList());
+            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(),TradeUnitType.PURCHASE);
         }
         return this.export(response, list);
     }
@@ -59,24 +88,52 @@ public class KwpSettlementTradeController {
 
 
     //   ========= 付款 采购 =========
-    @PostMapping(name = "付款-采购结算单列表", path = "pageListPayment")
-    public HttpResult pageListPayment(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementTradeService.pageListPayment(settlementReq));
+
+    /**
+     * 采购分页列表
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "付款-采购结算单列表", path = "pagePurchaseList")
+    public HttpResult pageListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.SELL);
+        return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
     }
 
-    @GetMapping(name = "收款-物流结算订单列表头部汇总数量", path = "getCountListPayment")
-    public HttpResult getCountListPayment(@RequestBody @Valid SettlementReq settlementReq) {
-        return HttpResult.ok(kwpSettlementTradeService.getCountListPayment(settlementReq));
+    /**
+     * 待结算、部分结算、全部结算
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "收款-表头统计数量", path = "getPurchaseCount")
+    public HttpResult getPurchaseCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.SELL);
+        return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
+    }
+
+    /**
+     * 表尾金额结算数据
+     *
+     * @param settlementReq
+     * @return
+     */
+    @PostMapping(name = "收款-物流结算订单列表头部汇总数量", path = "getPurchaseSum")
+    public HttpResult getCountListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
+        settlementReq.setUnitType(TradeUnitType.SELL);
+        return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
     }
 
     @PostMapping(name = "付款-根据ids导出采购结算单列表", path = "exportPayment")
-    public HttpResult exportPayment(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
-        List<SettlementTradeDto> list;
+    public HttpResult exportPayment(HttpServletResponse response, @RequestBody @Valid SettlementTradeReq settlementReq) {
+        List<ISettlement> list;
+        settlementReq.setUnitType(TradeUnitType.SELL);
         if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
-            PageRes<SettlementTradeDto> pageResult = kwpSettlementTradeService.pageListPayment(settlementReq);
+            PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
             list = pageResult.getList();
         } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList());
+            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(),TradeUnitType.SELL);
         }
         return this.export(response, list);
     }
@@ -92,7 +149,7 @@ public class KwpSettlementTradeController {
      * @author Aick Spt
      * @date 2023-07-24 15:49
      */
-    private HttpResult export(HttpServletResponse response, List<SettlementTradeDto> list) {
+    private HttpResult export(HttpServletResponse response, List<ISettlement> list) {
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }

+ 14 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementTradeMapper.java

@@ -2,7 +2,14 @@ package com.sckw.payment.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.payment.model.KwpSettlementTrade;
+import com.sckw.payment.model.dto.SettlementTradeDto;
+import com.sckw.payment.model.vo.req.SettlementTradeReq;
+import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
+import com.sckw.payment.model.vo.res.SettlementSumVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author xucaiqin
@@ -11,4 +18,11 @@ import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
 public interface KwpSettlementTradeMapper extends BaseMapper<KwpSettlementTrade> {
+    List<SettlementTradeDto> pageSelect(@Param("settlementReq") SettlementTradeReq settlementReq);
+
+    SettlementSumVo sumMoney(@Param("settlementReq")SettlementTradeReq settlementReq);
+
+    SettlementLogisticsStatusCountVo countOrder(@Param("settlementReq")SettlementTradeReq settlementReq);
+
+    List<SettlementTradeDto> selectByIds(@Param("ids") List<Long> ids);
 }

+ 115 - 36
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java

@@ -1,71 +1,150 @@
 package com.sckw.payment.service;
 
+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.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.payment.dao.KwpSettlementTradeMapper;
 import com.sckw.payment.model.KwpSettlementTrade;
 import com.sckw.payment.model.constant.SettlementEnum;
-import com.sckw.payment.model.dto.SettlementLogisticsDto;
+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.dto.SettlementWalletDto;
 import com.sckw.payment.model.vo.req.SettlementReq;
+import com.sckw.payment.model.vo.req.SettlementTradeReq;
 import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
-import lombok.AllArgsConstructor;
+import com.sckw.payment.model.vo.res.SettlementSumVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import jakarta.annotation.Resource;
+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
-@AllArgsConstructor
 public class KwpSettlementTradeService {
-    private final KwpSettlementTradeMapper settlementTradeMapper;
+    @Resource
+    private KwpSettlementTradeMapper settlementTradeMapper;
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    public KwpSettlementTrade getById(Long id) {
+        return settlementTradeMapper.selectById(id);
+    }
 
     public void save(KwpSettlementTrade kwpSettlementTrade) {
         settlementTradeMapper.insert(kwpSettlementTrade);
     }
 
-    public PageRes<SettlementTradeDto> pageListCollection(SettlementReq settlementReq) {
-//        //todo 查询缓存,获取客户企业id
-//        String keywords = settlementReq.getKeywords();
-//        if (StringUtils.isNotBlank(keywords)) {
-//            System.out.println("关键之:" + keywords);
-//        }
-//        PageHelper.startPage(settlementReq.getPage(), settlementReq.getPageSize());
-//
-//        List<SettlementLogisticsDto> kwpLedgerLogisticsList = settlementOfflineMapper.pageSelect(settlementReq);
-//
-//        return new PageRes<>(new PageInfo<>(kwpLedgerLogisticsList));
+    private void changeDict(List<ISettlement> list) {
+        //字典等数据转换
+        Map<String, SysDictResDto> dictResDtoMap = remoteSystemService.queryDictMapByType(DictTypeEnum.TRADE_TYPE.getType());
+        for (ISettlement iSettlement : list) {
+            Integer trading = iSettlement.getTrading();
+            SysDictResDto sysDictResDto = dictResDtoMap.get(String.valueOf(trading));
+            if (Objects.nonNull(sysDictResDto)) {
+                iSettlement.setTradingLabel(sysDictResDto.getLabel());
+            }
+            iSettlement.setStatusLabel(SettlementEnum.getStatusDesc(iSettlement.getStatus()));
+        }
+    }
+
+    public PageRes<ISettlement> pageListCollection(SettlementTradeReq settlementReq) {
+        settlementReq.setEntId(LoginUserHolder.getEntId());
+        PageHelper.startPage(settlementReq.getPage(), settlementReq.getPageSize());
+        List<SettlementTradeDto> kwpLedgerLogisticsList = settlementTradeMapper.pageSelect(settlementReq);
+        if (!CollectionUtils.isEmpty(kwpLedgerLogisticsList)) {
+            //根据企业类型进行对应的数据
+            if (Objects.equals(settlementReq.getUnitType(), TradeUnitType.PURCHASE)) {
+                List<SettlementPurchaseDto> list = kwpLedgerLogisticsList.stream().map(a -> {
+                    SettlementPurchaseDto settlementSellDto = new SettlementPurchaseDto();
+                    BeanUtils.copyProperties(a, settlementSellDto);
+                    settlementSellDto.setActualPrice(settlementSellDto.changePrice(a.getActualPrice()));
+                    settlementSellDto.setTotalPrice(settlementSellDto.changePrice(a.getTotalPrice()));
+                    settlementSellDto.setWaitPrice(settlementSellDto.changePrice(a.getWaitPrice()));
+                    return settlementSellDto;
+                }).toList();
+                List<ISettlement> ledgerShipperDto = new ArrayList<>(list);
+                changeDict(ledgerShipperDto);
+                return new PageRes<>(new PageInfo<>(ledgerShipperDto));
+            }
+            if (Objects.equals(settlementReq.getUnitType(), TradeUnitType.SELL)) {
+                List<SettlementSellDto> list = kwpLedgerLogisticsList.stream().map(a -> {
+                    SettlementSellDto settlementSellDto = new SettlementSellDto();
+                    BeanUtils.copyProperties(a, settlementSellDto);
+                    settlementSellDto.setActualPrice(settlementSellDto.changePrice(a.getActualPrice()));
+                    settlementSellDto.setTotalPrice(settlementSellDto.changePrice(a.getTotalPrice()));
+                    settlementSellDto.setWaitPrice(settlementSellDto.changePrice(a.getWaitPrice()));
+                    return settlementSellDto;
+                }).toList();
+                List<ISettlement> ledgerShipperDto = new ArrayList<>(list);
+                changeDict(ledgerShipperDto);
+                return new PageRes<>(new PageInfo<>(ledgerShipperDto));
+            }
+        }
         return new PageRes<>(new PageInfo<>());
     }
 
-    public SettlementLogisticsStatusCountVo getCountListCollection(SettlementReq settlementReq) {
-        SettlementLogisticsStatusCountVo settlementLogisticsStatusCountVos = new SettlementLogisticsStatusCountVo();
-        //总
-//        settlementReq.setStatus(null);
-//        settlementLogisticsStatusCountVos.setAllCount(settlementLogisticsMapper.getCountListCollection(settlementReq));
-//
-//        //待结算
-//        settlementReq.setStatus(SettlementEnum.WAITING_PAYMENT.getStatus());
-//        settlementLogisticsStatusCountVos.setWaitingPaymentCount(settlementLogisticsMapper.getCountListCollection(settlementReq));
-//
-//        //部分结算
-//        settlementReq.setStatus(SettlementEnum.PARTIAL_PAYMENT.getStatus());
-//        settlementLogisticsStatusCountVos.setPartialPaymentCount(settlementLogisticsMapper.getCountListCollection(settlementReq));
-//
-//        //全部结算
-//        settlementReq.setStatus(SettlementEnum.ALL_PAYMENT.getStatus());
-//        settlementLogisticsStatusCountVos.setAllPaymentCount(settlementLogisticsMapper.getCountListCollection(settlementReq));
+    public SettlementLogisticsStatusCountVo getCount(SettlementTradeReq settlementReq) {
+        return settlementTradeMapper.countOrder(settlementReq);
+    }
 
-        return settlementLogisticsStatusCountVos;
+    /**
+     * 表尾统计数据
+     *
+     * @param settlementReq
+     * @return
+     */
+    public SettlementSumVo getCountListCollection(SettlementTradeReq settlementReq) {
+        return settlementTradeMapper.sumMoney(settlementReq);
     }
 
 
-    public List<SettlementTradeDto> selectList(List<Long> ids) {
-        return null;
+    public List<ISettlement> selectList(List<Long> ids, int unitType) {
+        List<SettlementTradeDto> kwpSettlementTrades = settlementTradeMapper.selectByIds(ids);
+        if (!CollectionUtils.isEmpty(kwpSettlementTrades)) {
+            //根据企业类型进行对应的数据
+            if (unitType == TradeUnitType.PURCHASE) {
+                List<SettlementPurchaseDto> list = kwpSettlementTrades.stream().map(a -> {
+                    SettlementPurchaseDto settlementSellDto = new SettlementPurchaseDto();
+                    BeanUtils.copyProperties(a, settlementSellDto);
+                    settlementSellDto.setActualPrice(settlementSellDto.changePrice(a.getActualPrice()));
+                    settlementSellDto.setTotalPrice(settlementSellDto.changePrice(a.getTotalPrice()));
+                    settlementSellDto.setWaitPrice(settlementSellDto.changePrice(a.getWaitPrice()));
+                    return settlementSellDto;
+                }).toList();
+                List<ISettlement> ledgerShipperDto = new ArrayList<>(list);
+                changeDict(ledgerShipperDto);
+                return ledgerShipperDto;
+            }
+            if (unitType == TradeUnitType.SELL) {
+                List<SettlementSellDto> list = kwpSettlementTrades.stream().map(a -> {
+                    SettlementSellDto settlementSellDto = new SettlementSellDto();
+                    BeanUtils.copyProperties(a, settlementSellDto);
+                    settlementSellDto.setActualPrice(settlementSellDto.changePrice(a.getActualPrice()));
+                    settlementSellDto.setTotalPrice(settlementSellDto.changePrice(a.getTotalPrice()));
+                    settlementSellDto.setWaitPrice(settlementSellDto.changePrice(a.getWaitPrice()));
+                    return settlementSellDto;
+                }).toList();
+                List<ISettlement> ledgerShipperDto = new ArrayList<>(list);
+                changeDict(ledgerShipperDto);
+                return ledgerShipperDto;
+            }
+        }
+        return new ArrayList<>();
     }
 
     /**

+ 1 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java

@@ -30,7 +30,6 @@ import org.springframework.util.CollectionUtils;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -51,6 +50,7 @@ public class KwpSettlementWalletService {
     private final KwpSettlementTradeService kwpSettlementTradeService;
 
     private final KwpSettlementTradeMapper kwpSettlementTradeMapper;
+    private final KwpLedgerTradeService ledgerTradeService;
 
     /**
      * 物流-电子钱包付款(货到付款)结算记录-列表