czh 2 лет назад
Родитель
Сommit
b2812f199d
43 измененных файлов с 2395 добавлено и 18 удалено
  1. 8 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteUserService.java
  2. 10 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java
  3. 20 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java
  4. 16 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java
  5. 66 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java
  6. 20 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmAddressMapper.java
  7. 34 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateMapper.java
  8. 20 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateTypeMapper.java
  9. 20 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmLineCostTankerMapper.java
  10. 20 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmLineCostTramMapper.java
  11. 46 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/req/CooperateManageQueryReqDto.java
  12. 80 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/dto/res/CooperateManageQueryResDto.java
  13. 212 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmAddress.java
  14. 55 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmCooperate.java
  15. 132 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmCooperateType.java
  16. 317 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmLineCostTanker.java
  17. 317 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmLineCostTram.java
  18. 24 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/BindManagerReqVo.java
  19. 50 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java
  20. 26 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/QueryDetailReqVo.java
  21. 70 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java
  22. 39 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryDetailCertificateResDto.java
  23. 41 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryDetailResVo.java
  24. 14 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  25. 14 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  26. 156 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  27. 39 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmAddressMapper.xml
  28. 67 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml
  29. 26 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateTypeMapper.xml
  30. 56 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmLineCostTankerMapper.xml
  31. 56 0
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmLineCostTramMapper.xml
  32. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsMenuController.java
  33. 2 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java
  34. 8 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsMenuDao.java
  35. 20 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java
  36. 10 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/QueryChildMenuReqVo.java
  37. 24 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/QueryEntUserReqVo.java
  38. 69 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/KwsUserResVo.java
  39. 134 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/MenuDetailResVo.java
  40. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/QueryChildMenuResVo.java
  41. 31 17
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java
  42. 2 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  43. 18 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuDao.xml

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

