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

机构修改+合作单位+地址管理

czh 2 лет назад
Родитель
Сommit
67ac5c04c4
50 измененных файлов с 1961 добавлено и 134 удалено
  1. 5 1
      sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java
  2. 2 2
      sckw-auth/src/main/java/com/sckw/auth/model/vo/req/LoginReqVo.java
  3. 38 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/AddressDefaultTypeEnum.java
  4. 4 4
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ApprovalEnum.java
  5. 3 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java
  6. 40 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateTypeEnum.java
  7. 4 4
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/EntTypeEnum.java
  8. 35 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/EntryTypeEnum.java
  9. 10 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  10. 9 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  11. 11 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java
  12. 5 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/SysDictResDto.java
  13. 84 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java
  14. 56 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java
  15. 2 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateMapper.java
  16. 5 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/req/CooperateManageQueryReqDto.java
  17. 74 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressAddReqVo.java
  18. 55 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java
  19. 67 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressUpdateReqVo.java
  20. 31 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/BindDefaultReqVo.java
  21. 7 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApplyQueryReqVo.java
  22. 34 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApproveReqVo.java
  23. 7 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java
  24. 45 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/InitiateReqVo.java
  25. 93 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/AddressQueryResVo.java
  26. 8 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateApplyQueryResVo.java
  27. 13 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java
  28. 198 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java
  29. 194 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  30. 256 20
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  31. 25 70
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  32. 11 5
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml
  33. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntTypeDao.java
  34. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java
  35. 7 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysDictDao.java
  36. 11 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  37. 17 3
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java
  38. 0 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsDept.java
  39. 180 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindEntListPojo.java
  40. 47 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindPojoParam.java
  41. 27 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java
  42. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntRegisterReqVo.java
  43. 78 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/EntFindPageResVo.java
  44. 6 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsDeptService.java
  45. 41 11
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  46. 4 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  47. 1 1
      sckw-modules/sckw-system/src/main/resources/mapper/KwsDeptDao.xml
  48. 12 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEntTypeDao.xml
  49. 69 1
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml
  50. 11 0
      sckw-modules/sckw-system/src/main/resources/mapper/SysDictDao.xml

+ 5 - 1
sckw-auth/src/main/java/com/sckw/auth/controller/AuthController.java

