ソースを参照

1.对接订单查询接口,渠道、保险公司、代理人、转发、收回
2.订单接口修改、转发、回收接口修改

hxl13994548489 2 年 前
コミット
710c1022cf
31 ファイル変更480 行追加113 行削除
  1. 43 1
      sql/Online.sql
  2. 17 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserController.java
  3. 2 2
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkPtlAgreementController.java
  4. 1 1
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkPtlAgreementMapper.java
  5. 12 3
      src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java
  6. 1 1
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkPtlAgreement.java
  7. 1 1
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkPtlAgreementService.java
  8. 7 0
      src/main/java/com/ydtech/modules/admin/service/SysUserService.java
  9. 1 1
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkPtlAgreementServiceImpl.java
  10. 10 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  11. 8 1
      src/main/java/com/ydtech/modules/esm/dao/InsOrderSetUserHisMapper.java
  12. 27 8
      src/main/java/com/ydtech/modules/esm/model/po/InsOrderSetUserHis.java
  13. 7 0
      src/main/java/com/ydtech/modules/esm/service/InsOrderSetUserHisService.java
  14. 10 0
      src/main/java/com/ydtech/modules/esm/service/impl/InsOrderSetUserHisServiceImpl.java
  15. 1 1
      src/main/java/com/ydtech/modules/order/controller/OrderTaskPoolsController.java
  16. 14 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java
  17. 19 0
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java
  18. 3 0
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  19. 7 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderTaskPoolsVo.java
  20. 3 0
      src/main/java/com/ydtech/modules/order/entity/vo/TaskForwardingVo.java
  21. 7 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersService.java
  22. 1 1
      src/main/java/com/ydtech/modules/order/service/OrderTaskPoolsService.java
  23. 22 3
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  24. 39 58
      src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java
  25. 6 6
      src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java
  26. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java
  27. 7 3
      src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java
  28. 37 2
      src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java
  29. 17 0
      src/main/resources/mapper/modules/ins/InsOrderSetUserHisMapper.xml
  30. 147 17
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml
  31. 2 2
      src/main/resources/sql/sql.txt

+ 43 - 1
sql/Online.sql

