Bläddra i källkod

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

lengfaqiang 2 år sedan
förälder
incheckning
dca8d86606
44 ändrade filer med 1451 tillägg och 242 borttagningar
  1. 40 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/config/easyexcel/LongStringConverter.java
  2. 13 8
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java
  3. 0 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java
  4. 0 6
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java
  5. 23 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java
  6. 10 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateMapper.java
  7. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/res/CooperateManageQueryResDto.java
  8. 3 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/AddressQueryExport.java
  9. 129 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/QueryAllCooperateInfoExcel.java
  10. 46 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/QueryAllCooperateInfoReqDto.java
  11. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/AddressQueryResVo.java
  12. 126 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryAllCooperateInfoResVo.java
  13. 14 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  14. 105 6
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  15. 87 46
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml
  16. 1 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java
  17. 1 0
      sckw-modules/sckw-order/src/main/resources/mapper/KwoWantBuyMapper.xml
  18. 2 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/WalletController.java
  19. 6 10
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/LedgerLogisticsController.java
  20. 8 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/LedgerTradeController.java
  21. 23 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementLogisticsController.java
  22. 7 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java
  23. 8 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerTradeMapper.java
  24. 10 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementLogisticsMapper.java
  25. 2 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/PayCenterEnum.java
  26. 23 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/wallet/ChannelStatistics.java
  27. 14 4
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/LedgerSell.java
  28. 151 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/excel/LedgerLogisticsExport.java
  29. 147 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/excel/LedgerTradeExport.java
  30. 31 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/PayCenterService.java
  31. 98 6
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java
  32. 7 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/LedgerLogisticsService.java
  33. 46 52
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/LedgerTradeService.java
  34. 2 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementLogisticsService.java
  35. 50 5
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/DateTimeUtil.java
  36. 64 54
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml
  37. 43 0
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml
  38. 73 6
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml
  39. 0 1
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml
  40. 1 3
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  41. 0 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java
  42. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindPojoParam.java
  43. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java
  44. 17 8
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

+ 40 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/config/easyexcel/LongStringConverter.java

@@ -0,0 +1,40 @@
+package com.sckw.excel.config.easyexcel;
+
+import cn.hutool.core.convert.Convert;
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Objects;
+
+
+@Slf4j
+public class LongStringConverter implements Converter<Long> {
+    @Override
+    public Class<Long> supportJavaTypeKey() {
+        return Long.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public Long convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        return Convert.toLong(cellData.getData());
+    }
+
+    @Override
+    public WriteCellData<String> convertToExcelData(Long value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        if (Objects.nonNull(value)) {
+            String str = Convert.toStr(value);
+            return new WriteCellData<>(str);
+        }
+        return new WriteCellData<>("");
+    }
+}

+ 13 - 8
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -5,17 +5,13 @@ import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.annotation.ExcelContext;
 import com.sckw.excel.annotation.ExcelSelected;
-import com.sckw.excel.config.easyexcel.ExcelSelectedResolve;
-import com.sckw.excel.config.easyexcel.LocalDateTimeConverter;
-import com.sckw.excel.config.easyexcel.RowWriteHandlerImpl;
-import com.sckw.excel.config.easyexcel.SelectedSheetWriteHandler;
+import com.sckw.excel.config.easyexcel.*;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.Assert;
@@ -30,7 +26,6 @@ import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 
 
 /**
@@ -43,14 +38,24 @@ import java.util.Properties;
  */
 @Slf4j
 public class ExcelUtil {
-
+    /**
+     * 数据导出
+     *
+     * @param response
+     * @param clazz
+     * @param data
+     * @param <T>
+     */
     public static <T> void downData(HttpServletResponse response, Class<T> clazz, List<T> data) {
         Assert.notNull(clazz, "clazz can't be null");
         Assert.isTrue(data != null && !data.isEmpty(), "data can't be empty");
         try {
             ExcelContext excelContext = clazz.getAnnotation(ExcelContext.class);
             buildResponse(response, excelContext.fileName());
-            EasyExcel.write(response.getOutputStream(), clazz).autoCloseStream(Boolean.FALSE).sheet(excelContext.sheetName()).doWrite(data);
+            EasyExcel.write(response.getOutputStream(), clazz)
+                    .autoCloseStream(Boolean.FALSE)
+                    .registerConverter(new LongStringConverter())
+                    .sheet(excelContext.sheetName()).doWrite(data);
         } catch (Exception e) {
             buildResponse(response, e);
         }

+ 0 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java

@@ -3,7 +3,6 @@ package com.sckw.contract.controller;
 import com.sckw.contract.model.vo.req.IdReqVo;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.service.KwcContractTradeService;
-import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.web.response.HttpResult;
 import jakarta.servlet.http.HttpServletResponse;

+ 0 - 6
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java

@@ -126,10 +126,4 @@ public class KwmAddressController {
         return HttpResult.ok(kwmAddressService.detail(reqVo.getId()));
     }
 
-    @PostMapping("test")
-    public HttpResult test() {
-        kwmAddressService.test();
-        return HttpResult.ok();
-    }
-
 }

+ 23 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java

@@ -163,4 +163,27 @@ public class KwmCooperateManageController {
         return HttpResult.ok(kwmCooperateManageService.findTargetEntCooperateInOur(reqVo));
     }
 
+    /**
+     * @param reqVo 分页入参
+     * @return HttpResult
+     * @desc: 运营端查合作信息
+     * @author: czh
+     * @date: 2023/9/15
+     */
+    @PostMapping("queryAllCooperateInfoByPage")
+    public HttpResult queryAllCooperateInfoByPage(@RequestBody CooperateManageQueryReqVo reqVo) {
+        return HttpResult.ok(kwmCooperateManageService.queryAllCooperateInfoByPage(reqVo));
+    }
+
+    /**
+     * @param reqVo 查询入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping(value = "exportAllCooperateInfo", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void exportAllCooperateInfo(@RequestBody CooperateManageQueryReqVo reqVo, HttpServletResponse response) {
+        kwmCooperateManageService.exportAllCooperateInfo(reqVo, response);
+    }
+
 }

+ 10 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateMapper.java

@@ -6,6 +6,7 @@ import com.sckw.manage.model.entity.KwmCooperate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.manage.model.vo.req.FindCooperateByEntReqVo;
 import com.sckw.manage.model.vo.req.FindEntCooperateReqVo;
+import com.sckw.manage.model.vo.req.QueryAllCooperateInfoReqDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -55,6 +56,15 @@ public interface KwmCooperateMapper extends BaseMapper<KwmCooperate> {
      * @date: 2023/8/16
      */
     List<KwmCooperate> findEntCooperate(FindEntCooperateReqVo reqVo);
+
+    /**
+     * @param reqDto 入参
+     * @return CooperateManageQueryResDto
+     * @desc: 运营端查合作信息
+     * @author: czh
+     * @date: 2023/9/15
+     */
+    List<CooperateManageQueryResDto> queryAllCooperateInfoList(@Param(value = "reqDto") QueryAllCooperateInfoReqDto reqDto);
 }
 
 

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/res/CooperateManageQueryResDto.java

@@ -82,6 +82,11 @@ public class CooperateManageQueryResDto {
      */
     private Date createTime;
 
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
     /**
      * 对方企业id
      */

+ 3 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/AddressQueryExport.java

@@ -30,6 +30,9 @@ public class AddressQueryExport implements Serializable {
     @ExcelProperty(value = "地址类型")
     private String typeName;
 
+    @ExcelProperty(value = "企业名称")
+    private String entName;
+
     @ExcelProperty(value = "电子围栏")
     private String fence;
 

+ 129 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/QueryAllCooperateInfoExcel.java

@@ -0,0 +1,129 @@
+package com.sckw.manage.model.report;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 运营端查合作信息
+ * @date 2023/9/15
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "合作信息", sheetName = "合作信息")
+public class QueryAllCooperateInfoExcel implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 823363899004504362L;
+
+    /**
+     * 状态名
+     */
+    @ExcelProperty(value = "合作状态")
+    private Integer statusName;
+
+
+    /**
+     * 邀请企业名
+     */
+    @ExcelProperty(value = "邀请单位名称")
+    private String inviterEntName;
+
+    /**
+     * 受邀企业名
+     */
+    @ExcelProperty(value = "受邀单位名称")
+    private String inviteeEntName;
+
+    /**
+     * 采购单位
+     */
+    @ExcelProperty(value = "采购单位")
+    private String ent1;
+
+    /**
+     * 供应单位
+     */
+    @ExcelProperty(value = "供应单位")
+    private String ent2;
+
+    /**
+     * 托运单位
+     */
+    @ExcelProperty(value = "托运单位")
+    private String ent3;
+
+    /**
+     * 承运单位
+     */
+    @ExcelProperty(value = "承运单位")
+    private String ent4;
+
+
+    /**
+     * 邀请单位客户经理
+     */
+    @ExcelProperty(value = "邀请单位客户经理")
+    private String inviterContacts;
+
+    /**
+     * 邀请经理电话
+     */
+    @ExcelProperty(value = "邀请经理电话")
+    private String inviterContactsPhone;
+
+    /**
+     * 受邀单位客户经理
+     */
+    @ExcelProperty(value = "受邀单位客户经理")
+    private String inviteeContacts;
+
+    /**
+     * 受邀经理电话
+     */
+    @ExcelProperty(value = "受邀经理电话")
+    private String inviteeContactsPhone;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "最近更新时间")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+}

+ 46 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/QueryAllCooperateInfoReqDto.java

@@ -0,0 +1,46 @@
+package com.sckw.manage.model.vo.req;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 运营端查合作信息
+ * @date 2023/9/15
+ */
+@Data
+public class QueryAllCooperateInfoReqDto {
+
+    /**
+     * 单位名称、联系人、电话
+     */
+    private String keywords;
+
+    /**
+     * 开始时间(时间戳)
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间(时间戳)
+     */
+    private Date endTime;
+
+    /**
+     * id集合
+     */
+    private List<Long> ids;
+
+    /**
+     * 合作属性
+     */
+    private List<Integer> cooperateTypes;
+
+    /**
+     * 要查询的企业id
+     */
+    private List<Long> queryEntIdList;
+
+}

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/AddressQueryResVo.java

@@ -121,4 +121,9 @@ public class AddressQueryResVo implements Serializable {
      */
     private Integer defaultType;
 
+    /**
+     * 企业名称
+     */
+    private String entName;
+
 }

+ 126 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryAllCooperateInfoResVo.java

@@ -0,0 +1,126 @@
+package com.sckw.manage.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 运营端查合作信息
+ * @date 2023/9/15
+ */
+@Data
+public class QueryAllCooperateInfoResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -6887505191222426315L;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 状态名
+     */
+    private String statusName;
+
+    /**
+     * 邀请企业id
+     */
+    private Long inviterEntId;
+
+    /**
+     * 邀请企业名
+     */
+    private String inviterEntName;
+
+    /**
+     * 受邀企业id
+     */
+    private Long inviteeEntId;
+
+    /**
+     * 受邀企业名
+     */
+    private String inviteeEntName;
+
+    /**
+     * 采购单位
+     */
+    private String ent1;
+
+    /**
+     * 供应单位
+     */
+    private String ent2;
+
+    /**
+     * 托运单位
+     */
+    private String ent3;
+
+    /**
+     * 承运单位
+     */
+    private String ent4;
+
+    /**
+     * 合作属性
+     */
+    private String cooperateTypes;
+
+    /**
+     * 邀请单位客户经理
+     */
+    private String inviterContacts;
+
+    /**
+     * 邀请经理电话
+     */
+    private String inviterContactsPhone;
+
+    /**
+     * 受邀单位客户经理
+     */
+    private String inviteeContacts;
+
+    /**
+     * 受邀经理电话
+     */
+    private String inviteeContactsPhone;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 14 - 2
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java

@@ -11,6 +11,7 @@ import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.AddressDefaultTypeEnum;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
@@ -96,7 +97,6 @@ public class KwmAddressService {
         LambdaQueryWrapper<KwmAddress> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Objects.nonNull(reqVo.getCityCode()), KwmAddress::getCityCode, reqVo.getCityCode()).
                 eq(Objects.nonNull(reqVo.getType()), KwmAddress::getType, reqVo.getType()).