@@ -140,4 +140,12 @@ public interface RemoteUserService {
      * @date: 2023/7/3
      */
     void resetPassword(Long id);
+
+    /**
+     * @param entId 企业id  userId用户id
+     * @desc: 设置客户经理
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    void bindManager(Long entId, Long userId);
 }

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

@@ -45,6 +45,16 @@ public class EntCacheResDto implements Serializable {
      */
     private Boolean valid;
 
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
     /**
      * 机构信息
      */

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

@@ -0,0 +1,20 @@
+package com.sckw.manage.controller;
+
+import com.sckw.manage.service.KwmAddressService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author czh
+ * @desc 地址管理
+ * @date 2023/7/10
+ */
+@RestController
+@RequestMapping("/address")
+public class KwmAddressController {
+
+    @Autowired
+    private KwmAddressService kwmAddressService;
+
+}

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

@@ -0,0 +1,16 @@
+package com.sckw.manage.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author czh
+ * @desc 合作申请
+ * @date 2023/7/10
+ */
+@RestController
+@RequestMapping("/cooperateApply")
+public class KwmCooperateApplyController {
+
+
+}

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

@@ -0,0 +1,66 @@
+package com.sckw.manage.controller;
+
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.manage.model.vo.req.BindManagerReqVo;
+import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
+import com.sckw.manage.model.vo.req.QueryDetailReqVo;
+import com.sckw.manage.service.KwmCooperateManageService;
+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;
+
+/**
+ * @author czh
+ * @desc 合作管理
+ * @date 2023/7/10
+ */
+@RestController
+@RequestMapping("/cooperateManage")
+public class KwmCooperateManageController {
+
+    @Autowired
+    private KwmCooperateManageService kwmCooperateManageService;
+
+    /**
+     * @param reqVo 分页入参
+     * @return HttpResult
+     * @desc: 查询合作企业列表
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    @PostMapping("/queryByPage")
+    public HttpResult queryByPage(@Valid @RequestBody CooperateManageQueryReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwmCooperateManageService.queryByPage(reqVo));
+    }
+
+    /**
+     * @param reqVo 详情入参
+     * @return HttpResult
+     * @desc: 查询详情
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    @PostMapping("queryDetail")
+    public HttpResult queryDetail(@Valid @RequestBody QueryDetailReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwmCooperateManageService.queryDetail(reqVo.getEntId()));
+    }
+
+    /**
+     * @param reqVo 绑定入参
+     * @return HttpResult
+     * @desc: 设置客户经理
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    @PostMapping("bindManager")
+    public HttpResult bindManager(@Valid @RequestBody BindManagerReqVo reqVo) throws SystemException {
+        kwmCooperateManageService.bindManager(reqVo.getUserId());
+        return HttpResult.ok(HttpStatus.MSG_010);
+    }
+
+}

+ 20 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmAddressMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.manage.dao;
+
+import com.sckw.manage.model.entity.KwmAddress;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwm_address(地址信息)】的数据库操作Mapper
+* @createDate 2023-07-10 14:27:34
+* @Entity com.sckw.manage.model.entity.KwmAddress
+*/
+@Mapper
+public interface KwmAddressMapper extends BaseMapper<KwmAddress> {
+
+}
+
+
+
+

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

@@ -0,0 +1,34 @@
+package com.sckw.manage.dao;
+
+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.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author PC
+* @description 针对表【kwm_cooperate(合作企业)】的数据库操作Mapper
+* @createDate 2023-07-10 14:27:34
+* @Entity com.sckw.manage.model.entity.KwmCooperate
+*/
+@Mapper
+public interface KwmCooperateMapper extends BaseMapper<KwmCooperate> {
+
+    /**
+     * @param reqDto 查全量入参
+     * @return CooperateManageQueryResVo
+     * @desc: 查全量
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    List<CooperateManageQueryResDto> findList(CooperateManageQueryReqDto reqDto);
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmCooperateTypeMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.manage.dao;
+
+import com.sckw.manage.model.entity.KwmCooperateType;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwm_cooperate_type(企业合作类型)】的数据库操作Mapper
+* @createDate 2023-07-10 14:27:34
+* @Entity com.sckw.manage.model.entity.KwmCooperateType
+*/
+@Mapper
+public interface KwmCooperateTypeMapper extends BaseMapper<KwmCooperateType> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmLineCostTankerMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.manage.dao;
+
+import com.sckw.manage.model.entity.KwmLineCostTanker;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwm_line_cost_tanker(线路成本-油车)】的数据库操作Mapper
+* @createDate 2023-07-10 14:27:34
+* @Entity com.sckw.manage.model.entity.KwmLineCostTanker
+*/
+@Mapper
+public interface KwmLineCostTankerMapper extends BaseMapper<KwmLineCostTanker> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/dao/KwmLineCostTramMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.manage.dao;
+
+import com.sckw.manage.model.entity.KwmLineCostTram;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwm_line_cost_tram(线路成本-电车)】的数据库操作Mapper
+* @createDate 2023-07-10 14:27:34
+* @Entity com.sckw.manage.model.entity.KwmLineCostTram
+*/
+@Mapper
+public interface KwmLineCostTramMapper extends BaseMapper<KwmLineCostTram> {
+
+}
+
+
+
+

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

@@ -0,0 +1,46 @@
+package com.sckw.manage.model.dto.req;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 查询入参
+ * @date 2023/7/10
+ */
+@Data
+public class CooperateManageQueryReqDto {
+
+    /**
+     * 1 我放发起  2对方发起,不传查全部
+     */
+    private Integer applyTypeCode;
+
+    /**
+     * 合作属性
+     */
+    private List<String> cooperateTypes;
+
+    /**
+     * 单位名称、联系人、电话
+     */
+    private String keywords;
+
+    /**
+     * 开始时间(时间戳)
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间(时间戳)
+     */
+    private Date endTime;
+
+    /**
+     * 当前企业id
+     */
+    private Long currentEntId;
+
+}

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

@@ -0,0 +1,80 @@
+package com.sckw.manage.model.dto.res;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询返参
+ * @date 2023/7/10
+ */
+@Data
+public class CooperateManageQueryResDto {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 企业类型
+     */
+    private String types;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 邀请企业id
+     */
+    private Long inviterEntId;
+
+    /**
+     * 受邀企业id
+     */
+    private Long inviteeEntId;
+
+    /**
+     * 邀请方联系人姓名
+     */
+    private String inviterContacts;
+
+    /**
+     * 邀请方联系电话
+     */
+    private String inviterPhone;
+
+    /**
+     * 受邀方联系人姓名
+     */
+    private String inviteeContacts;
+
+    /**
+     * 受邀方联系电话
+     */
+    private String inviteePhone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 对方企业id
+     */
+    private Long targetEntId;
+
+}

+ 212 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmAddress.java

@@ -0,0 +1,212 @@
+package com.sckw.manage.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 地址信息
+ * @TableName kwm_address
+ */
+@TableName(value ="kwm_address")
+@Data
+public class KwmAddress implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 地址名称
+     */
+    private String name;
+
+    /**
+     * 地址类型
+     */
+    private Long type;
+
+    /**
+     * 1 默认装货地址 2默认卸货地址  3都是
+     */
+    private Integer defaultType;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 所在地区
+     */
+    private Integer cityCode;
+
+    /**
+     * 所属区域名称
+     */
+    private String cityName;
+
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 电子围栏
+     */
+    private String fence;
+
+    /**
+     * 备注
+     */
+    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;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        KwmAddress other = (KwmAddress) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getEntId() == null ? other.getEntId() == null : this.getEntId().equals(other.getEntId()))
+            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
+            && (this.getDefaultType() == null ? other.getDefaultType() == null : this.getDefaultType().equals(other.getDefaultType()))
+            && (this.getContacts() == null ? other.getContacts() == null : this.getContacts().equals(other.getContacts()))
+            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
+            && (this.getCityCode() == null ? other.getCityCode() == null : this.getCityCode().equals(other.getCityCode()))
+            && (this.getCityName() == null ? other.getCityName() == null : this.getCityName().equals(other.getCityName()))
+            && (this.getDetailAddress() == null ? other.getDetailAddress() == null : this.getDetailAddress().equals(other.getDetailAddress()))
+            && (this.getLat() == null ? other.getLat() == null : this.getLat().equals(other.getLat()))
+            && (this.getLng() == null ? other.getLng() == null : this.getLng().equals(other.getLng()))
+            && (this.getFence() == null ? other.getFence() == null : this.getFence().equals(other.getFence()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getEntId() == null) ? 0 : getEntId().hashCode());
+        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
+        result = prime * result + ((getDefaultType() == null) ? 0 : getDefaultType().hashCode());
+        result = prime * result + ((getContacts() == null) ? 0 : getContacts().hashCode());
+        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
+        result = prime * result + ((getCityCode() == null) ? 0 : getCityCode().hashCode());
+        result = prime * result + ((getCityName() == null) ? 0 : getCityName().hashCode());
+        result = prime * result + ((getDetailAddress() == null) ? 0 : getDetailAddress().hashCode());
+        result = prime * result + ((getLat() == null) ? 0 : getLat().hashCode());
+        result = prime * result + ((getLng() == null) ? 0 : getLng().hashCode());
+        result = prime * result + ((getFence() == null) ? 0 : getFence().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", entId=").append(entId);
+        sb.append(", name=").append(name);
+        sb.append(", type=").append(type);
+        sb.append(", defaultType=").append(defaultType);
+        sb.append(", contacts=").append(contacts);
+        sb.append(", phone=").append(phone);
+        sb.append(", cityCode=").append(cityCode);
+        sb.append(", cityName=").append(cityName);
+        sb.append(", detailAddress=").append(detailAddress);
+        sb.append(", lat=").append(lat);
+        sb.append(", lng=").append(lng);
+        sb.append(", fence=").append(fence);
+        sb.append(", remark=").append(remark);
+        sb.append(", status=").append(status);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 55 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmCooperate.java

@@ -0,0 +1,55 @@
+package com.sckw.manage.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.sckw.core.model.base.BaseModel;
+import lombok.Data;
+
+/**
+ * 合作企业
+ * @TableName kwm_cooperate
+ */
+@TableName(value ="kwm_cooperate")
+@Data
+public class KwmCooperate extends BaseModel {
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 邀请企业id
+     */
+    private Long inviterEntId;
+
+    /**
+     * 受邀企业id
+     */
+    private Long inviteeEntId;
+
+    /**
+     * 邀请方联系人姓名
+     */
+    private String inviterContacts;
+
+    /**
+     * 邀请方联系电话
+     */
+    private String inviterPhone;
+
+    /**
+     * 受邀方联系人姓名
+     */
+    private String inviteeContacts;
+
+    /**
+     * 受邀方联系电话
+     */
+    private String inviteePhone;
+
+}

+ 132 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmCooperateType.java

@@ -0,0 +1,132 @@
+package com.sckw.manage.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 企业合作类型
+ * @TableName kwm_cooperate_type
+ */
+@TableName(value ="kwm_cooperate_type")
+@Data
+public class KwmCooperateType implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合作企业g关联id
+     */
+    private Long cooperateId;
+
+    /**
+     * 用户类型(1供应商,2采购商,34PL物流,43PL物流)
+     */
+    private Integer type;
+
+    /**
+     * 备注
+     */
+    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;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        KwmCooperateType other = (KwmCooperateType) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getCooperateId() == null ? other.getCooperateId() == null : this.getCooperateId().equals(other.getCooperateId()))
+            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getCooperateId() == null) ? 0 : getCooperateId().hashCode());
+        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", cooperateId=").append(cooperateId);
+        sb.append(", type=").append(type);
+        sb.append(", remark=").append(remark);
+        sb.append(", status=").append(status);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 317 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmLineCostTanker.java