@@ -51,4 +51,46 @@ INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`
 
 --  inv_source表 新增修改人名字 修改人id  前端还没联调  正式库先不加字段
 ALTER TABLE `inv_source` ADD COLUMN `update_name` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '修改人名字' AFTER `revenue_userid`;
-ALTER TABLE `inv_source` ADD COLUMN `update_userid` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '修改人id' AFTER `update_name`;
+ALTER TABLE `inv_source` ADD COLUMN `update_userid` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '修改人id' AFTER `update_name`;
+
+
+
+--  add by hxl   2024-04-18 添加后线人员关联协议表
+DROP TABLE IF EXISTS `sys_user_link_pl_agreement`;
+CREATE TABLE `sys_user_link_pl_agreement`  (
+                                               `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键/自增',
+                                               `user_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前线用户ID',
+                                               `ptl_agreement_id` bigint(20) NULL DEFAULT NULL COMMENT '协议ID',
+                                               `create_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人ID',
+                                               `create_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人名称',
+                                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+                                               `update_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人ID',
+                                               `update_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人名称',
+                                               `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
+                                               `type` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '协议类型  0 车险 1 非车',
+                                               PRIMARY KEY (`id`) USING BTREE,
+                                               INDEX `user_id_index`(`user_id`) USING BTREE,
+                                               INDEX `ptl_agreement_id_index`(`ptl_agreement_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后线人员关联协议表' ROW_FORMAT = DYNAMIC;
+
+--  add by hxl   2024-04-18 添加子订单表操作人和操作时间和操作人名称
+ALTER TABLE ins_area_company ADD COLUMN operator_id VARCHAR(30) COMMENT '操作人';
+ALTER TABLE ins_area_company ADD COLUMN operator_name VARCHAR(30) COMMENT '操作人名称';
+ALTER TABLE ins_area_company ADD COLUMN operator_time datetime COMMENT '操作时间';
+
+--  add  by  hxl  2024-04-18 添加子订单转发收回记录表
+DROP TABLE IF EXISTS `ins_order_set_user_his`;
+CREATE TABLE `ins_order_set_user_his`  (
+                                           `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键/自增',
+                                           `orderno` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
+                                           `quoteno` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '报价单号',
+                                           `old_operator_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原操作人',
+                                           `new_operator_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '现操作人',
+                                           `create_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
+                                           `create_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
+                                           `suborder_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '子订单id',
+                                           `old_operator_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原操作人名称',
+                                           `new_operator_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '现操作人名称',
+                                           `remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
+                                           PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '子订单转发收回记录表' ROW_FORMAT = DYNAMIC;

+ 17 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -742,4 +742,21 @@ public class SysUserController extends BaseController {
         }
 
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 16:12
+     *  @Description: 查询客服人员列表数据
+     */
+    @ApiOperation(value = "获取客服人员列表数据")
+    @PostMapping(value = "/getCustomerUsers")
+    public HttpResult getCustomerUsers() {
+        try{
+            List<SysUserBaseVO> userList = sysUserService.getCustomerUsers();
+            return HttpResult.ok(userList);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
 }

+ 2 - 2
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkPtlAgreementController.java

@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
-@Api(tags = "线人员关联协议")
+@Api(tags = "线人员关联协议")
 @RequestMapping("/sysUserLinkPtlAgreement")
 @RestController
 public class SysUserLinkPtlAgreementController extends BaseController {
@@ -40,7 +40,7 @@ public class SysUserLinkPtlAgreementController extends BaseController {
     }
 
     @PostMapping("addOrUpdate")
-    @ApiOperation("线人员关联协议添加修改")
+    @ApiOperation("线人员关联协议添加修改")
     public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo) {
         if(sysUserLinkPtlAgreementAddVo.getUserId()==null || "".equals(sysUserLinkPtlAgreementAddVo.getUserId())) {
             return HttpResult.error("后线人员id不能为空");

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

@@ -37,7 +37,7 @@ public interface SysUserLinkPtlAgreementMapper extends BaseMapper<SysUserLinkPtl
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/16 9:32
-     *  @Description: 通过线人员id查询关联的协议列表
+     *  @Description: 通过线人员id查询关联的协议列表
      */
     List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(@Param("userId") String userId);
 }

+ 12 - 3
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -174,11 +174,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/15 17:51
-     *  @Description: 添加查询线人员
+     *  @Description: 添加查询线人员
      */
     @Select(" 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  " +
             " 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 LIKE '%M%'")
+             " WHERE t1.`status` = 1 AND t1.id not LIKE '%M%'")
 
     List<SysUserBaseVO> findQXUserList();
     /**
@@ -210,7 +210,16 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
             " AND sd.del_flag = '0'  and su.status = 1 " +
             " WHERE  su.dept_id LIKE concat( '%', 9, '%' )    AND t3.role_id IN ( 20 )  AND sd.management_source = 2")
     List<String> getAgentUserIds();
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 16:15
+     *  @Description: 获取客服人员数据
+     */
+    @Select(" 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  " +
+            " 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%'")
+    List<SysUserBaseVO> getCustomerUsers();
 }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkPtlAgreement.java

@@ -15,7 +15,7 @@ import java.util.Date;
  *  @version
  *  @author: hxl
  *  @Date: 2024/4/15 14:32
- *  @Description: 线人员关联协议表
+ *  @Description: 线人员关联协议表
  */
 @TableName(value = "sys_user_link_pl_agreement")
 @Data

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

@@ -53,7 +53,7 @@ public interface SysUserLinkPtlAgreementService extends IService<SysUserLinkPtlA
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/16 9:27
-     *  @Description: 查询线人员关联的协议列表
+     *  @Description: 查询线人员关联的协议列表
      */
     List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(String userId);
 }

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -140,6 +140,13 @@ public interface SysUserService extends IService<SysUser> {
      *  @Description: 获取待客录入的可选业务员
      */
     List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 16:14
+     *  @Description: 获取客服人员列表数据
+     */
+    List<SysUserBaseVO> getCustomerUsers();
 }
 
 

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

@@ -91,7 +91,7 @@ public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkP
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/15 17:52
-     *  @Description: 查询所有的线人员
+     *  @Description: 查询所有的线人员
      */
     @Override
     public List<SysUserBaseVO> findUserList() {

+ 10 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -991,6 +991,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt) {
         return super.baseMapper.getAllUsersByHospitality(sysUserVOExt);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 16:14
+     *  @Description: 获取客服人员列表数据
+     */
+    @Override
+    public List<SysUserBaseVO> getCustomerUsers() {
+        return super.baseMapper.getCustomerUsers();
+    }
 
 }
 

+ 8 - 1
src/main/java/com/ydtech/modules/esm/dao/InsOrderSetUserHisMapper.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.esm.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.esm.model.po.InsOrderSetUserHis;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  *  @version
@@ -13,5 +14,11 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface InsOrderSetUserHisMapper extends BaseMapper<InsOrderSetUserHis> {
 
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 14:56
+     *  @Description: 通过子订单id查询最新的历史记录数据
+     */
+    InsOrderSetUserHis getOneBySubOrderId(@Param("subOrderId") String subOrderId);
 }

+ 27 - 8
src/main/java/com/ydtech/modules/esm/model/po/InsOrderSetUserHis.java

