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

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

zk 2 лет назад
Родитель
Сommit
296abcbbe3
44 измененных файлов с 1013 добавлено и 95 удалено
  1. 13 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 25 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/JacksonConfig.java
  3. 2 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java
  4. 11 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/page/PageHelperUtil.java
  5. 2 1
      sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  6. 2 2
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  7. 10 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  8. 16 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java
  9. 0 4
      sckw-modules/sckw-contract/pom.xml
  10. 12 12
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java
  11. 1 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractTradeController.java
  12. 12 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java
  13. 13 4
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java
  14. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApplyQueryReqVo.java
  15. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java
  16. 34 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/FindListGroupResVo.java
  17. 47 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java
  18. 44 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  19. 26 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  20. 0 23
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  21. 2 13
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  22. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  23. 4 0
      sckw-modules/sckw-report/pom.xml
  24. 62 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java
  25. 191 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  26. 78 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/SpringDataPageAble.java
  27. 95 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java
  28. 2 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExportParam.java
  29. 2 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListSelectParam.java
  30. 14 9
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListStatisticParam.java
  31. 162 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  32. 3 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java
  33. 20 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntDeptDao.java
  34. 24 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java
  35. 9 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  36. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindPojoParam.java
  37. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java
  38. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java
  39. 23 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/IdReqVo.java
  40. 3 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/IdResVo.java
  41. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  42. 1 4
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java
  43. 11 3
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEntDeptDao.xml
  44. 14 3
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

+ 13 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -3,6 +3,10 @@ package com.sckw.core.common.enums.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 枚举字典
@@ -60,5 +64,14 @@ public enum DictEnum {
         }
         return null;
     }
+    public static List<DictEnum> getEnumsByType(String type) {
+        List<DictEnum> list = new ArrayList<>();
+        for (DictEnum dict : DictEnum.values()) {
+            if (dict.getType().equals(type) ) {
+                list.add(dict);
+            }
+        }
+        return list.stream().sorted(Comparator.comparing(DictEnum::getValue)).toList();
+    }
 
 }

+ 25 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/JacksonConfig.java

@@ -0,0 +1,25 @@
+package com.sckw.core.config;
+
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.math.BigInteger;
+
+/**
+ * @desc: Jackson全局转化long类型为String,解决jackson序列化时传入前端Long类型缺失精度问题(js解析只能解析到16位)
+ * @author: yzc
+ * @date: 2023-07-17 11:19
+ */
+@Configuration
+public class JacksonConfig {
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+        return jacksonObjectMapperBuilder -> {
+            jacksonObjectMapperBuilder.serializerByType(BigInteger.class, ToStringSerializer.instance);
+            jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);
+            jacksonObjectMapperBuilder.serializerByType(Long.TYPE, ToStringSerializer.instance);
+        };
+    }
+}

+ 2 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java

@@ -2,6 +2,8 @@ package com.sckw.core.model.enums;
 
 import lombok.Getter;
 