@@ -32,7 +32,11 @@ public class AuthController {
      * @date: 2023/6/16
      */
     @PostMapping("/login")
-    public HttpResult login(@Valid @RequestBody LoginReqVo reqVo) throws SystemException {
+    public HttpResult login(@Valid @RequestBody LoginReqVo reqVo,
+                            @RequestHeader(name = "Client-Type", required = true) String ClientType,
+                            @RequestHeader(name = "System-Type", required = true) int systemType) throws SystemException {
+        reqVo.setSystemType(systemType);
+        reqVo.setClientType(ClientType);
         return HttpResult.ok(authService.login(reqVo));
     }
 

+ 2 - 2
sckw-auth/src/main/java/com/sckw/auth/model/vo/req/LoginReqVo.java

@@ -28,13 +28,13 @@ public class LoginReqVo implements Serializable {
     /**
      * 设备类型
      */
-    @NotBlank(message = "设备类型不能为空")
+//    @NotBlank(message = "设备类型不能为空")
     private String clientType;
 
     /**
      * 系统类型
      */
-    @NotNull(message = "系统类型不能为空")
+//    @NotNull(message = "系统类型不能为空")
     private Integer systemType;
 
     /**

+ 38 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/AddressDefaultTypeEnum.java

@@ -0,0 +1,38 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 默认地址类型
+ * @date 2023/6/15
+ */
+@Getter
+public enum AddressDefaultTypeEnum {
+
+    //装货地址
+    SHIPMENT(1, "装货地址"),
+    //收货地址
+    TAKE(2, "收货地址"),
+    //已拒绝
+    BOTH(3, "装货/收货地址");
+
+    private final int code;
+
+    private final String name;
+
+    AddressDefaultTypeEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static AddressDefaultTypeEnum getName(int code){
+        for (AddressDefaultTypeEnum addressDefaultTypeEnum : values()) {
+            if (addressDefaultTypeEnum.getCode() == code) {
+                return addressDefaultTypeEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 4 - 4
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ApprovalEnum.java

@@ -11,13 +11,13 @@ import lombok.Getter;
 public enum ApprovalEnum {
 
     //未审批
-    NO(0, "未审批"),
+    NO(0, "待认证"),
     //通过
-    OK(1, "通过"),
+    OK(1, "已认证"),
     //未通过
-    PASS(2, "未通过"),
+    PASS(2, "驳回"),
     //审批中
-    PROCESS(3, "审批"),
+    PROCESS(3, "审批"),
     //更新中,待审批
     REFRESH(4, "更新中");
 

+ 3 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java

@@ -17,7 +17,9 @@ public enum CooperateStatusEnum {
     //已解除
     PASS(2, "已解除"),
     //已拒绝
-    REFUSE(3, "已拒绝");
+    REFUSE(3, "已驳回"),
+    //已撤销
+    CANCEL(4, "已撤销");
 
     private final int code;
 

+ 40 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateTypeEnum.java

@@ -0,0 +1,40 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 合作类型
+ * @date 2023/6/15
+ */
+@Getter
+public enum CooperateTypeEnum {
+
+    //供应商
+    SUPPLIER(1, "供应商"),
+    //采购商
+    PURCHASER(2, "采购商"),
+    //托运商
+    CONSIGN(3, "托运商"),
+    //承运商
+    CARRIAGE(4, "承运商");
+
+    private final int code;
+
+    private final String name;
+
+    CooperateTypeEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static CooperateTypeEnum getName(int code){
+        for (CooperateTypeEnum cooperateStatusEnum : values()) {
+            if (cooperateStatusEnum.getCode() == code) {
+                return cooperateStatusEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 4 - 4
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/EntTypeEnum.java

@@ -14,10 +14,10 @@ public enum EntTypeEnum {
     SUPPLIER(1, "供应商"),
     //采购商
     PURCHASER(2, "采购商"),
-    //34PL物流
-    LOGISTICS34(3, "34PL物流"),
-    //43PL物流
-    LOGISTICS43(4, "43PL物流");
+    //4PL物流
+    LOGISTICS3(3, "4PL物流"),
+    //3PL物流
+    LOGISTICS4(4, "3PL物流");
 
     private final int code;
 

+ 35 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/EntryTypeEnum.java

@@ -0,0 +1,35 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 企业入驻方式
+ * @date 2023/6/15
+ */
+@Getter
+public enum EntryTypeEnum {
+
+    //自主入驻
+    SELF(1, "自主入驻"),
+    //平台接入
+    PLATFORM(2, "平台接入");
+
+    private final int code;
+
+    private final String name;
+
+    EntryTypeEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static EntryTypeEnum getName(int code) {
+        for (EntryTypeEnum entryTypeEnum : values()) {
+            if (entryTypeEnum.getCode() == code) {
+                return entryTypeEnum;
+            }
+        }
+        return null;
+    }
+}

+ 10 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -40,8 +40,6 @@ public class HttpStatus {
     public static final String DICTTYPE_EXISTS = "字典类型已存在,不可重复!";
     public static final String DICT_EXISTS = "字典键值已存在,不可重复!";
 
-
-
     /**其他自定义状态码*/
     public static final int CODE_60603 = 60603;
     public static final int CODE_60604 = 60604;
@@ -125,6 +123,9 @@ public class HttpStatus {
     public static final String MENU_NOT_EXISTS = "未查询到菜单信息";
     public static final String PARENT_MENU_NOT_EXISTS = "未查询到父菜单信息";
     public static final String PARENT_UNIT_NOT_EXISTS = "未查询到父级单位信息";
+    public static final String COOPERATE_ATTRIBUTE_NOT_EXISTS = "未查询到已有的合作属性";
+    public static final String COOPERATE_NOT_EXISTS = "未查询到合作记录或已失效";
+    public static final String ADDRESS_NOT_EXISTS = "未查询到地址记录或已失效";
 
     /**自定义提示消息*/
     public static final String PASSWD_ERROR = "密码不正确";
@@ -144,4 +145,11 @@ public class HttpStatus {
     public static final String MSG_012 = "只能解除状态为合作中的记录!";
     public static final String MSG_013 = "只能删除状态为已解除的记录!";
     public static final String MSG_014 = "导出失败";
+    public static final String MSG_015 = "与对方企业存在待审核的合作关系,请撤销或者完成审核再申请!";
+    public static final String MSG_016 = "与对方企业已存在相同属性的合作关系!";
+    public static final String MSG_017 = "发起申请成功!";
+    public static final String MSG_018 = "撤销成功!";
+    public static final String MSG_019 = "只能操作正在审核中的记录!";
+    public static final String MSG_020 = "当前机构还存在员工数据,不能删除!";
+    public static final String MSG_021 = "不能重复设置默认地址!";
 }

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

@@ -119,4 +119,13 @@ public interface RemoteSystemService {
      * @return: com.sckw.system.api.model.dto.res.SysAreaCacheResDto
      */
     SysAreaCacheResDto queryAreaCacheById(Integer code);
+
+    /**
+     * @param entId 企业id
+     * @return UserCacheResDto
+     * @desc: 根据企业id查客户经理信息
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    UserCacheResDto queryManagerInfoByEntId(Long entId);
 }

+ 11 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java

@@ -4,6 +4,7 @@ import com.sckw.core.exception.SystemException;
 import com.sckw.system.api.model.dto.req.*;
 import com.sckw.system.api.model.dto.res.*;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @desc: 用户远程接口
@@ -148,4 +149,14 @@ public interface RemoteUserService {
      * @date: 2023/7/10
      */
     void bindManager(Long entId, Long userId);
+
+    /**
+     * @param ids 主键id
+     * @return Map
+     * @desc: 根据id查字典
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    Map<Long, SysDictResDto> querySysDictByIds(List<Long> ids);
+
 }

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

@@ -16,6 +16,11 @@ public class SysDictResDto implements Serializable {
     @Serial
     private static final long serialVersionUID = -2995208083876944113L;
 
+    /**
+     * 主键id
+     */
+    private Long id;
+
     /**
      * 选项值
      */

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

@@ -1,7 +1,14 @@
 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.*;
 import com.sckw.manage.service.KwmAddressService;
+import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -17,4 +24,81 @@ public class KwmAddressController {
     @Autowired
     private KwmAddressService kwmAddressService;
 
+    /**
+     * @param reqVo 分页入参
+     * @return HttpResult
+     * @desc: 分页查询
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/queryByPage")
+    public HttpResult queryByPage(@Valid @RequestBody AddressQueryReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwmAddressService.queryByPage(reqVo));
+    }
+
+
+    /**
+     * @param reqVo 默认地址入参
+     * @return HttpResult
+     * @desc: 设置默认地址
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/bindDefault")
+    public HttpResult bindDefault(@Valid @RequestBody BindDefaultReqVo reqVo) throws SystemException {
+        kwmAddressService.bindDefault(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_005);
+    }
+
+    /**
+     * @param reqVo 修改入参
+     * @return HttpResult
+     * @desc: 修改地址信息
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/update")
+    public HttpResult update(@Valid @RequestBody AddressUpdateReqVo reqVo) throws SystemException {
+        kwmAddressService.update(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_005);
+    }
+
+    /**
+     * @param reqVo 修改入参
+     * @return HttpResult
+     * @desc: 修改地址信息
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/add")
+    public HttpResult add(@Valid @RequestBody AddressAddReqVo reqVo) throws SystemException {
+        kwmAddressService.add(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_003);
+    }
+
+    /**
+     * @param reqVo ids
+     * @return HttpResult
+     * @desc: 删除地址信息
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/delete")
+    public HttpResult delete(@Valid @RequestBody IdsReqVo reqVo) throws SystemException {
+        kwmAddressService.delete(reqVo.getIds());
+        return HttpResult.ok(HttpStatus.MSG_008);
+    }
+
+
+    /**
+     * @param reqVo 查询入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @PostMapping("/export")
+    public void export(@Valid @RequestBody AddressQueryReqVo reqVo) throws SystemException {
+        kwmAddressService.export(reqVo);
+    }
+
 }

+ 56 - 1
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java

@@ -1,9 +1,12 @@
 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.CooperateApplyQueryReqVo;
-import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
+import com.sckw.manage.model.vo.req.CooperateApproveReqVo;
+import com.sckw.manage.model.vo.req.IdsReqVo;
+import com.sckw.manage.model.vo.req.InitiateReqVo;
 import com.sckw.manage.service.KwmCooperateApplyService;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,4 +38,56 @@ public class KwmCooperateApplyController {
     public HttpResult queryByPage(@Valid @RequestBody CooperateApplyQueryReqVo reqVo) throws SystemException {
         return HttpResult.ok(kwmCooperateApplyService.queryByPage(reqVo));
     }
+
+    /**
+     * @param reqVo 申请入参
+     * @return HttpResult
+     * @desc: 发起申请
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping("/initiate")
+    public HttpResult initiate(@Valid @RequestBody InitiateReqVo reqVo) throws SystemException {
+        kwmCooperateApplyService.initiate(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_017);
+    }
+
+    /**
+     * @param reqVo ids
+     * @return HttpResult
+     * @desc: 撤销
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping("/cancel")
+    public HttpResult cancel(@Valid @RequestBody IdsReqVo reqVo) throws SystemException {
+        kwmCooperateApplyService.cancel(reqVo.getIds());
+        return HttpResult.ok(HttpStatus.MSG_018);
+    }
+
+    /**
+     * @param reqVo 入参
+     * @return HttpResult
+     * @desc: 审核
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping("/approve")
+    public HttpResult approve(@Valid @RequestBody CooperateApproveReqVo reqVo) throws SystemException {
+        kwmCooperateApplyService.approve(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_004);
+    }
+
+    /**
+     * @param reqVo 全量入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping("/export")
+    public void export(@Valid @RequestBody CooperateApplyQueryReqVo reqVo) throws SystemException {
+        kwmCooperateApplyService.export(reqVo);
+    }
+
+
 }

+ 2 - 1
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.res.CooperateManageQueryResVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -25,7 +26,7 @@ public interface KwmCooperateMapper extends BaseMapper<KwmCooperate> {
      * @author: czh
      * @date: 2023/7/10
      */
-    List<CooperateManageQueryResDto> findList(CooperateManageQueryReqDto reqDto);
+    List<CooperateManageQueryResDto> findList(@Param(value = "reqDto") CooperateManageQueryReqDto reqDto);
 
 }
 

+ 5 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/req/CooperateManageQueryReqDto.java

@@ -48,4 +48,9 @@ public class CooperateManageQueryReqDto {
      */
     private List<Integer> status;
 
+    /**
+     * id集合
+     */
+    private List<Long> ids;
+
 }

+ 74 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressAddReqVo.java

@@ -0,0 +1,74 @@
+package com.sckw.manage.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 新增入参
+ * @date 2023/7/12
+ */
+@Data
+public class AddressAddReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -3086647554449155374L;
+
+    /**
+     * 区域code
+     */
+    private Integer cityCode;
+
+    /**
+     * 区域名
+     */
+    private String cityName;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 电子围栏
+     */
+    private String fence;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 地址名称
+     */
+    private String name;
+
+    /**
+     * 联系人电话
+     */
+    private String phone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 地址类型
+     */
+    private long type;
+
+}

+ 55 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java

@@ -0,0 +1,55 @@
+package com.sckw.manage.model.vo.req;
+
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 查询入参
+ * @date 2023/7/10
+ */
+@Data
+public class AddressQueryReqVo extends PageRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5677297006062954377L;
+
+    /**
+     * 所属区域
+     */
+    private Integer cityCode;
+
+    /**
+     * 地址名称、详细地址
+     */
+    private String keywords;
+
+    /**
+     * 创建开始时间(时间戳)
+     */
+    @NotNull(message = "开始时间不能为空")
+    private Date startTime;
+
+    /**
+     * 创建结束时间(时间戳)
+     */
+    @NotNull(message = "结束时间不能为空")
+    private Date endTime;
+
+    /**
+     * 地址类型
+     */
+    private Long type;
+
+    /**
+     * 主键
+     */
+    private String ids;
+
+}

+ 67 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressUpdateReqVo.java

@@ -0,0 +1,67 @@
+package com.sckw.manage.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 修改入参
+ * @date 2023/7/12
+ */
+@Data
+public class AddressUpdateReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2251728058304183720L;
+
+    /**
+     * 区域code
+     */
+    private Integer cityCode;
+    /**
+     * 区域名
+     */
+    private String cityName;
+    /**
+     * 联系人
+     */
+    private String contacts;
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+    /**
+     * 电子围栏
+     */
+    private String fence;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lng;
+    /**
+     * 地址名称
+     */
+    private String name;
+    /**
+     * 联系人电话
+     */
+    private String phone;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 地址类型
+     */
+    private Long type;
+}

+ 31 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/BindDefaultReqVo.java

@@ -0,0 +1,31 @@
+package com.sckw.manage.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 设置默认地址入参
+ * @date 2023/7/12
+ */
+@Data
+public class BindDefaultReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 8780785042909170596L;
+
+    /**
+     * 默认地址类型 1 默认装货地址 2默认卸货地址
+     */
+    @NotNull(message = "默认地址类型不能为空")
+    private Integer defaultType;
+
+    /**
+     * 地址主键id
+     */
+    @NotNull(message = "地址id不能为空")
+    private Long id;
+}

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

@@ -8,6 +8,7 @@ import lombok.Data;
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author czh
@@ -46,4 +47,10 @@ public class CooperateApplyQueryReqVo extends PageRequest implements Serializabl
      */
     @NotNull(message = "结束时间不能为空")
     private Date endTime;
+
+    /**
+     * ids id集合
+     */
+    private List<Long> ids;
+
 }

+ 34 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApproveReqVo.java

@@ -0,0 +1,34 @@
+package com.sckw.manage.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 审核
+ * @date 2023/7/11
+ */
+@Data
+public class CooperateApproveReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 4748918929228838990L;
+
+    /**
+     * 主键id
+     */
+    private String ids;
+
+    /**
+     * 1 通过 3拒绝
+     */
+    private Integer approve;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

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

@@ -8,6 +8,7 @@ import lombok.Data;
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author czh
@@ -41,4 +42,10 @@ public class CooperateManageQueryReqVo extends PageRequest implements Serializab
      */
     @NotNull(message = "结束时间不能为空")
     private Date endTime;
+
+    /**
+     * id集合
+     */
+    private List<Long> ids;
+
 }

+ 45 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/InitiateReqVo.java

@@ -0,0 +1,45 @@
+package com.sckw.manage.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 发起申请入参
+ * @date 2023/7/11
+ */
+@Data
+public class InitiateReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 8349164938027233004L;
+
+    /**
+     * 选择的合作单位类型,多个用","隔开
+     */
+    @NotBlank(message = "合作属性不能为空")
+    private String chooseCooperateTypes;
+
+    /**
+     * 合作单位id
+     */
+    @NotNull(message = "合作单位不能为空")
+    private Long entId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 业务联系人id
+     */
+    @NotNull(message = "业务联系人不能为空")
+    private Long userId;
+
+
+}

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

@@ -0,0 +1,93 @@
+package com.sckw.manage.model.vo.res;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询返参
+ * @date 2023/7/12
+ */
+@Data
+public class AddressQueryResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 4296341994407256119L;
+
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
+    /**
+     * 省市区
+     */
+    private String cityName;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 电子围栏状态 0未设置 1已设置
+     */
+    private Integer fenceStatus;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 地址名称
+     */
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 地址类型
+     */
+    private String type;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+}

+ 8 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateApplyQueryResVo.java

@@ -1,5 +1,7 @@
 package com.sckw.manage.model.vo.res;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
 import lombok.Data;
 
 import java.io.Serial;
@@ -17,6 +19,12 @@ public class CooperateApplyQueryResVo implements Serializable {
     @Serial
     private static final long serialVersionUID = -3581516158447395007L;
 
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
     /**
      * 合作属性 1供应单位 2采购单位 3托运单位 4承运单位 多个用","隔开单位名称
      */

+ 13 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java

@@ -1,5 +1,7 @@
 package com.sckw.manage.model.vo.res;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
 import lombok.Data;
 
 import java.io.Serial;
@@ -17,6 +19,12 @@ public class CooperateManageQueryResVo implements Serializable {
     @Serial
     private static final long serialVersionUID = -6651581088847974090L;
 
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
     /**
      * 合作属性 1供应单位 2采购单位 3托运单位 4承运单位 多个用","隔开单位名称
      */
@@ -67,4 +75,9 @@ public class CooperateManageQueryResVo implements Serializable {
      */
     private Integer status;
 
+    /**
+     * 申请类型 1 我放发起  2对方发起
+     */
+    private Integer applyTypeCode;
+
 }

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

@@ -0,0 +1,198 @@
+package com.sckw.manage.service;
+
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.CooperateTypeEnum;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.context.LoginUserHolder;
+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.system.api.RemoteSystemService;
+import com.sckw.system.api.RemoteUserService;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author czh
+ * @desc 公共
+ * @date 2023/7/12
+ */
+@Service
+public class CommonBusinessService {
+
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteUserService remoteUserService;
+
+    @Autowired
+    private KwmCooperateMapper kwmCooperateMapper;
+
+    /**
+     * @param keywords 关键字 resDto查询结果集
+     * @desc: 是否匹配到关键字
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public boolean matchContacts(String keywords, CooperateManageQueryResDto resDto) {
+        if (resDto.getInviteeContacts().contains(keywords)) {
+            return true;
+        }
+
+        if (resDto.getInviterContacts().contains(keywords)) {
+            return true;
+        }
+
+        if (resDto.getInviterPhone().contains(keywords)) {
+            return true;
+        }
+
+        if (resDto.getInviteePhone().contains(keywords)) {
+            return true;
+        }
+
+        return false;
+    }
+
+
+    /**
+     * @param userIds 用户id
+     * @return UserCacheResDto
+     * @desc: 查用户信息
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public Map<Long, UserCacheResDto> queryUserCacheMapByIds(List<Long> userIds){
+        return remoteSystemService.queryUserCacheMapByIds(userIds);
+    }
+
+
+    /**
+     * @param entIds 企业id
+     * @return EntCacheResDto
+     * @desc: 查企业信息
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public Map<Long, EntCacheResDto> queryEntCacheMapByIds(List<Long> entIds) {
+        return remoteSystemService.queryEntCacheMapByIds(entIds);
+    }
+
+    /**
+     * @param ids 主键id
+     * @return Map
+     * @desc: 根据id查字典
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public Map<Long, SysDictResDto> querySysDictByIds(List<Long> ids) {
+        return remoteUserService.querySysDictByIds(ids);
+    }
+
+    /**
+     * @param type 当前企业的属性
+     * @return Integer
+     * @desc: 转换成相对的属性
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public Integer changeAttribute(Integer type) {
+        if (type == CooperateTypeEnum.SUPPLIER.getCode()) {
+            return CooperateTypeEnum.PURCHASER.getCode();
+        }
+
+        if (type == CooperateTypeEnum.PURCHASER.getCode()) {
+            return CooperateTypeEnum.SUPPLIER.getCode();
+        }
+
+        if (type == CooperateTypeEnum.CONSIGN.getCode()) {
+            return CooperateTypeEnum.CARRIAGE.getCode();
+        }
+
+        if (type == CooperateTypeEnum.CARRIAGE.getCode()) {
+            return CooperateTypeEnum.CONSIGN.getCode();
+        }
+
+        return Global.NO;
+    }
+
+
+    /**
+     * @param reqDto 全量查入参
+     * @return CooperateManageQueryResVo
+     * @desc: 全量查
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    public List<CooperateManageQueryResVo> findList(CooperateManageQueryReqDto reqDto) {
+        Long entId = LoginUserHolder.getEntId();
+        reqDto.setCurrentEntId(entId);
+        List<CooperateManageQueryResDto> list = kwmCooperateMapper.findList(reqDto);
+        if (CollectionUtils.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+
+        //dubbo接口查用户和企业
+        List<Long> userIds = list.stream().map(CooperateManageQueryResDto::getCreateBy).distinct().toList();
+        List<Long> targetEntIds = list.stream().map(CooperateManageQueryResDto::getTargetEntId).distinct().toList();
+        List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
+        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(targetEntIds);
+        Map<Long, String> userMap = new HashMap<>();
+        Map<Long, String> entMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(userCacheResDtos)) {
+            userMap = userCacheResDtos.stream().collect(Collectors.toMap(UserCacheResDto::getId, UserCacheResDto::getName, (oldValue, newValue) -> newValue));
+        }
+        if (!CollectionUtils.isEmpty(entCacheResDtos)) {
+            entMap = entCacheResDtos.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (oldValue, newValue) -> newValue));
+        }
+
+        List<CooperateManageQueryResVo> result = new ArrayList<>();
+        for (CooperateManageQueryResDto cooperateManageQueryResDto : list) {
+            Long targetEntId = cooperateManageQueryResDto.getTargetEntId();
+            String targetEntName = entMap.get(targetEntId);
+            String keywords = reqDto.getKeywords();
+            if (StringUtils.isNotBlank(keywords)) {
+                if (!targetEntName.contains(keywords) && !matchContacts(keywords, cooperateManageQueryResDto)) {
+                    continue;
+                }
+            }
+
+            CooperateManageQueryResVo cooperateManageQueryResVo = new CooperateManageQueryResVo();
+            cooperateManageQueryResVo.setId(cooperateManageQueryResDto.getId());
+            cooperateManageQueryResVo.setCooperateTypes(cooperateManageQueryResDto.getTypes());
+            cooperateManageQueryResVo.setCreateTime(cooperateManageQueryResDto.getCreateTime());
+            cooperateManageQueryResVo.setRemark(cooperateManageQueryResDto.getRemark());
+            cooperateManageQueryResVo.setStatus(cooperateManageQueryResDto.getStatus());
+            cooperateManageQueryResVo.setApplyTypeCode(cooperateManageQueryResDto.getApplyTypeCode());
+            cooperateManageQueryResVo.setCreateByName(userMap.get(cooperateManageQueryResDto.getCreateBy()));
+            cooperateManageQueryResVo.setEntName(targetEntName);
+
+            //我方是发起方
+            if (entId.compareTo(cooperateManageQueryResDto.getInviteeEntId()) == 0) {
+                cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviteeContacts());
+                cooperateManageQueryResVo.setManager(cooperateManageQueryResDto.getInviterContacts());
+                cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviteePhone());
+                cooperateManageQueryResVo.setManagerPhone(cooperateManageQueryResDto.getInviterPhone());
+            } else {
+                cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviterContacts());
+                cooperateManageQueryResVo.setManager(cooperateManageQueryResDto.getInviteeContacts());
+                cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviterPhone());
+                cooperateManageQueryResVo.setManagerPhone(cooperateManageQueryResDto.getInviteePhone());
+            }
+
+            result.add(cooperateManageQueryResVo);
+        }
+        return result;
+    }
+
+}

+ 194 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java

@@ -1,7 +1,32 @@
 package com.sckw.manage.service;
 
+import java.io.IOException;
+import java.util.*;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+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.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.EasyExcelUtil;
+import com.sckw.manage.dao.KwmAddressMapper;
+import com.sckw.manage.model.entity.KwmAddress;
+import com.sckw.manage.model.vo.req.*;
+import com.sckw.manage.model.vo.res.AddressQueryResVo;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author czh
@@ -11,4 +36,173 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @Service
 public class KwmAddressService {
+
+    @Autowired
+    private KwmAddressMapper kwmAddressMapper;
+
+    @Autowired
+    private CommonBusinessService commonBusinessService;
+
+    /**
+     * @param reqVo 分页入参
+     * @return HttpResult
+     * @desc: 分页查询
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public PageResult queryByPage(AddressQueryReqVo reqVo) {
+        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        List<AddressQueryResVo> list = findList(reqVo);
+        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+    }
+
+    /**
+     * @param reqVo 分页入参
+     * @return AddressQueryResVo
+     * @desc: 全量查询
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    private List<AddressQueryResVo> findList(AddressQueryReqVo reqVo) {
+        LambdaQueryWrapper<KwmAddress> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Objects.nonNull(reqVo.getCityCode()), KwmAddress::getCityCode, reqVo.getCityCode()).
+                eq(Objects.nonNull(reqVo.getType()), KwmAddress::getType, reqVo.getType()).
+                in(StringUtils.isNotBlank(reqVo.getIds()), KwmAddress::getId, Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList()).
+                eq(KwmAddress::getDelFlag, Global.NO).
+                between(KwmAddress::getCreateTime, reqVo.getStartTime(), reqVo.getEndTime()).
+                and(wq -> wq.like(StringUtils.isNotBlank(reqVo.getKeywords()), KwmAddress::getDetailAddress, reqVo.getKeywords()).or().
+                        like(StringUtils.isNotBlank(reqVo.getKeywords()), KwmAddress::getCityName, reqVo.getKeywords()));
+        List<KwmAddress> kwmAddresses = kwmAddressMapper.selectList(wrapper);
+        if (CollectionUtils.isEmpty(kwmAddresses)) {
+            return Collections.emptyList();
+        }
+
+        List<AddressQueryResVo> list = new ArrayList<>();
+        List<Long> userIds = kwmAddresses.stream().map(KwmAddress::getCreateBy).distinct().toList();
+        List<Long> types = kwmAddresses.stream().map(KwmAddress::getType).distinct().toList();
+        Map<Long, UserCacheResDto> userCacheResDtoMap = commonBusinessService.queryUserCacheMapByIds(userIds);
+        Map<Long, SysDictResDto> sysDictResDtoMap = commonBusinessService.querySysDictByIds(types);
+
+        kwmAddresses.forEach(item -> {
+            AddressQueryResVo addressQueryResVo = new AddressQueryResVo();
+            BeanUtils.copyProperties(item, addressQueryResVo);
+            UserCacheResDto userCacheResDto = userCacheResDtoMap.get(item.getCreateBy());
+            SysDictResDto sysDictResDto = sysDictResDtoMap.get(item.getType());
+            if (Objects.nonNull(userCacheResDto)) {
+                addressQueryResVo.setCreateByName(userCacheResDto.getName());
+            }
+            if (Objects.nonNull(sysDictResDto)) {
+                addressQueryResVo.setType(sysDictResDto.getLabel());
+            }
+            addressQueryResVo.setFenceStatus(StringUtils.isNotBlank(item.getFence()) ? Global.YES : Global.NO);
+            list.add(addressQueryResVo);
+        });
+        return list;
+    }
+
+    /**
+     * @param reqVo 默认地址入参
+     * @desc: 设置默认地址
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public void bindDefault(BindDefaultReqVo reqVo) {
+        KwmAddress kwmAddress = kwmAddressMapper.selectById(reqVo.getId());
+        if (Objects.isNull(kwmAddress) || kwmAddress.getDefaultType() == Global.YES) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.ADDRESS_NOT_EXISTS);
+        }
+
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        Integer defaultType = kwmAddress.getDefaultType();
+        Integer setDefaultType = reqVo.getDefaultType();
+        kwmAddress.setUpdateBy(userId);
+        kwmAddress.setUpdateTime(date);
+        if (Objects.isNull(defaultType)) {
+            kwmAddress.setDefaultType(setDefaultType);
+        } else {
+            //不能重复
+            if (defaultType.equals(setDefaultType)) {
+                throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_021);
+            }
+            kwmAddress.setDefaultType(AddressDefaultTypeEnum.BOTH.getCode());
+        }
+
+        if (kwmAddressMapper.updateById(kwmAddress) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+        }
+
+    }
+
+    public void update(AddressUpdateReqVo reqVo) {
+    }
+
+
+    /**
+     * @param reqVo 新增入参
+     * @desc: 新增地址
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public void add(AddressAddReqVo reqVo) {
+        KwmAddress kwmAddress = new KwmAddress();
+        BeanUtils.copyProperties(reqVo, kwmAddress);
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        kwmAddress.setDelFlag(Global.NO);
+        kwmAddress.setStatus(Global.NO);
+        kwmAddress.setCreateBy(userId);
+        kwmAddress.setUpdateBy(userId);
+        kwmAddress.setCreateTime(date);
+        kwmAddress.setUpdateTime(date);
+        kwmAddress.setId(new IdWorker(1L).nextId());
+        if (kwmAddressMapper.insert(kwmAddress) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+    }
+
+
+    /**
+     * @param ids 主键
+     * @desc: 删除
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    @Transactional(rollbackFor = {})
+    public void delete(String ids) {
+        List<Long> idList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
+        List<KwmAddress> kwmAddresses = kwmAddressMapper.selectBatchIds(idList);
+        if (CollectionUtils.isEmpty(kwmAddresses)) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.ADDRESS_NOT_EXISTS);
+        }
+
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        kwmAddresses.forEach(item -> {
+            item.setUpdateTime(date);
+            item.setUpdateBy(userId);
+            item.setDelFlag(Global.YES);
+
+            if (kwmAddressMapper.updateById(item) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
+            }
+        });
+    }
+
+
+    /**
+     * @param reqVo 查询入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/12
+     */
+    public void export(AddressQueryReqVo reqVo) {
+        List<AddressQueryResVo> list = findList(reqVo);
+        try {
+            EasyExcelUtil.writeSingleExcel("地址管理.xlsx", "sheet1", list, AddressQueryResVo.class);
+        } catch (IOException e) {
+            log.error("导出失败:", e);
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
+        }
+    }
 }

+ 256 - 20
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java

@@ -1,28 +1,41 @@
 package com.sckw.manage.service;
 
+import java.io.IOException;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CooperateStatusEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.EasyExcelUtil;
 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.KwmCooperate;
+import com.sckw.manage.model.entity.KwmCooperateType;
 import com.sckw.manage.model.vo.req.CooperateApplyQueryReqVo;
-import com.sckw.manage.model.vo.res.CooperateApplyQueryResVo;
+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.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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author czh
@@ -36,6 +49,15 @@ public class KwmCooperateApplyService {
     @Autowired
     private KwmCooperateMapper kwmCooperateMapper;
 
+    @Autowired
+    private CommonBusinessService commonBusinessService;
+
+    @Autowired
+    private KwmCooperateTypeMapper kwmCooperateTypeMapper;
+
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
     /**
      * @param reqVo 分页入参
      * @return HttpResult
@@ -45,8 +67,18 @@ public class KwmCooperateApplyService {
      */
     public PageResult queryByPage(CooperateApplyQueryReqVo reqVo) {
         PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
+        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+    }
 
-        //构建查全量入参
+    /**
+     * @param reqVo 查询入参
+     * @return CooperateManageQueryReqDto
+     * @desc: 构建查全量入参
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    private CooperateManageQueryReqDto buildQueryParam(CooperateApplyQueryReqVo reqVo) {
         CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
         BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
         String cooperateTypes = reqVo.getCooperateTypes();
@@ -54,34 +86,238 @@ public class KwmCooperateApplyService {
             cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(cooperateTypes.split(Global.COMMA)));
         }
 
-        //只允许查出申请中和已拒绝的记录
+        List<Long> ids = reqVo.getIds();
+        if (!CollectionUtils.isEmpty(ids)) {
+            cooperateManageQueryReqDto.setIds(ids);
+        }
+        //只允许查出申请中、已拒绝、已撤销的记录
         List<Integer> status = new ArrayList<>();
         status.add(CooperateStatusEnum.PROCESS.getCode());
         status.add(CooperateStatusEnum.REFUSE.getCode());
+        status.add(CooperateStatusEnum.CANCEL.getCode());
         cooperateManageQueryReqDto.setStatus(status);
-        List<CooperateApplyQueryResVo> list = findList(cooperateManageQueryReqDto);
-        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return cooperateManageQueryReqDto;
+    }
+
+
+    /**
+     * @param reqVo 申请入参
+     * @desc: 发起申请
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @Transactional(rollbackFor = {})
+    public void initiate(InitiateReqVo reqVo) {
+        Long currentEntId = LoginUserHolder.getEntId();
+        List<Integer> chooseCooperateTypes = Arrays.stream(reqVo.getChooseCooperateTypes().split(Global.COMMA)).map(Integer::parseInt).toList();
+
+        //查是否有在合作中、审核中的记录
+        List<KwmCooperate> kwmCooperates = queryValidCooperate(reqVo.getEntId(), currentEntId);
+        if (!CollectionUtils.isEmpty(kwmCooperates)) {
+            //有待审核的记录不允许新增申请
+            if (kwmCooperates.stream().anyMatch(item -> item.getStatus() == CooperateStatusEnum.PROCESS.getCode())) {
+                throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.MSG_015);
+            }
+
+            //已合作的可以新增,但不能重复新增
+            checkTypeRepeat(currentEntId, chooseCooperateTypes, kwmCooperates);
+        }
+
+        //保存发起申请
+        saveInitiate(reqVo, currentEntId, chooseCooperateTypes);
+    }
+
+
+    /**
+     * @param reqVo 入参, currentEntId当前企业id,选择的企业类型
+     * @desc: 保存发起申请
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    private void saveInitiate(InitiateReqVo reqVo, Long currentEntId, List<Integer> chooseCooperateTypes) {
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        UserCacheResDto userCacheResDto = remoteSystemService.queryManagerInfoByEntId(currentEntId);
+        KwmCooperate kwmCooperate = new KwmCooperate();
+        long id = new IdWorker(1L).nextId();
+        kwmCooperate.setEntId(currentEntId);
+        kwmCooperate.setInviterEntId(currentEntId);
+        kwmCooperate.setInviteeEntId(reqVo.getEntId());
+        if (Objects.nonNull(userCacheResDto)) {
+            kwmCooperate.setInviterContacts(userCacheResDto.getName());
+            kwmCooperate.setInviterPhone(userCacheResDto.getPhone());
+        }
+        Long contactId = reqVo.getUserId();
+        UserCacheResDto contactDto = remoteSystemService.queryUserCacheById(contactId);
+        if (Objects.nonNull(contactDto)) {
+            kwmCooperate.setInviteeContacts(contactDto.getName());
+            kwmCooperate.setInviteePhone(contactDto.getPhone());
+        }
+        kwmCooperate.setId(id);
+        kwmCooperate.setRemark(reqVo.getRemark());
+        kwmCooperate.setStatus(CooperateStatusEnum.PROCESS.getCode());
+        kwmCooperate.setCreateBy(userId);
+        kwmCooperate.setCreateTime(date);
+        kwmCooperate.setUpdateBy(userId);
+        kwmCooperate.setUpdateTime(date);
+        kwmCooperate.setDelFlag(Global.NO);
+        if (kwmCooperateMapper.insert(kwmCooperate) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+
+
+        chooseCooperateTypes.forEach(item -> {
+            KwmCooperateType kwmCooperateType = new KwmCooperateType();
+            kwmCooperateType.setId(new IdWorker(1L).nextId());
+            kwmCooperateType.setCooperateId(id);
+            kwmCooperateType.setType(item);
+            kwmCooperateType.setStatus(Global.NO);
+            kwmCooperateType.setCreateBy(userId);
+            kwmCooperateType.setCreateTime(date);
+            kwmCooperateType.setUpdateBy(userId);
+            kwmCooperateType.setUpdateTime(date);
+            kwmCooperateType.setDelFlag(Global.NO);
+            if (kwmCooperateTypeMapper.insert(kwmCooperateType) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+            }
+        });
     }
 
     /**
-     * @param reqDto 入参
-     * @return CooperateApplyQueryResVo
-     * @desc: 全量查
+     * @param currentEntId 当前企业id  chooseCooperateTypes选择的合作属性  kwmCooperates已有的合作记录
+     * @desc: 新增申请前判重
      * @author: czh
      * @date: 2023/7/11
      */
-    private List<CooperateApplyQueryResVo> findList(CooperateManageQueryReqDto reqDto) {
-        Long entId = LoginUserHolder.getEntId();
-        reqDto.setCurrentEntId(entId);
+    private void checkTypeRepeat(Long currentEntId, List<Integer> chooseCooperateTypes, List<KwmCooperate> kwmCooperates) {
+        for (KwmCooperate kwmCooperate : kwmCooperates) {
+            //受邀请方
+            Long inviteeEntId = kwmCooperate.getInviteeEntId();
+            //发起方
+            Long inviterEntId = kwmCooperate.getInviterEntId();
+            LambdaQueryWrapper<KwmCooperateType> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(KwmCooperateType::getCooperateId, kwmCooperate.getId());
+            List<KwmCooperateType> kwmCooperateTypes = kwmCooperateTypeMapper.selectList(wrapper);
+            if (CollectionUtils.isEmpty(kwmCooperateTypes)) {
+                throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.COOPERATE_ATTRIBUTE_NOT_EXISTS);
+            }
 
-        List<CooperateManageQueryResDto> list = kwmCooperateMapper.findList(reqDto);
-        if(CollectionUtils.isEmpty(list)) {
-            return Collections.emptyList();
+            //判断是否有重复的合作属性
+            List<Integer> typeList = kwmCooperateTypes.stream().map(KwmCooperateType::getType).toList();
+            if (inviterEntId.equals(currentEntId)) {
+                chooseCooperateTypes.forEach(item -> {
+                    if (typeList.contains(item)) {
+                        throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_016);
+                    }
+                });
+            }
+
+            if (inviteeEntId.equals(currentEntId)) {
+                chooseCooperateTypes.forEach(item -> {
+                    Integer relative = commonBusinessService.changeAttribute(item);
+                    if (typeList.contains(relative)) {
+                        throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_016);
+                    }
+                });
+            }
         }
+    }
+
+    /**
+     * @param entId 对方企业id  currentEntId 我方企业id
+     * @return KwmCooperate
+     * @desc: 查是否有在合作中、审核中的记录
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    private List<KwmCooperate> queryValidCooperate(Long entId, Long currentEntId) {
+        LambdaQueryWrapper<KwmCooperate> wrapper = new LambdaQueryWrapper<>();
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(CooperateStatusEnum.OK.getCode());
+        statusList.add(CooperateStatusEnum.PROCESS.getCode());
+        wrapper.eq(KwmCooperate::getDelFlag, Global.NO).
+                in(KwmCooperate::getStatus, statusList).
+                and(wq -> wq.eq(KwmCooperate::getInviteeEntId, entId).
+                        eq(KwmCooperate::getInviterEntId, currentEntId).
+                        or().
+                        eq(KwmCooperate::getInviteeEntId, currentEntId).
+                        eq(KwmCooperate::getInviterEntId, entId));
+        return kwmCooperateMapper.selectList(wrapper);
+    }
 
 
 
-    return null;
 
+
+    /**
+     * @param ids 主键
+     * @desc: 撤销
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public void cancel(String ids) {
+        updateCooperateInfo(ids, CooperateStatusEnum.CANCEL.getCode(), "");
+    }
+
+
+    /**
+     * @param ids 主键 type需要修改为的类型
+     * @desc: 抽取公共方法
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @Transactional(rollbackFor = {})
+    public void updateCooperateInfo(String ids, Integer type, String remark) {
+        List<Long> idList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
+        LambdaQueryWrapper<KwmCooperate> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwmCooperate::getDelFlag, Global.NO);
+        wrapper.in(KwmCooperate::getId, idList);
+        List<KwmCooperate> kwmCooperates = kwmCooperateMapper.selectList(wrapper);
+        if (CollectionUtils.isEmpty(kwmCooperates) || kwmCooperates.size() != idList.size()) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.COOPERATE_NOT_EXISTS);
+        }
+
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        kwmCooperates.forEach(item -> {
+            if (item.getStatus() != CooperateStatusEnum.PROCESS.getCode()) {
+                throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_019);
+            }
+            item.setStatus(type);
+            item.setUpdateBy(userId);
+            item.setUpdateTime(date);
+            item.setRemark(remark);
+            if (kwmCooperateMapper.updateById(item) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+        });
+    }
+
+
+    /**
+     * @param reqVo 入参
+     * @desc: 审核
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public void approve(CooperateApproveReqVo reqVo) {
+        updateCooperateInfo(reqVo.getIds(), reqVo.getApprove(), reqVo.getRemark());
+    }
+
+
+    /**
+     * @param reqVo 全量入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    public void export(CooperateApplyQueryReqVo reqVo) {
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
+        try {
+            EasyExcelUtil.writeSingleExcel("合作申请.xlsx", "sheet1", list, CooperateManageQueryResVo.class);
+        } catch (IOException e) {
+            log.error("导出失败:", e);
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
+        }
     }
 }

+ 25 - 70
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -1,4 +1,5 @@
 package com.sckw.manage.service;
+
 import java.io.IOException;
 import java.util.Date;
 
@@ -18,7 +19,6 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.EasyExcelUtil;
 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.entity.KwmCooperate;
 import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
 import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
@@ -26,7 +26,6 @@ import com.sckw.manage.model.vo.res.QueryDetailResVo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
-import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +33,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author czh
@@ -48,12 +46,16 @@ public class KwmCooperateManageService {
     @Autowired
     private KwmCooperateMapper kwmCooperateMapper;
 
+    @Autowired
+    private CommonBusinessService commonBusinessService;
+
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private RemoteUserService remoteUserService;
 
+
     /**
      * @param reqVo 分页入参
      * @return PageResult
@@ -63,78 +65,34 @@ public class KwmCooperateManageService {
      */
     public PageResult queryByPage(CooperateManageQueryReqVo reqVo) {
         PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
-
-        //构建查全量入参
-        CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
-        BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
-        String cooperateTypes = reqVo.getCooperateTypes();
-        if (!StringUtils.isBlank(cooperateTypes)) {
-            cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(cooperateTypes.split(Global.COMMA)));
-        }
-
-        List<CooperateManageQueryResVo> list = findList(cooperateManageQueryReqDto);
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
         return PageHelperUtil.getPageResult(new PageInfo<>(list));
     }
 
+
     /**
-     * @param reqDto 全量查入参
-     * @return CooperateManageQueryResVo
-     * @desc: 全量查
+     * @param reqVo 查询入参
+     * @return CooperateManageQueryReqDto
+     * @desc: 构建查全量入参
      * @author: czh
-     * @date: 2023/7/10
+     * @date: 2023/7/11
      */
-    private List<CooperateManageQueryResVo> findList(CooperateManageQueryReqDto reqDto) {
-        Long entId = LoginUserHolder.getEntId();
-        reqDto.setCurrentEntId(entId);
-        List<CooperateManageQueryResDto> list = kwmCooperateMapper.findList(reqDto);
-        if(CollectionUtils.isEmpty(list)) {
-            return Collections.emptyList();
-        }
-
-        //dubbo接口查用户和企业
-        List<Long> userIds = list.stream().map(CooperateManageQueryResDto::getCreateBy).distinct().toList();
-        List<Long> targetEntIds = list.stream().map(CooperateManageQueryResDto::getTargetEntId).distinct().toList();
-        List<UserCacheResDto> userCacheResDtos = remoteSystemService.queryUserCacheByIds(userIds);
-        List<EntCacheResDto> entCacheResDtos = remoteSystemService.queryEntCacheByIds(targetEntIds);
-        Map<Long, String> userMap = new HashMap<>();
-        Map<Long, String> entMap = new HashMap<>();
-        if (!CollectionUtils.isEmpty(userCacheResDtos)) {
-            userMap = userCacheResDtos.stream().collect(Collectors.toMap(UserCacheResDto::getId, UserCacheResDto::getName, (oldValue, newValue) -> newValue));
-        }
-        if (!CollectionUtils.isEmpty(entCacheResDtos)) {
-            entMap = entCacheResDtos.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (oldValue, newValue) -> newValue));
+    private CooperateManageQueryReqDto buildQueryParam(CooperateManageQueryReqVo reqVo) {
+        CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
+        BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
+        String cooperateTypes = reqVo.getCooperateTypes();
+        if (!StringUtils.isBlank(cooperateTypes)) {
+            cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(cooperateTypes.split(Global.COMMA)));
         }
 
-        List<CooperateManageQueryResVo> result = new ArrayList<>();
-        for (CooperateManageQueryResDto cooperateManageQueryResDto : list) {
-            CooperateManageQueryResVo cooperateManageQueryResVo = new CooperateManageQueryResVo();
-            cooperateManageQueryResVo.setCooperateTypes(cooperateManageQueryResDto.getTypes());
-            cooperateManageQueryResVo.setCreateTime(cooperateManageQueryResVo.getCreateTime());
-            cooperateManageQueryResVo.setRemark(cooperateManageQueryResVo.getRemark());
-            cooperateManageQueryResVo.setStatus(cooperateManageQueryResVo.getStatus());
-
-            Long targetEntId = cooperateManageQueryResDto.getTargetEntId();
-            cooperateManageQueryResVo.setCreateByName(userMap.get(cooperateManageQueryResDto.getCreateBy()));
-            cooperateManageQueryResVo.setEntName(entMap.get(targetEntId));
-
-            //我方是发起方
-            if (entId.compareTo(cooperateManageQueryResDto.getInviteeEntId()) == 0) {
-                cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviteeContacts());
-                cooperateManageQueryResVo.setManager(cooperateManageQueryResDto.getInviterContacts());
-                cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviteePhone());
-                cooperateManageQueryResVo.setManagerPhone(cooperateManageQueryResDto.getInviterPhone());
-            } else {
-                cooperateManageQueryResVo.setContacts(cooperateManageQueryResDto.getInviterContacts());
-                cooperateManageQueryResVo.setManager(cooperateManageQueryResDto.getInviteeContacts());
-                cooperateManageQueryResVo.setPhone(cooperateManageQueryResDto.getInviterPhone());
-                cooperateManageQueryResVo.setManagerPhone(cooperateManageQueryResDto.getInviteePhone());
-            }
-
-            result.add(cooperateManageQueryResVo);
+        List<Long> ids = reqVo.getIds();
+        if (!CollectionUtils.isEmpty(ids)) {
+            cooperateManageQueryReqDto.setIds(ids);
         }
-        return result;
+        return cooperateManageQueryReqDto;
     }
 
+
     /**
      * @param entId 企业id
      * @return QueryDetailResVo
@@ -177,7 +135,7 @@ public class KwmCooperateManageService {
         Date date = new Date();
         kwmCooperates.forEach(item -> {
             //运营端可以操作任意状态,企业端只能操作合作中的数据
-            if (checkUserPermission(item.getStatus())){
+            if (checkUserPermission(item.getStatus())) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_012);
             }
 
@@ -214,7 +172,7 @@ public class KwmCooperateManageService {
         Date date = new Date();
         kwmCooperates.forEach(item -> {
             //运营端可以操作任意状态,企业端只能操作合作中的数据
-            if (item.getStatus() != CooperateStatusEnum.PASS.getCode()){
+            if (item.getStatus() != CooperateStatusEnum.PASS.getCode()) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MSG_013);
             }
 
@@ -234,10 +192,7 @@ public class KwmCooperateManageService {
      * @date: 2023/7/11
      */
     public void export(CooperateManageQueryReqVo reqVo) throws SystemException {
-        CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
-        BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
-        cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(reqVo.getCooperateTypes().split(Global.COMMA)));
-        List<CooperateManageQueryResVo> list = findList(cooperateManageQueryReqDto);
+        List<CooperateManageQueryResVo> list = commonBusinessService.findList(buildQueryParam(reqVo));
         try {
             EasyExcelUtil.writeSingleExcel("合作管理.xlsx", "sheet1", list, CooperateManageQueryResVo.class);
         } catch (IOException e) {

+ 11 - 5
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml

@@ -46,13 +46,13 @@
                min(a.remark) remark,
                min(a.status) status,
                case when min(a.ent_id) = min(a.invitee_ent_id) then min(a.inviter_ent_id) else min(a.invitee_ent_id) end targetEntId,
-               case when min(a.ent_id) = #{currentEntId} then 1 else 2 end applyTypeCode
+               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.inviter_ent_id = b.cooperate_id
+          LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id
          WHERE a.del_flag = 0
-           and (a.invitee_ent_id = #{currentEntId} OR a.inviter_ent_id = #{currentEntId})
-           and a.create_time >= #{startTime}
-           and a.create_time &lt;= #{endTime}
+           and (a.invitee_ent_id = #{reqDto.currentEntId} OR a.inviter_ent_id = #{reqDto.currentEntId})
+           and a.create_time >= #{reqDto.startTime}
+           and a.create_time &lt;= #{reqDto.endTime}
            <if test="reqDto.cooperateTypes != null and reqDto.cooperateTypes.size() > 0">
                and b.type in
                <foreach collection="reqDto.cooperateTypes" item="item" open="(" close=")" separator=",">
@@ -65,6 +65,12 @@
                  #{item}
              </foreach>
          </if>
+         <if test="reqDto.ids != null and reqDto.ids.size() > 0">
+             and a.id in
+             <foreach collection="reqDto.ids" item="item" open="(" close=")" separator=",">
+                 #{item}
+             </foreach>
+         </if>
         group by a.id
         order by a.create_time desc
     </select>

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntTypeDao.java

@@ -43,6 +43,15 @@ public interface KwsEntTypeDao {
      */
     List<KwsEntType> findListByEntId(Long entId);
 
+    /**
+     * @param entId 企业ids
+     * @return KwsEntType
+     * @desc: 根据企业id查-批量
+     * @author: czh
+     * @date: 2023/6/19
+     */
+    List<KwsEntType> findListByEntIds(List<Long> list);
+
     /**
      * 批量插
      * @param list

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java

@@ -2,8 +2,10 @@ package com.sckw.system.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.system.model.KwsEnterprise;
+import com.sckw.system.model.pojo.FindEntListPojo;
 import com.sckw.system.model.pojo.FindEntUserPojo;
 import com.sckw.system.model.pojo.FindManagePojo;
+import com.sckw.system.model.pojo.FindPojoParam;
 import com.sckw.system.model.vo.req.EntFindPageReqVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -63,6 +65,13 @@ public interface KwsEnterpriseDao {
      */
     List<KwsEnterprise> findList(EntFindPageReqVo params);
 
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<FindEntListPojo> findPojo(@Param(value = "dto") FindPojoParam params);
+
     /**
      * 根据用户查企业信息
      * @param id

+ 7 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysDictDao.java

@@ -36,6 +36,13 @@ public interface SysDictDao {
      */
     SysDict selectByKey(Long id);
 
+    /**
+     * 详情查询
+     * @param id
+     * @return
+     */
+    List<SysDict> selectByKeys(List<Long> list);
+
     /**
      * 查询
      * @param params

+ 11 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -230,7 +230,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     public Map<Long, EntCacheResDto> queryEntCacheMapByIds(List<Long> entIds) {
         List<EntCacheResDto> entCacheResDtos = queryEntCacheByIds(entIds);
         if (CollectionUtils.isEmpty(entCacheResDtos)) {
-            return null;
+            return new HashMap<>();
         }
         return entCacheResDtos.stream().collect(Collectors.toMap(EntCacheResDto::getId, x -> x, (oldValue, newValue) -> newValue));
     }
@@ -298,7 +298,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     public Map<Long, UserCacheResDto> queryUserCacheMapByIds(List<Long> userIds) {
         List<UserCacheResDto> userCacheResDtos = queryUserCacheByIds(userIds);
         if (CollectionUtils.isEmpty(userCacheResDtos)) {
-            return null;
+            return new HashMap<>();
         }
         return userCacheResDtos.stream().collect(Collectors.toMap(UserCacheResDto::getId, x -> x, (oldValue, newValue) -> newValue));
     }
@@ -321,6 +321,15 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
         return JSONObject.parseObject(areaCache, SysAreaCacheResDto.class);
     }
 
+    @Override
+    public UserCacheResDto queryManagerInfoByEntId(Long entId) {
+        KwsEnterpriseResDto kwsEnterpriseResDto = remoteBaseService.queryEnterpriseById(entId);
+        if (Objects.isNull(kwsEnterpriseResDto) || Objects.isNull(kwsEnterpriseResDto.getManager())) {
+            return null;
+        }
+        return queryUserCacheById(kwsEnterpriseResDto.getManager());
+    }
+
     /**
      * @param id 父id,需要遍历的list
      * @return SysDictGroupResDto

+ 17 - 3
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java

@@ -12,6 +12,7 @@ import com.sckw.system.api.model.dto.req.UserLoginReqDto;
 import com.sckw.system.api.model.dto.res.*;
 import com.sckw.system.dao.KwsEnterpriseDao;
 import com.sckw.system.dao.KwsUserLoginDao;
+import com.sckw.system.dao.SysDictDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.pojo.FindMenuTreePojo;
 import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
@@ -24,9 +25,8 @@ import jakarta.annotation.Resource;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author czh
@@ -55,9 +55,13 @@ public class RemoteUserServiceImpl implements RemoteUserService {
 
     @Resource
     private KwsEnterpriseService kwsEnterpriseService;
+
     @Resource
     private KwsEnterpriseDao kwsEnterpriseDao;
 
+    @Resource
+    private SysDictDao sysDictDao;
+
 
     @Override
     public KwsEnterpriseResDto queryEnterpriseById(Long id) {
@@ -144,6 +148,16 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         }
     }
 
+    @Override
+    public Map<Long, SysDictResDto> querySysDictByIds(List<Long> ids) {
+        List<SysDict> sysDictList = sysDictDao.selectByKeys(ids);
+        if (CollectionUtils.isEmpty(sysDictList)) {
+            return new HashMap<>();
+        }
+        List<SysDictResDto> sysDictResDtos = BeanUtils.copyToList(sysDictList, SysDictResDto.class);
+        return sysDictResDtos.stream().collect(Collectors.toMap(SysDictResDto::getId, item -> item, (oldValue, newValue) -> newValue));
+    }
+
     @Override
     public KwsUserResDto getUserByAccount(String username) {
         return remoteBaseService.getUserByAccount(username);

+ 0 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsDept.java

@@ -16,7 +16,6 @@ public class KwsDept extends BaseModel {
     /**
      * 机构类型(1系统管理机构、2平台企业机构)
      */
-    @NotNull(message = "机构类型不能为空")
     private Integer systemType;
 
     /**
@@ -51,7 +50,6 @@ public class KwsDept extends BaseModel {
     /**
      * 机构层级(1更目录、...递增)
      */
-    @NotNull(message = "机构层级不能为空")
     private Integer level;
 
     /**

+ 180 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindEntListPojo.java

@@ -0,0 +1,180 @@
+package com.sckw.system.model.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询
+ * @date 2023/7/12
+ */
+
+@Data
+public class FindEntListPojo {
+
+    /**
+     * 企业编号
+     */
+    private String code;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 法人姓名
+     */
+    private String legalName;
+
+    /**
+     * 法人联系电话
+     */
+    private String legalPhone;
+
+    /**
+     * 企业头像
+     */
+    private String head;
+
+    /**
+     * 积分
+     */
+    private Integer integral;
+
+    /**
+     * 账号余额(分)
+     */
+    private Long balance;
+
+    /**
+     * 经验值
+     */
+    private Integer experience;
+
+    /**
+     * 会员等级
+     */
+    private Integer memberLevel;
+
+    /**
+     * 注册时间
+     */
+    private Date regTime;
+
+    /**
+     * 注册来源(app、pc)
+     */
+    private String regSource;
+
+    /**
+     * 组织机构代码
+     */
+    private String orgCode;
+
+    /**
+     * 企业地址code-----区域表id---实际用途?
+     */
+    private Integer cityCode;
+
+    /**
+     * 企业地址-----区域表id---实际用途?
+     */
+    private String cityName;
+
+    /**
+     * 企业详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 企业地址坐标----纬度
+     */
+    private String lat;
+
+    /**
+     * 企业地址坐标----经度
+     */
+    private String lng;
+
+    /**
+     * 资料审批状态(0未审批、1通过、2未通过、3审批中)
+     */
+    private Integer approval;
+
+    /**
+     * 审批时间
+     */
+    private Date approvalTime;
+
+    /**
+     * 专属客户经理(用户ID)
+     */
+    private long manager;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态:0正常/1锁定
+     */
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标识(0正常/-1删除)
+     */
+    private Integer delFlag = 0;
+
+    /**
+     * 企业类型 多个用","隔开
+     */
+    private String type;
+
+    /**
+     * 创建人的系统类型
+     */
+    private Integer systemType;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+}

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

@@ -0,0 +1,47 @@
+package com.sckw.system.model.pojo;
+
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 查询
+ * @date 2023/7/12
+ */
+@Data
+public class FindPojoParam extends PageRequest {
+
+    /**
+     * 企业名/联系人/联系电话
+     */
+    private String keywords;
+
+    /**
+     * 企业类型1:供应商,2:采购商,3:4PL物流,4:3PL物流,多个用","隔开
+     */
+    private List<Integer> typeList;
+
+    /**
+     * 入驻类型 1自主注册  2平台平台接入
+     */
+    private Integer entryType;
+
+    /**
+     * 提交开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 提交开始时间
+     */
+    private Date endTime;
+
+    /**
+     * 审批状态 0未审批、1通过、2未通过、3审批中
+     */
+    private int approval;
+
+}

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

@@ -4,6 +4,8 @@ import com.sckw.core.model.page.PageRequest;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @author czh
@@ -43,4 +45,29 @@ public class EntFindPageReqVo extends PageRequest implements Serializable {
      */
     private int approval;
 
+    /**
+     * 企业名/联系人/联系电话
+     */
+    private String keywords;
+
+    /**
+     * 企业类型1:供应商,2:采购商,3:4PL物流,4:3PL物流,多个用","隔开
+     */
+    private String entTypes;
+
+    /**
+     * 入驻类型 1自主注册  2平台平台接入
+     */
+    private Integer entryType;
+
+    /**
+     * 提交开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 提交开始时间
+     */
+    private Date endTime;
+
 }

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

@@ -22,7 +22,7 @@ public class EntRegisterReqVo implements Serializable {
     /**
      * 企业id
      */
-    @NotBlank(message = "企业不能为空")
+    @NotNull(message = "企业不能为空")
     private Long entId;
 
     /**

+ 78 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/EntFindPageResVo.java

@@ -0,0 +1,78 @@
+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;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询反参
+ * @date 2023/7/12
+ */
+@Data
+public class EntFindPageResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2703786620246108513L;
+
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 注册时间
+     */
+    private Date regTime;
+
+    /**
+     * 资料审批状态(0未审批、1通过、2未通过、3审批中)
+     */
+    private Integer approval;
+
+    /**
+     * 审批时间
+     */
+    private Date approvalTime;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 企业类型
+     */
+    private String entTypes;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 入驻类型
+     */
+    private Integer entryType;
+
+}

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

@@ -7,6 +7,7 @@ import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 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.system.dao.KwsDeptDao;
 import com.sckw.system.dao.KwsUserDeptDao;
@@ -70,6 +71,10 @@ public class KwsDeptService {
         }
         params.setId(deptId);
         params.setSort(sort);
+        if(Objects.isNull(params.getSystemType())) {
+            params.setSystemType(LoginUserHolder.getSystemType());
+        }
+
         if (kwsDeptDao.insert(params) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
         }
@@ -85,7 +90,7 @@ public class KwsDeptService {
         List<Long> list = Arrays.stream(ids.split(",")).map(Long::parseLong).toList();
         List<FindDeptUserPojo> findDeptUserPojoList = kwsDeptDao.findDeptUserByDeptIds(list);
         if (!CollectionUtils.isEmpty(findDeptUserPojoList)) {
-            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.USER_DEPT_NOT_EXISTS);
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.MSG_020);
         }
         deleteDept(kwsDeptDao.selectByKeys(list));
     }

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

@@ -6,28 +6,36 @@ import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.ApprovalEnum;
 import com.sckw.core.model.enums.EntTypeEnum;
+import com.sckw.core.model.enums.EntryTypeEnum;
 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;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
+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.model.EntCertificateInfo;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.api.model.dto.res.RegisterResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.system.dao.*;
+import com.sckw.system.dubbo.RemoteSystemServiceImpl;
 import com.sckw.system.model.*;
+import com.sckw.system.model.pojo.FindEntListPojo;
 import com.sckw.system.model.pojo.FindEntUserPojo;
 import com.sckw.system.model.pojo.FindManagePojo;
+import com.sckw.system.model.pojo.FindPojoParam;
 import com.sckw.system.model.vo.req.*;
 import com.sckw.system.model.vo.res.CertificateResVo;
+import com.sckw.system.model.vo.res.EntFindPageResVo;
 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;
 
 /**
  * 企业service接口
@@ -53,21 +61,18 @@ public class KwsEnterpriseService {
     @Autowired
     private KwsEntDeptDao kwsEntDeptDao;
 
-    @Autowired
-    private KwsDeptDao kwsDeptDao;
-
     @Autowired
     private KwsUserService kwsUserService;
 
-//    @Autowired
-//    private KwsDeptService kwsDeptService;
-
     @Autowired
     private CommonService commonService;
 
     @Autowired
     private KwsRoleService kwsRoleService;
 
+    @Autowired
+    private RemoteSystemServiceImpl remoteSystemService;
+
     /**
      * @param params 入库
      * @desc: 单表入库
@@ -82,6 +87,7 @@ public class KwsEnterpriseService {
 
     /**
      * 删除记录-根据主键
+     *
      * @param ids 主键
      * @desc: 批量删除
      * @author: czh
@@ -118,7 +124,7 @@ public class KwsEnterpriseService {
 
     /**
      * @param reqVo 更新记录入参
-     * @desc: 更新记录,有的是更新有的是新增,两种情况
+     * @desc: 更新记录, 有的是更新有的是新增, 两种情况
      * @author: czh
      * @date: 2023/6/19
      */
@@ -232,8 +238,22 @@ public class KwsEnterpriseService {
      */
     public PageResult findPage(EntFindPageReqVo reqVo) throws SystemException {
         PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
-        List<KwsEnterprise> list = findList(reqVo);
-        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+        List<FindEntListPojo> list = findPojo(reqVo);
+        List<EntFindPageResVo> result = new ArrayList<>();
+
+        if (CollectionUtils.isEmpty(list)) {
+            return PageHelperUtil.getPageResult(new PageInfo<>(result));
+        }
+
+        for (FindEntListPojo item : list) {
+            EntFindPageResVo entFindPageResVo = new EntFindPageResVo();
+            BeanUtils.copyProperties(item, entFindPageResVo);
+            entFindPageResVo.setApprovalTime(item.getApprovalTime());
+            entFindPageResVo.setEntTypes(item.getType());
+            entFindPageResVo.setEntryType(item.getSystemType().intValue() == SystemTypeEnum.MANAGE.getCode() ? EntryTypeEnum.PLATFORM.getCode() : EntryTypeEnum.SELF.getCode());
+            result.add(entFindPageResVo);
+        }
+        return PageHelperUtil.getPageResult(new PageInfo<>(result));
     }
 
     /**
@@ -247,6 +267,17 @@ public class KwsEnterpriseService {
         return kwsEnterpriseDao.findList(reqVo);
     }
 
+    public List<FindEntListPojo> findPojo(EntFindPageReqVo reqVo) {
+        FindPojoParam findPojoParam = new FindPojoParam();
+        BeanUtils.copyProperties(reqVo, findPojoParam);
+
+        if (StringUtils.isNotBlank(reqVo.getEntTypes())) {
+            findPojoParam.setTypeList(Arrays.stream(reqVo.getEntTypes().split(Global.COMMA)).map(Integer::parseInt).toList());
+        }
+
+        return kwsEnterpriseDao.findPojo(findPojoParam);
+    }
+
 
     /**
      * 新增企业(注册)
@@ -398,7 +429,7 @@ public class KwsEnterpriseService {
                 if (Objects.isNull(userByAccount)) {
                     throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
                 }
-                kwsUserService.fillUserRole(String.valueOf(findManagePojo.getRoleId()),userByAccount.getId(), SystemTypeEnum.COMPANY.getCode());
+                kwsUserService.fillUserRole(String.valueOf(findManagePojo.getRoleId()), userByAccount.getId(), SystemTypeEnum.COMPANY.getCode());
             }
         }
 
@@ -470,7 +501,6 @@ public class KwsEnterpriseService {
     }
 
 
-
     /**
      * @param userId 用户id
      * @return KwsEnterprise

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

@@ -15,6 +15,7 @@ import com.sckw.system.dao.KwsEnterpriseDao;
 import com.sckw.system.dao.KwsUserDao;
 import com.sckw.system.dao.KwsUserDeptDao;
 import com.sckw.system.model.*;
+import com.sckw.system.model.pojo.FindEntListPojo;
 import com.sckw.system.model.vo.req.*;
 import com.sckw.system.model.vo.res.KwsUserResVo;
 import lombok.extern.slf4j.Slf4j;
@@ -98,7 +99,7 @@ public class KwsUserService {
     public RegisterResDto register(RegisterReqDto reqDto) throws SystemException {
         EntFindPageReqVo entFindPageReqVo = new EntFindPageReqVo();
         entFindPageReqVo.setFirmName(reqDto.getEntName());
-        List<KwsEnterprise> list = kwsEnterpriseDao.findList(entFindPageReqVo);
+        List<KwsEnterprise > list = kwsEnterpriseDao.findList(entFindPageReqVo);
         if (!CollectionUtils.isEmpty(list)) {
             throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ENT_EXISTS);
         }
@@ -138,6 +139,8 @@ public class KwsUserService {
             kwsEnterprise.setApproval(ApprovalEnum.NO.getCode());
             kwsEnterprise.setContacts(reqDto.getName());
             kwsEnterprise.setPhone(reqDto.getPhone());
+            kwsEnterprise.setCreateBy(userId);
+            kwsEnterprise.setUpdateBy(userId);
             registerResDto.setEntId(entId);
             if (kwsEnterpriseDao.insert(kwsEnterprise) <= 0) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);

+ 1 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsDeptDao.xml

@@ -200,7 +200,7 @@
       and sd.system_type = #{systemType, jdbcType=VARCHAR}
     </if>
     <if test="name != null and name != ''">
-      and sd.name = #{name, jdbcType=VARCHAR}
+      and sd.name like concat('%', #{name, jdbcType=VARCHAR}, '%')
     </if>
     <if test="entId != null and entId != ''">
       and sd.ent_id = #{entId, jdbcType=VARCHAR}

+ 12 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsEntTypeDao.xml

@@ -151,10 +151,22 @@
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
+
   <select id="findList" resultType="com.sckw.system.model.KwsEntType">
     select * from kws_ent_type a where a.id = #{id} and a.del_flag = 0 and a.status = 0
   </select>
+
   <select id="findListByEntId" resultType="com.sckw.system.model.KwsEntType">
     select * from kws_ent_type a where a.ent_id = #{entId} and a.del_flag = 0 and a.status = 0
   </select>
+
+  <select id="findListByEntIds" resultType="com.sckw.system.model.KwsEntType">
+    select * from kws_ent_type a
+   where a.ent_id in
+   <foreach collection="list" item="item" open="(" close=")" separator=",">
+     #{item}
+   </foreach>
+     and a.del_flag = 0 and a.status = 0
+  </select>
+
 </mapper>

+ 69 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -47,6 +47,71 @@
     where id = #{id,jdbcType=BIGINT}
   </select>
 
+
+  <select id="findPojo" resultType="com.sckw.system.model.pojo.FindEntListPojo" parameterType="com.sckw.system.model.pojo.FindPojoParam">
+    select tab.* from
+    (
+    select a.id,
+    min(a.firm_name) firm_name,
+    min(a.code) code,
+    min(a.contacts) contacts,
+    min(a.phone) phone,
+    min(a.legal_name) legal_name,
+    min(a.legal_phone) legal_phone,
+    min(a.head) head,
+    min(a.integral) integral,
+    min(a.balance) balance,
+    min(a.experience) experience,
+    min(a.member_level) member_level,
+    min(a.reg_time) reg_time,
+    min(a.reg_source) reg_source,
+    min(a.org_code) org_code,
+    min(a.city_code) city_code,
+    min(a.detail_address) detail_address,
+    min(a.lat) lat,
+    min(a.lng) lng,
+    min(a.approval) approval,
+    min(a.approval_time) approval_time,
+    min(a.manager) manager,
+    min(a.remark) remark,
+    min(a.status) status,
+    min(a.create_by) create_by,
+    min(a.create_time) create_time,
+    min(a.update_by) update_by,
+    min(a.update_time) update_time,
+    min(a.del_flag) del_flag,
+    ifnull(GROUP_CONCAT(b.type), '') type,
+    min(k.system_type) system_type,
+    min(k.name) createByName
+    from kws_enterprise a
+    left join kws_user k on a.create_by = k.id
+    left join kws_ent_type b
+    on a.id = b.ent_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
+    and b.del_flag = 0
+    <if test="dto.approval != null">
+      and a.approval = #{dto.approval}
+    </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>
+    <if test="dto.startTime != null">
+      and a.update_time >= #{dto.startTime}
+    </if>
+    <if test="dto.endTime != null">
+      and a.update_time &lt;= #{dto.endTime}
+    </if>
+    ) tab
+     where tab.id is not null
+    order by tab.create_time desc
+  </select>
+
   <select id="findList" resultType="com.sckw.system.model.KwsEnterprise" parameterType="com.sckw.system.model.vo.req.EntFindPageReqVo">
     select a.*
       from kws_enterprise a
@@ -121,6 +186,7 @@
           #{item}
         </foreach>
   </select>
+
   <select id="findManageInfoByEntId" resultType="com.sckw.system.model.pojo.FindManagePojo">
     select distinct d.id userId,
            b.id deptId,
@@ -141,6 +207,7 @@
        and d.system_type = 2
        and a.id = #{entId}
   </select>
+
   <select id="findManageInfoByEntIdBeforeApproval" resultType="com.sckw.system.model.pojo.FindManagePojo">
     select distinct d.id userId,
                     b.id deptId,
@@ -437,9 +504,10 @@
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
+
   <update id="approval">
     update kws_enterprise
-       set approval = #{approval}
+       set approval = #{approval}, approval_time = now()
      where id = #{id,jdbcType=BIGINT}
        and approval in (3, 4)
        and del_flag = 0

+ 11 - 0
sckw-modules/sckw-system/src/main/resources/mapper/SysDictDao.xml

@@ -238,4 +238,15 @@
      where del_flag = 0
   </select>
 
+  <select id="selectByKeys" resultType="com.sckw.system.model.SysDict">
+    select
+    <include refid="Base_Column_List" />
+    from sys_dict
+    where del_flag = 0
+     and id in
+     <foreach collection="list" separator="," open="(" close=")" item="item">
+       #{item}
+     </foreach>
+  </select>
+
 </mapper>