@@ -0,0 +1,317 @@
+package com.sckw.manage.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 线路成本-油车
+ * @TableName kwm_line_cost_tanker
+ */
+@TableName(value ="kwm_line_cost_tanker")
+@Data
+public class KwmLineCostTanker implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 装货地
+     */
+    private String loadAddress;
+
+    /**
+     * 装货地-纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货地-纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地
+     */
+    private String unloadAddress;
+
+    /**
+     * 卸货地-纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货地-纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 运输时间
+     */
+    private Integer transportTime;
+
+    /**
+     * 运输里程
+     */
+    private BigDecimal transportMileage;
+
+    /**
+     * 运输成本
+     */
+    private BigDecimal transportCost;
+
+    /**
+     * 油耗(升/公里)
+     */
+    private BigDecimal consume;
+
+    /**
+     * 油价(元/升)
+     */
+    private BigDecimal price;
+
+    /**
+     * 燃油费小计
+     */
+    private BigDecimal consumeTotal;
+
+    /**
+     * 路桥费
+     */
+    private BigDecimal roadBridgeFees;
+
+    /**
+     * 司机提成/司机工资
+     */
+    private BigDecimal driverWages;
+
+    /**
+     * 停车费
+     */
+    private BigDecimal parkingFee;
+
+    /**
+     * 其他
+     */
+    private BigDecimal other;
+
+    /**
+     * 变动成本小计
+     */
+    private BigDecimal changeCost;
+
+    /**
+     * 折旧分摊
+     */
+    private BigDecimal depreciationShare;
+
+    /**
+     * 保险分摊
+     */
+    private BigDecimal insureShare;
+
+    /**
+     * 维修分摊
+     */
+    private BigDecimal maintenanceShare;
+
+    /**
+     * 轮胎分摊
+     */
+    private BigDecimal tireShare;
+
+    /**
+     * 过磅费
+     */
+    private BigDecimal weighingFee;
+
+    /**
+     * 管理费
+     */
+    private BigDecimal managementFees;
+
+    /**
+     * 司机薪水分摊
+     */
+    private BigDecimal wagesShare;
+
+    /**
+     * 固定成本小计
+     */
+    private BigDecimal regularCost;
+
+    /**
+     * 备注
+     */
+    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;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        KwmLineCostTanker other = (KwmLineCostTanker) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getLoadAddress() == null ? other.getLoadAddress() == null : this.getLoadAddress().equals(other.getLoadAddress()))
+            && (this.getLoadLat() == null ? other.getLoadLat() == null : this.getLoadLat().equals(other.getLoadLat()))
+            && (this.getLoadLng() == null ? other.getLoadLng() == null : this.getLoadLng().equals(other.getLoadLng()))
+            && (this.getUnloadAddress() == null ? other.getUnloadAddress() == null : this.getUnloadAddress().equals(other.getUnloadAddress()))
+            && (this.getUnloadLat() == null ? other.getUnloadLat() == null : this.getUnloadLat().equals(other.getUnloadLat()))
+            && (this.getUnloadLng() == null ? other.getUnloadLng() == null : this.getUnloadLng().equals(other.getUnloadLng()))
+            && (this.getTransportTime() == null ? other.getTransportTime() == null : this.getTransportTime().equals(other.getTransportTime()))
+            && (this.getTransportMileage() == null ? other.getTransportMileage() == null : this.getTransportMileage().equals(other.getTransportMileage()))
+            && (this.getTransportCost() == null ? other.getTransportCost() == null : this.getTransportCost().equals(other.getTransportCost()))
+            && (this.getConsume() == null ? other.getConsume() == null : this.getConsume().equals(other.getConsume()))
+            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
+            && (this.getConsumeTotal() == null ? other.getConsumeTotal() == null : this.getConsumeTotal().equals(other.getConsumeTotal()))
+            && (this.getRoadBridgeFees() == null ? other.getRoadBridgeFees() == null : this.getRoadBridgeFees().equals(other.getRoadBridgeFees()))
+            && (this.getDriverWages() == null ? other.getDriverWages() == null : this.getDriverWages().equals(other.getDriverWages()))
+            && (this.getParkingFee() == null ? other.getParkingFee() == null : this.getParkingFee().equals(other.getParkingFee()))
+            && (this.getOther() == null ? other.getOther() == null : this.getOther().equals(other.getOther()))
+            && (this.getChangeCost() == null ? other.getChangeCost() == null : this.getChangeCost().equals(other.getChangeCost()))
+            && (this.getDepreciationShare() == null ? other.getDepreciationShare() == null : this.getDepreciationShare().equals(other.getDepreciationShare()))
+            && (this.getInsureShare() == null ? other.getInsureShare() == null : this.getInsureShare().equals(other.getInsureShare()))
+            && (this.getMaintenanceShare() == null ? other.getMaintenanceShare() == null : this.getMaintenanceShare().equals(other.getMaintenanceShare()))
+            && (this.getTireShare() == null ? other.getTireShare() == null : this.getTireShare().equals(other.getTireShare()))
+            && (this.getWeighingFee() == null ? other.getWeighingFee() == null : this.getWeighingFee().equals(other.getWeighingFee()))
+            && (this.getManagementFees() == null ? other.getManagementFees() == null : this.getManagementFees().equals(other.getManagementFees()))
+            && (this.getWagesShare() == null ? other.getWagesShare() == null : this.getWagesShare().equals(other.getWagesShare()))
+            && (this.getRegularCost() == null ? other.getRegularCost() == null : this.getRegularCost().equals(other.getRegularCost()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getLoadAddress() == null) ? 0 : getLoadAddress().hashCode());
+        result = prime * result + ((getLoadLat() == null) ? 0 : getLoadLat().hashCode());
+        result = prime * result + ((getLoadLng() == null) ? 0 : getLoadLng().hashCode());
+        result = prime * result + ((getUnloadAddress() == null) ? 0 : getUnloadAddress().hashCode());
+        result = prime * result + ((getUnloadLat() == null) ? 0 : getUnloadLat().hashCode());
+        result = prime * result + ((getUnloadLng() == null) ? 0 : getUnloadLng().hashCode());
+        result = prime * result + ((getTransportTime() == null) ? 0 : getTransportTime().hashCode());
+        result = prime * result + ((getTransportMileage() == null) ? 0 : getTransportMileage().hashCode());
+        result = prime * result + ((getTransportCost() == null) ? 0 : getTransportCost().hashCode());
+        result = prime * result + ((getConsume() == null) ? 0 : getConsume().hashCode());
+        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
+        result = prime * result + ((getConsumeTotal() == null) ? 0 : getConsumeTotal().hashCode());
+        result = prime * result + ((getRoadBridgeFees() == null) ? 0 : getRoadBridgeFees().hashCode());
+        result = prime * result + ((getDriverWages() == null) ? 0 : getDriverWages().hashCode());
+        result = prime * result + ((getParkingFee() == null) ? 0 : getParkingFee().hashCode());
+        result = prime * result + ((getOther() == null) ? 0 : getOther().hashCode());
+        result = prime * result + ((getChangeCost() == null) ? 0 : getChangeCost().hashCode());
+        result = prime * result + ((getDepreciationShare() == null) ? 0 : getDepreciationShare().hashCode());
+        result = prime * result + ((getInsureShare() == null) ? 0 : getInsureShare().hashCode());
+        result = prime * result + ((getMaintenanceShare() == null) ? 0 : getMaintenanceShare().hashCode());
+        result = prime * result + ((getTireShare() == null) ? 0 : getTireShare().hashCode());
+        result = prime * result + ((getWeighingFee() == null) ? 0 : getWeighingFee().hashCode());
+        result = prime * result + ((getManagementFees() == null) ? 0 : getManagementFees().hashCode());
+        result = prime * result + ((getWagesShare() == null) ? 0 : getWagesShare().hashCode());
+        result = prime * result + ((getRegularCost() == null) ? 0 : getRegularCost().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", loadAddress=").append(loadAddress);
+        sb.append(", loadLat=").append(loadLat);
+        sb.append(", loadLng=").append(loadLng);
+        sb.append(", unloadAddress=").append(unloadAddress);
+        sb.append(", unloadLat=").append(unloadLat);
+        sb.append(", unloadLng=").append(unloadLng);
+        sb.append(", transportTime=").append(transportTime);
+        sb.append(", transportMileage=").append(transportMileage);
+        sb.append(", transportCost=").append(transportCost);
+        sb.append(", consume=").append(consume);
+        sb.append(", price=").append(price);
+        sb.append(", consumeTotal=").append(consumeTotal);
+        sb.append(", roadBridgeFees=").append(roadBridgeFees);
+        sb.append(", driverWages=").append(driverWages);
+        sb.append(", parkingFee=").append(parkingFee);
+        sb.append(", other=").append(other);
+        sb.append(", changeCost=").append(changeCost);
+        sb.append(", depreciationShare=").append(depreciationShare);
+        sb.append(", insureShare=").append(insureShare);
+        sb.append(", maintenanceShare=").append(maintenanceShare);
+        sb.append(", tireShare=").append(tireShare);
+        sb.append(", weighingFee=").append(weighingFee);
+        sb.append(", managementFees=").append(managementFees);
+        sb.append(", wagesShare=").append(wagesShare);
+        sb.append(", regularCost=").append(regularCost);
+        sb.append(", remark=").append(remark);
+        sb.append(", status=").append(status);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 317 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/entity/KwmLineCostTram.java