@@ -37,15 +37,26 @@ public class InsOrderSetUserHis implements Serializable {
     @TableField(value = "quoteno")
     private String quoteno;
     /***
-     * 创建
+     * 旧操作
      */
     @TableField(value = "old_operator_id")
     private String oldOperatorId;
     /***
-     * 创建人名称
+     * 新操作人
      */
     @TableField(value = "new_operator_id")
     private String newOperatorId;
+
+    /***
+     *  旧操作人名称
+     */
+    @TableField(value = "old_operator_name")
+    private String oldOperatorName;
+    /***
+     * 新操作人名称
+     */
+    @TableField(value = "new_operator_name")
+    private String newOperatorName;
     /***
      * 创建时间
      */
@@ -53,24 +64,32 @@ public class InsOrderSetUserHis implements Serializable {
     @TableField(value = "create_time")
     private Date createTime;
     /***
-     * 修改人名称
+     * 创建人人
      */
     @TableField(value = "create_id")
     private String createId;
+    /***
+     * 子订单id
+     */
+    @TableField(value = "suborder_id")
+    private String subOrderId;
 
     /***
-     * 状态  1.转发  2. 回退
+     * 备注
      */
-    @TableField(value = "status")
-    private String status;
+    @TableField(value = "remark")
+    private String remark;
 
-    public InsOrderSetUserHis(String orderno, String quoteno, String oldOperatorId, String newOperatorId, Date createTime, String createId,String status) {
+    public InsOrderSetUserHis(String orderno, String quoteno, String oldOperatorId, String newOperatorId, Date createTime, String createId,String subOrderId,String  oldOperatorName,String newOperatorName ,String remark) {
         this.orderno = orderno;
         this.quoteno = quoteno;
         this.oldOperatorId = oldOperatorId;
         this.newOperatorId = newOperatorId;
         this.createTime = createTime;
         this.createId = createId;
-        this.status = status;
+        this.subOrderId = subOrderId;
+        this.oldOperatorName = oldOperatorName;
+        this.newOperatorName = newOperatorName;
+        this.remark = remark;
     }
 }

+ 7 - 0
src/main/java/com/ydtech/modules/esm/service/InsOrderSetUserHisService.java

@@ -11,4 +11,11 @@ public interface InsOrderSetUserHisService extends IService<InsOrderSetUserHis>
      *  @Description: 修改
      */
     void addOrUpdate(InsOrderSetUserHis insOrderSetUserHis);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 14:55
+     *  @Description: 通过子订单id和状态查询最新一条转发的数据
+     */
+    InsOrderSetUserHis getOneBySubOrderId(String subOrderId);
 }

+ 10 - 0
src/main/java/com/ydtech/modules/esm/service/impl/InsOrderSetUserHisServiceImpl.java

@@ -33,5 +33,15 @@ public class InsOrderSetUserHisServiceImpl extends ServiceImpl<InsOrderSetUserHi
             insOrderSetUserHisMapper.insert(insOrderSetUserHis);
         }
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 15:47
+     *  @Description: 查询子订单id查询最新的数据
+     */
+    @Override
+    public InsOrderSetUserHis getOneBySubOrderId(String subOrderId) {
+        return insOrderSetUserHisMapper.getOneBySubOrderId(subOrderId);
+    }
 
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/controller/OrderTaskPoolsController.java

@@ -83,6 +83,6 @@ public class OrderTaskPoolsController {
     @PostMapping(value = "/recover")
     @ApiOperation(value = "子订单任务收回")
     public HttpResult recover(@RequestBody TaskForwardingVo taskForwardingVo) {
-        return orderTaskPoolsService.recover(taskForwardingVo);
+        return orderTaskPoolsService.recover(taskForwardingVo,getUser());
     }
 }

+ 14 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -64,4 +64,18 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
      *  @Description: 通过用户id查询订单、渠道、代理人、保险公司条数
      */
     Long queryPageOrderByLinkTypeCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds")  List<String> agentUserIds, @Param("agreeIds")  List<String> agreeIds);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 10:51
+     *  @Description: 查询子订单的数据
+     */
+    Page<InsOrders> queryPageSubOrders(@Param("page") Page<InsOrders> page, @Param("orderQueryVo") OrderTaskPoolsVo orderTaskPoolsVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 11:13
+     *  @Description: 查询子订单的数据条数
+     */
+    Long queryPageSubOrdersCount(@Param("orderQueryVo") OrderTaskPoolsVo orderTaskPoolsVo);
 }

