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

提交用户关联保险公司的数据

hxl13994548489 1 год назад
Родитель
Сommit
4c3eed863a
16 измененных файлов с 823 добавлено и 4 удалено
  1. 126 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkCompanyController.java
  2. 61 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkCompanyMapper.java
  3. 8 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkPtlAgreementMapper.java
  4. 3 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkPtlAgreementQueryDto.java
  5. 37 0
      src/main/java/com/ydtech/modules/admin/model/dto/UserLinkCompanyDto.java
  6. 120 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkCompany.java
  7. 37 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkCompanyAddVo.java
  8. 24 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkCompanyIdsVo.java
  9. 66 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkCompanyService.java
  10. 8 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkPtlAgreementService.java
  11. 162 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkCompanyServiceImpl.java
  12. 34 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkPtlAgreementServiceImpl.java
  13. 6 2
      src/main/java/com/ydtech/modules/esm/model/EsmInsCompany.java
  14. 7 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  15. 122 0
      src/main/resources/mapper/modules/admin/SysUserLinkCompanyMapper.xml
  16. 2 2
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml

+ 126 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkCompanyController.java

@@ -0,0 +1,126 @@
+package com.ydtech.modules.admin.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
+import com.ydtech.modules.admin.model.dto.UserLinkCompanyDto;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkCompanyAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkCompanyIdsVo;
+import com.ydtech.modules.admin.service.SysUserLinkCompanyService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+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;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/1/7 14:31
+ *  @Description:  后线人员关联保险公司
+ */
+@Api(tags = "后线人员关联保险公司")
+@RequestMapping("/sysUserLinkCompany")
+@RestController
+public class SysUserLinkCompanyController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkCompanyService sysUserLinkCompanyService;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 14:34
+     *  @Description: 查询后线的人员列表
+     */
+    @PostMapping("findAllUserList")
+    @ApiOperation("查询所有的后线人员列表+分页")
+    public HttpResult<BasePageResult<SysUserBaseVO>> findUserList(@RequestBody SysUserDto sysUserDto) {
+        try{
+            BasePageResult<SysUserBaseVO> result = sysUserLinkCompanyService.findUserListByPage(sysUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:24
+     *  @Description:  后线人员关联保险公司列表+分页
+     */
+    @PostMapping("/findCompanyPageListByUserId")
+    @ApiOperation(value = "后线人员关联保险公司列表+分页")
+    public HttpResult<BasePageResult<EsmInsCompany>> findCompanyPageListByUserId(@RequestBody SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        if(StringUtils.isBlank(sysUserLinkPtlAgreementQueryDto.getUserId())) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        try{
+            BasePageResult<EsmInsCompany> result= sysUserLinkCompanyService.findCompanyPageListByUserId(sysUserLinkPtlAgreementQueryDto);
+            return HttpResult.ok(result);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 14:52
+     *  @Description:  后线人员关联保险公司列表
+     */
+    @PostMapping("/sysUserLinkCompanyPage")
+    @ApiOperation(value = "后线人员关联保险公司列表数据")
+    public HttpResult<BasePageResult<UserLinkCompanyDto>> sysUserLinkCompanyPage(@RequestBody SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        try{
+            BasePageResult<UserLinkCompanyDto> result= sysUserLinkCompanyService.sysUserLinkCompanyPage(sysUserLinkPtlAgreementQueryDto);
+            return HttpResult.ok(result);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("后线人员关联区域添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkCompanyAddVo sysUserLinkCompanyAddVo) {
+        if(sysUserLinkCompanyAddVo.getUserId()==null || "".equals(sysUserLinkCompanyAddVo.getUserId())) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        if(!sysUserLinkCompanyAddVo.isFlag()){
+            if(sysUserLinkCompanyAddVo.getCompanyIds()==null || sysUserLinkCompanyAddVo.getCompanyIds().size()==0) {
+                return HttpResult.error("保险公司不能为空");
+            }
+        }
+        try{
+            sysUserLinkCompanyService.addOrUpdate(sysUserLinkCompanyAddVo,getUser());
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+    @PostMapping("delete")
+    @ApiOperation("后线人员关联保险公司删除")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkCompanyIdsVo idsVo) {
+        if(idsVo.getIds()==null || idsVo.getIds().size()==0){
+            return HttpResult.error("后线人员关联ids不能为空");
+        }
+        try{
+            sysUserLinkCompanyService.deleteByIds(idsVo.getIds());
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+}

+ 61 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkCompanyMapper.java

@@ -0,0 +1,61 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
+import com.ydtech.modules.admin.model.dto.UserLinkCompanyDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkCompany;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_company】的数据库操作Mapper
+* @createDate 2025-01-07 11:40:53
+* @Entity generator.domain.SysUserLinkCompany
+*/
+public interface SysUserLinkCompanyMapper extends BaseMapper<SysUserLinkCompany> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:55
+     *  @Description: 通过用户id查询保险公司的分页列表数据
+     */
+    Page<EsmInsCompany> findCompanyPageListByUserId(@Param("page") Page<EsmInsCompany> page, @Param("vo") SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 14:36
+     *  @Description:  查询后线人员分页列表
+     */
+    Page<SysUserBaseVO> findUserListByPage(@Param("page") Page<SysUserBaseVO> page, @Param("user") SysUserDto sysUserDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 14:09
+     *  @Description:  通过用户id查询用户关联的保险公司的id
+     */
+    List<String> findCompanyListByUserId(@Param("userId")  String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 15:01
+     *  @Description: 通过用户查询保险公司的数据
+     */
+    Page<UserLinkCompanyDto> sysUserLinkCompanyPage(@Param("page") Page<UserLinkCompanyDto> page, @Param("vo") SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 16:51
+     *  @Description: 查询所有保险公司集合
+     */
+    List<String> findAllCompanyList();
+}
+
+
+
+

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkPtlAgreementMapper.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
 import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
 import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
 import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
 import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -63,4 +64,11 @@ public interface SysUserLinkPtlAgreementMapper extends BaseMapper<SysUserLinkPtl
      *  @Description:  通过用户id查询关联的协议
      *  @Description:  通过用户id查询关联的协议
      */
      */
     List<Long> findAgreeIdsByUserId(@Param("userId") String userId);
     List<Long> findAgreeIdsByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:32
+     *  @Description: 通过用户查询关联的保险公司id
+     */
+    Page<EsmInsCompany> findCompanyPageListByUserId(@Param("page") Page<EsmInsCompany> page,  @Param("vo") SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
 }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkPtlAgreementQueryDto.java

@@ -21,4 +21,7 @@ public class SysUserLinkPtlAgreementQueryDto extends PageRequest {
 
 
     @ApiModelProperty("保险公司Id")
     @ApiModelProperty("保险公司Id")
     private String  companyId;
     private String  companyId;
+
+    @ApiModelProperty("后线人员名称")
+    private String  userName;
 }
 }

+ 37 - 0
src/main/java/com/ydtech/modules/admin/model/dto/UserLinkCompanyDto.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/1/8 14:55
+ *  @Description: 用户关联保险公司对象
+ */
+@ApiModel("用户关联保险公司对象")
+@Data
+public class UserLinkCompanyDto implements Serializable {
+
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "用户工号")
+    private  String  userId;
+
+    @ApiModelProperty(value = "用户名称")
+    private  String  userName;
+
+    @ApiModelProperty(value = "保险公司编码")
+    private  String  companyId;
+
+    @ApiModelProperty(value = "保险公司名称")
+    private  String companyName;
+
+
+}

+ 120 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkCompany.java

@@ -0,0 +1,120 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  用户关联保险公司表
+ * @TableName sys_user_link_company
+ */
+@TableName(value ="sys_user_link_company")
+@Data
+public class SysUserLinkCompany implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 保险公司id
+     */
+    @TableField(value = "company_id")
+    private String companyId;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 创建人id
+     */
+    @TableField(value = "create_id")
+    private String createId;
+
+    /**
+     * 创建人名称
+     */
+    @TableField(value = "create_name")
+    private String createName;
+
+    @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;
+        }
+        SysUserLinkCompany other = (SysUserLinkCompany) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateId() == null ? other.getCreateId() == null : this.getCreateId().equals(other.getCreateId()))
+            && (this.getCreateName() == null ? other.getCreateName() == null : this.getCreateName().equals(other.getCreateName()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateId() == null) ? 0 : getCreateId().hashCode());
+        result = prime * result + ((getCreateName() == null) ? 0 : getCreateName().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(", companyId=").append(companyId);
+        sb.append(", userId=").append(userId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createId=").append(createId);
+        sb.append(", createName=").append(createName);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysUserLinkCompany() {
+    }
+
+
+    public SysUserLinkCompany(Long id, String companyId, String userId, Date createTime, String createId, String createName) {
+        this.id = id;
+        this.companyId = companyId;
+        this.userId = userId;
+        this.createTime = createTime;
+        this.createId = createId;
+        this.createName = createName;
+    }
+}

+ 37 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkCompanyAddVo.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/1/8 11:59
+ *  @Description:  后线关联的保险公司对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkCompanyAddVo {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("后线用户ID")
+    private String userId;
+
+    /***
+     * 区域code集合
+     */
+    @ApiModelProperty("保险公司编码集合")
+    private List<String> companyIds = new ArrayList<String>();
+
+    /***
+     * 是否全部
+     */
+    @ApiModelProperty("保险公司编码集合")
+    private boolean flag;
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkCompanyIdsVo.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/1/8 12:05
+ *  @Description:  关联保险公司ids
+ */
+@Data
+@ApiModel
+public class SysUserLinkCompanyIdsVo implements Serializable {
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("关联保险公司ids")
+    private List<Long> ids;
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkCompanyService.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
+import com.ydtech.modules.admin.model.dto.UserLinkCompanyDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkCompany;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkCompanyAddVo;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_company】的数据库操作Service
+* @createDate 2025-01-07 11:40:53
+*/
+public interface SysUserLinkCompanyService extends IService<SysUserLinkCompany> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:52
+     *  @Description: 通过用户id查询保险公司的分页列表
+     */
+    Page<EsmInsCompany> findCompanyPageListByUserId(Page<EsmInsCompany> page, SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 14:34
+     *  @Description:  查询后线人员分页列表
+     */
+    BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 14:48
+     *  @Description: 通过用户id查询保险公司的分页列表
+     */
+    BasePageResult<EsmInsCompany> findCompanyPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 12:00
+     *  @Description: 后线关联保险公司保存
+     */
+    void addOrUpdate(SysUserLinkCompanyAddVo sysUserLinkCompanyAddVo, SysUser user);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 12:07
+     *  @Description:  通過id刪除數據
+     */
+    void deleteByIds(List<Long> ids);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 14:59
+     *  @Description: 通过用户id查询保险公司的数据
+     */
+    BasePageResult<UserLinkCompanyDto> sysUserLinkCompanyPage(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
+}

+ 8 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkPtlAgreementService.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 
 
@@ -96,4 +97,11 @@ public interface SysUserLinkPtlAgreementService extends IService<SysUserLinkPtlA
      * @param user
      * @param user
      */
      */
     void addOrUpdateAll(String userId, SysUser user);
     void addOrUpdateAll(String userId, SysUser user);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:28
+     *  @Description:  通过用户id查询保险公司列表
+     */
+    BasePageResult<EsmInsCompany> findCompanyPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto);
 }
 }

+ 162 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkCompanyServiceImpl.java

@@ -0,0 +1,162 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserLinkCompanyMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
+import com.ydtech.modules.admin.model.dto.UserLinkCompanyDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkCompany;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkCompanyAddVo;
+import com.ydtech.modules.admin.service.SysUserLinkCompanyService;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_company】的数据库操作Service实现
+* @createDate 2025-01-07 11:40:53
+*/
+@Service
+public class SysUserLinkCompanyServiceImpl extends ServiceImpl<SysUserLinkCompanyMapper, SysUserLinkCompany>
+    implements SysUserLinkCompanyService {
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:53
+     *  @Description:  通过用户id查询保险公司的分页列表数据
+     */
+    @Override
+    public Page<EsmInsCompany> findCompanyPageListByUserId(Page<EsmInsCompany> page, SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        return this.baseMapper.findCompanyPageListByUserId(page,sysUserLinkPtlAgreementQueryDto);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 14:34
+     *  @Description:  查询后线人员分页列表
+     */
+    @Override
+    public BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto) {
+        Page<SysUserBaseVO> page = new Page<>(sysUserDto.getPageNum(),
+                sysUserDto.getPageSize());
+        Page<SysUserBaseVO> userPageResult = this.baseMapper.findUserListByPage(page, sysUserDto);
+        return  new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
+                userPageResult.getRecords());
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:29
+     *  @Description:
+     */
+    @Override
+    public BasePageResult<EsmInsCompany> findCompanyPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        Page<EsmInsCompany> page = new Page<>(sysUserLinkPtlAgreementQueryDto.getPageNum(),
+                sysUserLinkPtlAgreementQueryDto.getPageSize());
+        Page<EsmInsCompany> userPageResult = this.findCompanyPageListByUserId(page, sysUserLinkPtlAgreementQueryDto);
+        List<EsmInsCompany> records = userPageResult.getRecords();
+        List<EsmInsCompany> newList =new ArrayList<>();
+        if(records!=null && records.size()>0){
+            for (EsmInsCompany esmInsCompany : records) {
+                if("1".equals(esmInsCompany.getFlag())){
+                    esmInsCompany.setFlag("true");
+                }else{
+                    esmInsCompany.setFlag("false");
+                }
+                newList.add(esmInsCompany);
+            }
+        }
+        userPageResult.setRecords(newList);
+        return  new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
+                userPageResult.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 12:01
+     *  @Description:  后线关联的保险公司保存
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkCompanyAddVo sysUserLinkCompanyAddVo, SysUser user) {
+         //判断是否在数据库中存在存在不添加,不存在添加
+         //通过用户id查询关联的保险公司的列表
+         List<String> oldCompanyIds = this.baseMapper.findCompanyListByUserId(sysUserLinkCompanyAddVo.getUserId());
+         //找出没有添加的保存保险保司保存
+         List<String> addCompanyIds =  sysUserLinkCompanyAddVo.getCompanyIds();
+         List<SysUserLinkCompany>  addList =new ArrayList<SysUserLinkCompany>();
+         if(sysUserLinkCompanyAddVo.isFlag()){
+             //查询所有的保险公司集合
+             List<String> allCompanyIds = this.baseMapper.findAllCompanyList();
+             List<String> diffList = allCompanyIds.stream()
+                     .filter(element ->!oldCompanyIds.contains(element))
+                     .collect(Collectors.toList());
+             for (String companyId : diffList) {
+                 SysUserLinkCompany  add  = new SysUserLinkCompany(null
+                         ,companyId,sysUserLinkCompanyAddVo.getUserId(),new Date(),user.getId(),user.getName());
+                 addList.add(add);
+             }
+         }else{
+             if(oldCompanyIds==null){
+                 for (String companyId : addCompanyIds) {
+                     SysUserLinkCompany  add  = new SysUserLinkCompany(null
+                             ,companyId,sysUserLinkCompanyAddVo.getUserId(),new Date(),user.getId(),user.getName());
+                     addList.add(add);
+                 }
+             }else{
+                 //找出没有添加的保险公司id添加
+                 List<String> diffList = addCompanyIds.stream()
+                         .filter(element ->!oldCompanyIds.contains(element))
+                         .collect(Collectors.toList());
+                 for (String companyId : diffList) {
+                     SysUserLinkCompany  add  = new SysUserLinkCompany(null
+                             ,companyId,sysUserLinkCompanyAddVo.getUserId(),new Date(),user.getId(),user.getName());
+                     addList.add(add);
+                 }
+             }
+         }
+         this.saveBatch(addList);
+
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 12:07
+     *  @Description: 通过ID删除数据
+     */
+    @Override
+    public void deleteByIds(List<Long> ids) {
+        this.removeByIds(ids);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/8 14:59
+     *  @Description: 通过用户id查询保险公司的列表数据
+     */
+    @Override
+    public BasePageResult<UserLinkCompanyDto> sysUserLinkCompanyPage(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        Page<UserLinkCompanyDto> page = new Page<>(sysUserLinkPtlAgreementQueryDto.getPageNum(),
+                sysUserLinkPtlAgreementQueryDto.getPageSize());
+        Page<UserLinkCompanyDto> userPageResult = this.baseMapper.sysUserLinkCompanyPage(page, sysUserLinkPtlAgreementQueryDto);
+        return  new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
+                userPageResult.getRecords());
+    }
+
+}
+
+
+
+

+ 34 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkPtlAgreementServiceImpl.java

@@ -12,7 +12,9 @@ import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
 import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.admin.service.SysUserLinkCompanyService;
 import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService;
 import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService;
+import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
@@ -48,6 +50,9 @@ public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkP
     @Autowired
     @Autowired
     private EsmInsCompanyService esmInsCompanyService;
     private EsmInsCompanyService esmInsCompanyService;
 
 
+    @Autowired
+    private  SysUserLinkCompanyService sysUserLinkCompanyService;
+
 
 
     /**
     /**
      *  @version
      *  @version
@@ -157,6 +162,7 @@ public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkP
         saveBatch(addList);
         saveBatch(addList);
     }
     }
 
 
+
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
@@ -223,4 +229,32 @@ public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkP
         return  new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
         return  new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
                 userPageResult.getRecords());
                 userPageResult.getRecords());
     }
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/7 11:29
+     *  @Description:
+     */
+    @Override
+    public BasePageResult<EsmInsCompany> findCompanyPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
+        Page<EsmInsCompany> page = new Page<>(sysUserLinkPtlAgreementQueryDto.getPageNum(),
+                sysUserLinkPtlAgreementQueryDto.getPageSize());
+        Page<EsmInsCompany> userPageResult = sysUserLinkCompanyService.findCompanyPageListByUserId(page, sysUserLinkPtlAgreementQueryDto);
+        List<EsmInsCompany> records = userPageResult.getRecords();
+        List<EsmInsCompany> newList =new ArrayList<>();
+        if(records!=null && records.size()>0){
+            for (EsmInsCompany esmInsCompany : records) {
+                if("1".equals(esmInsCompany.getFlag())){
+                    esmInsCompany.setFlag("true");
+                }else{
+                    esmInsCompany.setFlag("false");
+                }
+                newList.add(esmInsCompany);
+            }
+        }
+        userPageResult.setRecords(newList);
+        return  new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
+                userPageResult.getRecords());
+    }
 }
 }

+ 6 - 2
src/main/java/com/ydtech/modules/esm/model/EsmInsCompany.java

@@ -3,14 +3,13 @@ package com.ydtech.modules.esm.model;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
-import java.util.Date;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 @TableName(value = "esm_ins_company")
 @TableName(value = "esm_ins_company")
@@ -97,6 +96,11 @@ public class EsmInsCompany implements Serializable {
 
 
 //    @TableField(value = "quote_code")
 //    @TableField(value = "quote_code")
 //    private String quoteCode;
 //    private String quoteCode;
+    /***
+     *  是否选中  add by hxl 2025-01-07
+     */
+    @TableField(exist = false)
+    private String flag;
 }
 }
 
 
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -204,6 +204,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Resource
     @Resource
     private SysProportionConfigMapper sysProportionConfigMapper;
     private SysProportionConfigMapper sysProportionConfigMapper;
 
 
+    @Resource
+    private  SysUserLinkCompanyMapper sysUserLinkCompanyMapper;
+
 
 
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
                                 SysUserRoleService sysUserRoleService,
@@ -1555,6 +1558,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
             }
         } else if (type == 3) {
         } else if (type == 3) {
             //查询用户关联的协议
             //查询用户关联的协议
+            /**
             List<SysUserLinkPtlAgreementDto> ptlAgreementListByUserIds =
             List<SysUserLinkPtlAgreementDto> ptlAgreementListByUserIds =
                     sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserId(orderQueryVo.getUserId());
                     sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserId(orderQueryVo.getUserId());
             if (ptlAgreementListByUserIds != null && !ptlAgreementListByUserIds.isEmpty()) {
             if (ptlAgreementListByUserIds != null && !ptlAgreementListByUserIds.isEmpty()) {
@@ -1562,6 +1566,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                     agreeIds.add(sysUserLinkPtlAgreementDto.getPtlAgreement().getId());
                     agreeIds.add(sysUserLinkPtlAgreementDto.getPtlAgreement().getId());
                 }
                 }
             }
             }
+             **/
+            //  add by  hxl 2025-01-08  注释关联的协议维护太频繁改为关联保险公司
+            agreeIds = sysUserLinkCompanyMapper.findCompanyListByUserId(orderQueryVo.getUserId());
         } else if (type == 4) {
         } else if (type == 4) {
             agentUserIds = sysUserService.getTelemarketingPersonnelData();
             agentUserIds = sysUserService.getTelemarketingPersonnelData();
         }
         }

+ 122 - 0
src/main/resources/mapper/modules/admin/SysUserLinkCompanyMapper.xml

@@ -0,0 +1,122 @@
+<?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.ydtech.modules.admin.dao.SysUserLinkCompanyMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserLinkCompany">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createId" column="create_id" jdbcType="VARCHAR"/>
+            <result property="createName" column="create_name" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,company_id,user_id,
+        create_time,create_id,create_name
+    </sql>
+    <select id="findCompanyPageListByUserId" resultType="com.ydtech.modules.esm.model.EsmInsCompany">
+            SELECT
+             company.id,
+             company.name,
+            (
+            SELECT
+            count(0)
+            FROM
+              sys_user_link_company link
+            WHERE
+            link.user_id = #{vo.userId}
+            AND link.company_id = company.id
+            )  as flag
+            FROM
+             esm_ins_company company
+            <where>
+                 company.parent_id = '0'
+                <if test='vo.companyId !=null and vo.companyId!="" '>
+                    and company.id  = #{vo.companyId}
+                </if>
+            </where>
+            ORDER BY
+            flag DESC,
+            company.id
+    </select>
+    <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
+        SELECT
+        t1.id AS userId,
+        t1.NAME AS NAME,
+        t1.mobile AS mobile,
+        t1.`status` AS `status`,
+        t2.id AS deptId,
+        t2.`name` AS deptName,
+        sd2.id AS pDeptId,
+        sd2.`name` AS pDeptName,
+        CASE
+        WHEN ( SELECT count( 0 ) FROM sys_user_link_company link WHERE link.user_id = t1.id) > 0 THEN
+        true ELSE false
+        END AS flag
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        WHERE
+        t1.`status` = 1
+        AND t1.id NOT LIKE '%M%'
+        <if test='user !=null  '>
+            <if test='user.name !=null and user.name!="" '>
+                and t1.name like CONCAT('%', #{user.name}, '%')
+            </if>
+            <if test='user.userId !=null and user.userId!="" '>
+                and t1.id = #{user.userId}
+            </if>
+            <if test='user.mobile !=null and user.mobile!=""  '>
+                and t1.mobile = #{user.mobile}
+            </if>
+            <if test='user.deptId !=null and user.deptId!=""  '>
+                and t2.id like CONCAT('', #{user.deptId}, '%')
+            </if>
+        </if>
+        order by flag desc,t1.id
+    </select>
+
+    <select id="findCompanyListByUserId" resultType="java.lang.String">
+        SELECT
+            link.company_id
+        FROM
+            sys_user_link_company link
+        WHERE
+            link.user_id = #{userId}
+    </select>
+    <select id="sysUserLinkCompanyPage" resultType="com.ydtech.modules.admin.model.dto.UserLinkCompanyDto">
+        SELECT
+            link.id AS id,
+            su.id AS userId,
+            su.NAME AS userName,
+            company.id AS companyId,
+            company.NAME AS companyName
+        FROM
+            sys_user_link_company link
+                LEFT JOIN sys_user su ON su.id = link.user_id
+                LEFT JOIN esm_ins_company company ON company.id = link.company_id
+        <where>
+            <if test='vo.userId !=null and vo.userId!="" '>
+                and  link.user_id = #{ vo.userId}
+            </if>
+            <if test='vo.userName !=null and vo.userName!="" '>
+                and  su.name like CONCAT('%', #{ vo.userName}, '%')
+            </if>
+            <if test='vo.companyId !=null and vo.companyId!="" '>
+                and  link.company_id = #{ vo.companyId}
+            </if>
+        </where>
+    </select>
+    <select id="findAllCompanyList" resultType="java.lang.String">
+        SELECT
+           company.id
+        FROM
+        esm_ins_company company
+        where
+            company.parent_id = '0'
+    </select>
+</mapper>

+ 2 - 2
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -1000,7 +1000,7 @@
             </if>
             </if>
             <if test="agreeIds != null and agreeIds.size>0">
             <if test="agreeIds != null and agreeIds.size>0">
                 AND (
                 AND (
-                (iac.agreement_id in
+                (iac.company_id in
                 <foreach collection="agreeIds" item="item" open="(" separator="," close=")">
                 <foreach collection="agreeIds" item="item" open="(" separator="," close=")">
                     #{item}
                     #{item}
                 </foreach>
                 </foreach>
@@ -1157,7 +1157,7 @@
             </if>
             </if>
             <if test="agreeIds != null and agreeIds.size>0">
             <if test="agreeIds != null and agreeIds.size>0">
                 AND (
                 AND (
-                (iac.agreement_id in
+                (iac.company_id in
                 <foreach collection="agreeIds" item="item" open="(" separator="," close=")">
                 <foreach collection="agreeIds" item="item" open="(" separator="," close=")">
                     #{item}
                     #{item}
                 </foreach>
                 </foreach>