@@ -0,0 +1,317 @@
+package com.sckw.manage.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 线路成本-电车
+ * @TableName kwm_line_cost_tram
+ */
+@TableName(value ="kwm_line_cost_tram")
+@Data
+public class KwmLineCostTram implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 装货地
+     */
+    private String loadAddress;
+
+    /**
+     * 装货地-纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货地-纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地
+     */
+    private String unloadAddress;
+
+    /**
+     * 卸货地-纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货地-纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 运输时间
+     */
+    private Integer transportTime;
+
+    /**
+     * 运输里程
+     */
+    private BigDecimal transportMileage;
+
+    /**
+     * 运输成本
+     */
+    private BigDecimal transportCost;
+
+    /**
+     * 耗电(度/公里)
+     */
+    private BigDecimal consume;
+
+    /**
+     * 电价(元/升)
+     */
+    private BigDecimal price;
+
+    /**
+     * 电费小计
+     */
+    private BigDecimal consumeTotal;
+
+    /**
+     * 路桥费
+     */
+    private BigDecimal roadBridgeFees;
+
+    /**
+     * 司机提成/司机工资
+     */
+    private BigDecimal driverWages;
+
+    /**
+     * 停车费
+     */
+    private BigDecimal parkingFee;
+
+    /**
+     * 其他
+     */
+    private BigDecimal other;
+
+    /**
+     * 变动成本小计
+     */
+    private BigDecimal changeCost;
+
+    /**
+     * 折旧分摊
+     */
+    private BigDecimal depreciationShare;
+
+    /**
+     * 保险分摊
+     */
+    private BigDecimal insureShare;
+
+    /**
+     * 维修分摊
+     */
+    private BigDecimal maintenanceShare;
+
+    /**
+     * 轮胎分摊
+     */
+    private BigDecimal tireShare;
+
+    /**
+     * 过磅费
+     */
+    private BigDecimal weighingFee;
+
+    /**
+     * 管理费
+     */
+    private BigDecimal managementFees;
+
+    /**
+     * 司机薪水分摊
+     */
+    private BigDecimal wagesShare;
+
+    /**
+     * 固定成本小计
+     */
+    private BigDecimal regularCost;
+
+    /**
+     * 备注
+     */
+    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;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        KwmLineCostTram other = (KwmLineCostTram) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getLoadAddress() == null ? other.getLoadAddress() == null : this.getLoadAddress().equals(other.getLoadAddress()))
+            && (this.getLoadLat() == null ? other.getLoadLat() == null : this.getLoadLat().equals(other.getLoadLat()))
+            && (this.getLoadLng() == null ? other.getLoadLng() == null : this.getLoadLng().equals(other.getLoadLng()))
+            && (this.getUnloadAddress() == null ? other.getUnloadAddress() == null : this.getUnloadAddress().equals(other.getUnloadAddress()))
+            && (this.getUnloadLat() == null ? other.getUnloadLat() == null : this.getUnloadLat().equals(other.getUnloadLat()))
+            && (this.getUnloadLng() == null ? other.getUnloadLng() == null : this.getUnloadLng().equals(other.getUnloadLng()))
+            && (this.getTransportTime() == null ? other.getTransportTime() == null : this.getTransportTime().equals(other.getTransportTime()))
+            && (this.getTransportMileage() == null ? other.getTransportMileage() == null : this.getTransportMileage().equals(other.getTransportMileage()))
+            && (this.getTransportCost() == null ? other.getTransportCost() == null : this.getTransportCost().equals(other.getTransportCost()))
+            && (this.getConsume() == null ? other.getConsume() == null : this.getConsume().equals(other.getConsume()))
+            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
+            && (this.getConsumeTotal() == null ? other.getConsumeTotal() == null : this.getConsumeTotal().equals(other.getConsumeTotal()))
+            && (this.getRoadBridgeFees() == null ? other.getRoadBridgeFees() == null : this.getRoadBridgeFees().equals(other.getRoadBridgeFees()))
+            && (this.getDriverWages() == null ? other.getDriverWages() == null : this.getDriverWages().equals(other.getDriverWages()))
+            && (this.getParkingFee() == null ? other.getParkingFee() == null : this.getParkingFee().equals(other.getParkingFee()))
+            && (this.getOther() == null ? other.getOther() == null : this.getOther().equals(other.getOther()))
+            && (this.getChangeCost() == null ? other.getChangeCost() == null : this.getChangeCost().equals(other.getChangeCost()))
+            && (this.getDepreciationShare() == null ? other.getDepreciationShare() == null : this.getDepreciationShare().equals(other.getDepreciationShare()))
+            && (this.getInsureShare() == null ? other.getInsureShare() == null : this.getInsureShare().equals(other.getInsureShare()))
+            && (this.getMaintenanceShare() == null ? other.getMaintenanceShare() == null : this.getMaintenanceShare().equals(other.getMaintenanceShare()))
+            && (this.getTireShare() == null ? other.getTireShare() == null : this.getTireShare().equals(other.getTireShare()))
+            && (this.getWeighingFee() == null ? other.getWeighingFee() == null : this.getWeighingFee().equals(other.getWeighingFee()))
+            && (this.getManagementFees() == null ? other.getManagementFees() == null : this.getManagementFees().equals(other.getManagementFees()))
+            && (this.getWagesShare() == null ? other.getWagesShare() == null : this.getWagesShare().equals(other.getWagesShare()))
+            && (this.getRegularCost() == null ? other.getRegularCost() == null : this.getRegularCost().equals(other.getRegularCost()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getLoadAddress() == null) ? 0 : getLoadAddress().hashCode());
+        result = prime * result + ((getLoadLat() == null) ? 0 : getLoadLat().hashCode());
+        result = prime * result + ((getLoadLng() == null) ? 0 : getLoadLng().hashCode());
+        result = prime * result + ((getUnloadAddress() == null) ? 0 : getUnloadAddress().hashCode());
+        result = prime * result + ((getUnloadLat() == null) ? 0 : getUnloadLat().hashCode());
+        result = prime * result + ((getUnloadLng() == null) ? 0 : getUnloadLng().hashCode());
+        result = prime * result + ((getTransportTime() == null) ? 0 : getTransportTime().hashCode());
+        result = prime * result + ((getTransportMileage() == null) ? 0 : getTransportMileage().hashCode());
+        result = prime * result + ((getTransportCost() == null) ? 0 : getTransportCost().hashCode());
+        result = prime * result + ((getConsume() == null) ? 0 : getConsume().hashCode());
+        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
+        result = prime * result + ((getConsumeTotal() == null) ? 0 : getConsumeTotal().hashCode());
+        result = prime * result + ((getRoadBridgeFees() == null) ? 0 : getRoadBridgeFees().hashCode());
+        result = prime * result + ((getDriverWages() == null) ? 0 : getDriverWages().hashCode());
+        result = prime * result + ((getParkingFee() == null) ? 0 : getParkingFee().hashCode());
+        result = prime * result + ((getOther() == null) ? 0 : getOther().hashCode());
+        result = prime * result + ((getChangeCost() == null) ? 0 : getChangeCost().hashCode());
+        result = prime * result + ((getDepreciationShare() == null) ? 0 : getDepreciationShare().hashCode());
+        result = prime * result + ((getInsureShare() == null) ? 0 : getInsureShare().hashCode());
+        result = prime * result + ((getMaintenanceShare() == null) ? 0 : getMaintenanceShare().hashCode());
+        result = prime * result + ((getTireShare() == null) ? 0 : getTireShare().hashCode());
+        result = prime * result + ((getWeighingFee() == null) ? 0 : getWeighingFee().hashCode());
+        result = prime * result + ((getManagementFees() == null) ? 0 : getManagementFees().hashCode());
+        result = prime * result + ((getWagesShare() == null) ? 0 : getWagesShare().hashCode());
+        result = prime * result + ((getRegularCost() == null) ? 0 : getRegularCost().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", loadAddress=").append(loadAddress);
+        sb.append(", loadLat=").append(loadLat);
+        sb.append(", loadLng=").append(loadLng);
+        sb.append(", unloadAddress=").append(unloadAddress);
+        sb.append(", unloadLat=").append(unloadLat);
+        sb.append(", unloadLng=").append(unloadLng);
+        sb.append(", transportTime=").append(transportTime);
+        sb.append(", transportMileage=").append(transportMileage);
+        sb.append(", transportCost=").append(transportCost);
+        sb.append(", consume=").append(consume);
+        sb.append(", price=").append(price);
+        sb.append(", consumeTotal=").append(consumeTotal);
+        sb.append(", roadBridgeFees=").append(roadBridgeFees);
+        sb.append(", driverWages=").append(driverWages);
+        sb.append(", parkingFee=").append(parkingFee);
+        sb.append(", other=").append(other);
+        sb.append(", changeCost=").append(changeCost);
+        sb.append(", depreciationShare=").append(depreciationShare);
+        sb.append(", insureShare=").append(insureShare);
+        sb.append(", maintenanceShare=").append(maintenanceShare);
+        sb.append(", tireShare=").append(tireShare);
+        sb.append(", weighingFee=").append(weighingFee);
+        sb.append(", managementFees=").append(managementFees);
+        sb.append(", wagesShare=").append(wagesShare);
+        sb.append(", regularCost=").append(regularCost);
+        sb.append(", remark=").append(remark);
+        sb.append(", status=").append(status);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 24 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/BindManagerReqVo.java