+ 19 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -21,6 +21,7 @@ import lombok.NoArgsConstructor;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 报价渠道
@@ -368,6 +369,24 @@ public class InsAreaCompany implements Serializable {
     @TableField(value = "ubi_predicted_info_score")
     private String ubiPredictedInfoScore;
 
+    /**
+     *  添加操作人
+     */
+    @TableField(value = "operator_id")
+    private String operatorId;
+
+    /**
+     *  操作时间
+     */
+    @TableField(value = "operator_time")
+    private Date operatorTime;
+
+    /**
+     *  添加操作人
+     */
+    @TableField(value = "operator_name")
+    private String operatorName;
+
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
         this.id = IdGenerate.nextId();
         this.orderno = quoteRespVo.getOrderno();

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -213,6 +213,9 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
+    @TableField(exist = false)
+    private String subOrderId; //子订单id
+
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单

+ 7 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderTaskPoolsVo.java

@@ -73,4 +73,11 @@ public class OrderTaskPoolsVo {
 
     @ApiModelProperty(value = "类型 1.任务池总 2.任务池分 ")
     private String type;
+
+    @ApiModelProperty(value = "投保人姓名")
+    private String insuredName;
+
+    @ApiModelProperty(value = "保险公司id")
+    private String companyId;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/vo/TaskForwardingVo.java

@@ -23,4 +23,7 @@ public class TaskForwardingVo {
     @ApiModelProperty(value = "任务操作者")
     private String operatorId;
 
+    @ApiModelProperty(value = "子订单id")
+    private String subOrderId;
+
 }

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

@@ -144,4 +144,11 @@ public interface InsOrdersService extends IService<InsOrders> {
      *  @Description:  通过待客用户id查询渠道、代理人、保险公司的相关的订单表
      */
     BasePageResult<InsOrders> queryPageOrderByLinkType(OrderQueryVo orderQueryVo, int type);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 10:49
+     *  @Description: 查询子订单的数据列表
+     */
+    BasePageResult<InsOrders> queryPageSubOrders(OrderTaskPoolsVo orderTaskPoolsVo);
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/OrderTaskPoolsService.java

@@ -38,7 +38,7 @@ public interface OrderTaskPoolsService {
      *  @Date: 2024/4/16 15:42
      *  @Description: 子订单的收回
      */
-    HttpResult recover(TaskForwardingVo taskForwardingVo);
+    HttpResult recover(TaskForwardingVo taskForwardingVo,SysUser sysUser);
     /**
      *  @version
      *  @author: hxl

+ 22 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -812,14 +812,33 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 }
             }
         }
+        Long total=0l;
         Page<InsOrders> orderVoPage=new Page<>();
-        if(agentUserIds!=null || agentUserIds.size()==0){
+        //注释逻辑给前台返回数据
+        //if((agentUserIds!=null && agentUserIds.size()>0) || (agreeIds!=null && agreeIds.size()>0)){
             orderVoPage= baseMapper.queryPageOrderByLinkType(page, orderQueryVo,agentUserIds,agreeIds);
-        }
-        Long total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo,agentUserIds,agreeIds);
+            total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo,agentUserIds,agreeIds);
+        //}
         orderVoPage.setTotal(total);
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
                 orderVoPage.getPages()
                 , orderVoPage.getRecords());
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 10:51
+     *  @Description: 查询子订单的数据
+     */
+    @Override
+    public BasePageResult<InsOrders> queryPageSubOrders(OrderTaskPoolsVo orderTaskPoolsVo) {
+        Page<InsOrders> page = new Page<>(orderTaskPoolsVo.getPageNum(), orderTaskPoolsVo.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<InsOrders> orderVoPage = baseMapper.queryPageSubOrders(page, orderTaskPoolsVo);
+        Long total = baseMapper.queryPageSubOrdersCount(orderTaskPoolsVo);
+        orderVoPage.setTotal(total);
+        return new BasePageResult<>(orderTaskPoolsVo.getPageNum(), orderTaskPoolsVo.getPageSize(), orderVoPage.getTotal(),
+                orderVoPage.getPages()
+                , orderVoPage.getRecords());
+    }
 }

+ 39 - 58
src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java

@@ -3,7 +3,9 @@ package com.ydtech.modules.order.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
@@ -49,7 +51,7 @@ public class OrderTaskPoolsServiceImpl extends BaseController implements OrderTa
     public HttpResult query(OrderTaskPoolsVo orderTaskPoolsVo) {
         //后线可以查所有,非后线只能查自己代客的
         String userId = getUserId();
-        userId="9914D17002";
+        //userId="9914D17002";
         //查询当前工号是否为后线人员
         boolean isBachUser = false;
         List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId,"22");
@@ -140,87 +142,66 @@ public class OrderTaskPoolsServiceImpl extends BaseController implements OrderTa
      */
     @Override
     public HttpResult querySubOrders(OrderTaskPoolsVo orderTaskPoolsVo) {
-        //后线可以查所有,非后线只能查自己代客的
-        String userId = getUserId();
-        //查询当前工号是否为后线人员
-        boolean isBachUser = false;
-        List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId,"22");
-        if(userList!=null && userList.size()>0){
-            isBachUser = true;
-        }
-        BaseMapper<InsOrders> baseMapper = insOrdersService.getBaseMapper();
-        LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(!StringUtils.isEmpty(orderTaskPoolsVo.getOrderNo()), InsOrders::getOrderno, orderTaskPoolsVo.getOrderNo())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getQuoteNo()), InsOrders::getQuoteno, orderTaskPoolsVo.getQuoteNo())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getOrderStatus()), InsOrders::getOrderstatus, orderTaskPoolsVo.getOrderStatus())
-                .like(!StringUtils.isEmpty(orderTaskPoolsVo.getLicenseNo()), InsOrders::getLicenseno, orderTaskPoolsVo.getLicenseNo())
-                .like(!StringUtils.isEmpty(orderTaskPoolsVo.getFrameNo()), InsOrders::getFrameno, orderTaskPoolsVo.getFrameNo())
-                .like(!StringUtils.isEmpty(orderTaskPoolsVo.getEngineNo()), InsOrders::getCarinfo, orderTaskPoolsVo.getEngineNo())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getRiskCode()), InsOrders::getProduct, orderTaskPoolsVo.getRiskCode())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getUserid()), InsOrders::getUserid, orderTaskPoolsVo.getUserid())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getUsername()), InsOrders::getUsername, orderTaskPoolsVo.getUsername())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getInsureName()), InsOrders::getInsuredname, orderTaskPoolsVo.getInsureName())
-                .eq(!StringUtils.isEmpty(orderTaskPoolsVo.getAuditId()), InsOrders::getAgreeid, orderTaskPoolsVo.getAuditId())
-                //.eq(!StringUtils.isEmpty(userId), InsOrders::getOperatorid, userId)
-                .likeRight(!StringUtils.isEmpty(orderTaskPoolsVo.getDeptId()), InsOrders::getDeptid, orderTaskPoolsVo.getDeptId())
-                .between(!StringUtils.isEmpty(orderTaskPoolsVo.getStartDate()) && !StringUtils.isEmpty(orderTaskPoolsVo.getEndDate()), InsOrders::getCreatetime, orderTaskPoolsVo.getStartDate(), orderTaskPoolsVo.getEndDate())
-                .between(!StringUtils.isEmpty(orderTaskPoolsVo.getPolicyStartDate()) && !StringUtils.isEmpty(orderTaskPoolsVo.getPolicyEndDate()), InsOrders::getJqstartdate, orderTaskPoolsVo.getPolicyStartDate(), orderTaskPoolsVo.getPolicyEndDate())
-                .between(!StringUtils.isEmpty(orderTaskPoolsVo.getPolicyStartDate()) && !StringUtils.isEmpty(orderTaskPoolsVo.getPolicyEndDate()), InsOrders::getSystartdate, orderTaskPoolsVo.getPolicyStartDate(), orderTaskPoolsVo.getPolicyEndDate());
-        if(!isBachUser){//若非后线角色,只能查自己代客录单的单子
-            wrapper.eq(!StringUtils.isEmpty(userId), InsOrders::getOperatorid, userId);
-        }
-        //保司条件不为空时,拼接保司条件
-        if (org.apache.commons.lang3.StringUtils.isNotEmpty(orderTaskPoolsVo.getInsCompany())) {
-            List<InsAreaCompany> list = insAreaCompanyService.query()
-                    .select("DISTINCT orderno")
-                    .eq("company_id", orderTaskPoolsVo.getInsCompany())
-                    .list();
-            List<String> collect =
-                    list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
-            wrapper.in(InsOrders::getOrderno, collect);
-        }
-        Page<InsOrders> page = baseMapper.selectPage(new Page<>(orderTaskPoolsVo.getPageNum(), orderTaskPoolsVo.getPageSize()), wrapper);
-        BasePageResult<InsOrders> insOrders = new BasePageResult<>(orderTaskPoolsVo.getPageNum(), page.getSize(), page.getTotal(), page.getPages(), page.getRecords());
-        return HttpResult.ok(insOrders);
+        BasePageResult<InsOrders> insOrdersBasePageResult = insOrdersService.queryPageSubOrders(orderTaskPoolsVo);
+        return HttpResult.ok(insOrdersBasePageResult);
     }
     /**
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/16 18:51
      *  @Description: 转发
+     *   将页面设置的人设置为当前操作人,将登陆人设置为旧的操作人
      */
     @Override
     @Transactional
     public HttpResult forwardingSubOrders(TaskForwardingVo taskForwardingVo,SysUser sysUser) {
         SysUser sysUserNew = sysUserService.getById(taskForwardingVo.getAuditId());
         InsOrders insOrders = insOrdersService.existOrder(taskForwardingVo.getOrderNo());
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(taskForwardingVo.getSubOrderId());
+        if(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus()) ){
+            throw  new SystemException("已承保的订单不能操作!!");
+        }
+        //查询最新数据的
+        InsOrderSetUserHis one = insOrderSetUserHisService.getOneBySubOrderId(taskForwardingVo.getSubOrderId());
+        if(one!=null && !one.getNewOperatorId().equals(sysUser.getId())){
+            throw  new SystemException("该订单已经转发给"+one.getNewOperatorName());
+        }
         //插入轨迹表