+import java.util.Map;
+
 /**
  * @author czh
  * @desc 合作状态

+ 11 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/page/PageHelperUtil.java

@@ -57,6 +57,17 @@ public class PageHelperUtil {
         return setPageResult(pageInfo);
     }
 
+    /**
+     * 将分页信息封装到统一的接口  针对于有复杂的业务组装接口
+     * @return PageResult
+     */
+    public static PageResult getPageResult(PageInfo<?> pageInfo, List<?> totalList, int pageSize) {
+        PageInfo<?> pageInfoTotal = new PageInfo<>(totalList);
+        pageInfo.setTotal(pageInfoTotal.getTotal());
+        pageInfo.setPageSize(pageSize);
+        return setPageResult(pageInfo);
+    }
+
     public static PageResult setPageResult(PageInfo<?> pageInfo){
         PageResult pageResult = new PageResult();
         pageResult.setPage(pageInfo.getPageNum());

+ 2 - 1
sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -3,4 +3,5 @@ com.sckw.core.exception.GlobalSystemExceptionHandler
 com.sckw.core.web.config.CustomConfig
 com.sckw.core.filter.LoginFilter
 #com.sckw.core.filter.ExceptionFilterConfig
-com.sckw.core.config.MybatisPlusConfig
+com.sckw.core.config.MybatisPlusConfig
+com.sckw.core.config.JacksonConfig

+ 2 - 2
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -251,7 +251,7 @@ public class SckwTradeOrder {
     /**
      * 装货所在地区
      */
-    private Integer loadCityCode;
+    private String loadCityCode;
 
     /**
      * 装货所属区域名称
@@ -296,7 +296,7 @@ public class SckwTradeOrder {
     /**
      * 卸货所在地区
      */
-    private Integer unloadCityCode;
+    private String unloadCityCode;
 
     /**
      * 卸货所属区域名称

+ 10 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -84,6 +84,15 @@ public interface RemoteSystemService {
      */
     List<EntCacheResDto> queryEntCacheByName(String entName);
 
+    /**
+     * @param endIdList 企业id集合
+     * @return Map<Long, EntCacheResDto>
+     * @desc: 查企业树
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> endIdList);
+
     /**
      * @param userId 用户id
      * @return UserCacheResDto
@@ -128,4 +137,5 @@ public interface RemoteSystemService {
      * @date: 2023/7/11
      */
     UserCacheResDto queryManagerInfoByEntId(Long entId);
+
 }

+ 16 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java

@@ -55,6 +55,16 @@ public class EntCacheResDto implements Serializable {
      */
     private String phone;
 
+    /**
+     * 集团企业id
+     */
+    private Long parentId;
+
+    /**
+     * 主体单位们id
+     */
+    private String entDeptIds;
+
     /**
      * 机构信息
      */
@@ -64,4 +74,10 @@ public class EntCacheResDto implements Serializable {
      * 资质信息
      */
     private List<EntCertificateResDto> certificateInfo;
+
+    /**
+     * 下属单位
+     */
+    private List<EntCacheResDto> child;
+
 }

+ 0 - 4
sckw-modules/sckw-contract/pom.xml

@@ -34,10 +34,6 @@
             <artifactId>sckw-common-remote</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>

+ 12 - 12
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java

@@ -28,9 +28,9 @@ public class KwcCheckedController {
     private KwcContractLogisticsService kwcContractLogisticsService;
 
     /**
-     * @desc: 分页查询
-     * @param: reqVo 分页入参
-     * @author: czh
+     * @desc 分页查询
+     * @param reqVo 分页入参
+     * @author czh
      * @date 2023/7/17
      * @return HttpResult
      */
@@ -42,9 +42,9 @@ public class KwcCheckedController {
     /**
      * @param reqVo 新增入参
      * @return HttpResult
-     * @desc: 新增托运合同
-     * @author: czh
-     * @date: 2023/7/13
+     * @desc 新增托运合同
+     * @author czh
+     * @date 2023/7/13
      */
     @RequestMapping("add")
     public HttpResult addCheckedContract(@Valid @RequestBody ContractLogisticsReqVo reqVo) throws SystemException {
@@ -66,7 +66,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 合同详情
-     * @param: reqVo id
+     * @param reqVo id
      * @author: czh
      * @date 2023/7/16
      * @return HttpResult
@@ -78,7 +78,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 发起签约
-     * @param: reqVo id
+     * @param reqVo id
      * @author: czh
      * @date 2023/7/16
      * @return HttpResult
@@ -91,7 +91,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 修改草稿
-     * @param: reqVo id
+     * @param reqVo id
      * @author: czh
      * @date 2023/7/16
      * @return HttpResult
@@ -105,7 +105,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 手动完结
-     * @param: reqVo ids
+     * @param reqVo ids
      * @author: czh
      * @date 2023/7/16
      * @return HttpResult
@@ -119,7 +119,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 删除
-     * @param: reqVo ids
+     * @param reqVo ids
      * @author: czh
      * @date 2023/7/16
      * @return HttpResult
@@ -133,7 +133,7 @@ public class KwcCheckedController {
 
     /**
      * @desc: 导出
-     * @param: @param null
+     * @param @param null
      * @author: czh
      * @date 2023/7/17
      */

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

@@ -11,4 +11,5 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("kwcContractTrade")
 public class KwcContractTradeController {
+    
 }

+ 12 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java

@@ -90,4 +90,16 @@ public class KwmCooperateApplyController {
     }
 
 
+    /**
+     * @param reqVo 查询入参
+     * @return HttpResult
+     * @desc: 分组查询
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    @PostMapping("/findListGroup")
+    public HttpResult findListGroup(@Valid @RequestBody CooperateApplyQueryReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwmCooperateApplyService.findListGroup(reqVo));
+    }
+
 }

+ 13 - 4
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java

@@ -3,10 +3,7 @@ package com.sckw.manage.controller;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.manage.model.vo.req.BindManagerReqVo;
-import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
-import com.sckw.manage.model.vo.req.IdsReqVo;
-import com.sckw.manage.model.vo.req.QueryDetailReqVo;
+import com.sckw.manage.model.vo.req.*;
 import com.sckw.manage.service.KwmCooperateManageService;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -101,4 +98,16 @@ public class KwmCooperateManageController {
         kwmCooperateManageService.export(reqVo);
     }
 
+    /**
+     * @param reqVo 查询入参
+     * @return HttpResult
+     * @desc: 分组查询
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    @PostMapping("/findListGroup")
+    public HttpResult findListGroup(@Valid @RequestBody CooperateManageQueryReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwmCooperateManageService.findListGroup(reqVo));
+    }
+
 }

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApplyQueryReqVo.java

@@ -53,4 +53,9 @@ public class CooperateApplyQueryReqVo extends PageRequest implements Serializabl
      */
     private List<Long> ids;
 
+    /**
+     * 状态 0 审核中  3 已驳回  4 已撤销
+     */
+    private Integer status;
+
 }

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java

@@ -48,4 +48,9 @@ public class CooperateManageQueryReqVo extends PageRequest implements Serializab
      */
     private List<Long> ids;
 
+    /**
+     * 状态
+     */
+    private Integer status;
+
 }

+ 34 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/FindListGroupResVo.java

@@ -0,0 +1,34 @@
+package com.sckw.manage.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 分组查询返参
+ * @date 2023/7/17
+ */
+@Data
+public class FindListGroupResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -440918758229165837L;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 状态名
+     */
+    private String statusName;
+
+    /**
+     * 数量
+     */
+    private Integer count;
+
+}

+ 47 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java

@@ -1,6 +1,7 @@
 package com.sckw.manage.service;
 
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.CooperateStatusEnum;
 import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
@@ -9,6 +10,7 @@ import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
 import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
 import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
+import com.sckw.manage.model.vo.res.FindListGroupResVo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
@@ -195,4 +197,49 @@ public class CommonBusinessService {
         return result;
     }
 
+
+    /**
+     * @return FindListGroupResVo
+     * @desc: 初始化分组返参
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    public List<FindListGroupResVo> init() {
+        CooperateStatusEnum[] values = CooperateStatusEnum.values();
+        List<FindListGroupResVo> result = new ArrayList<>();
+        FindListGroupResVo total = new FindListGroupResVo();
+        total.setCount(0);
+        result.add(total);
+
+        for (int i = 0; i < values.length; i++) {
+            FindListGroupResVo findListGroupResVo = new FindListGroupResVo();
+            findListGroupResVo.setStatus(values[i].getCode());
+            findListGroupResVo.setStatusName(values[i].getName());
+            findListGroupResVo.setCount(0);
+            result.add(findListGroupResVo);
+        }
+        return result;
+    }
+
+
+    /**
+     * @param result 返回分组信息  list 数据集
+     * @desc: 填充分组数据
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    public void fillGroup(List<FindListGroupResVo> result, List<CooperateManageQueryResVo> list) {
+        //按状态分组
+        Map<Integer, List<CooperateManageQueryResVo>> collect = list.stream().collect(Collectors.groupingBy(CooperateManageQueryResVo::getStatus));
+        for (FindListGroupResVo findListGroupResVo : result) {
+            List<CooperateManageQueryResVo> cooperateManageQueryResVos = collect.get(findListGroupResVo.getStatus());
+            if (CollectionUtils.isNotEmpty(cooperateManageQueryResVos)) {
+                findListGroupResVo.setCount(cooperateManageQueryResVos.size());
+            }
+        }
+
+        //给汇总项求和
+        result.get(0).setCount(list.size());
+    }
+
 }

+ 44 - 3
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java

@@ -27,15 +27,18 @@ import com.sckw.manage.model.vo.req.CooperateApplyQueryReqVo;
 import com.sckw.manage.model.vo.req.CooperateApproveReqVo;
 import com.sckw.manage.model.vo.req.InitiateReqVo;
 import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
+import com.sckw.manage.model.vo.res.FindListGroupResVo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 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.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author czh
@@ -92,9 +95,21 @@ public class KwmCooperateApplyService {
         }
         //只允许查出申请中、已拒绝、已撤销的记录
         List<Integer> status = new ArrayList<>();
-        status.add(CooperateStatusEnum.PROCESS.getCode());
-        status.add(CooperateStatusEnum.REFUSE.getCode());
-        status.add(CooperateStatusEnum.CANCEL.getCode());
+        if (Objects.isNull(reqVo.getStatus())) {
+            status.add(CooperateStatusEnum.PROCESS.getCode());
+            status.add(CooperateStatusEnum.REFUSE.getCode());
+            status.add(CooperateStatusEnum.CANCEL.getCode());
+        }
+
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.PROCESS.getCode()) {
+            status.add(CooperateStatusEnum.PROCESS.getCode());
+        }
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.REFUSE.getCode()) {
+            status.add(CooperateStatusEnum.REFUSE.getCode());
+        }
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.CANCEL.getCode()) {
+            status.add(CooperateStatusEnum.CANCEL.getCode());
+        }
         cooperateManageQueryReqDto.setStatus(status);
         return cooperateManageQueryReqDto;
     }
@@ -320,4 +335,30 @@ public class KwmCooperateApplyService {
             throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
         }
     }
+
+
+    /**
+     * @param reqVo 查询入参
+     * @return HttpResult
+     * @desc: 分组查询
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    public List<FindListGroupResVo> findListGroup(CooperateApplyQueryReqVo reqVo) {
+        //初始化分组返参
+        List<FindListGroupResVo> result = commonBusinessService.init();
+
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
+        if (CollectionUtils.isEmpty(list)) {
+            return result;
+        }
+
+        //填充分组数据
+        commonBusinessService.fillGroup(result, list);
+        return result;
+    }
+
+
+
+
 }

+ 26 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -22,6 +22,7 @@ import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
 import com.sckw.manage.model.entity.KwmCooperate;
 import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
 import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
+import com.sckw.manage.model.vo.res.FindListGroupResVo;
 import com.sckw.manage.model.vo.res.QueryDetailResVo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteUserService;
@@ -85,6 +86,10 @@ public class KwmCooperateManageService {
             cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(cooperateTypes.split(Global.COMMA)));
         }
 
+        if (Objects.nonNull(reqVo.getStatus())) {
+            cooperateManageQueryReqDto.setStatus(Collections.singletonList(reqVo.getStatus()));
+        }
+
         List<Long> ids = reqVo.getIds();
         if (!CollectionUtils.isEmpty(ids)) {
             cooperateManageQueryReqDto.setIds(ids);
@@ -200,4 +205,25 @@ public class KwmCooperateManageService {
             throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
         }
     }
+
+    /**
+     * @param reqVo 查询入参
+     * @return HttpResult
+     * @desc: 分组查询
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    public List<FindListGroupResVo> findListGroup(CooperateManageQueryReqVo reqVo) {
+        //初始化分组返参
+        List<FindListGroupResVo> result = commonBusinessService.init();
+
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
+        if (CollectionUtils.isEmpty(list)) {
+            return result;
+        }
+
+        //填充分组数据
+        commonBusinessService.fillGroup(result, list);
+        return result;
+    }
 }

+ 0 - 23
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -147,29 +147,6 @@ public class KwoTradeOrderController {
         return HttpResult.ok("订单完结成功");
     }
 
-    /**
-     * @desc: 分页查询
-     * @author: yzc
-     * @date: 2023-07-12 17:31
-     * @Param completeOrderParam:
-     * @return: com.sckw.core.web.response.HttpResult
-     */
-    @PostMapping(value = "/select", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult select(@RequestBody @Validated OrderListSelectParam orderListSelectParam) {
-        return HttpResult.ok(kwoTradeOrderService.select(orderListSelectParam));
-    }
-
-    /**
-     * @desc: 订单统计
-     * @author: yzc
-     * @date: 2023-07-12 17:31
-     * @Param completeOrderParam:
-     * @return: com.sckw.core.web.response.HttpResult
-     */
-    @PostMapping(value = "/statistic", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult statistic(@RequestBody @Validated OrderListStatisticParam orderListStatisticParam) {
-        return HttpResult.ok(kwoTradeOrderService.statistic(orderListStatisticParam));
-    }
 
     /**
      * @desc: 订单列表导出

+ 2 - 13
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
-import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.OrderGenerateUtils;
@@ -17,7 +16,6 @@ import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.res.OrderDetailRes;
-import com.sckw.order.model.vo.res.OrderListRes;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
@@ -142,11 +140,11 @@ public class KwoTradeOrderService {
                 list.add(address);
                 if (Objects.equals(e.getAddressType(), DictEnum.TORDER_ADDRESS_TYPE_1.getValue())) {
                     order.setLoadName(e.getName()).setLoadType(e.getType()).setLoadContacts(e.getContacts())
-                            .setLoadPhone(e.getPhone()).setLoadCityCode(e.getCityCode()).setLoadCityName(e.getCityName())
+                            .setLoadPhone(e.getPhone()).setLoadCityCode(String.valueOf(e.getCityCode())).setLoadCityName(e.getCityName())
                             .setLoadDetailAddress(e.getDetailAddress()).setLoadLat(e.getLat()).setLoadLng(e.getLng());
                 } else {
                     order.setUnloadName(e.getName()).setUnloadType(e.getType()).setUnloadContacts(e.getContacts())
-                            .setUnloadPhone(e.getPhone()).setUnloadCityCode(e.getCityCode()).setUnloadCityName(e.getCityName())
+                            .setUnloadPhone(e.getPhone()).setUnloadCityCode(String.valueOf(e.getCityCode())).setUnloadCityName(e.getCityName())
                             .setUnloadDetailAddress(e.getDetailAddress()).setUnloadLat(e.getLat()).setUnloadLng(e.getLng());
                 }
             });
@@ -607,15 +605,6 @@ public class KwoTradeOrderService {
     }
 
 
-    public List<OrderListRes> select(OrderListSelectParam param) {
-        return null;
-    }
-
-    public TableStatisticRes statistic(OrderListStatisticParam param) {
-        return null;
-    }
-
-
     public void export(CompleteOrderParam param) {
 
     }

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

@@ -433,7 +433,7 @@ public class KwpGoodsService {
      * @author: yzc
      * @date: 2023-07-05 17:55
      * @Param params:
-     * @return: com.sckw.core.model.vo.TableRes
+     * @return: com.sckw.core.model.vo.TableStatisticRes
      */
     public TableStatisticRes statistic(GoodsListParam params) {
         TableStatisticRes res = new TableStatisticRes();

+ 4 - 0
sckw-modules/sckw-report/pom.xml

@@ -87,6 +87,10 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 62 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java

@@ -1,12 +1,21 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.easyexcel.RequestHolder;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwOrderService;
+import com.sckw.report.service.param.TradeOrderListExport;
+import com.sckw.report.service.param.TradeOrderListExportParam;
+import com.sckw.report.service.param.TradeOrderListSelectParam;
+import com.sckw.report.service.param.TradeOrderListStatisticParam;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author zk
@@ -20,9 +29,58 @@ public class KwOrderController {
 
     private final KwOrderService orderService;
 
+    /**
+     * @desc: 贸易订单详情
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param id:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
     @GetMapping("/tradeOrderDetail")
     public HttpResult detail(@RequestParam Long id) {
         return HttpResult.ok(orderService.tradeOrderDetail(id));
     }
 
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderSelect", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult select(@RequestBody @Validated TradeOrderListSelectParam params) {
+        return HttpResult.ok(orderService.tradeOrderSelect(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderStatistic", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult statistic(@RequestBody @Validated TradeOrderListStatisticParam params) {
+        return HttpResult.ok(orderService.tradeOrderStatistic(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderExport", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult export(@RequestBody TradeOrderListExportParam params) {
+        HttpServletResponse response = RequestHolder.getResponse();
+        List<TradeOrderListExport> list = orderService.export(params);
+        if (CollectionUtils.isNotEmpty(list)) {
+            ExcelUtil.download(response, TradeOrderListExport.class, list);
+            return HttpResult.ok();
+        }
+        return HttpResult.error("没有可导出的数据");
+    }
+
 }

+ 191 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -1,15 +1,32 @@
 package com.sckw.report.service;
 
+import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.model.vo.TableBottom;
+import com.sckw.core.model.vo.TableStatisticRes;
+import com.sckw.core.model.vo.TableTop;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.DateUtil;
 import com.sckw.mongo.model.SckwTradeOrder;
 import com.sckw.report.dao.SckwTradeOrderRepository;
+import com.sckw.report.service.param.*;
+import com.sckw.report.service.vo.OrderListRes;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
 /**
  * @author zk
  * @desc 订单服务
@@ -41,4 +58,178 @@ public class KwOrderService {
         SckwTradeOrder tradeOrder = mongoTemplate.findOne(query, SckwTradeOrder.class);
         return mongoTemplate.findOne(query, SckwTradeOrder.class);
     }
+
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-07-17 18:04
+     * @Param params:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult tradeOrderSelect(TradeOrderListSelectParam params) {
+        Query query = getQuery(params);
+        long count = mongoTemplate.count(query, SckwTradeOrder.class);
+        Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
+        SpringDataPageAble pageAble = new SpringDataPageAble(params.getPage(), params.getPageSize(), sort);
+        query.with(pageAble);
+        List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
+        List<OrderListRes> result = new ArrayList<>();
+        list.forEach(e -> {
+            OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
+                    order.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                            .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                            .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                            .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                            .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
+                            .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
+        });
+        return PageResult.build(params.getPage(), params.getPageSize(), count, result);
+    }
+
+    /**
+     * @desc: 组装query
+     * @author: yzc
+     * @date: 2023-07-17 18:08
+     * @Param params:
+     * @return: org.springframework.data.mongodb.core.query.Query
+     */
+    private Query getQuery(TradeOrderListStatisticParam params) {
+        Long entId = LoginUserHolder.getEntId();
+        Query query = new Query();
+        Criteria criteria = new Criteria();
+        criteria.and("delFlag").is(0);
+        //销售订单
+        if (Objects.equals(params.getOrderType(), 1)) {
+            criteria.and("supplyTopEntId").is(entId);
+        } else {
+            //采购订单
+            criteria.and("procureTopEntId").is(entId);
+        }
+        //交易方式
+        if (CollectionUtils.isNotEmpty(params.getTradings())) {
+            criteria.and("trading").in(params.getTradings());
+        }
+        //提货方式
+        if (CollectionUtils.isNotEmpty(params.getPickupTypes())) {
+            criteria.and("pickupType").in(params.getPickupTypes());
+        }
+        //交付类型
+        if (CollectionUtils.isNotEmpty(params.getDeliveryTypes())) {
+            criteria.and("deliveryType").in(params.getDeliveryTypes());
+        }
+        //下单方式
+        if (CollectionUtils.isNotEmpty(params.getSources())) {
+            criteria.and("source").in(params.getSources());
+        }
+        //日期范围
+        if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(params.getStartCreateTime()), Criteria.where("createTime")
+                    .lte(params.getEndCreateTime()));
+        } else if (Objects.nonNull(params.getStartCreateTime())) {
+            criteria.and("createTime").gte(params.getStartCreateTime());
+        } else if (Objects.nonNull(params.getEndCreateTime())) {
+            criteria.and("createTime").lte(params.getEndCreateTime());
+        }
+        List<Criteria> orCriteriaList = new ArrayList<>();
+        //关键字模糊匹配
+        if (StringUtils.isNotBlank(params.getKeywords())) {
+            Pattern pattern = Pattern.compile("^.*" + params.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+            orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern));
+            orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern));
+            orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
+            orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
+        }
+        //装卸货地址
+        if (CollectionUtils.isNotEmpty(params.getShippingAddressCodes())) {
+            params.getShippingAddressCodes().forEach(c -> {
+                Pattern pattern = Pattern.compile("^" + c.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+                orCriteriaList.add(Criteria.where("loadCityCode").regex(pattern));
+            });
+        }
+        if (CollectionUtils.isNotEmpty(params.getUnloadingAddressCodes())) {
+            params.getUnloadingAddressCodes().forEach(c -> {
+                Pattern pattern = Pattern.compile("^" + c.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+                orCriteriaList.add(Criteria.where("unloadCityCode").regex(pattern));
+            });
+        }
+        if (CollectionUtils.isNotEmpty(orCriteriaList)) {
+            criteria.orOperator(orCriteriaList);
+        }
+        return query.addCriteria(criteria);
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-07-17 18:05
+     * @Param params:
+     * @return: com.sckw.core.model.vo.TableStatisticRes
+     */
+    public TableStatisticRes tradeOrderStatistic(TradeOrderListStatisticParam params) {
+        TableStatisticRes res = new TableStatisticRes();
+        Query query = getQuery(params);
+        List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
+        Map<Integer, List<SckwTradeOrder>> map = orders.stream().collect(Collectors.groupingBy(SckwTradeOrder::getStatus));
+        List<TableTop> tableTops = new ArrayList<>();
+        List<DictEnum> tOrderStatusEnums = DictEnum.getEnumsByType(DictTypeEnum.TORDER_STATUS.getType());
+        tOrderStatusEnums.forEach(e -> {
+            Integer value = Integer.valueOf(e.getValue());
+            List<SckwTradeOrder> list = map.get(value);
+            int total = CollectionUtils.isEmpty(list) ? 0 : list.size();
+            TableTop tableTop = new TableTop();
+            tableTop.setName(e.getLabel()).setValue(value).setTotal(total);
+            tableTops.add(tableTop);
+        });
+        TableBottom tableBottom = new TableBottom();
+        tableBottom.setTotal(CollectionUtils.isEmpty(orders) ? 0 : orders.size());
+        res.setTableTops(tableTops).setTableBottom(tableBottom);
+        return res;
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-07-17 18:05
+     * @Param params:
+     * @return: java.util.List<com.sckw.report.service.param.TradeOrderListExport>
+     */
+
+    public List<TradeOrderListExport> export(TradeOrderListExportParam params) {
+        Query query = new Query();
+        if (CollectionUtils.isNotEmpty(params.getIds())) {
+            Long entId = LoginUserHolder.getEntId();
+            Criteria criteria = new Criteria();
+            criteria.and("tOrderId").in(params.getIds()).and("delFlag").is(0);
+            query.addCriteria(criteria);
+            //销售订单
+            if (Objects.equals(params.getOrderType(), 1)) {
+                criteria.and("supplyTopEntId").is(entId);
+            } else {
+                //采购订单
+                criteria.and("procureTopEntId").is(entId);
+            }
+        } else {
+            query = getQuery(params);
+        }
+        List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
+        if (CollectionUtils.isEmpty(orders)) {
+            return Collections.emptyList();
+        }
+        List<TradeOrderListExport> list = new ArrayList<>();
+        orders.forEach(e -> {
+            TradeOrderListExport export = BeanUtils.copyProperties(e, TradeOrderListExport.class);
+            export.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                    .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                    .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                    .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
+                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
+                    .setUnitPrice(String.valueOf(e.getUnitPrice())).setPrice(String.valueOf(e.getPrice()))
+                    .setAmount(String.valueOf(e.getAmount())).setActualAmount(String.valueOf(e.getActualAmount()))
+                    .setStartTime(Objects.isNull(e.getStartTime()) ? null : DateUtil.dateToStr(e.getStartTime()))
+                    .setAddedTime(Objects.isNull(e.getEndTime()) ? null : DateUtil.dateToStr(e.getEndTime()));
+            list.add(export);
+        });
+        return list;
+    }
 }

+ 78 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/SpringDataPageAble.java

@@ -0,0 +1,78 @@
+package com.sckw.report.service.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+
+/**
+ * @author yzc
+ * @desc 分页请求参数
+ * @date 2023/7/17 0010
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class SpringDataPageAble implements Pageable {
+
+    private Integer pageNumber = 1;
+    private Integer pageSize = 10;
+    private Sort sort;
+
+    public void setSort(Sort sort) {
+        this.sort = sort;
+    }
+
+    // 当前页面
+    @Override
+    public int getPageNumber() {
+        return this.pageNumber;
+    }
+
+    // 每一页显示的条数
+
+    @Override
+    public int getPageSize() {
+        return this.pageSize;
+    }
+
+    // 第二页所需要增加的数量
+
+    @Override
+    public long getOffset() {
+        return (long) (getPageNumber() - 1) * getPageSize();
+    }
+
+    @Override
+    public Sort getSort() {
+        return sort;
+    }
+
+    @Override
+    public Pageable next() {
+        return null;
+    }
+
+    @Override
+    public Pageable previousOrFirst() {
+        return null;
+    }
+
+    @Override
+    public Pageable first() {
+        return null;
+    }
+
+    @Override
+    public Pageable withPage(int pageNumber) {
+        return null;
+    }
+
+    @Override
+    public boolean hasPrevious() {
+        return false;
+    }
+}

+ 95 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java

@@ -0,0 +1,95 @@
+package com.sckw.report.service.param;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @desc: 交易列表信息导出对象
+ * @author: yzc
+ * @date: 2023-07-17 10:36
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "交易列表信息", sheetName = "交易列表信息")
+public class TradeOrderListExport {
+    @ExcelProperty(value = "上架状态", index = 0)
+    private String status;
+
+    @ExcelProperty(value = "订单编号", index = 1)
+    private String tOrderNo;
+
+    @ExcelProperty(value = "采购单位", index = 2)
+    private String procureFirmName;
+
+    @ExcelProperty(value = "销售单位", index = 3)
+    private String supplyFirmName;
+
+    @ExcelProperty(value = "交付类型", index = 4)
+    private String deliveryType;
+
+    @ExcelProperty(value = "提货方式", index = 5)
+    private String pickupType;
+
+    @ExcelProperty(value = "托运状态", index = 6)
+    private String consignmentStatus;
+
+    @ExcelProperty(value = "下单方式", index = 7)
+    private String source;
+
+    @ExcelProperty(value = "付款类型", index = 8)
+    private String trading;
+
+    @ExcelProperty(value = "关联合同", index = 9)
+    private String contractNo;
+
+    @ExcelProperty(value = "承包方式", index = 10)
+    private String contractSigningWay;
+
+    @ExcelProperty(value = "商品名称", index = 11)
+    private String manageName;
+
+    @ExcelProperty(value = "规格", index = 12)
+    private String goodsSpec;
+
+    @ExcelProperty(value = "上架时间", index = 13)
+    private String addedTime;
+
+    @ExcelProperty(value = "单价/元", index = 14)
+    private String unitPrice;
+
+    @ExcelProperty(value = "订单金额", index = 15)
+    private String price;
+
+    @ExcelProperty(value = "订单目标", index = 16)
+    private String amount;
+
+    @ExcelProperty(value = "已履约量", index = 17)
+    private String actualAmount;
+
+    @ExcelProperty(value = "归属项目", index = 14)
+    private String projectName;
+
+    @ExcelProperty(value = "装货地点", index = 15)
+    private String loadCityName;
+
+    @ExcelProperty(value = "卸货地点", index = 16)
+    private String unloadCityName;
+
+    @ExcelProperty(value = "计划开始时间", index = 17)
+    private String startTime;
+
+    @ExcelProperty(value = "计划结束时间", index = 17)
+    private String endTime;
+
+    @ExcelProperty(value = "备注", index = 14)
+    private String remark;
+
+    @ExcelProperty(value = "创造人", index = 15)
+    private String creatByName;
+
+    @ExcelProperty(value = "创建时间", index = 16)
+    private String createTime;
+
+}

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExportParam.java

@@ -1,4 +1,4 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -14,7 +14,7 @@ import java.util.List;
 @Getter
 @Setter
 @ToString
-public class OrderListExportParam extends OrderListStatisticParam {
+public class TradeOrderListExportParam extends TradeOrderListStatisticParam {
 
     /**
      * 订单id集合

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListSelectParam.java

@@ -1,4 +1,4 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -12,7 +12,7 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class OrderListSelectParam extends OrderListStatisticParam {
+public class TradeOrderListSelectParam extends TradeOrderListStatisticParam {
 
     /**
      * 当前页码

+ 14 - 9
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListStatisticParam.java

@@ -1,6 +1,9 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -16,13 +19,15 @@ import java.util.List;
 @Getter
 @Setter
 @ToString
-public class OrderListStatisticParam {
+public class TradeOrderListStatisticParam {
 
     /**
      * 订单类型(1销售订单、2采购订单)
      */
+    @Min(value = 1, message = "非法订单类型")
+    @Max(value = 2, message = "非法订单类型")
+    @NotNull(message = "订单类型不能为空")
     private Integer orderType;
-
     /**
      * 订单编号、单位、商品名称(模糊匹配共用)
      */
@@ -30,24 +35,24 @@ public class OrderListStatisticParam {
     /**
      * 创建时间开始(yyyy-MM-dd)
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startCreateTime;
 
     /**
      * 创建时间结束(yyyy-MM-dd)
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endCreateTime;
 
     /**
-     * 装货地址id集合
+     * 装货地址code集合
      */
-    private List<Long> shippingAddressIds;
+    private List<String> shippingAddressCodes;
 
     /**
-     * 装货地址id集合
+     * 装货地址code集合
      */
-    private List<Long> unloadingAddressIds;
+    private List<String> unloadingAddressCodes;
 
     /**
      * 交易方式(预付款、货到付款)集合

+ 162 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -0,0 +1,162 @@
+package com.sckw.report.service.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ * @desc: 订单列表响应参数
+ * @author: yzc
+ * @date: 2023-07-12 17:45
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderListRes {
+
+    /**
+     * 订单id
+     */
+    private Long tOrderId;
+    /**
+     * 订单状态
+     */
+    private String status;
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+    /**
+     * 采购企业主键ID
+     */
+    private Long procureEntId;
+
+    /**
+     * 采购单位
+     */
+    private String procureFirmName;
+
+    /**
+     * 销售单位主键ID
+     */
+    private Long supplyEntId;
+    /**
+     * 销售单位
+     */
+    private String supplyFirmName;
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+    /**
+     * 托运状态
+     */
+    private String consignmentStatus;
+    /**
+     * 下单方式(自主下单/代客下单)
+     */
+    private String source;
+
+    /**
+     * 合同主键
+     */
+    private Long contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同mc
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String goodsSpec;
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+    /**
+     * 归属项目
+     */
+    private String projectName;
+    /**
+     * 装货地点
+     */
+    private String loadCityName;
+    /**
+     * 卸货地点
+     */
+    private String unloadCityName;
+    /**
+     * 计划开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+    /**
+     * 计划结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creatByName;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}

+ 3 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java

@@ -5,6 +5,7 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.KwsEnterprise;
 import com.sckw.system.model.vo.req.*;
+import com.sckw.system.model.vo.res.IdResVo;
 import com.sckw.system.service.KwsEnterpriseService;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -145,8 +146,8 @@ public class KwsEnterpriseController {
      * @date 2023/06/02
      **/
     @PostMapping("/dels")
-    public HttpResult del(@RequestParam String ids) throws SystemException {
-        kwsEntService.deleteByKey(ids);
+    public HttpResult del(@RequestBody IdReqVo reqVo) throws SystemException {
+        kwsEntService.deleteByKey(reqVo.getIds());
         return HttpResult.ok();
     }
 

+ 20 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntDeptDao.java

@@ -3,6 +3,8 @@ package com.sckw.system.dao;
 import com.sckw.system.model.KwsEntDept;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 组织机构
  * @author zk
@@ -32,4 +34,22 @@ public interface KwsEntDeptDao {
      */
     KwsEntDept selectByKey(Long id);
 
+    /**
+     * @param entId 企业id
+     * @return KwsEntDept
+     * @desc: 根据企业id查关联
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    List<KwsEntDept> selectByEntId(Long entId);
+
+    /**
+     * @param entPid 企业pid
+     * @return KwsEntDept
+     * @desc: 根据企业pid查关联
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    List<KwsEntDept> selectByEntPid(Long entPid);
+
 }

+ 24 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java

@@ -5,6 +5,7 @@ import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.system.api.model.dto.res.*;
 import com.sckw.system.api.model.pojo.DeptInfoPojo;
+import com.sckw.system.dao.KwsEntDeptDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.vo.res.CertificateResVo;
 import com.sckw.system.model.vo.res.KwsDeptResVo;
@@ -39,6 +40,9 @@ public class RemoteBaseService {
     @Resource
     private KwsRoleService kwsRoleService;
 
+    @Resource
+    private KwsEntDeptDao kwsEntDeptDao;
+
 
     public KwsEnterpriseResDto queryEnterpriseById(Long id) {
         KwsEnterprise kwsEnterprise = kwsEnterpriseService.queryKwsEnterpriseById(id);
@@ -110,4 +114,24 @@ public class RemoteBaseService {
     public List<KwsEnterprise> queryEntByName(String entName) {
         return kwsEnterpriseService.queryEntByName(entName);
     }
+
+
+    /**
+     * @param entCacheResDto 返参
+     * @desc: 填充父子属id
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    public void fillRelate(EntCacheResDto entCacheResDto) {
+        Long id = entCacheResDto.getId();
+//        List<KwsEntDept> kwsEntDepts = kwsEntDeptDao.selectByEntID(id);
+//        if (CollectionUtils.isNotEmpty(kwsEntDepts)) {
+//            entCacheResDto.setEntDeptIds(String.join(Global.COMMA, kwsEntDepts.stream().map(KwsEntDept::getEntPid).map(String::valueOf).toList()));
+//            return;
+//        }
+//
+//        kwsEntDepts = kwsEntDeptDao.selectByEntPid(id);
+
+
+    }
 }

+ 9 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -201,7 +201,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
             return Collections.emptyList();
         }
 
-        List<EntCacheResDto> list = new ArrayList();
+        List<EntCacheResDto> list = new ArrayList<>();
         for (KwsEnterprise kwsEnterprise : kwsEnterprises) {
             EntCacheResDto entCacheResDto = queryEntCacheById(kwsEnterprise.getId());
             if (!Objects.isNull(entCacheResDto)) {
@@ -211,6 +211,14 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return list;
     }
 
+    @Override
+    public Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> endIdList) {
+        for (Long entId : endIdList) {
+            queryEntCacheById(entId);
+        }
+        return null;
+    }
+
     @Override
     public List<EntCacheResDto> queryEntCacheByIds(List<Long> entIds) {
         if (CollectionUtils.isEmpty(entIds)) {

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

@@ -58,4 +58,9 @@ public class FindPojoParam extends PageRequest {
      */
     private Integer status;
 
+    /**
+     * 查主体单位  1查主体单位
+     */
+    private Integer entDept;
+
 }

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

@@ -84,4 +84,9 @@ public class EntFindPageReqVo extends PageRequest implements Serializable {
      */
     private Date approvalEndTime;
 
+    /**
+     * 查主体单位
+     */
+    private Integer entDept;
+
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java

@@ -33,7 +33,7 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 企业编号
      */
-    @NotBlank(message = "企业编号不能为空")
+//    @NotBlank(message = "企业编号不能为空")
     private String code;
 
     /**

+ 23 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/IdReqVo.java

@@ -0,0 +1,23 @@
+package com.sckw.system.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc id统一入参
+ * @date 2023/7/17
+ */
+@Data
+public class IdReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2933173508474392533L;
+
+    private long id;
+
+    private String ids;
+
+}

+ 3 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/IdResVo.java

@@ -1,5 +1,7 @@
 package com.sckw.system.model.vo.res;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
 import lombok.Data;
 
 import java.io.Serial;
@@ -16,6 +18,7 @@ public class IdResVo implements Serializable {
     @Serial
     private static final long serialVersionUID = -6267671021325724162L;
 
+    @JsonSerialize(using = LongToStringUtils.class)
     private long id;
 
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -253,7 +253,7 @@ public class KwsEnterpriseService {
             entFindPageResVo.setEntryTypeStr(EntryTypeEnum.getName(entFindPageResVo.getEntryType()).getName());
             result.add(entFindPageResVo);
         }
-        return PageHelperUtil.getPageResult(new PageInfo<>(result));
+        return PageHelperUtil.getPageResult(new PageInfo<>(result), list, reqVo.getPageSize());
     }
 
     /**

+ 1 - 4
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -275,10 +275,7 @@ public class KwsRoleService {
                 }
             });
         }
-        PageInfo pageInfo = new PageInfo(list);
-        PageInfo<RoleResVo> roleResVoPageInfo = new PageInfo<>(roleResVos);
-        roleResVoPageInfo.setTotal(pageInfo.getTotal());
-        return PageHelperUtil.getPageResult(roleResVoPageInfo);
+        return PageHelperUtil.getPageResult(new PageInfo<>(roleResVos), list, PageResult.getPageSize(params));
     }
 
     /**

+ 11 - 3
sckw-modules/sckw-system/src/main/resources/mapper/KwsEntDeptDao.xml

@@ -22,12 +22,20 @@
   <select id="selectByKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     select 
     <include refid="Base_Column_List" />
-    from kws_ent_dept
+    from kws_ent_dep
     where id = #{id,jdbcType=BIGINT}
   </select>
 
+    <select id="selectByEntId" resultType="com.sckw.system.model.KwsEntDept">
+      select * from kws_ent_dep where del_flag = 0 and ent_id = #{entId}
+    </select>
+
+  <select id="selectByEntPid" resultType="com.sckw.system.model.KwsEntDept">
+    select * from kws_ent_dep where del_flag = 0 and ent_pid = #{entPid}
+  </select>
+
   <insert id="insert" parameterType="com.sckw.system.model.KwsEntDept">
-    insert into kws_ent_dept
+    insert into kws_ent_dep
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
@@ -95,7 +103,7 @@
   </insert>
 
   <update id="update" parameterType="com.sckw.system.model.KwsEntDept">
-    update kws_ent_dept
+    update kws_ent_dep
     <set>
       <if test="entId != null">
         ent_id = #{entId,jdbcType=BIGINT},

+ 14 - 3
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -83,7 +83,7 @@
     min(a.update_by) update_by,
     min(a.update_time) update_time,
     min(a.del_flag) del_flag,
-    ifnull(GROUP_CONCAT(b.type), '') type,
+    ifnull(GROUP_CONCAT(distinct b.type), '') type,
     min(k.system_type) system_type,
     min(k.name) createByName
     from kws_enterprise a
@@ -118,12 +118,20 @@
     <if test="dto.status != null and dto.status != ''">
       and a.status = #{dto.status}
     </if>
-    <if test="entryType != null and entryType == '1'">
+    <if test="dto.entryType != null and dto.entryType == '1'">
       and k.system_type = 2
     </if>
-    <if test="entryType != null and entryType == '2'">
+    <if test="dto.entryType != null and dto.entryType == '2'">
       and k.system_type = 1
     </if>
+    <choose>
+      <when test="dto.entDept != null and dto.entDept == 0">
+        and not exists (select 1 from kws_ent_dep dep where a.id = dep.ent_id)
+      </when>
+     <when test="dto.entDept != null and dto.entDept == 1">
+       and exists (select 1 from kws_ent_dep dep where a.id = dep.ent_id)
+     </when>
+    </choose>
     group by a.id
     ) tab
      where tab.id is not null
@@ -476,6 +484,9 @@
       <if test="cityCode != null">
         city_code = #{cityCode,jdbcType=INTEGER},
       </if>
+      <if test="cityName != null">
+        city_name = #{cityName,jdbcType=VARCHAR},
+      </if>
       <if test="detailAddress != null">
         detail_address = #{detailAddress,jdbcType=VARCHAR},
       </if>