@@ -0,0 +1,24 @@
+package com.sckw.manage.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 设置客户经理入参
+ * @date 2023/7/10
+ */
+@Data
+public class BindManagerReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2454603939132188213L;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+}

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

@@ -0,0 +1,50 @@
+package com.sckw.manage.model.vo.req;
+
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询入参
+ * @date 2023/7/10
+ */
+@Data
+public class CooperateManageQueryReqVo extends PageRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1104292279932957389L;
+
+    /**
+     * 1 我放发起  2对方发起,不传查全部
+     */
+//    private Integer applyTypeCode;
+
+    /**
+     * 合作属性,多个用","隔开
+     */
+    @NotBlank(message = "合作属性不能为空")
+    private String cooperateTypes;
+
+    /**
+     * 单位名称、联系人、电话
+     */
+    private String keywords;
+
+    /**
+     * 开始时间(时间戳)
+     */
+    @NotNull(message = "开始时间不能为空")
+    private Date startTime;
+
+    /**
+     * 结束时间(时间戳)
+     */
+    @NotNull(message = "结束时间不能为空")
+    private Date endTime;
+}

+ 26 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/QueryDetailReqVo.java

@@ -0,0 +1,26 @@
+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/10
+ */
+@Data
+public class QueryDetailReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 7588037295432253946L;
+
+    /**
+     * 企业id
+     */
+    @NotNull(message = "企业不能为空")
+    private Long entId;
+
+}

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

@@ -0,0 +1,70 @@
+package com.sckw.manage.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 查询返参
+ * @date 2023/7/10
+ */
+@Data
+public class CooperateManageQueryResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -6651581088847974090L;
+
+    /**
+     * 合作属性 1供应单位 2采购单位 3托运单位 4承运单位 多个用","隔开单位名称
+     */
+    private String cooperateTypes;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+
+    /**
+     * 创建日期(时间戳)
+     */
+    private Date createTime;
+
+    /**
+     * 单位名称
+     */
+    private String entName;
+
+    /**
+     * 客户经理
+     */
+    private String manager;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 客户经理联系电话
+     */
+    private String managerPhone;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 合作状态 0合作中 1已解除
+     */
+    private Integer status;
+
+}

+ 39 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryDetailCertificateResDto.java

@@ -0,0 +1,39 @@
+package com.sckw.manage.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 营业执照
+ * @date 2023/7/10
+ */
+@Data
+public class QueryDetailCertificateResDto implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2919128031130492841L;
+
+    /**
+     * 证书类型(1联系人身份证 2法人身份证 3营业执照 4道路运输许可证 5开户许可证号 6授权证书 6电子签章授权书)
+     */
+    private Integer type;
+
+    /**
+     * 证书编号
+     */
+    private String code;
+
+    /**
+     * 正面
+     */
+    private String certificateMian;
+
+    /**
+     * 反面
+     */
+    private String certificateRevolt;
+
+}

+ 41 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/QueryDetailResVo.java

@@ -0,0 +1,41 @@
+package com.sckw.manage.model.vo.res;
+
+import com.sckw.system.api.model.dto.res.EntCertificateResDto;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 详情返参
+ * @date 2023/7/10
+ */
+@Data
+public class QueryDetailResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -5780090201794848078L;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 企业联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 营业执照
+     */
+    private List<QueryDetailCertificateResDto> certificateInfo;
+
+}

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

@@ -0,0 +1,14 @@
+package com.sckw.manage.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author czh
+ * @desc 地址管理service
+ * @date 2023/7/10
+ */
+@Slf4j
+@Service
+public class KwmAddressService {
+}

+ 14 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java

@@ -0,0 +1,14 @@
+package com.sckw.manage.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author czh
+ * @desc 合作申请service
+ * @date 2023/7/10
+ */
+@Slf4j
+@Service
+public class KwmCooperateApplyService {
+}

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