-        InsOrderSetUserHis  his=new InsOrderSetUserHis(insOrders.getOrderno(), insOrders.getQuoteno(), insOrders.getOperatorid(), taskForwardingVo.getAuditId(), new Date(), sysUser.getId(),"1");
+        InsOrderSetUserHis  his=new InsOrderSetUserHis(insOrders.getOrderno(), insOrders.getQuoteno(), sysUser.getId(), taskForwardingVo.getAuditId(), new Date(), sysUser.getId(),taskForwardingVo.getSubOrderId(),sysUserNew.getName()+"转发给"+sysUser.getName()+"的任务",sysUser.getName(),sysUserNew.getName());
         insOrderSetUserHisService.addOrUpdate(his);
-        insOrders.setOperatorid(sysUserNew.getId());
-        insOrdersService.updateById(insOrders);
+        insAreaCompany.setOperatorId(taskForwardingVo.getAuditId());
+        insAreaCompany.setOperatorTime(new Date());
+        insAreaCompany.setOperatorName(sysUserNew.getName());
+        insAreaCompanyService.updateById(insAreaCompany);
         return HttpResult.ok("保存成功");
     }
     /**
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/16 18:51
-     *  @Description: 收回
+     *  @Description: 收回   查询最新一条数据,将原先旧的操作人设置为新的操作人,就原先新的操作人设置为旧的
+     *  插入一条信息数据
      */
     @Override
     @Transactional