-                eq(KwmAddress::getEntId, LoginUserHolder.getEntId()).
                 eq(KwmAddress::getDelFlag, Global.NO).
                 and(StringUtils.isNotBlank(reqVo.getKeywords()),
                         wq -> wq.like(KwmAddress::getDetailAddress, reqVo.getKeywords()).or().
@@ -114,6 +114,11 @@ public class KwmAddressService {
         if (CollectionUtils.isNotEmpty(reqVo.getIds())) {
             wrapper.in(KwmAddress::getId, reqVo.getIds());
         }
+
+        if (!Objects.equals(LoginUserHolder.getSystemType(), SystemTypeEnum.MANAGE.getCode())) {
+            wrapper.eq(KwmAddress::getEntId, LoginUserHolder.getEntId());
+        }
+
         return kwmAddressMapper.selectList(wrapper);
     }
 
@@ -129,8 +134,9 @@ public class KwmAddressService {
         List<AddressQueryResVo> list = new ArrayList<>();
         List<Long> userIds = kwmAddresses.stream().map(KwmAddress::getCreateBy).distinct().toList();
         List<Integer> types = kwmAddresses.stream().map(KwmAddress::getType).distinct().toList();
+        List<Long> endIds = kwmAddresses.stream().map(KwmAddress::getEntId).distinct().toList();
         Map<Long, UserCacheResDto> userCacheResDtoMap = commonBusinessService.queryUserCacheMapByIds(userIds);
-
+        Map<Long, EntCacheResDto> entCacheResDtoMap = commonBusinessService.queryEntCacheMapByIds(endIds);
         StringBuilder keys = new StringBuilder();
         for (Integer type : types) {
             keys.append(DictTypeEnum.ADDRESS_TYPE.getType()).append(Global.POUND).append(type).append(Global.COMMA);
@@ -144,6 +150,7 @@ public class KwmAddressService {
             addressQueryResVo.setType(item.getType());
             UserCacheResDto userCacheResDto = userCacheResDtoMap.get(item.getCreateBy());
             SysDictResDto sysDictResDto = stringSysDictResDtoMap.get(DictTypeEnum.ADDRESS_TYPE.getType() + Global.POUND + item.getType());
+            EntCacheResDto entCacheResDto = entCacheResDtoMap.get(item.getEntId());
             if (Objects.nonNull(sysDictResDto)) {
                 addressQueryResVo.setTypeName(sysDictResDto.getLabel());
             }
@@ -151,6 +158,7 @@ public class KwmAddressService {
             if (Objects.nonNull(userCacheResDto)) {
                 addressQueryResVo.setCreateByName(userCacheResDto.getName());
             }
+
             if (Objects.nonNull(sysDictResDto)) {
                 addressQueryResVo.setTypeName(sysDictResDto.getLabel());
             }
@@ -159,6 +167,10 @@ public class KwmAddressService {
                 addressQueryResVo.setDefaultTypeName(AddressDefaultTypeEnum.getName(item.getDefaultType()).getName());
             }
 
+            if (Objects.nonNull(entCacheResDto)) {
+                addressQueryResVo.setEntName(entCacheResDto.getFirmName());
+            }
+
             addressQueryResVo.setFenceStatus(StringUtils.isNotBlank(item.getFence()) ? "已设置" : "未设置");
             list.add(addressQueryResVo);
         });

+ 105 - 6
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -1,6 +1,5 @@
 package com.sckw.manage.service;
 
-import java.io.IOException;
 import java.util.Date;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -19,31 +18,32 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.excel.utils.EasyExcelUtil;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.dao.KwmCooperateTypeMapper;
 import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
 import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
+import com.sckw.manage.model.entity.KwmAddress;
 import com.sckw.manage.model.entity.KwmCooperate;
 import com.sckw.manage.model.entity.KwmCooperateType;
+import com.sckw.manage.model.report.AddressQueryExport;
 import com.sckw.manage.model.report.CooperateManageExport;
-import com.sckw.manage.model.vo.req.BindManagerReqVo;
-import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
-import com.sckw.manage.model.vo.req.FindCooperateByEntReqVo;
-import com.sckw.manage.model.vo.req.FindEntCooperateReqVo;
+import com.sckw.manage.model.report.QueryAllCooperateInfoExcel;
+import com.sckw.manage.model.vo.req.*;
 import com.sckw.manage.model.vo.res.*;
 import com.sckw.payment.api.model.constant.OrderEnum;
 import com.sckw.stream.enums.MessageEnum;
 import com.sckw.stream.model.UserInfo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -673,4 +673,103 @@ public class KwmCooperateManageService {
         return kwmCooperateMapper.selectList(wrapper);
     }
 
+
+    /**
+     * @param reqVo 分页入参
+     * @return QueryAllCooperateInfoResVo
+     * @desc: 运营端查合作信息
+     * @author: czh
+     * @date: 2023/9/15
+     */
+    public PageResult queryAllCooperateInfoByPage(CooperateManageQueryReqVo reqVo) {
+        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        List<CooperateManageQueryResDto> list = kwmCooperateMapper.queryAllCooperateInfoList(getQueryAllCooperateInfoReqDto(reqVo));
+        if (CollectionUtils.isEmpty(list)) {
+            return PageHelperUtil.getPageResult(new PageInfo<>());
+        }
+
+        return PageHelperUtil.getPageResult(new PageInfo<>(getAllCooperateInfoVo(list)), list, reqVo.getPageSize());
+    }
+
+
+    /**
+     * 构建入参
+     */
+    private QueryAllCooperateInfoReqDto getQueryAllCooperateInfoReqDto(CooperateManageQueryReqVo reqVo) {
+        QueryAllCooperateInfoReqDto queryAllCooperateInfoReqDto = new QueryAllCooperateInfoReqDto();
+        BeanUtils.copyProperties(reqVo, queryAllCooperateInfoReqDto);
+        String cooperateTypes = reqVo.getCooperateTypes();
+        if (StringUtils.isNotBlank(cooperateTypes)) {
+            queryAllCooperateInfoReqDto.setCooperateTypes(Arrays.stream(cooperateTypes.split(Global.COMMA)).map(Integer::parseInt).toList());
+        }
+
+        if (StringUtils.isNotBlank(reqVo.getKeywords())) {
+            List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByName(reqVo.getKeywords());
+            if (CollectionUtils.isNotEmpty(entCacheResDtos)) {
+                queryAllCooperateInfoReqDto.setQueryEntIdList(entCacheResDtos.stream().map(EntCacheResDto::getId).toList());
+            }
+        }
+        return queryAllCooperateInfoReqDto;
+    }
+
+    /**
+     * 获取返参
+     */
+    private List<QueryAllCooperateInfoResVo> getAllCooperateInfoVo(List<CooperateManageQueryResDto> list) {
+        List<Long> inviteeEntIds = list.stream().map(CooperateManageQueryResDto::getInviteeEntId).toList();
+        List<Long> inviterEntIds = list.stream().map(CooperateManageQueryResDto::getInviterEntId).toList();
+        List<Long> userIds = list.stream().map(CooperateManageQueryResDto::getCreateBy).toList();
+        List<Long> allEntIds = new ArrayList<>();
+        allEntIds.addAll(inviterEntIds);
+        allEntIds.addAll(inviteeEntIds);
+        Map<Long, EntCacheResDto> entCacheResDtoMap = remoteSystemService.queryEntCacheMapByIds(allEntIds);
+        Map<Long, UserCacheResDto> userCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(userIds);
+
+        List<QueryAllCooperateInfoResVo> result = new ArrayList<>();
+        list.forEach(item -> {
+            QueryAllCooperateInfoResVo queryAllCooperateInfoResVo = new QueryAllCooperateInfoResVo();
+            queryAllCooperateInfoResVo.setStatus(item.getStatus());
+            queryAllCooperateInfoResVo.setStatusName(CooperateStatusEnum.getName(item.getStatus()));
+            queryAllCooperateInfoResVo.setInviterEntId(item.getInviterEntId());
+            queryAllCooperateInfoResVo.setInviteeEntId(item.getInviteeEntId());
+            EntCacheResDto entCacheResDto = entCacheResDtoMap.get(item.getInviterEntId());
+            queryAllCooperateInfoResVo.setInviterEntName(Objects.nonNull(entCacheResDto) ? entCacheResDto.getFirmName() : "");
+            EntCacheResDto entCacheResDto1 = entCacheResDtoMap.get(item.getInviteeEntId());
+            queryAllCooperateInfoResVo.setInviteeEntName(Objects.nonNull(entCacheResDto1) ? entCacheResDto1.getFirmName() : "");
+            queryAllCooperateInfoResVo.setCooperateTypes(item.getTypes());
+            queryAllCooperateInfoResVo.setEnt1(item.getTypes().contains(String.valueOf(CooperateTypeEnum.SUPPLIER.getCode())) ? "是" : "");
+            queryAllCooperateInfoResVo.setEnt2(item.getTypes().contains(String.valueOf(CooperateTypeEnum.PURCHASER.getCode())) ? "是" : "");
+            queryAllCooperateInfoResVo.setEnt3(item.getTypes().contains(String.valueOf(CooperateTypeEnum.CONSIGN.getCode())) ? "是" : "");
+            queryAllCooperateInfoResVo.setEnt4(item.getTypes().contains(String.valueOf(CooperateTypeEnum.CARRIAGE.getCode())) ? "是" : "");
+            queryAllCooperateInfoResVo.setInviterContacts(item.getInviterContacts());
+            queryAllCooperateInfoResVo.setInviterContactsPhone(item.getInviterPhone());
+            queryAllCooperateInfoResVo.setInviteeContacts(item.getInviteeContacts());
+            queryAllCooperateInfoResVo.setInviteeContactsPhone(item.getInviteePhone());
+            queryAllCooperateInfoResVo.setCreateTime(item.getCreateTime());
+
+            UserCacheResDto userCacheResDto = userCacheResDtoMap.get(item.getCreateBy());
+            queryAllCooperateInfoResVo.setCreateByName(Objects.nonNull(userCacheResDto) ? userCacheResDto.getName(): "");
+            queryAllCooperateInfoResVo.setPhone(Objects.nonNull(userCacheResDto) ? userCacheResDto.getPhone() : "");
+            queryAllCooperateInfoResVo.setUpdateTime(item.getUpdateTime());
+            queryAllCooperateInfoResVo.setRemark(item.getRemark());
+            result.add(queryAllCooperateInfoResVo);
+        });
+        return result;
+    }
+
+
+    /**
+     * @param reqVo 查询入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public void exportAllCooperateInfo(CooperateManageQueryReqVo reqVo, HttpServletResponse response) {
+        List<CooperateManageQueryResDto> list = kwmCooperateMapper.queryAllCooperateInfoList(getQueryAllCooperateInfoReqDto(reqVo));
+        if (CollectionUtils.isEmpty(list)) {
+            throw new SystemException("导出数据为空");
+        }
+        ExcelUtil.downData(response, QueryAllCooperateInfoExcel.class, BeanUtils.copyToList(getAllCooperateInfoVo(list), QueryAllCooperateInfoExcel.class));
+    }
+
 }

+ 87 - 46
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml

@@ -4,55 +4,27 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.manage.dao.KwmCooperateMapper">
 
-    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmCooperate">
-            <id property="id" column="id" jdbcType="BIGINT"/>
-            <result property="entId" column="ent_id" jdbcType="BIGINT"/>
-            <result property="inviterEntId" column="inviter_ent_id" jdbcType="BIGINT"/>
-            <result property="inviteeEntId" column="invitee_ent_id" jdbcType="BIGINT"/>
-            <result property="inviterContacts" column="inviter_contacts" jdbcType="VARCHAR"/>
-            <result property="inviterPhone" column="inviter_phone" jdbcType="VARCHAR"/>
-            <result property="inviteeContacts" column="invitee_contacts" jdbcType="VARCHAR"/>
-            <result property="inviteePhone" column="invitee_phone" jdbcType="VARCHAR"/>
-            <result property="remark" column="remark" jdbcType="VARCHAR"/>
-            <result property="status" column="status" jdbcType="INTEGER"/>
-            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
-            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
-            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
-            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        id,ent_id,inviter_ent_id,
-        invitee_ent_id,inviter_contacts,inviter_phone,
-        invitee_contacts,invitee_phone,remark,
-        status,create_by,create_time,
-        update_by,update_time,del_flag
-    </sql>
-
     <select id="findList" parameterType="com.sckw.manage.model.dto.req.CooperateManageQueryReqDto"
             resultType="com.sckw.manage.model.dto.res.CooperateManageQueryResDto">
         SELECT a.id,
-        b.status,
-        group_concat(b.type) types,
-        min(a.ent_id) entId,
-        min(a.invitee_ent_id) inviteeEntId,
-        min(a.inviter_ent_id) inviterEntId,
-        min(a.invitee_contacts) inviteeContacts,
-        min(a.inviter_contacts) inviterContacts,
-        min(a.invitee_contacts_id) inviteeContactsId,
-        min(a.inviter_contacts_id) inviterContactsId,
-        min(a.invitee_phone) inviteePhone,
-        min(a.inviter_phone) inviterPhone,
-        min(b.create_time) createTime,
-        min(b.create_by) createBy,
-        min(a.remark) remark,
-        min(a.approval_remark) approvalRemark,
-        case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.invitee_ent_id) else min(a.inviter_ent_id) end
-        targetEntId,
-        case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.inviter_ent_id) else min(a.invitee_ent_id) end
-        ourEntId,
-        case when min(a.ent_id) = #{reqDto.currentEntId} then 1 else 2 end applyTypeCode
+            b.status,
+            group_concat(b.type) types,
+            min(a.ent_id) entId,
+            min(a.invitee_ent_id) inviteeEntId,
+            min(a.inviter_ent_id) inviterEntId,
+            min(a.invitee_contacts) inviteeContacts,
+            min(a.inviter_contacts) inviterContacts,
+            min(a.invitee_contacts_id) inviteeContactsId,
+            min(a.inviter_contacts_id) inviterContactsId,
+            min(a.invitee_phone) inviteePhone,
+            min(a.inviter_phone) inviterPhone,
+            min(b.create_time) createTime,
+            min(b.create_by) createBy,
+            min(a.remark) remark,
+            min(a.approval_remark) approvalRemark,
+            case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.invitee_ent_id) else min(a.inviter_ent_id) end targetEntId,
+            case when min(a.ent_id) = #{reqDto.currentEntId} then min(a.inviter_ent_id) else min(a.invitee_ent_id) end ourEntId,
+            case when min(a.ent_id) = #{reqDto.currentEntId} then 1 else 2 end applyTypeCode
         FROM kwm_cooperate a
         LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id
         WHERE a.del_flag = 0
@@ -272,4 +244,73 @@
                 )
     </select>
 
+    <select id="queryAllCooperateInfoList"
+            resultType="com.sckw.manage.model.dto.res.CooperateManageQueryResDto">
+        SELECT a.id,
+               min(a.status) status,
+               group_concat(b.type) types,
+               min(a.ent_id) entId,
+               min(a.invitee_ent_id) inviteeEntId,
+               min(a.inviter_ent_id) inviterEntId,
+               min(a.invitee_contacts) inviteeContacts,
+               min(a.inviter_contacts) inviterContacts,
+               min(a.invitee_contacts_id) inviteeContactsId,
+               min(a.inviter_contacts_id) inviterContactsId,
+               min(a.invitee_phone) inviteePhone,
+               min(a.inviter_phone) inviterPhone,
+               min(b.create_time) createTime,
+               min(b.update_time) updateTime,
+               min(b.create_by) createBy,
+               min(a.remark) remark
+          FROM kwm_cooperate a
+          LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id and b.status = 1 and b.del_flag = 0
+         WHERE a.del_flag = 0
+           and a.status in (1,2)
+        <if test="reqDto.cooperateTypes != null and reqDto.cooperateTypes.size() > 0">
+            and exists (select 1
+                          from kwm_cooperate_type c
+                         where c.cooperate_id = a.id
+                           and c.status = b.status
+                           and c.del_flag = 0
+                           and c.type in
+                        <foreach collection="reqDto.cooperateTypes" item="item" open="(" close=")" separator=",">
+                            #{item}
+                        </foreach>
+                        )
+        </if>
+        <if test="reqDto.startTime != null">
+            and b.create_time >= #{reqDto.startTime}
+        </if>
+        <if test="reqDto.endTime != null">
+            and b.create_time &lt; date_add(#{reqDto.endTime}, INTERVAL 1 DAY)
+        </if>
+        <if test="reqDto.ids != null and reqDto.ids.size() > 0">
+             and a.id in
+            <foreach collection="reqDto.ids" separator="," open="(" close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
+        <if test="reqDto.queryEntIdList != null and reqDto.queryEntIdList.size() > 0">
+            and (a.inviter_ent_id in
+                    <foreach collection="reqDto.queryEntIdList" item="item" open="(" close=")" separator=",">
+                        #{item}
+                    </foreach>
+                    or
+                a.invitee_ent_id in
+                    <foreach collection="reqDto.queryEntIdList" item="item" open="(" close=")" separator=",">
+                        #{item}
+                    </foreach>
+                )
+        </if>
+        <if test="reqDto.keywords != null and (reqDto.queryEntIdList == null or reqDto.queryEntIdList.size() == 0)">
+            and (a.invitee_contacts like concat('%', #{reqDto.keywords}, '%') or
+                 a.inviter_contacts like concat('%', #{reqDto.keywords}, '%') or
+                 a.invitee_phone like concat('%', #{reqDto.keywords}, '%') or
+                 a.inviter_phone like concat('%', #{reqDto.keywords}, '%')
+                )
+        </if>
+        group by a.id
+        order by a.create_time desc
+    </select>
+
 </mapper>

+ 1 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java

@@ -448,6 +448,7 @@ public class KwoTransportDemandService {
                 wrapper.like(KwoTransportDemand::getName, param.getKeywords());
             }
         }
+        wrapper.last("order by RAND()");
         Page<KwoTransportDemand> kwpGoodsPage = kwoTransportDemandMapper.selectPage(page, wrapper);
         List<KwoTransportDemand> list = kwpGoodsPage.getRecords();
         if (CollectionUtils.isEmpty(list)) {

+ 1 - 0
sckw-modules/sckw-order/src/main/resources/mapper/KwoWantBuyMapper.xml

@@ -143,5 +143,6 @@
             <include refid="where" />
         </where>
         group by kb.id
+        order by RAND()
     </select>
 </mapper>

+ 2 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/WalletController.java

@@ -158,7 +158,7 @@ public class WalletController {
      */
     @GetMapping("prePayCount")
     public HttpResult prePayCount(String entName) {
-        return HttpResult.ok(walletService.walletCount(entName));
+        return HttpResult.ok(walletService.prePayCount(entName));
     }
 
     /**
@@ -179,7 +179,7 @@ public class WalletController {
      */
     @GetMapping("preReceiveCount")
     public HttpResult preReceiveCount(String entName) {
-        return HttpResult.ok(walletService.walletCount(entName));
+        return HttpResult.ok(walletService.preReceiveCount(entName));
     }
 
     /**

+ 6 - 10
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/LedgerLogisticsController.java

@@ -4,9 +4,9 @@ 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.vo.LedgerLogistics;
+import com.sckw.payment.model.vo.excel.LedgerLogisticsExport;
 import com.sckw.payment.model.vo.req.LedgerListReq;
 import com.sckw.payment.model.vo.req.LogisticsReq;
-import com.sckw.payment.model.vo.res.LedgerLogisticsVo;
 import com.sckw.payment.service.operate.LedgerLogisticsService;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
@@ -34,14 +34,12 @@ public class LedgerLogisticsController {
 
 
     /**
-     *
-     *
      * @param logisticsReq 物流订单查询参数
      * @return
      */
     @PostMapping("list")
     public HttpResult list(@RequestBody LogisticsReq logisticsReq) {
-        return HttpResult.ok(ledgerLogisticsService.list(logisticsReq));
+        return HttpResult.ok(ledgerLogisticsService.list(logisticsReq, false));
     }
 
     /**
@@ -68,8 +66,6 @@ public class LedgerLogisticsController {
     }
 
     /**
-     *
-     *
      * @param logisticsReq 物流订单查询参数
      * @return 物流对账单统计数据
      */
@@ -90,7 +86,7 @@ public class LedgerLogisticsController {
     public HttpResult export(HttpServletResponse response, @RequestBody LogisticsReq logisticsReq) {
         List<LedgerLogistics> list;
         if (CollectionUtils.isEmpty(logisticsReq.getIdList())) {
-            PageRes<LedgerLogistics> pageResult = ledgerLogisticsService.list(logisticsReq);
+            PageRes<LedgerLogistics> pageResult = ledgerLogisticsService.list(logisticsReq, true);
             list = pageResult.getList();
         } else {
             list = ledgerLogisticsService.selectList(logisticsReq.getIdList());
@@ -98,13 +94,13 @@ public class LedgerLogisticsController {
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }
-        List<LedgerLogisticsVo> collect = list.stream().map(a -> {
-            LedgerLogisticsVo ledgerLogisticsVo = new LedgerLogisticsVo();
+        List<LedgerLogisticsExport> collect = list.stream().map(a -> {
+            LedgerLogisticsExport ledgerLogisticsVo = new LedgerLogisticsExport();
             BeanUtils.copyProperties(a, ledgerLogisticsVo);
             return ledgerLogisticsVo;
         }).collect(Collectors.toList());
 
-        ExcelUtil.downData(response, LedgerLogisticsVo.class, collect);
+        ExcelUtil.downData(response, LedgerLogisticsExport.class, collect);
         return null;
     }
 }

+ 8 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/LedgerTradeController.java

@@ -4,9 +4,9 @@ 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.vo.LedgerSell;
+import com.sckw.payment.model.vo.excel.LedgerTradeExport;
 import com.sckw.payment.model.vo.req.LedgerListReq;
 import com.sckw.payment.model.vo.req.TradeReq;
-import com.sckw.payment.model.vo.res.LedgerTradeVo;
 import com.sckw.payment.service.operate.LedgerTradeService;
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
@@ -33,8 +33,6 @@ public class LedgerTradeController {
 
 
     /**
-     *
-     *
      * @param tradeReq
      * @return
      */
@@ -44,7 +42,6 @@ public class LedgerTradeController {
     }
 
     /**
-     *
      * @param ledgerListReq 对账单id
      * @return
      */
@@ -55,7 +52,6 @@ public class LedgerTradeController {
 
 
     /**
-     *
      * @param id 对账单id
      * @return
      */
@@ -70,12 +66,11 @@ public class LedgerTradeController {
      * @return
      */
     @PostMapping("count")
-    public HttpResult count(@RequestBody  TradeReq tradeReq) {
+    public HttpResult count(@RequestBody TradeReq tradeReq) {
         return HttpResult.ok(ledgerTradeService.orderCount(tradeReq));
     }
 
 
-
     /**
      * 导出 todo
      *
@@ -84,8 +79,8 @@ public class LedgerTradeController {
      * @return
      */
     @PostMapping("export")
-    public HttpResult export(HttpServletResponse response, @RequestBody @Valid TradeReq tradeReq) {
-        List<LedgerSell> list = null;
+    public HttpResult export(HttpServletResponse response, @RequestBody TradeReq tradeReq) {
+        List<LedgerSell> list;
 
         if (CollectionUtils.isEmpty(tradeReq.getIdList())) {
             tradeReq.setPage(0);
@@ -93,18 +88,18 @@ public class LedgerTradeController {
             PageRes<LedgerSell> pageResult = ledgerTradeService.list(tradeReq);
             list = pageResult.getList();
         } else {
-//            list = ledgerTradeService.selectSellList(tradeReq.getIdList());
+            list = ledgerTradeService.queryIds(tradeReq.getIdList());
         }
 
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }
-        List<LedgerTradeVo> collect = list.stream().map(a -> {
-            LedgerTradeVo ledgerTradeVo = new LedgerTradeVo();
+        List<LedgerTradeExport> collect = list.stream().map(a -> {
+            LedgerTradeExport ledgerTradeVo = new LedgerTradeExport();
             BeanUtils.copyProperties(a, ledgerTradeVo);
             return ledgerTradeVo;
         }).collect(Collectors.toList());
-        ExcelUtil.downData(response, LedgerTradeVo.class, collect);
+        ExcelUtil.downData(response, LedgerTradeExport.class, collect);
         return null;
     }
 

+ 23 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/operate/SettlementLogisticsController.java

@@ -3,7 +3,7 @@ package com.sckw.payment.controller.operate;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.payment.model.constant.LogisticsUnitType;
-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.SettlementLogisticsVo;
 import com.sckw.payment.service.operate.SettlementLogisticsService;
@@ -34,21 +34,41 @@ public class SettlementLogisticsController {
     @Resource
     private SettlementLogisticsService settlementLogisticsService;
 
+    /**
+     * 结算列表
+     *
+     * @param settlementReq
+     * @return
+     */
     @PostMapping("list")
     public HttpResult list(@RequestBody @Valid SettlementReq settlementReq) {
         return HttpResult.ok(settlementLogisticsService.list(settlementReq));
     }
 
+    /**
+     * 结算统计
+     *
+     * @param settlementReq
+     * @return
+     */
     @PostMapping("count")
     public HttpResult count(@RequestBody @Valid SettlementReq settlementReq) {
         return HttpResult.ok(settlementLogisticsService.count(settlementReq));
     }
 
+    /**
+     * 导出
+     *
+     * @param response
+     * @param settlementReq
+     * @return
+     */
     @PostMapping("export")
     public HttpResult export(HttpServletResponse response, @RequestBody @Valid SettlementReq settlementReq) {
         settlementReq.setUnitType(LogisticsUnitType.SHIPPER);
-        List<SettlementLogisticsDto> list;
-        list = settlementLogisticsService.selectList(settlementReq);
+        settlementReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
+        List<SettlementLogistics> list;
+        list = settlementLogisticsService.exportList(settlementReq);
         if (CollectionUtils.isEmpty(list)) {
             return HttpResult.error("没有可导出的数据");
         }

+ 7 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java

@@ -68,6 +68,13 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
 
 
     List<LedgerShipperDto> selectShipperIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 运营端通过ids查询,导出数据
+     *
+     * @param ids
+     * @return
+     */
     List<LedgerLogistics> selectIds(@Param("ids") List<Long> ids);
 
     /**

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

@@ -77,4 +77,12 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
     List<String> selectJoin(@Param("entId") Long entId, @Param("entTarget") Long entTarget);
 
     LedgerSize countSize(@Param("entId") Long entId);
+
+    /**
+     * 运营端通过ids查询,导出数据
+     *
+     * @param ids
+     * @return
+     */
+    List<LedgerSell> selectIds(@Param("ids") List<Long> ids);
 }

+ 10 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpSettlementLogisticsMapper.java

@@ -46,6 +46,7 @@ public interface KwpSettlementLogisticsMapper extends BaseMapper<KwpSettlementLo
      * @date 2023-07-24 16:23
      */
     Long getCountList(@Param("settlementReq") SettlementReq settlementReq);
+
     Map<String, Long> count(@Param("settlementReq") SettlementReq settlementReq);
 
     /**
@@ -80,6 +81,15 @@ public interface KwpSettlementLogisticsMapper extends BaseMapper<KwpSettlementLo
      */
     List<SettlementLogisticsDto> selectLogisticsList(@Param("settlementReq") SettlementReq settlementReq, @Param("ids") List<Long> ids);
 
+    /**
+     * 运营端根据条件导出数据
+     *
+     * @param settlementReq
+     * @param ids
+     * @return
+     */
+    List<SettlementLogistics> exportList(@Param("settlementReq") SettlementReq settlementReq, @Param("ids") List<Long> ids);
+
     List<LedgerUnitDto> getListById(@Param("id") Long id);
 
     /**

+ 2 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/constant/PayCenterEnum.java

@@ -32,7 +32,9 @@ public enum PayCenterEnum {
     ADVANCE_PAY_APPLY("/v1/wallet/advancepay/apply", "发起预付"),
     ADVANCE_PAY_INDEX("/v1/wallet/advancepay/index", "预付订单清单"),
     ADVANCE_PAY_WALLETS("/v2/advancepay/wallets", "钱包预付列表"),
+    ADVANCE_PAY_PAY_CHANNELS("/v2/advancepay/pay/channels", "钱包预付通道统计"),
     ADVANCE_PAY_RECEIVE("/v2/advancepay/receives", "钱包预收列表"),
+    ADVANCE_PAY_RECEIVE_CHANNELS("/v2/advancepay/receive/channels", "钱包预收通道统计"),
     ADVANCE_PAY_STATUS("/v1/wallet/advancepay/statusCategory", "预付订单状态"),
     INDEX("/v1/index/index", "获取通道清单"),
     MEMBER_PAY_INDEX("/v1/member/pay/index", "订单记录"),

+ 23 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/wallet/ChannelStatistics.java

@@ -0,0 +1,23 @@
+package com.sckw.payment.model.dto.wallet;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 渠道统计
+ * @author xucaiqin
+ * @date 2023-09-15 14:26:20
+ */
+@NoArgsConstructor
+@Data
+public class ChannelStatistics {
+    @JSONField(name = "uid")
+    private String uid;
+    @JSONField(name = "channel")
+    private String channel;
+    @JSONField(name = "channel_label")
+    private String channelLabel;
+    @JSONField(name = "count")
+    private Integer count;
+}

+ 14 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/LedgerSell.java

@@ -10,7 +10,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
- * 对账-贸易订单 销售方
+ * 对账-贸易订单 运营端
  *
  * @author xucaiqin
  * @date 2023-07-10 18:11:24
@@ -79,14 +79,24 @@ public class LedgerSell implements ILedger {
     private BigDecimal actualPrice;
 
     /**
-     * 对账审核人电话
+     * 对账采购财务联系人名称
+     */
+    private String auditUser;
+
+    /**
+     * 对账采购财务联系人电话
      */
     private String auditPhone;
 
     /**
-     * 对账审核人名称
+     * 对账销售财务联系人名称
      */
-    private String auditUser;
+    private String successUser;
+
+    /**
+     * 对账销售财务联系人电话
+     */
+    private String successPhone;
 
     /**
      * 对账清单凭证

+ 151 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/excel/LedgerLogisticsExport.java

@@ -0,0 +1,151 @@
+package com.sckw.payment.model.vo.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 对账-物流订单-运营端
+ *
+ * @author xucaiqin
+ * @date 2023-07-11 15:17:12
+ */
+@Getter
+@Setter
+@ExcelContext(fileName = "物流对账单表", sheetName = "物流对账单表")
+public class LedgerLogisticsExport {
+    /**
+     * 主键
+     */
+    @ExcelProperty(value = "序号")
+    private Long id;
+    /**
+     * 状态(待对账、对账中、已对账、已完成、已取消、已退回)
+     */
+    @ExcelProperty(value = "状态")
+    private String statusLabel;
+    /**
+     * 物流对账单编号
+     */
+    @ExcelProperty(value = "物流对账单编号")
+    private String lLedgerNo;
+
+    /**
+     * 对账单名称
+     */
+    @ExcelProperty(value = "对账单名称")
+    private String name;
+
+    /**
+     * 托运单位
+     */
+    @ExcelProperty(value = "托运单位")
+    private String shipperFirmName;
+
+    /**
+     * 承运单位
+     */
+    @ExcelProperty(value = "承运单位")
+    private String carrierFirmName;
+
+    /**
+     * 订单数量
+     */
+    @ExcelProperty(value = "订单数量")
+    private Integer orderCount;
+//    /**
+//     * 开始日期
+//     */
+//    @ExcelProperty(value = "开始日期")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    private LocalDateTime startTime;
+//
+//    /**
+//     * 结束日期
+//     */
+//    @ExcelProperty(value = "结束日期")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    private LocalDateTime endTime;
+
+    /**
+     * 付款方式(预付款、货到付款)
+     */
+    @ExcelProperty(value = "付款方式")
+    private String tradingLabel;
+
+    /**
+     * 发票税率(%)
+     */
+    @ExcelProperty(value = "发票税率(%)")
+    private String taxRateLabel;
+
+
+    /**
+     * 总应收/元
+     */
+    @ExcelProperty(value = "总应收/元")
+    private BigDecimal totalPrice;
+
+//    /**
+//     * 实际结算金额
+//     */
+//    @ExcelProperty(value = "实际结算金额")
+//    private BigDecimal settlePrice;
+
+    /**
+     * 已收款/元
+     */
+    @ExcelProperty(value = "已收款/元")
+    private BigDecimal actualPrice;
+
+    /**
+     * 托运方财务联系方式
+     */
+    @ExcelProperty(value = "托运方财务联系方式")
+    private String auditPhone;
+
+    /**
+     * 托运方财务联系人
+     */
+    @ExcelProperty(value = "托运方财务联系人")
+    private String auditUser;
+    /**
+     * 承运方财务联系人
+     */
+    @ExcelProperty(value = "承运方财务联系人")
+    private String successUser;
+    /**
+     * 承运方财务联系方式
+     */
+    @ExcelProperty(value = "承运方财务联系方式")
+    private String successPhone;
+//
+//    /**
+//     * 对账清单凭证
+//     */
+//    @ExcelProperty(value = "对账清单凭证")
+//    private String url;
+    /**
+     * 生成时间
+     */
+    @ExcelProperty(value = "生成时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime generateTime;
+    @ExcelProperty(value = "预计收款日期")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime receiptTime;
+
+    @ExcelProperty(value = "提交人")
+    private String createByName;
+
+}

+ 147 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/excel/LedgerTradeExport.java

@@ -0,0 +1,147 @@
+package com.sckw.payment.model.vo.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 对账-贸易订单 运营端
+ *
+ * @author xucaiqin
+ * @date 2023-07-11 15:17:12
+ */
+@Getter
+@Setter
+@ExcelContext(fileName = "贸易对账单表", sheetName = "贸易对账单表")
+public class LedgerTradeExport {
+    /**
+     * 主键
+     */
+    @ExcelProperty(value = "序号")
+    private Long id;
+    /**
+     * 状态(待对账、对账中、已对账、已完成、已取消、已退回)
+     */
+    @ExcelProperty(value = "状态")
+    private String statusLabel;
+
+    /**
+     * 贸易对账单编号
+     */
+    @ExcelProperty(value = "贸易对账单编号")
+    private String tLedgerNo;
+
+    /**
+     * 对账单名称
+     */
+    @ExcelProperty(value = "对账单名称")
+    private String name;
+
+    /**
+     * 采购单位
+     */
+    @ExcelProperty(value = "采购单位")
+    private String purchaseFirmName;
+    /**
+     * 销售单位
+     */
+    @ExcelProperty(value = "销售单位")
+    private String sellFirmName;
+    /**
+     * 订单数量
+     */
+    @ExcelProperty(value = "订单数量")
+    private Integer orderCount;
+
+
+//    /**
+//     * 开始日期
+//     */
+//    @ExcelProperty(value = "开始日期")
+//    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+//    private LocalDateTime startTime;
+//
+//    /**
+//     * 结束日期
+//     */
+//    @ExcelProperty(value = "结束日期")
+//    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+//    private LocalDateTime endTime;
+    /**
+     * 付款方式(预付款、货到付款)
+     */
+    @ExcelProperty(value = "付款方式")
+    private String tradingLabel;
+
+    /**
+     * 发票税率(%)
+     */
+    @ExcelProperty(value = "发票税率(%)")
+    private String taxRateLabel;
+
+    /**
+     * 总应收/元
+     */
+    @ExcelProperty(value = "总应收/元")
+    private BigDecimal totalPrice;
+
+//    /**
+//     * 实际结算金额
+//     */
+//    @ExcelProperty(value = "实际结算金额")
+//    private BigDecimal settlePrice;
+
+    /**
+     * 已收款/元
+     */
+    @ExcelProperty(value = "已收款/元")
+    private BigDecimal actualPrice;
+
+    /**
+     * 对账采购财务联系人名称
+     */
+    @ExcelProperty(value = "采购财务联系人")
+    private String auditUser;
+
+    /**
+     * 对账采购财务联系人电话
+     */
+    @ExcelProperty(value = "采购财务联系方式")
+    private String auditPhone;
+
+    /**
+     * 对账销售财务联系人名称
+     */
+    @ExcelProperty(value = "销售财务联系人")
+    private String successUser;
+
+    /**
+     * 对账销售财务联系人电话
+     */
+    @ExcelProperty(value = "销售财务联系方式")
+    private String successPhone;
+
+    /**
+     * 预计收款日期
+     */
+    @ExcelProperty(value = "预计收款日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime receiptTime;
+    /**
+     * 提交人
+     */
+    @ExcelProperty(value = "提交人")
+    private String createByName;
+
+    /**
+     * 生成时间
+     */
+    @ExcelProperty(value = "生成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime generateTime;
+}

+ 31 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/PayCenterService.java

@@ -609,6 +609,21 @@ public class PayCenterService {
         });
     }
 
+    /**
+     * 钱包预付通道统计
+     *
+     * @param uid
+     * @param filter
+     * @return
+     */
+    public R<List<ChannelStatistics>> advancePayWalletChannels(String uid, String filter) {
+        String sync = getHttp(PayCenterEnum.ADVANCE_PAY_PAY_CHANNELS, new HashMap<>() {{
+            put("uid", uid);
+            put("filter", filter);
+        }});
+        return parseArray(sync, ChannelStatistics.class);
+    }
+
     /**
      * 钱包预收列表
      *
@@ -631,6 +646,22 @@ public class PayCenterService {
         });
     }
 
+    /**
+     * 钱包预收通道统计
+     *
+     * @param uid
+     * @param filter
+     * @return
+     */
+    public R<PrePayWalletPage> advancePayReceiveChannels(String uid, String filter) {
+        String sync = getHttp(PayCenterEnum.ADVANCE_PAY_RECEIVE_CHANNELS, new HashMap<>() {{
+            put("uid", uid);
+            put("filter", filter);
+        }});
+        return JSONObject.parseObject(sync, new TypeReference<>() {
+        });
+    }
+
     /**
      * 预付订单状态
      *

+ 98 - 6
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java

@@ -28,6 +28,7 @@ import com.sckw.payment.model.dto.common.BusinessNo;
 import com.sckw.payment.model.dto.page.CashPage;
 import com.sckw.payment.model.dto.page.PrePayWalletPage;
 import com.sckw.payment.model.dto.wallet.*;
+import com.sckw.payment.model.dto.wallet.ChannelStatistics;
 import com.sckw.payment.model.vo.PrePayWalletVo;
 import com.sckw.payment.model.vo.req.*;
 import com.sckw.payment.model.vo.res.*;
@@ -186,9 +187,7 @@ public class WalletService {
     private void transferMoney(FundVo fundVo) {
         DecimalFormat df = new DecimalFormat("0.00");
         LambdaQueryWrapper<KwpWalletTransfer> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwpWalletTransfer::getUid, fundVo.getUid())
-                .eq(KwpWalletTransfer::getFilter, fundVo.getFilter()).eq(KwpWalletTransfer::getChannel, fundVo.getChannel())
-                .eq(KwpWalletTransfer::getStatus, TransferEnum.TRANSFERRING.getStatus()).last("limit 1");
+        wrapper.eq(KwpWalletTransfer::getUid, fundVo.getUid()).eq(KwpWalletTransfer::getFilter, fundVo.getFilter()).eq(KwpWalletTransfer::getChannel, fundVo.getChannel()).eq(KwpWalletTransfer::getStatus, TransferEnum.TRANSFERRING.getStatus()).last("limit 1");
         KwpWalletTransfer kwpWalletTransfer = kwpWalletTransferMapper.selectOne(wrapper);
         if (Objects.nonNull(kwpWalletTransfer)) {
             fundVo.setTransferMoney(df.format(kwpWalletTransfer.getMoney()));
@@ -310,8 +309,7 @@ public class WalletService {
                     }
                 }
             }
-            return new WalletDetail(LoginUserHolder.getEntName(), String.valueOf(data.getTotalMoney() / 100D), String.valueOf(data.getChargingMoney()),
-                    String.valueOf(data.getWdingMoney()), data.getChannelTotal(), channelDetails);
+            return new WalletDetail(LoginUserHolder.getEntName(), String.valueOf(data.getTotalMoney() / 100D), String.valueOf(data.getChargingMoney()), String.valueOf(data.getWdingMoney()), data.getChannelTotal(), channelDetails);
         }
         return new WalletDetail(LoginUserHolder.getEntName(), "-", "-", "-", 0, new ArrayList<>());
     }
@@ -450,7 +448,7 @@ public class WalletService {
         if (StringUtils.isBlank(filter)) {
             throw new BusinessException("合作单位暂未开通电子钱包");
         }
-        ChannelEnum channelEnum = ChannelEnum.getByChannel(addWalletReq.getChannel());
+        ChannelEnum channelEnum = ChannelEnum.getByValue(addWalletReq.getChannel());
         if (Objects.isNull(channelEnum)) {
             throw new BusinessException("支付通道不存在");
         }
@@ -716,6 +714,53 @@ public class WalletService {
 
     }
 
+    /**
+     * 预付列表钱包统计
+     *
+     * @param entName
+     * @return
+     */
+    public List<ChannelCount> prePayCount(String entName) {
+        Long entId = LoginUserHolder.getEntId();
+        String uid = walletRelationService.getRelation(entId);
+        if (StringUtils.isBlank(uid)) {
+            throw new BusinessException("暂未开通电子钱包");
+        }
+        List<String> filterList = new ArrayList<>();
+        //筛选指定企业的数据
+        if (StringUtils.isNotBlank(entName)) {
+            filterList = findFilter(entName);
+        }
+        List<ChannelCount> channelDetails = new ArrayList<>();
+        //查询预付订单渠道统计数据
+        R<List<ChannelStatistics>> listR = payCenterService.advancePayWalletChannels(uid, StringUtils.join(filterList, ","));
+        Map<String, Integer> mapCount;
+        if (listR.getStatus()) {
+            List<ChannelStatistics> data = listR.getData();
+            if (!CollectionUtils.isEmpty(data)) {
+                mapCount = data.stream().collect(Collectors.toMap(ChannelStatistics::getChannel, ChannelStatistics::getCount, (k, v) -> k));
+            } else {
+                mapCount = new HashMap<>();
+            }
+            mapCount.compute("all", (k, v) -> {
+                Integer sum = 0;
+                for (Map.Entry<String, Integer> map : mapCount.entrySet()) {
+                    sum += map.getValue();
+                }
+                return sum;
+            });
+        } else {
+            mapCount = new HashMap<>();
+        }
+        ChannelCount channelCount;
+        for (WalletChannelEnum value : WalletChannelEnum.values()) {
+            Integer integer = mapCount.get(value.getChannel());
+            channelCount = new ChannelCount(value.getValue(), value.getDesc(), value.getChannel(), Objects.isNull(integer) ? 0 : integer);
+            channelDetails.add(channelCount);
+        }
+        return channelDetails;
+    }
+
     /**
      * 预收列表
      *
@@ -771,6 +816,53 @@ public class WalletService {
         return new PageRes<>(prePayPage.getPage(), prePayPage.getPageSize(), 0, 0, new ArrayList<>());
     }
 
+    /**
+     * 预收列表钱包统计
+     *
+     * @param entName
+     * @return
+     */
+    public List<ChannelCount> preReceiveCount(String entName) {
+        Long entId = LoginUserHolder.getEntId();
+        String uid = walletRelationService.getRelation(entId);
+        if (StringUtils.isBlank(uid)) {
+            throw new BusinessException("暂未开通电子钱包");
+        }
+        List<String> filterList = new ArrayList<>();
+        //筛选指定企业的数据
+        if (StringUtils.isNotBlank(entName)) {
+            filterList = findFilter(entName);
+        }
+        List<ChannelCount> channelDetails = new ArrayList<>();
+        //查询预付订单渠道统计数据
+        R<List<ChannelStatistics>> listR = payCenterService.advancePayWalletChannels(uid, StringUtils.join(filterList, ","));
+        Map<String, Integer> mapCount;
+        if (listR.getStatus()) {
+            List<ChannelStatistics> data = listR.getData();
+            if (!CollectionUtils.isEmpty(data)) {
+                mapCount = data.stream().collect(Collectors.toMap(ChannelStatistics::getChannel, ChannelStatistics::getCount, (k, v) -> k));
+            } else {
+                mapCount = new HashMap<>();
+            }
+            mapCount.compute("all", (k, v) -> {
+                Integer sum = 0;
+                for (Map.Entry<String, Integer> map : mapCount.entrySet()) {
+                    sum += map.getValue();
+                }
+                return sum;
+            });
+        } else {
+            mapCount = new HashMap<>();
+        }
+        ChannelCount channelCount;
+        for (WalletChannelEnum value : WalletChannelEnum.values()) {
+            Integer integer = mapCount.get(value.getChannel());
+            channelCount = new ChannelCount(value.getValue(), value.getDesc(), value.getChannel(), Objects.isNull(integer) ? 0 : integer);
+            channelDetails.add(channelCount);
+        }
+        return channelDetails;
+    }
+
     /**
      * 预付校验
      *

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

@@ -12,6 +12,7 @@ import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
 import com.sckw.payment.model.KwpLedgerLogistics;
 import com.sckw.payment.model.KwpLedgerLogisticsOrder;
 import com.sckw.payment.model.constant.LedgerEnum;
+import com.sckw.payment.model.constant.LogisticsUnitType;
 import com.sckw.payment.model.dto.ILedger;
 import com.sckw.payment.model.vo.LedgerLogistics;
 import com.sckw.payment.model.vo.req.LedgerListReq;
@@ -91,9 +92,13 @@ public class LedgerLogisticsService extends AbsLedger {
      * @param logisticsReq
      * @return 托运方对账订单分页数据
      */
-    public PageRes<LedgerLogistics> list(LogisticsReq logisticsReq) {
+    public PageRes<LedgerLogistics> list(LogisticsReq logisticsReq,boolean export) {
         fillPara(logisticsReq);
-        PageHelper.startPage(logisticsReq.getPage(), logisticsReq.getPageSize());
+        logisticsReq.setUnitType(LogisticsUnitType.SHIPPER);
+        logisticsReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
+        if(!export){
+            PageHelper.startPage(logisticsReq.getPage(), logisticsReq.getPageSize());
+        }
         List<LedgerLogistics> kwpLedgerLogisticsList = logisticsMapper.list(logisticsReq);
         PageInfo<LedgerLogistics> ledgerShipperDtoPageInfo = new PageInfo<>(kwpLedgerLogisticsList);
         //字典转换

+ 46 - 52
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/LedgerTradeService.java

@@ -18,7 +18,6 @@ import com.sckw.payment.model.KwpLedgerTradeOrder;
 import com.sckw.payment.model.constant.LedgerEnum;
 import com.sckw.payment.model.constant.TradeUnitType;
 import com.sckw.payment.model.dto.ILedger;
-import com.sckw.payment.model.dto.LedgerSellDto;
 import com.sckw.payment.model.dto.OrderDto;
 import com.sckw.payment.model.vo.LedgerSell;
 import com.sckw.payment.model.vo.req.LedgerListReq;
@@ -142,56 +141,6 @@ public class LedgerTradeService extends AbsLedger {
         return res;
     }
 
-    /**
-     * 根据id查询对账单列表
-     *
-     * @param ids 对账单id列表
-     * @return 对账单数据
-     */
-    public List<LedgerSellDto> selectSellList(List<Long> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
-            return new ArrayList<>();
-        }
-        List<LedgerSellDto> ledgerTradeDto = tradeMapper.selectSellIds(ids);
-        changeDict(ledgerTradeDto);
-        return ledgerTradeDto;
-    }
-
-    private LedgerTradeDetailVo getDetail(KwpLedgerTrade ledgerTradeDto) {
-        List<KwpLedgerTradeOrder> kwpLedgerTradeOrders = tradeOrderService.queryList(ledgerTradeDto.getId());
-        LedgerTradeDetailVo ledgerTradeDetailVo = new LedgerTradeDetailVo();
-        ledgerTradeDetailVo.setId(ledgerTradeDto.getId());
-        ledgerTradeDetailVo.setTLedgerNo(ledgerTradeDto.getTLedgerNo());
-        ledgerTradeDetailVo.setName(ledgerTradeDto.getName());
-        SysDictResDto trading = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRADE_TYPE.getType(), ledgerTradeDto.getTrading());
-        ledgerTradeDetailVo.setTrading(ledgerTradeDto.getTrading());
-        ledgerTradeDetailVo.setTradingLabel(Objects.nonNull(trading) ? trading.getLabel() : "");
-        SysDictResDto taxRate = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE.getType(), String.valueOf(ledgerTradeDto.getTaxRate()));
-        ledgerTradeDetailVo.setTaxRate(ledgerTradeDto.getTaxRate());
-        ledgerTradeDetailVo.setTaxRateLabel(Objects.nonNull(taxRate) ? taxRate.getLabel() : "");
-        ledgerTradeDetailVo.setTotalPrice(ledgerTradeDto.getTotalPrice());
-        ledgerTradeDetailVo.setSettlePrice(ledgerTradeDto.getSettlePrice());
-        ledgerTradeDetailVo.setActualPrice(ledgerTradeDto.getActualPrice());
-        ledgerTradeDetailVo.setStartTime(ledgerTradeDto.getStartTime());
-        ledgerTradeDetailVo.setEndTime(ledgerTradeDto.getEndTime());
-        ledgerTradeDetailVo.setRemark(ledgerTradeDto.getRemark());
-        List<Long> collect = kwpLedgerTradeOrders.stream().map(KwpLedgerTradeOrder::getTOrderId).toList();
-        List<OrderDto> detailRes = new ArrayList<>();
-        OrderDetailRes orderDetailById;
-        //查询贸易订单详情
-        for (Long aLong : collect) {
-            try {
-                orderDetailById = tradeOrderInfoService.getOrderDetailById(aLong);
-            } catch (Exception e) {
-                log.error("不存在该订单!tradeOrderInfoService.getOrderDetailById({})", aLong, e);
-                continue;
-            }
-            detailRes.add(changeOrder(orderDetailById));
-        }
-        ledgerTradeDetailVo.setOrderList(detailRes);
-        return ledgerTradeDetailVo;
-    }
-
     private OrderDto changeOrder(OrderDetailRes orderDetailRes) {
         OrderDto orderDto = new OrderDto();
         BeanUtils.copyProperties(orderDetailRes, orderDto);
@@ -249,6 +198,41 @@ public class LedgerTradeService extends AbsLedger {
         return orderDto;
     }
 
+    private LedgerTradeDetailVo getDetail(KwpLedgerTrade ledgerTradeDto) {
+        List<KwpLedgerTradeOrder> kwpLedgerTradeOrders = tradeOrderService.queryList(ledgerTradeDto.getId());
+        LedgerTradeDetailVo ledgerTradeDetailVo = new LedgerTradeDetailVo();
+        ledgerTradeDetailVo.setId(ledgerTradeDto.getId());
+        ledgerTradeDetailVo.setTLedgerNo(ledgerTradeDto.getTLedgerNo());
+        ledgerTradeDetailVo.setName(ledgerTradeDto.getName());
+        SysDictResDto trading = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRADE_TYPE.getType(), ledgerTradeDto.getTrading());
+        ledgerTradeDetailVo.setTrading(ledgerTradeDto.getTrading());
+        ledgerTradeDetailVo.setTradingLabel(Objects.nonNull(trading) ? trading.getLabel() : "");
+        SysDictResDto taxRate = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE.getType(), String.valueOf(ledgerTradeDto.getTaxRate()));
+        ledgerTradeDetailVo.setTaxRate(ledgerTradeDto.getTaxRate());
+        ledgerTradeDetailVo.setTaxRateLabel(Objects.nonNull(taxRate) ? taxRate.getLabel() : "");
+        ledgerTradeDetailVo.setTotalPrice(ledgerTradeDto.getTotalPrice());
+        ledgerTradeDetailVo.setSettlePrice(ledgerTradeDto.getSettlePrice());
+        ledgerTradeDetailVo.setActualPrice(ledgerTradeDto.getActualPrice());
+        ledgerTradeDetailVo.setStartTime(ledgerTradeDto.getStartTime());
+        ledgerTradeDetailVo.setEndTime(ledgerTradeDto.getEndTime());
+        ledgerTradeDetailVo.setRemark(ledgerTradeDto.getRemark());
+        List<Long> collect = kwpLedgerTradeOrders.stream().map(KwpLedgerTradeOrder::getTOrderId).toList();
+        List<OrderDto> detailRes = new ArrayList<>();
+        OrderDetailRes orderDetailById;
+        //查询贸易订单详情
+        for (Long aLong : collect) {
+            try {
+                orderDetailById = tradeOrderInfoService.getOrderDetailById(aLong);
+            } catch (Exception e) {
+                log.error("不存在该订单!tradeOrderInfoService.getOrderDetailById({})", aLong, e);
+                continue;
+            }
+            detailRes.add(changeOrder(orderDetailById));
+        }
+        ledgerTradeDetailVo.setOrderList(detailRes);
+        return ledgerTradeDetailVo;
+    }
+
     /**
      * 查询对账单详情
      *
@@ -277,5 +261,15 @@ public class LedgerTradeService extends AbsLedger {
         return PageRes.build(pageInfo, detailRes);
     }
 
-
+    /**
+     * 运营端通过ids查询需要导出的数据
+     *
+     * @param idList
+     * @return
+     */
+    public List<LedgerSell> queryIds(List<Long> idList) {
+        List<LedgerSell> ledgerSells = tradeMapper.selectIds(idList);
+        changeDict(ledgerSells);
+        return ledgerSells;
+    }
 }

+ 2 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/operate/SettlementLogisticsService.java

@@ -9,7 +9,6 @@ import com.sckw.core.utils.StringTimeUtil;
 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.SettlementLogisticsSumVo;
@@ -77,9 +76,9 @@ public class SettlementLogisticsService {
     }
 
 
-    public List<SettlementLogisticsDto> selectList(SettlementReq settlementReq) {
+    public List<SettlementLogistics> exportList(SettlementReq settlementReq) {
         validSettlementReq(settlementReq);
-        return settlementLogisticsMapper.selectLogisticsList(settlementReq, settlementReq.getIdList());
+        return settlementLogisticsMapper.exportList(settlementReq, settlementReq.getIdList());
     }
 
 

+ 50 - 5
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/DateTimeUtil.java

@@ -13,13 +13,14 @@ import java.time.format.DateTimeFormatter;
  * @create: 2022-01-27 16:04
  **/
 public class DateTimeUtil {
-    public static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
-    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);
+    public static final String YMD = "yyyy-MM-dd";
+    public static final String HMS = "HH:mm:ss";
+    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern(YMD + " " + HMS);
     public static final DateTimeFormatter YYYYMMDDHHMMSS = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern("HH:mm:ss");
-    
+    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern(YMD);
+    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern(HMS);
 
+    /*格式化*/
 
     /**
      * 当前时间的前一个星期
@@ -30,6 +31,15 @@ public class DateTimeUtil {
         return YYYY_MM_DD_HH_MM_SS.format(localDateTime);
     }
 
+    public static String formatYMD(LocalDate localDate) {
+        return YYYY_MM_DD.format(localDate);
+    }
+
+    public static String formatYMD(LocalDateTime localDateTime) {
+        return YYYY_MM_DD.format(localDateTime);
+    }
+    /*月差计算*/
+
     /**
      * 从当前日期计算月数差
      *
@@ -40,6 +50,24 @@ public class DateTimeUtil {
         return getComputeMonth(LocalDate.now(), months);
     }
 
+    /**
+     * 从当前日期计算月数差
+     *
+     * @param months 加或减的月数
+     * @return yyyy-MM-dd
+     */
+    public static String getComputeMonthStr(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
+    public static String getComputeMonthStartDay(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
+    public static String getComputeMonthEndDay(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
     /**
      * 从给定的日期计算月数差
      *
@@ -84,6 +112,17 @@ public class DateTimeUtil {
     public static LocalDateTime getComputeMonthEnd(long months, long offset) {
         return LocalDateTime.of(getComputeMonth(months), LocalTime.MAX).plusDays(offset);
     }
+    /*天差计算*/
+
+    /**
+     * 从当前时间,计算天数差
+     *
+     * @param days 加或减的天数
+     * @return yyyy-MM-dd
+     */
+    public static String getComputeDaysStr(long days) {
+        return formatYMD(getComputeDays(days));
+    }
 
     /**
      * 从当前时间,计算天数差
@@ -155,4 +194,10 @@ public class DateTimeUtil {
     public static LocalDateTime todayEnd() {
         return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
     }
+
+    public static void main(String[] args) {
+
+        System.out.println(getComputeDaysStr(0));
+        System.out.println(getComputeMonthStart(1, 0));
+    }
 }

+ 64 - 54
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml

@@ -152,32 +152,38 @@
     </select>
     <select id="list" resultType="com.sckw.payment.model.vo.LedgerLogistics">
         SELECT kll.id,
-               MAX(kll.l_ledger_no)                                                 AS lLedgerNo,
-               MAX(kll.name)                                                        AS name,
-               MAX(kll.start_time)                                                  AS startTime,
-               MAX(kll.end_time)                                                    AS endTime,
-               MAX(kll.tax_rate)                                                    AS taxRate,
-               MAX(kll.trading)                                                     AS trading,
-               MAX(kll.total_price)                                                 AS totalPrice,
-               MAX(kll.ex_tax_price)                                                AS exTaxPrice,
-               MAX(kll.settle_price)                                                AS settlePrice,
-               MAX(kll.actual_price)                                                AS actualPrice,
-               MAX(kll.success_phone)                                               AS successPhone,
-               MAX(kll.success_user)                                                AS successUser,
-               MAX(kll.url)                                                         AS url,
-               MAX(kll.generate_time)                                               AS generateTime,
-               MAX(kll.receipt_time)                                                AS receiptTime,
-               MAX(kll.remark)                                                      AS remark,
-               MAX(kll.status)                                                      AS status,
-               MAX(kll.order_count)                                                 AS orderCount,
-               MAX(kll.create_by)                                                   AS createBy,
-               MAX(CASE WHEN kllu.unit_type = 1 THEN kllu.top_ent_id ELSE NULL END) AS shipperEntId,
-               MAX(CASE WHEN kllu.unit_type = 1 THEN kllu.firm_name ELSE NULL END)  AS shipperFirmName,
-               MAX(CASE WHEN kllu.unit_type = 2 THEN kllu.top_ent_id ELSE NULL END) AS carrierEntId,
-               MAX(CASE WHEN kllu.unit_type = 2 THEN kllu.firm_name ELSE NULL END)  AS carrierFirmName
+               kll.l_ledger_no   AS lLedgerNo,
+               kll.name          AS name,
+               kll.start_time    AS startTime,
+               kll.end_time      AS endTime,
+               kll.tax_rate      AS taxRate,
+               kll.trading       AS trading,
+               kll.total_price   AS totalPrice,
+               kll.ex_tax_price  AS exTaxPrice,
+               kll.settle_price  AS settlePrice,
+               kll.actual_price  AS actualPrice,
+               kll.audit_phone      auditPhone,
+               kll.audit_user       auditUser,
+               kll.success_phone AS successPhone,
+               kll.success_user  AS successUser,
+               kll.url           AS url,
+               kll.generate_time AS generateTime,
+               kll.receipt_time  AS receiptTime,
+               kll.remark        AS remark,
+               kll.status        AS status,
+               kll.order_count   AS orderCount,
+               kll.create_by     AS createBy,
+               kllu.top_ent_id   AS shipperEntId,
+               kllu.firm_name    AS shipperFirmName,
+               kllu2.top_ent_id  AS carrierEntId,
+               kllu2.firm_name   AS carrierFirmName
         FROM kwp_ledger_logistics kll
-                 INNER JOIN kwp_ledger_logistics_unit kllu
-                            ON kll.id = kllu.l_ledger_id AND kllu.del_flag = 0
+                 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
             <if test="logisticsReq.status != null">
@@ -194,41 +200,47 @@
                 and (
                             kll.l_ledger_no like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                         or kllu.firm_name like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu2.firm_name like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                         or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                     )
             </if>
         </where>
-        GROUP BY kll.id
-        order by generateTime desc
+        order by kll.generate_time desc
     </select>
     <select id="selectIds" resultType="com.sckw.payment.model.vo.LedgerLogistics">
         SELECT kll.id,
-               MAX(kll.l_ledger_no)                                                 AS lLedgerNo,
-               MAX(kll.name)                                                        AS name,
-               MAX(kll.start_time)                                                  AS startTime,
-               MAX(kll.end_time)                                                    AS endTime,
-               MAX(kll.tax_rate)                                                    AS taxRate,
-               MAX(kll.trading)                                                     AS trading,
-               MAX(kll.total_price)                                                 AS totalPrice,
-               MAX(kll.ex_tax_price)                                                AS exTaxPrice,
-               MAX(kll.settle_price)                                                AS settlePrice,
-               MAX(kll.actual_price)                                                AS actualPrice,
-               MAX(kll.success_phone)                                               AS successPhone,
-               MAX(kll.success_user)                                                AS successUser,
-               MAX(kll.url)                                                         AS url,
-               MAX(kll.generate_time)                                               AS generateTime,
-               MAX(kll.receipt_time)                                                AS receiptTime,
-               MAX(kll.remark)                                                      AS remark,
-               MAX(kll.status)                                                      AS status,
-               MAX(kll.order_count)                                                 AS orderCount,
-               MAX(kll.create_by)                                                   AS createBy,
-               MAX(CASE WHEN kllu.unit_type = 1 THEN kllu.top_ent_id ELSE NULL END) AS shipperEntId,
-               MAX(CASE WHEN kllu.unit_type = 1 THEN kllu.firm_name ELSE NULL END)  AS shipperFirmName,
-               MAX(CASE WHEN kllu.unit_type = 2 THEN kllu.top_ent_id ELSE NULL END) AS carrierEntId,
-               MAX(CASE WHEN kllu.unit_type = 2 THEN kllu.firm_name ELSE NULL END)  AS carrierFirmName
+               kll.l_ledger_no   AS lLedgerNo,
+               kll.name          AS name,
+               kll.start_time    AS startTime,
+               kll.end_time      AS endTime,
+               kll.tax_rate      AS taxRate,
+               kll.trading       AS trading,
+               kll.total_price   AS totalPrice,
+               kll.ex_tax_price  AS exTaxPrice,
+               kll.settle_price  AS settlePrice,
+               kll.actual_price  AS actualPrice,
+               kll.audit_phone      auditPhone,
+               kll.audit_user       auditUser,
+               kll.success_phone AS successPhone,
+               kll.success_user  AS successUser,
+               kll.url           AS url,
+               kll.generate_time AS generateTime,
+               kll.receipt_time  AS receiptTime,
+               kll.remark        AS remark,
+               kll.status        AS status,
+               kll.order_count   AS orderCount,
+               kll.create_by     AS createBy,
+               kllu.top_ent_id   AS shipperEntId,
+               kllu.firm_name    AS shipperFirmName,
+               kllu2.top_ent_id  AS carrierEntId,
+               kllu2.firm_name   AS carrierFirmName
         FROM kwp_ledger_logistics kll
-                 INNER JOIN kwp_ledger_logistics_unit kllu
-                            ON kll.id = kllu.l_ledger_id AND kllu.del_flag = 0
+                 inner join kwp_ledger_logistics_unit kllu
+                            on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
+                               kllu.unit_type = 1
+                 inner join kwp_ledger_logistics_unit kllu2
+                            on kll.id = kllu2.l_ledger_id and kllu2.del_flag = 0 and
+                               kllu2.unit_type = 2
         <where>
             kll.del_flag = 0
               and kll.id in
@@ -236,8 +248,6 @@
                 #{id,jdbcType=BIGINT}
             </foreach>
         </where>
-        GROUP BY kll.id
-        order by generateTime desc
     </select>
     <select id="countSum" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
         select IFNULL(count(1), 0)  "ledgerCount",

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

@@ -166,6 +166,8 @@
                klt.actual_price  actualPrice,
                klt.audit_phone   auditPhone,
                klt.audit_user    auditUser,
+               klt.success_user  successUser,
+               klt.success_phone successPhone,
                klt.url,
                klt.generate_time generateTime,
                klt.receipt_time  receiptTime,
@@ -215,6 +217,47 @@
         </where>
         order by klt.generate_time desc
     </select>
+   <select id="selectIds" resultType="com.sckw.payment.model.vo.LedgerSell">
+       select klt.id,
+              klt.t_ledger_no   tLedgerNo,
+              klt.name,
+              klt.start_time    startTime,
+              klt.end_time      endTime,
+              klt.tax_rate      taxRate,
+              klt.trading,
+              klt.total_price   totalPrice,
+              klt.ex_tax_price  exTaxPrice,
+              klt.settle_price  settlePrice,
+              klt.actual_price  actualPrice,
+              klt.audit_phone   auditPhone,
+              klt.audit_user    auditUser,
+              klt.success_user  successUser,
+              klt.success_phone successPhone,
+              klt.url,
+              klt.generate_time generateTime,
+              klt.receipt_time  receiptTime,
+              klt.remark,
+              klt.status,
+              klt.create_by     createBy,
+              kltu.contacts,
+              kltu.phone,
+              kltu.firm_name    purchaseFirmName,
+              kltu2.firm_name   sellFirmName,
+              klt.order_count   orderCount
+       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 = 1
+                inner join kwp_ledger_trade_unit kltu2
+                           on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type = 2
+       <where>
+           klt.del_flag = 0
+             and klt.id in
+           <foreach collection="ids" item="id" close=")" open="(" separator=",">
+               #{id,jdbcType=BIGINT}
+           </foreach>
+       </where>
+   </select>
     <select id="purchaseList" resultType="com.sckw.payment.model.dto.LedgerPurchaseDto">
         select
         <include refid="purchase_col"/>

+ 73 - 6
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml

@@ -250,10 +250,10 @@
             </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}, '%')
-                )
+                    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
@@ -282,9 +282,9 @@
         from kwp_settlement_logistics ksl
                  inner join kwp_ledger_logistics l on ksl.l_ledger_id = l.id and l.del_flag = 0
                  inner join kwp_ledger_logistics_unit lu on ksl.l_ledger_id = lu.l_ledger_id and lu.del_flag = 0
-        and lu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+            and lu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
                  inner join kwp_ledger_logistics_unit lu2 on ksl.l_ledger_id = lu2.l_ledger_id and lu2.del_flag = 0
-        and lu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+            and lu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
         <where>
             ksl.del_flag = 0
             <if test="settlementReq.status != null and settlementReq.status != 0">
@@ -359,6 +359,73 @@
         </where>
         order by s.update_time desc
     </select>
+    <select id="exportList" 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.total_price - s.actual_price as waitPrice,
+               l.settle_price                 as settlePrice,
+               l.name,
+               l.l_ledger_no                  as lLedgerNo,
+               l.trading                      as trading,
+               l.url,
+               lu.firm_name                   as shipperFirmName,
+               lu2.firm_name                  as carrierFirmName,
+               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.receipt_time                 as receiptTime,
+               s.create_by                    as createBy,
+               s.create_time                  as createTime,
+               s.update_by                    as updateBy,
+               s.update_time                  as updateTime
+        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
+            <choose>
+                <when test="ids != null and ids.size() > 0">
+                    and s.id in
+                    <foreach collection="ids" item="id" close=")" open="(" separator=",">
+                        #{id,jdbcType=BIGINT}
+                    </foreach>
+                </when>
+                <otherwise>
+                    <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>
+                </otherwise>
+            </choose>
+        </where>
+        order by s.update_time desc
+    </select>
 
     <select id="getListById" resultType="com.sckw.payment.model.dto.LedgerUnitDto">
         select kltu.top_ent_id,

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

@@ -298,7 +298,6 @@
                                                            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}, '%')

+ 1 - 3
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -804,9 +804,7 @@ public class KwpGoodsService {
                 wrapper.like(KwpGoods::getName, params.getKeywords());
             }
         }
-        // sql语句中添加一个随机数,这样每次产生的sql就会不一样,导致取到不一样key,进而使this.localCache.getObject(key)为空
-        // 这样就可以让mybatis每次都进行数据库查询,从而达到禁用一级缓存的目的
-        wrapper.apply("{0} = {0}", UUIDUtils.get32UUID());
+        wrapper.last("order by RAND()");
         Page<KwpGoods> kwpGoodsPage = kwpGoodsMapper.selectPage(page, wrapper);
         List<KwpGoods> list = kwpGoodsPage.getRecords();
         if (CollectionUtils.isEmpty(list)) {

+ 0 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java

@@ -1,6 +1,5 @@
 package com.sckw.system.controller;
 
-import com.sckw.core.exception.SystemException;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.KwsEnterprise;

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindPojoParam.java

@@ -68,4 +68,9 @@ public class FindPojoParam extends PageRequest {
      */
     private Long entId;
 
+    /**
+     * 查企业客户
+     */
+    private Integer customer;
+
 }

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java

@@ -94,4 +94,9 @@ public class EntFindPageReqVo extends PageRequest implements Serializable {
      */
     private Long entId;
 
+    /**
+     * 查企业客户
+     */
+    private Integer customer;
+
 }

+ 17 - 8
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -96,14 +96,20 @@
     left join kws_user k on a.create_by = k.id
     left join kws_user ku on a.update_by = ku.id
     left join kws_ent_type b on a.id = b.ent_id and b.del_flag = 0
-    left join kws_ent_dept c on a.id = c.ent_id
+    left join kws_ent_dep c on a.id = c.ent_id
     left join kws_enterprise d on c.ent_pid = d.id
-    <if test="dto.typeList != null and dto.typeList.size() > 0">and b.type in
-      <foreach collection="dto.typeList" item="item" open="(" close=")" separator=",">
-        #{item}
-      </foreach>
-    </if>
     where a.del_flag = 0
+      <if test="dto.typeList != null and dto.typeList.size() > 0">
+        and exists (select 1
+                      from kws_ent_type kt
+                     where a.id = kt.ent_id
+                       and kt.del_flag = 0
+                       and kt.type in
+                      <foreach collection="dto.typeList" item="item" open="(" close=")" separator=",">
+                          #{item}
+                      </foreach>
+                  )
+      </if>
       <choose>
         <when test="dto.approval != null and dto.approval == 3">
           and a.approval in (3,4)
@@ -112,6 +118,9 @@
           and a.approval = #{dto.approval}
         </when>
       </choose>
+      <if test="dto.customer != null and dto.customer == 1">
+        and a.approval in (1, 4)
+      </if>
     <if test="dto.keywords != null">
       and (a.contacts like concat('%', #{dto.keywords}, '%') or a.phone like concat('%', #{dto.keywords}, '%') or a.firm_name like concat('%', #{dto.keywords}, '%'))
     </if>
@@ -130,10 +139,10 @@
     <if test="dto.status != null and dto.status != ''">
       and a.status = #{dto.status}
     </if>
-    <if test="dto.entryType != null and dto.entryType == '1'">
+    <if test="dto.entryType != null and dto.entryType == 1">
       and k.system_type = 2
     </if>
-    <if test="dto.entryType != null and dto.entryType == '2'">
+    <if test="dto.entryType != null and dto.entryType == 2">
       and k.system_type = 1
     </if>
     <choose>