@@ -0,0 +1,156 @@
+package com.sckw.manage.service;
+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.model.constant.Global;
+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.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.req.BindManagerReqVo;
+import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
+import com.sckw.manage.model.vo.req.QueryDetailReqVo;
+import com.sckw.manage.model.vo.res.CooperateManageQueryResVo;
+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;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author czh
+ * @desc 合作管理service
+ * @date 2023/7/10
+ */
+@Slf4j
+@Service
+public class KwmCooperateManageService {
+
+    @Autowired
+    private KwmCooperateMapper kwmCooperateMapper;
+
+    @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
+     * @desc: 查询合作企业列表
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    public PageResult queryByPage(CooperateManageQueryReqVo reqVo) {
+        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+
+        //构建查全量入参
+        CooperateManageQueryReqDto cooperateManageQueryReqDto = new CooperateManageQueryReqDto();
+        BeanUtils.copyProperties(reqVo, cooperateManageQueryReqDto);
+        cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(reqVo.getCooperateTypes().split(Global.COMMA)));
+
+        List<CooperateManageQueryResVo> list = findList(cooperateManageQueryReqDto);
+        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+    }
+
+    /**
+     * @param reqVo 全量查入参
+     * @return CooperateManageQueryResVo
+     * @desc: 全量查
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    private List<CooperateManageQueryResVo> findList(CooperateManageQueryReqDto reqVo) {
+        Long entId = LoginUserHolder.getEntId();
+        reqVo.setCurrentEntId(entId);
+        List<CooperateManageQueryResDto> list = kwmCooperateMapper.findList(reqVo);
+        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) {
+            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);
+        }
+        return result;
+    }
+
+    /**
+     * @param entId 企业id
+     * @return QueryDetailResVo
+     * @desc: 查询详情
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    public QueryDetailResVo queryDetail(Long entId) {
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(entId);
+        if (Objects.isNull(entCacheResDto)) {
+            return null;
+        }
+        QueryDetailResVo queryDetailResVo = new QueryDetailResVo();
+        BeanUtils.copyProperties(entCacheResDto, queryDetailResVo);
+        return queryDetailResVo;
+    }
+
+    /**
+     * @param userId 用户id
+     * @desc: 设置客户经理
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    public void bindManager(Long userId) {
+        remoteUserService.bindManager(LoginUserHolder.getEntId(), userId);
+    }
+}

+ 39 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmAddressMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.manage.dao.KwmAddressMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmAddress">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="entId" column="ent_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="BIGINT"/>
+            <result property="defaultType" column="default_type" jdbcType="INTEGER"/>
+            <result property="contacts" column="contacts" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="cityCode" column="city_code" jdbcType="INTEGER"/>
+            <result property="cityName" column="city_name" jdbcType="VARCHAR"/>
+            <result property="detailAddress" column="detail_address" jdbcType="VARCHAR"/>
+            <result property="lat" column="lat" jdbcType="VARCHAR"/>
+            <result property="lng" column="lng" jdbcType="VARCHAR"/>
+            <result property="fence" column="fence" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,name,
+        type,default_type,contacts,
+        phone,city_code,city_name,
+        detail_address,lat,lng,
+        fence,remark,status,
+        create_by,create_time,update_by,
+        update_time,del_flag
+    </sql>
+</mapper>

+ 67 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.manage.dao.KwmCooperateMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmCooperate">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="entId" column="ent_id" jdbcType="BIGINT"/>
+            <result property="inviterEntId" column="inviter_ent_id" jdbcType="BIGINT"/>
+            <result property="inviteeEntId" column="invitee_ent_id" jdbcType="BIGINT"/>
+            <result property="inviterContacts" column="inviter_contacts" jdbcType="VARCHAR"/>
+            <result property="inviterPhone" column="inviter_phone" jdbcType="VARCHAR"/>
+            <result property="inviteeContacts" column="invitee_contacts" jdbcType="VARCHAR"/>
+            <result property="inviteePhone" column="invitee_phone" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,inviter_ent_id,
+        invitee_ent_id,inviter_contacts,inviter_phone,
+        invitee_contacts,invitee_phone,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+
+    <select id="findList" parameterType="com.sckw.manage.model.dto.req.CooperateManageQueryReqDto"
+            resultType="com.sckw.manage.model.dto.res.CooperateManageQueryResDto">
+        SELECT a.id,
+               group_concat(b.type) types,
+               min(a.ent_id) entId,
+               min(a.invitee_ent_id) inviteeEntId,
+               min(a.inviter_ent_id) inviterEntId,
+               min(a.invitee_contacts) inviteeContacts,
+               min(a.inviter_contacts) inviterContacts,
+               min(a.invitee_phone) inviteePhone,
+               min(a.inviter_phone) inviterPhone,
+               min(a.create_time) createTime,
+               min(a.create_by) createBy,
+               min(a.remark) remark,
+               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,
+          FROM kwm_cooperate a
+          LEFT JOIN kwm_cooperate_type b ON a.inviter_ent_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}
+<!--           <if test="applyTypeCode != null and applyTypeCode == 1">-->
+<!--               and a.inviter_ent_id = a.ent_id-->
+<!--           </if>-->
+<!--           <if test="applyTypeCode != null and applyTypeCode == 2">-->
+<!--               and a.invitee_ent_id = a.ent_id-->
+<!--           </if>-->
+           and b.type in
+           <foreach collection="reqDto.cooperateTypes" item="item" open="(" close=")" separator=",">
+               #{item}
+           </foreach>
+        group by a.id
+        order by a.create_time desc
+    </select>
+</mapper>

+ 26 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateTypeMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.manage.dao.KwmCooperateTypeMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmCooperateType">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="cooperateId" column="cooperate_id" jdbcType="BIGINT"/>
+            <result property="type" column="type" jdbcType="INTEGER"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,cooperate_id,type,
+        remark,status,create_by,
+        create_time,update_by,update_time,
+        del_flag
+    </sql>
+</mapper>

+ 56 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmLineCostTankerMapper.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.manage.dao.KwmLineCostTankerMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmLineCostTanker">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="loadAddress" column="load_address" jdbcType="VARCHAR"/>
+            <result property="loadLat" column="load_lat" jdbcType="VARCHAR"/>
+            <result property="loadLng" column="load_lng" jdbcType="VARCHAR"/>
+            <result property="unloadAddress" column="unload_address" jdbcType="VARCHAR"/>
+            <result property="unloadLat" column="unload_lat" jdbcType="VARCHAR"/>
+            <result property="unloadLng" column="unload_lng" jdbcType="VARCHAR"/>
+            <result property="transportTime" column="transport_time" jdbcType="INTEGER"/>
+            <result property="transportMileage" column="transport_mileage" jdbcType="DECIMAL"/>
+            <result property="transportCost" column="transport_cost" jdbcType="DECIMAL"/>
+            <result property="consume" column="consume" jdbcType="DECIMAL"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="consumeTotal" column="consume_total" jdbcType="DECIMAL"/>
+            <result property="roadBridgeFees" column="road_bridge_fees" jdbcType="DECIMAL"/>
+            <result property="driverWages" column="driver_wages" jdbcType="DECIMAL"/>
+            <result property="parkingFee" column="parking_fee" jdbcType="DECIMAL"/>
+            <result property="other" column="other" jdbcType="DECIMAL"/>
+            <result property="changeCost" column="change_cost" jdbcType="DECIMAL"/>
+            <result property="depreciationShare" column="depreciation_share" jdbcType="DECIMAL"/>
+            <result property="insureShare" column="insure_share" jdbcType="DECIMAL"/>
+            <result property="maintenanceShare" column="maintenance_share" jdbcType="DECIMAL"/>
+            <result property="tireShare" column="tire_share" jdbcType="DECIMAL"/>
+            <result property="weighingFee" column="weighing_fee" jdbcType="DECIMAL"/>
+            <result property="managementFees" column="management_fees" jdbcType="DECIMAL"/>
+            <result property="wagesShare" column="wages_share" jdbcType="DECIMAL"/>
+            <result property="regularCost" column="regular_cost" jdbcType="DECIMAL"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,load_address,load_lat,
+        load_lng,unload_address,unload_lat,
+        unload_lng,transport_time,transport_mileage,
+        transport_cost,consume,price,
+        consume_total,road_bridge_fees,driver_wages,
+        parking_fee,other,change_cost,
+        depreciation_share,insure_share,maintenance_share,
+        tire_share,weighing_fee,management_fees,
+        wages_share,regular_cost,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 56 - 0
sckw-modules/sckw-manage/src/main/resources/mapper/KwmLineCostTramMapper.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.manage.dao.KwmLineCostTramMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.manage.model.entity.KwmLineCostTram">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="loadAddress" column="load_address" jdbcType="VARCHAR"/>
+            <result property="loadLat" column="load_lat" jdbcType="VARCHAR"/>
+            <result property="loadLng" column="load_lng" jdbcType="VARCHAR"/>
+            <result property="unloadAddress" column="unload_address" jdbcType="VARCHAR"/>
+            <result property="unloadLat" column="unload_lat" jdbcType="VARCHAR"/>
+            <result property="unloadLng" column="unload_lng" jdbcType="VARCHAR"/>
+            <result property="transportTime" column="transport_time" jdbcType="INTEGER"/>
+            <result property="transportMileage" column="transport_mileage" jdbcType="DECIMAL"/>
+            <result property="transportCost" column="transport_cost" jdbcType="DECIMAL"/>
+            <result property="consume" column="consume" jdbcType="DECIMAL"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="consumeTotal" column="consume_total" jdbcType="DECIMAL"/>
+            <result property="roadBridgeFees" column="road_bridge_fees" jdbcType="DECIMAL"/>
+            <result property="driverWages" column="driver_wages" jdbcType="DECIMAL"/>
+            <result property="parkingFee" column="parking_fee" jdbcType="DECIMAL"/>
+            <result property="other" column="other" jdbcType="DECIMAL"/>
+            <result property="changeCost" column="change_cost" jdbcType="DECIMAL"/>
+            <result property="depreciationShare" column="depreciation_share" jdbcType="DECIMAL"/>
+            <result property="insureShare" column="insure_share" jdbcType="DECIMAL"/>
+            <result property="maintenanceShare" column="maintenance_share" jdbcType="DECIMAL"/>
+            <result property="tireShare" column="tire_share" jdbcType="DECIMAL"/>
+            <result property="weighingFee" column="weighing_fee" jdbcType="DECIMAL"/>
+            <result property="managementFees" column="management_fees" jdbcType="DECIMAL"/>
+            <result property="wagesShare" column="wages_share" jdbcType="DECIMAL"/>
+            <result property="regularCost" column="regular_cost" jdbcType="DECIMAL"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="createBy" column="create_by" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,load_address,load_lat,
+        load_lng,unload_address,unload_lat,
+        unload_lng,transport_time,transport_mileage,
+        transport_cost,consume,price,
+        consume_total,road_bridge_fees,driver_wages,
+        parking_fee,other,change_cost,
+        depreciation_share,insure_share,maintenance_share,
+        tire_share,weighing_fee,management_fees,
+        wages_share,regular_cost,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

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

@@ -30,7 +30,7 @@ public class KwsMenuController {
      * @date 2023/5/30
      **/
     @GetMapping("/detail")