-    public HttpResult recover(TaskForwardingVo taskForwardingVo) {
+    public HttpResult recover(TaskForwardingVo taskForwardingVo,SysUser sysUser) {
         InsOrders insOrders = insOrdersService.existOrder(taskForwardingVo.getOrderNo());
-
-        LambdaQueryWrapper<InsOrderSetUserHis> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(InsOrderSetUserHis::getOrderno,insOrders.getOrderno());
-        wrapper.eq(InsOrderSetUserHis::getStatus,"1");
-        InsOrderSetUserHis one = insOrderSetUserHisService.getOne(wrapper);
-        //设置为已回退
-        one.setStatus("2");
-        insOrderSetUserHisService.addOrUpdate(one);
-        insOrders.setOperatorid(one.getOldOperatorId());
-        insOrdersService.updateById(insOrders);
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(taskForwardingVo.getSubOrderId());
+        if(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus()) ){
+            throw  new SystemException("已承保的订单不能操作!!");
+        }
+        //查询最新数据的
+        InsOrderSetUserHis one = insOrderSetUserHisService.getOneBySubOrderId(taskForwardingVo.getSubOrderId());
+        if(one!=null && !one.getOldOperatorId().equals(sysUser.getId())){
+            throw  new SystemException("该订单的回收人为"+one.getOldOperatorName());
+        }
+        //插入轨迹表
+        InsOrderSetUserHis  his=new InsOrderSetUserHis(insOrders.getOrderno(), insOrders.getQuoteno(), one.getNewOperatorId(), one.getOldOperatorId(), new Date(), sysUser.getId(),taskForwardingVo.getSubOrderId(),one.getOldOperatorName()+"回收"+one.getNewOperatorName()+"任务",one.getOldOperatorName(),one.getNewOperatorName());
+        insOrderSetUserHisService.addOrUpdate(his);
+        insAreaCompany.setOperatorId(null);
+        insAreaCompany.setOperatorTime(new Date());
+        insAreaCompany.setOperatorName(null);
+        insAreaCompanyService.updateById(insAreaCompany);
         return HttpResult.ok("保存成功");
     }
 }

+ 6 - 6
src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java

@@ -5,21 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
-import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsCompany;
-import com.ydtech.modules.protocol.entity.po.PtlNonCarInsuranceProduct;
 import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
-import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
 import com.ydtech.modules.protocol.service.ITaxSourceService;
+import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.awt.print.Pageable;
-import java.util.List;
-
 @Api(tags = "税源管理")
 @RequestMapping("/tax/manager")
 @RestController
@@ -80,4 +75,9 @@ public class TaxSourceController extends BaseController {
         return result? HttpResult.ok("保存税源成功"):HttpResult.error("保存税源失败");
     }
 
+    @GetMapping("/getAllAgreementByUserId")
+    @ApiOperation("通过用户id获取所有协议")
+    public HttpResult getAllAgreementByUserId(String userId){
+        return HttpResult.ok(taxSourceService.getAllAgreementByUserId(userId));
+    }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java

@@ -199,7 +199,7 @@ public class PtlAgreement implements Serializable {
     /**
      * 审核类型
      */
-    @TableField(value = "audit_type")
+    @TableField(value = "audit_type1")
     private Integer auditType;
 
     @TableField(exist = false)

+ 7 - 3
src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java

@@ -3,14 +3,11 @@ package com.ydtech.modules.protocol.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.esm.model.EsmInsCompany;
-import com.ydtech.modules.protocol.entity.dto.PtlAgreementDto;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
-import org.springframework.stereotype.Service;
 
 import java.util.List;
 
@@ -28,4 +25,11 @@ public interface ITaxSourceService extends IService<TaxSourceDto> {
     List<PtlAgreementInsCompanyDto> getAllAgreement(String deptId, String userId);
 
     String getAgreementId(String deptId, String userId, String companyId, String license, String volume, String productid);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 10:17
+     *  @Description: 通过用户id查询关联的协议
+     */
+    List<PtlAgreementInsCompanyDto> getAllAgreementByUserId(String userId);
 }

+ 37 - 2
src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java

@@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.sys.SystemConstant;
 import com.ydtech.modules.admin.constants.RoleConstants;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
 import com.ydtech.modules.admin.service.SysUserRoleService;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
@@ -26,7 +28,6 @@ import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,7 +35,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Service
@@ -55,6 +55,9 @@ public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper, TaxSource
     @Autowired
     EsmInsCompanyService esmInsCompanyService;
 
+    @Autowired
+    SysUserService sysUserService;
+
 
     @Override
     public IPage<EsmInsCompany> getInsureCompany(Page page) {
@@ -391,6 +394,38 @@ public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper, TaxSource
 
         return resultId;
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/18 10:18
+     *  @Description: 通过用户id查询关联的协议
+     */
+    @Override
+    public List<PtlAgreementInsCompanyDto> getAllAgreementByUserId(String userId) {
+        SysUser user = sysUserService.getById(userId);
+        //查出当前用户管理所有协议
+        List<PtlAgreementInsCompanyDto> agreementInsCompany = this.getAgreementInsCompany(user.getDeptId(), userId);
+        //查找是否配置税源
+        List<TaxSourceDto> taxSourceDtos =
+                baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getIsTaxSource, "1"));
+        //设置税源参数
+        agreementInsCompany.forEach(item -> {
+            if (!TaxSourceStatusConstants.TAX_SOURCE_START.equals(item.getIsExclude())) {
+                taxSourceDtos.forEach(taxSourceDto -> {
+                    if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
+                        item.getAgreement().forEach(agreement -> {
+                            if (agreement.getId().equals(taxSourceDto.getAgreementId())) {
+                                agreement.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+                                item.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+                                item.setTaxSourceAgreementId(taxSourceDto.getAgreementId());
+                            }
+                        });
+                    }
+                });
+            }
+        });
+        return agreementInsCompany;
+    }
 
 
 }

+ 17 - 0
src/main/resources/mapper/modules/ins/InsOrderSetUserHisMapper.xml

@@ -0,0 +1,17 @@
+<?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.esm.dao.InsOrderSetUserHisMapper">
+
+
+   <select id="getOneBySubOrderId"  resultType="com.ydtech.modules.esm.model.po.InsOrderSetUserHis">
+       SELECT
+           *
+       FROM
+           ins_order_set_user_his
+       WHERE
+          suborder_id = #{subOrderId}
+       ORDER BY
+           create_time DESC
+           LIMIT 1;
+   </select>
+</mapper>

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

@@ -41,6 +41,7 @@
         <result property="vehicleAndVesselTax" column="vehicle_and_vessel_tax"
                 javaType="com.alibaba.fastjson.JSONObject"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="subOrderId" column="subOrderId" jdbcType="VARCHAR"/>
     </resultMap>
     <resultMap id="OrderResultMap" type="com.ydtech.modules.order.entity.vo.OrderVo">
         <id property="orderno" column="orderno" jdbcType="VARCHAR"/>
@@ -699,7 +700,7 @@
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
                 and io.orderno = #{orderQueryVo.orderNo}
             </if>
-            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' ">
                 and io.deptid like "${orderQueryVo.deptId}%"
             </if>
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
@@ -745,7 +746,7 @@
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
                 and io.orderno = #{orderQueryVo.orderNo}
             </if>
-            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
                 and io.deptid like "${orderQueryVo.deptId}%"
             </if>
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
@@ -777,19 +778,18 @@
 
     <select id="queryPageOrderByLinkType" resultMap="BaseResultMap">
         select
-        io.*
+            io.*,
+            iac.id as subOrderId
         from
-        ins_orders io
-        <!--如果存在 公司查询则进行连表 -->
-        <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
-            left JOIN
-            ins_area_company iac on iac.orderno = io.orderno
-        </if>
+            ins_area_company iac
+        left JOIN
+             ins_orders io  on iac.orderno = io.orderno
         <where>