-    public HttpResult selectByKey(Long id) throws SystemException {
+    public HttpResult selectByKey(@RequestParam("id")Long id) throws SystemException {
         return HttpResult.ok(kwsMenuService.selectByKey(id));
     }
 

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java

@@ -8,6 +8,7 @@ import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.KwsUser;
+import com.sckw.system.model.vo.req.QueryEntUserReqVo;
 import com.sckw.system.model.vo.req.UserAddReqVo;
 import com.sckw.system.service.KwsUserService;
 import jakarta.validation.Valid;
@@ -116,6 +117,7 @@ public class KwsUserController {
     }
 
 
+
     @PostMapping("testEdit")
     public HttpResult testEdit() {
         return HttpResult.ok(HttpStatus.MSG_005);

+ 8 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsMenuDao.java

@@ -69,4 +69,12 @@ public interface KwsMenuDao {
      */
     List<KwsMenuResVo> findList(FindMenuTreePojo params);
 
+    /**
+     * @param kwsMenuParam 实体
+     * @return KwsMenu
+     * @desc: 查下级菜单(名称模糊匹配)
+     * @author: czh
+     * @date: 2023/7/10
+     */
+    List<KwsMenu> queryChildMenu(KwsMenu kwsMenuParam);
 }

+ 20 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteUserServiceImpl.java

@@ -3,17 +3,20 @@ package com.sckw.system.dubbo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.req.ForgetPasswordReqDto;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
 import com.sckw.system.api.model.dto.req.UpdatePasswordReqDto;
 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.model.*;
 import com.sckw.system.model.pojo.FindMenuTreePojo;
 import com.sckw.system.model.vo.req.ForgetPasswordReqVo;
 import com.sckw.system.model.vo.res.KwsMenuResVo;
+import com.sckw.system.service.KwsEnterpriseService;
 import com.sckw.system.service.KwsMenuService;
 import com.sckw.system.service.KwsRoleService;
 import com.sckw.system.service.KwsUserService;
@@ -50,6 +53,11 @@ public class RemoteUserServiceImpl implements RemoteUserService {
     @Resource
     private KwsUserLoginDao kwsUserLoginDao;
 
+    @Resource
+    private KwsEnterpriseService kwsEnterpriseService;
+    @Resource
+    private KwsEnterpriseDao kwsEnterpriseDao;
+
 
     @Override
     public KwsEnterpriseResDto queryEnterpriseById(Long id) {
@@ -124,6 +132,18 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         kwsUserService.resetPassword(id);
     }
 
+    @Override
+    public void bindManager(Long entId, Long userId) {
+        KwsEnterprise kwsEnterprise = kwsEnterpriseService.queryKwsEnterpriseById(entId);
+        if (Objects.isNull(kwsEnterprise)) {
+            return;
+        }
+        kwsEnterprise.setManager(userId);
+        if (kwsEnterpriseDao.update(kwsEnterprise) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+    }
+
     @Override
     public KwsUserResDto getUserByAccount(String username) {
         return remoteBaseService.getUserByAccount(username);

+ 10 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/QueryChildMenuReqVo.java

@@ -28,4 +28,14 @@ public class QueryChildMenuReqVo implements Serializable {
      */
     private Integer type;
 
+    /**
+     * 菜单名
+     */
+    private String name;
+
+    /**
+     * 菜单编码
+     */
+    private String perms;
+
 }

+ 24 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/QueryEntUserReqVo.java

@@ -0,0 +1,24 @@
+package com.sckw.system.model.vo.req;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 查企业下员工入参
+ * @date 2023/7/10
+ */
+@Data
+public class QueryEntUserReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 8533374420647197674L;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+}

+ 69 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/KwsUserResVo.java

@@ -0,0 +1,69 @@
+package com.sckw.system.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 用户vo
+ * @date 2023/7/10
+ */
+@Data
+public class KwsUserResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -3902903200317740960L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 系统类型(1运营端、2企业开户)
+     */
+    private Integer systemType;
+
+    /**
+     * 账号
+     */
+    private String account;
+
+    /**
+     * 用户名
+     */
+    private String name;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 头像
+     */
+    private String photo;
+
+    /**
+     * 邮箱
+     */
+    private String email;
+
+    /**
+     * 推送设备id
+     */
+    private String clientId;
+
+    /**
+     * 是否是企业管理(1是 0否)
+     */
+    private Integer isMain;
+
+}

+ 134 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/MenuDetailResVo.java

@@ -0,0 +1,134 @@
+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/10
+ */
+@Data
+public class MenuDetailResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1314828723875635551L;
+
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态:0正常/1锁定
+     */
+    private Integer status = 0;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 删除标识(0正常/-1删除)
+     */
+    private Integer delFlag = 0;
+
+    /**
+     * 终端类型(1运营端、2企业PC端、3企业APP、4司机端)
+     */
+    private Integer clientType;
+
+    /**
+     * 子父级菜单关系
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long parentId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 地址
+     */
+    private String url;
+
+    /**
+     * 权限标识
+     */
+    private String perms;
+
+    /**
+     * 类型:0目录/1菜单/2按钮
+     */
+    private Integer type;
+
+    /**
+     * 请求后端接口地址(按钮才有)
+     */
+    private String links;
+
+    /**
+     * 菜单图标
+     */
+    private String icon;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 层级
+     */
+    private Integer level;
+
+    /**
+     * 是否定制(0否,1是)
+     */
+    private Integer custom;
+
+    /**
+     * 是否默认展示
+     */
+    private Integer isDisplay;
+
+    /**
+     * 此菜单是否开放(0普通菜单,1超级管理员菜单,2非普通用户菜单)
+     */
+    private Integer isMain;
+
+    /**
+     * PC端适用企业类型(1供应商,2采购商,34PL物流,43PL物流)
+     */
+    private String usingRoles;
+}

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/QueryChildMenuResVo.java

@@ -48,4 +48,9 @@ public class QueryChildMenuResVo implements Serializable {
      * 排序
      */
     private Integer sort;
+
+    /**
+     * 备注说明
+     */
+    private String remark;
 }

+ 31 - 17
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -22,6 +22,7 @@ import com.sckw.system.model.vo.req.QueryChildMenuReqVo;
 import com.sckw.system.model.vo.req.RoleBindMenuReqVo;
 import com.sckw.system.model.vo.res.FindMenuTreeResVo;
 import com.sckw.system.model.vo.res.KwsMenuResVo;
+import com.sckw.system.model.vo.res.MenuDetailResVo;
 import com.sckw.system.model.vo.res.QueryChildMenuResVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -59,12 +60,13 @@ public class KwsMenuService {
     @Transactional(rollbackFor = {})
     public void add(KwsMenu params) throws SystemException {
         Long parentId = params.getParentId();
+        KwsMenu parent = null;
         if (!Objects.isNull(parentId) && parentId.compareTo(0L) != 0) {
-            KwsMenu kwsMenu = kwsMenuDao.selectByKey(parentId);
-            if (Objects.isNull(kwsMenu)) {
+            parent = kwsMenuDao.selectByKey(parentId);
+            if (Objects.isNull(parent)) {
                 throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.PARENT_MENU_NOT_EXISTS);
             }
-            params.setLevel(kwsMenu.getLevel() + 1);
+            params.setLevel(parent.getLevel() + 1);
         } else {
             params.setLevel(1);
             params.setParentId(0L);
@@ -73,24 +75,26 @@ public class KwsMenuService {
 
 
         //新增按钮时,有重复的序号,则把后面的都加1
+        //按钮继承父菜单的using_roles
         if (params.getType() == MenuTypeEnum.BUTTON.getCode()) {
             if (!Objects.isNull(params.getSort())) {
                 moveSort(params);
             }
+            params.setUsingRoles(parent.getUsingRoles());
         }
 
         //新增菜单时,如果已经有同级菜单,则序号为最大的序号+1
-//        if (params.getType() == MenuTypeEnum.DIRECTORY.getCode()) {
-//            KwsMenu kwsMenuParam = new KwsMenu();
-//            kwsMenuParam.setType(params.getType());
-//            kwsMenuParam.setParentId(params.getParentId());
-//            List<KwsMenu> select = kwsMenuDao.select(kwsMenuParam);
-//            int sort = 1;
-//            if (!CollectionUtils.isEmpty(select)) {
-//                sort = select.get(select.size() - 1).getSort() + 1;
-//            }
-//            params.setSort(sort);
-//        }
+        if (params.getType() == MenuTypeEnum.DIRECTORY.getCode()) {
+            KwsMenu kwsMenuParam = new KwsMenu();
+            kwsMenuParam.setType(params.getType());
+            kwsMenuParam.setParentId(params.getParentId());
+            List<KwsMenu> select = kwsMenuDao.select(kwsMenuParam);
+            int sort = 1;
+            if (!CollectionUtils.isEmpty(select)) {
+                sort = select.get(select.size() - 1).getSort() + 1;
+            }
+            params.setSort(sort);
+        }
 
         if (kwsMenuDao.insert(params) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
@@ -206,8 +210,16 @@ public class KwsMenuService {
      * @author: czh
      * @date: 2023/7/7
      */
-    public KwsMenu selectByKey(Long key) throws SystemException {
-        return kwsMenuDao.selectByKey(key);
+    public MenuDetailResVo selectByKey(Long key) throws SystemException {
+        KwsMenu kwsMenu = kwsMenuDao.selectByKey(key);
+        //前端特殊处理,当父id为0时,设成null
+        if (kwsMenu.getParentId().compareTo(0L) == 0) {
+            kwsMenu.setParentId(null);
+        }
+
+        MenuDetailResVo menuDetailResVo = new MenuDetailResVo();
+        BeanUtils.copyProperties(kwsMenu, menuDetailResVo);
+        return menuDetailResVo;
     }
 
     /**
@@ -368,7 +380,9 @@ public class KwsMenuService {
         KwsMenu kwsMenuParam = new KwsMenu();
         kwsMenuParam.setParentId(reqVo.getId());
         kwsMenuParam.setType(reqVo.getType());
-        List<KwsMenu> select = kwsMenuDao.select(kwsMenuParam);
+        kwsMenuParam.setName(reqVo.getName());
+        kwsMenuParam.setPerms(reqVo.getPerms());
+        List<KwsMenu> select = kwsMenuDao.queryChildMenu(kwsMenuParam);
         if (CollectionUtils.isEmpty(select)) {
             return Collections.emptyList();
         }

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -16,6 +16,7 @@ import com.sckw.system.dao.KwsUserDao;
 import com.sckw.system.dao.KwsUserDeptDao;
 import com.sckw.system.model.*;
 import com.sckw.system.model.vo.req.*;
+import com.sckw.system.model.vo.res.KwsUserResVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -445,4 +446,5 @@ public class KwsUserService {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
         }
     }
+
 }

+ 18 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuDao.xml

@@ -360,4 +360,22 @@
     </if>
     order by sort
   </select>
+
+  <select id="queryChildMenu" resultType="com.sckw.system.model.KwsMenu">
+    select *
+    from kws_menu
+    where del_flag = 0
+    <if test="parentId != null">
+      and parent_id = #{parentId,jdbcType=BIGINT}
+    </if>
+    <if test="type != null">
+      and type = #{type,jdbcType=INTEGER}
+    </if>
+    <if test="perms != null">
+      and perms like concat('%', #{perms,jdbcType=VARCHAR}, '%')
+    </if>
+    <if test="name != null">
+      and name like concat('%', #{name,jdbcType=VARCHAR}, '%')
+    </if>
+  </select>
 </mapper>