+             (iac.operator_id is null or  iac.operator_id =#{orderQueryVo.userId})
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
                 and io.orderno = #{orderQueryVo.orderNo}
             </if>
-            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
                 and io.deptid like "${orderQueryVo.deptId}%"
             </if>
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
@@ -822,26 +822,29 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="orderQueryVo.userId != null and orderQueryVo.userId != ''">
+                and io.userid = #{orderQueryVo.userId}
+            </if>
         </where>
-        group by orderno
         order by io.createtime desc
     </select>
 
     <select id="queryPageOrderByLinkTypeCount" resultType="Long">
         select
-        count(1)
+         count(1)
         from (
         select
-        io.orderno
+         (0)
         from
-        ins_orders io
+          ins_area_company iac
             left JOIN
-            ins_area_company iac on iac.orderno = io.orderno
+        ins_orders io  on iac.orderno = io.orderno
         <where>
+            (iac.operator_id is null or  iac.operator_id =#{orderQueryVo.userId})
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
                 and io.orderno = #{orderQueryVo.orderNo}
             </if>
-            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
                 and io.deptid like "${orderQueryVo.deptId}%"
             </if>
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
@@ -874,8 +877,135 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="orderQueryVo.userId != null and orderQueryVo.userId != ''">
+                and io.userid = #{orderQueryVo.userId}
+            </if>
         </where>
-        group by io.orderno
+        ) as s
+    </select>
+
+
+    <select id="queryPageSubOrders" resultMap="BaseResultMap">
+        select
+        io.*,
+        iac.id as subOrderId
+        from
+        ins_area_company iac
+         left JOIN
+        ins_orders io  on iac.orderno = io.orderno
+        <where>
+            <if test="orderQueryVo.userId != null and orderQueryVo.userId != ''">
+                and io.userid = #{orderQueryVo.userid}
+            </if>
+            <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
+                and io.orderno = #{orderQueryVo.orderNo}
+            </if>
+            <if test="orderQueryVo.quoteNo != null and orderQueryVo.quoteNo != ''">
+                and io.quoteno  = #{orderQueryVo.quoteNo}
+            </if>
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
+                and io.deptid like "${orderQueryVo.deptId}%"
+            </if>
+            <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
+                and iac.orderstatus = #{orderQueryVo.orderStatus}
+            </if>
+            <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
+                and io.frameno = #{orderQueryVo.frameNo}
+            </if>
+            <if test="orderQueryVo.licenseNo != null and orderQueryVo.licenseNo != ''">
+                and io.licenseno = #{orderQueryVo.licenseNo}
+            </if>
+            <if test="orderQueryVo.engineNo != null and orderQueryVo.engineNo != ''">
+                and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{orderQueryVo.engineNo}
+            </if>
+            <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
+                and io.insuredname = #{orderQueryVo.insuredName}
+            </if>
+            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
+                and io.createtime between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            </if>
+            <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+                and iac.company_id = #{orderQueryVo.companyId}
+            </if>
+            <if test="orderQueryVo.riskCode != null and orderQueryVo.riskCode != ''">
+                and iac.product = #{orderQueryVo.riskCode}
+            </if>
+            <if test="orderQueryVo.auditId != null and orderQueryVo.auditId != ''">
+                and IFNULL( io.agreeid, '' ) = #{orderQueryVo.auditId}
+            </if>
+            <if test="orderQueryVo.policyStartDate != null and orderQueryVo.policyEndDate != ''">
+               and  ((
+                io.jqstartdate BETWEEN #{orderQueryVo.policyStartDate}
+                AND #{orderQueryVo.policyEndDate}
+                )
+                OR ( io.systartdate BETWEEN #{orderQueryVo.policyStartDate} AND #{orderQueryVo.policyEndDate} )
+                )
+            </if>
+        </where>
+        group by iac.id
+        order by io.createtime desc
+    </select>
+
+    <select id="queryPageSubOrdersCount" resultType="Long">
+        select
+        count(1)
+        from (
+        select
+        io.*
+        from
+        ins_area_company iac
+        left JOIN
+        ins_orders io  on iac.orderno = io.orderno
+        <where>
+            <if test="orderQueryVo.userId != null and orderQueryVo.userId != ''">
+                and io.userid = #{orderQueryVo.userid}
+            </if>
+            <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
+                and io.orderno = #{orderQueryVo.orderNo}
+            </if>
+            <if test="orderQueryVo.quoteNo != null and orderQueryVo.quoteNo != ''">
+                and io.quoteno  = #{orderQueryVo.quoteNo}
+            </if>
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
+                and io.deptid like "${orderQueryVo.deptId}%"
+            </if>
+            <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
+                and iac.orderstatus = #{orderQueryVo.orderStatus}
+            </if>
+            <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
+                and io.frameno = #{orderQueryVo.frameNo}
+            </if>
+            <if test="orderQueryVo.licenseNo != null and orderQueryVo.licenseNo != ''">
+                and io.licenseno = #{orderQueryVo.licenseNo}
+            </if>
+            <if test="orderQueryVo.engineNo != null and orderQueryVo.engineNo != ''">
+                and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{orderQueryVo.engineNo}
+            </if>
+            <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
+                and io.insuredname = #{orderQueryVo.insuredName}
+            </if>
+            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
+                and io.createtime between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            </if>
+            <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+                and iac.company_id = #{orderQueryVo.companyId}
+            </if>
+            <if test="orderQueryVo.riskCode != null and orderQueryVo.riskCode != ''">
+                and iac.product = #{orderQueryVo.riskCode}
+            </if>
+            <if test="orderQueryVo.auditId != null and orderQueryVo.auditId != ''">
+                and IFNULL( io.agreeid, '' ) = #{orderQueryVo.auditId}
+            </if>
+            <if test="orderQueryVo.policyStartDate != null and orderQueryVo.policyEndDate != ''">
+                and  ((
+                io.jqstartdate BETWEEN #{orderQueryVo.policyStartDate}
+                AND #{orderQueryVo.policyEndDate}
+                )
+                OR ( io.systartdate BETWEEN #{orderQueryVo.policyStartDate} AND #{orderQueryVo.policyEndDate} )
+                )
+            </if>
+        </where>
+        group by iac.id
         ) as s
     </select>
 </mapper>

+ 2 - 2
src/main/resources/sql/sql.txt

@@ -1,5 +1,5 @@
 
-添加 线人员关联协议表    hxl  add by 2024-04-16
+添加 线人员关联协议表    hxl  add by 2024-04-16
 /*
  Navicat Premium Data Transfer
 
@@ -37,6 +37,6 @@ CREATE TABLE `sys_user_link_pl_agreement`  (
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `user_id_index`(`user_id`) USING BTREE,
   INDEX `ptl_agreement_id_index`(`ptl_agreement_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '线人员关联协议表' ROW_FORMAT = DYNAMIC;
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '线人员关联协议表' ROW_FORMAT = DYNAMIC;
 
 SET FOREIGN_KEY_CHECKS = 1;