Forráskód Böngészése

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

haoyu 2 éve
szülő
commit
554497ccfd
70 módosított fájl, 2764 hozzáadás és 73 törlés
  1. 53 0
      sql/Online.sql
  2. 4 6
      src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountWithdrawController.java
  3. 17 4
      src/main/java/com/ydtech/modules/admin/controller/SysUserController.java
  4. 117 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkPtlAgreementController.java
  5. 2 2
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountHistoryMapper.java
  6. 4 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountWithdrawMapper.java
  7. 43 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkPtlAgreementMapper.java
  8. 21 2
      src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java
  9. 1 2
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java
  10. 8 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountDto.java
  11. 8 1
      src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountHistoryDto.java
  12. 28 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkPtlAgreementDto.java
  13. 88 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkPtlAgreement.java
  14. 6 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountByUserVo.java
  15. 8 6
      src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountWithdrawVo.java
  16. 31 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkPtlAgreementAddVo.java
  17. 32 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkPtlAgreementVo.java
  18. 25 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserVOExt.java
  19. 59 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkPtlAgreementService.java
  20. 7 0
      src/main/java/com/ydtech/modules/admin/service/SysUserService.java
  21. 3 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java
  22. 7 6
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountHistoryServiceImpl.java
  23. 4 3
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java
  24. 4 17
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountWithdrawServiceImpl.java
  25. 122 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkPtlAgreementServiceImpl.java
  26. 11 2
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  27. 17 0
      src/main/java/com/ydtech/modules/esm/dao/InsOrderSetUserHisMapper.java
  28. 76 0
      src/main/java/com/ydtech/modules/esm/model/po/InsOrderSetUserHis.java
  29. 54 0
      src/main/java/com/ydtech/modules/esm/model/vo/InsOrderSetUserHisVo.java
  30. 14 0
      src/main/java/com/ydtech/modules/esm/service/InsOrderSetUserHisService.java
  31. 37 0
      src/main/java/com/ydtech/modules/esm/service/impl/InsOrderSetUserHisServiceImpl.java
  32. 55 0
      src/main/java/com/ydtech/modules/fee/dto/vo/DeptManagerFee.java
  33. 31 0
      src/main/java/com/ydtech/modules/fee/dto/vo/EntranceFee.java
  34. 27 0
      src/main/java/com/ydtech/modules/fee/dto/vo/ExportFee.java
  35. 46 0
      src/main/java/com/ydtech/modules/fee/dto/vo/RetailStoreFee.java
  36. 60 0
      src/main/java/com/ydtech/modules/fee/service/CostsCalcService.java
  37. 178 0
      src/main/java/com/ydtech/modules/fee/service/impl/CostsCalServiceImpl.java
  38. 1 1
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  39. 8 0
      src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditService.java
  40. 242 0
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  41. 4 1
      src/main/java/com/ydtech/modules/ins/model/InsTaskHistory.java
  42. 9 2
      src/main/java/com/ydtech/modules/inv/model/po/InvSource.java
  43. 9 6
      src/main/java/com/ydtech/modules/inv/service/impl/InvReceivableServiceImpl.java
  44. 21 0
      src/main/java/com/ydtech/modules/order/controller/OrderTaskPoolsController.java
  45. 28 0
      src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewRecordVo.java
  46. 6 0
      src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java
  47. 3 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderTaskPoolsVo.java
  48. 22 0
      src/main/java/com/ydtech/modules/order/service/OrderTaskPoolsService.java
  49. 16 4
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  50. 1 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  51. 96 0
      src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java
  52. 6 0
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java
  53. 17 2
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java
  54. 28 3
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  55. 19 0
      src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java
  56. 19 0
      src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewRecordMapper.java
  57. 324 0
      src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNewRecord.java
  58. 6 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductQueryVo.java
  59. 15 0
      src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewRecordService.java
  60. 9 0
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java
  61. 22 0
      src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewRecordServiceImpl.java
  62. 305 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  63. 2 1
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java
  64. 8 0
      src/main/resources/mapper/modules/admin/SysDeptAccountHistoryMapper.xml
  65. 12 2
      src/main/resources/mapper/modules/admin/SysDeptAccountMapper.xml
  66. 37 0
      src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml
  67. 71 0
      src/main/resources/mapper/modules/admin/SysUserLinkPtlAgreementMapper.xml
  68. 38 0
      src/main/resources/mapper/modules/admin/SysUserMapper.xml
  69. 10 0
      src/main/resources/mapper/modules/esm/InsOrderSetUserHisMapper.xml
  70. 42 0
      src/main/resources/sql/sql.txt

+ 53 - 0
sql/Online.sql

@@ -1 +1,54 @@
+--  2024-04-15    武鸿鹏  结算需求
+ALTER TABLE `ins_ply_income`  ADD COLUMN `voucher_number` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL COMMENT '凭证号' AFTER `create_time`;
+ALTER TABLE `ins_ply_income`  ADD COLUMN `contract_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL COMMENT '合同号' AFTER `voucher_number`;
+ALTER TABLE `ins_ply_income`  ADD COLUMN `contract_file_id` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL COMMENT '合同附件id' AFTER `contract_id`;
+ALTER TABLE `ins_ply_income`  ADD COLUMN `handling_fees_status` varchar(5) NULL COMMENT '手续费结算状态  1 为已结算' AFTER `contract_file_id`;
+ALTER TABLE `ins_ply_income` ADD COLUMN `documentary_fees_status` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '跟单费结算状态  1 为已结算' AFTER `handling_fees_status`;
+ALTER TABLE `ins_ply_income` ADD COLUMN `is_not_car` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '跟单费结算状态  1 为已结算' AFTER `documentary_fees_status`;
+ALTER TABLE `ins_ply_income` ADD COLUMN `no_policyno` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '非车保单号' AFTER `is_not_car`;
+ALTER TABLE `ins_ply_income` ADD COLUMN `sy_policyno` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商业保单号' AFTER `no_policyno`;
 
+
+DROP TABLE IF EXISTS `settlement_documentary_fees`;
+CREATE TABLE `settlement_documentary_fees`  (
+                                                `id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'id',
+                                                `total_orders` varchar(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结算单数',
+                                                `time_frame` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '时间范围',
+                                                `total_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '结算总金额',
+                                                `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+                                                `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
+                                                `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
+                                                `settlement_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '结算金额',
+                                                `unsettled_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '未结算金额',
+                                                PRIMARY KEY (`id`) USING BTREE,
+                                                UNIQUE INDEX `id`(`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '跟单费结算' ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+
+DROP TABLE IF EXISTS `settlement_documentary_log`;
+CREATE TABLE `settlement_documentary_log`  (
+                                               `id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'id',
+                                               `amount_type` varchar(5) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '金额类型 1 手续费结算 2 跟单费结算',
+                                               `amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额',
+                                               `settlement_documentary_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '关联跟单费id',
+                                               `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+                                               `handing_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '手续费结算金额',
+                                               PRIMARY KEY (`id`) USING BTREE,
+                                               UNIQUE INDEX `id`(`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '跟单费结算日志' ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+--     菜单sql   结算菜单   提现菜单
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (645, '非跟单待提现', '201', '/financialManagement/withdrawalManagement/nonDocumentaryPending', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (646, '推广待提现', '201', '/financialManagement/withdrawalManagement/generalizationPending', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (647, '手续费已提现', '201', '/financialManagement/withdrawalManagement/withdrawalProceduresEnd', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (648, '非跟单已提现', '201', '/financialManagement/withdrawalManagement/nonDocumentaryEnd', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (649, '推广已提现', '201', '/financialManagement/withdrawalManagement/generalizationEnd', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+INSERT INTO `sys_menu`(`id`, `name`, `parent_id`, `url`, `perms`, `type`, `icon`, `order_num`, `create_by`, `create_time`, `last_update_by`, `last_update_time`, `del_flag`) VALUES (643, '手续费待提现', '201', '/financialManagement/withdrawalManagement/withdrawalProceduresPending', NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0);
+
+--  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`;

+ 4 - 6
src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountWithdrawController.java

@@ -1,8 +1,6 @@
 package com.ydtech.modules.admin.controller;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ydtech.core.page.HttpResult;
-import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.admin.model.SysDeptAccountWithdraw;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo;
 import com.ydtech.modules.admin.service.SysDeptAccountWithdrawService;
@@ -15,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.text.ParseException;
+
 @Api(tags = "机构账户审核")
 @RequestMapping("/sysDeptAccountWithdraw")
 @RestController
@@ -24,10 +24,8 @@ public class SysDeptAccountWithdrawController extends BaseController {
 
     @PostMapping("/queryStatus")
     @ApiOperation(value = "机构账户审核状态查询")
-    public HttpResult queryStatus(@RequestBody SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo){
-        IPage<SysDeptAccountWithdraw> getAnnualAuditOrderPage = sysDeptAccountWithdrawService.getList(sysDeptAccountWithdrawVo);
-        PageResult pageResult = buildPageResponse(getAnnualAuditOrderPage);
-        return HttpResult.ok(pageResult);
+    public HttpResult queryStatus(@RequestBody SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo) throws ParseException {
+        return HttpResult.ok("",sysDeptAccountWithdrawService.getList(sysDeptAccountWithdrawVo));
     }
 
     @PostMapping("/audit")

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

@@ -32,7 +32,6 @@ import com.ydtech.modules.order.service.InsUploadFilesService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.security.utils.PasswordUtils;
 import com.ydtech.utils.StringUtils;
-import com.ydtech.utils.excel.ExcelEasypoiUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -43,13 +42,10 @@ import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
-import java.io.IOException;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
 
@@ -729,4 +725,21 @@ public class SysUserController extends BaseController {
         return HttpResult.ok("", sysUserService.getQuUserByCompany(quUserNumDto));
     }
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 16:16
+     *  @Description:  获取待客录入可选业务员列表   通过工号、姓名、手机号
+     */
+    @ApiOperation(value = "获取待客录入可选业务员列表")
+    @PostMapping(value = "/getAllUsersByHospitality")
+    public HttpResult getAllUsersByHospitality(@RequestBody SysUserVOExt sysUserVOExt) {
+        try{
+            List<SysUserBaseVO> userList = sysUserService.getAllUsersByHospitality(sysUserVOExt);
+            return HttpResult.ok(userList);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
 }

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

@@ -0,0 +1,117 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = "前线人员关联协议")
+@RequestMapping("/sysUserLinkPtlAgreement")
+@RestController
+public class SysUserLinkPtlAgreementController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkPtlAgreementService sysUserLinkPtlAgreementService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "前线人员关联协议分页")
+    public HttpResult<BasePageResult<SysUserLinkPtlAgreementDto>> queryPage(@RequestBody  SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo) {
+
+        try{
+            BasePageResult<SysUserLinkPtlAgreementDto> result = sysUserLinkPtlAgreementService.queryPage(sysUserLinkPtlAgreementVo);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("前线人员关联协议添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo) {
+        if(sysUserLinkPtlAgreementAddVo.getUserId()==null || "".equals(sysUserLinkPtlAgreementAddVo.getUserId())) {
+            return HttpResult.error("前线人员id不能为空");
+        }
+        if(sysUserLinkPtlAgreementAddVo.getPtlAgreementIds()==null || sysUserLinkPtlAgreementAddVo.getPtlAgreementIds().size()==0) {
+            return HttpResult.error("协议ids不能为空");
+        }
+        try{
+            sysUserLinkPtlAgreementService.addOrUpdate(sysUserLinkPtlAgreementAddVo,getUser());
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("前线人员关联协议删除")
+    @ApiImplicitParam(name = "ids", value = "关联协议ids数组", required = true)
+    public HttpResult<Object> delete(@RequestParam("ids")  List<Long> ids) {
+        if(ids==null || ids.size()==0){
+            return HttpResult.error("前线人员关联ids不能为空");
+        }
+        try{
+            sysUserLinkPtlAgreementService.deleteByIds(ids);
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+
+    @GetMapping("findUserList")
+    @ApiOperation("查询所有的前线人员列表")
+    public HttpResult<Object> findUserList() {
+        try{
+            List<SysUserBaseVO> list= sysUserLinkPtlAgreementService.findUserList();
+            return HttpResult.ok(list);
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:54
+     *  @Description: 查询审核的所有协议
+     */
+    @GetMapping("findPtlAgreementList")
+    @ApiOperation("查询所有审核协议列表")
+    public HttpResult<Object> findPtlAgreementList() {
+        try{
+            List<PtlAgreement> list= sysUserLinkPtlAgreementService.findPtlAgreementList();
+            return HttpResult.ok(list);
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+
+    @GetMapping("/findPtlAgreementListByUserId/{userId}")
+    @ApiOperation(value = "前线人员关联协议列表")
+    @ApiImplicitParam(name = "userId", value = "前线人员id", required = true)
+    public HttpResult<List<SysUserLinkPtlAgreementDto>> findPtlAgreementListByUserId(@PathVariable("userId") String userId) {
+        if(userId==null || "".equals(userId)) {
+            return HttpResult.error("前线人员id不能为空");
+        }
+        try{
+            List<SysUserLinkPtlAgreementDto> result = sysUserLinkPtlAgreementService.findPtlAgreementListByUserId(userId);
+            return HttpResult.ok(result);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
+}

+ 2 - 2
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountHistoryMapper.java

@@ -1,14 +1,14 @@
 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.SysDeptAccountHistory;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.List;
 
 @Mapper
 public interface SysDeptAccountHistoryMapper extends BaseMapper<SysDeptAccountHistory> {
-    List<SysDeptAccountHistoryDto> getDeptHistory(@Param("sysDeptAccountHistoryDto") SysDeptAccountHistoryDto sysDeptAccountHistoryDto);
+    Page<SysDeptAccountHistoryDto> getDeptHistory(Page page,@Param("sysDeptAccountHistoryDto") SysDeptAccountHistoryDto sysDeptAccountHistoryDto);
 }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountWithdrawMapper.java

@@ -1,11 +1,15 @@
 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.SysDeptAccountWithdraw;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 
 
 @Mapper
 public interface SysDeptAccountWithdrawMapper extends BaseMapper<SysDeptAccountWithdraw> {
+    Page<SysDeptAccountWithdraw> selectSysDeptAccountWithdraw(Page page,@Param("sysDeptAccountWithdrawVo") SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo);
 }

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

@@ -0,0 +1,43 @@
+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.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:47
+ *  @Description: 用户关联协议表Dao
+ */
+@Mapper
+public interface SysUserLinkPtlAgreementMapper extends BaseMapper<SysUserLinkPtlAgreement> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:32
+     *  @Description: 分页
+     */
+    Page<SysUserLinkPtlAgreementDto> queryPage(@Param("page") Page<SysUserLinkPtlAgreementDto> page, @Param("vo") SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:08
+     *  @Description: 通过用户id删除旧数据
+     */
+    void deleteByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 9:32
+     *  @Description: 通过前线人员id查询关联的协议列表
+     */
+    List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(@Param("userId") String userId);
+}

+ 21 - 2
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -3,13 +3,15 @@ package com.ydtech.modules.admin.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ydtech.core.page.PageResult;
-import com.ydtech.modules.admin.model.*;
+import com.ydtech.modules.admin.model.QuTeamNum;
+import com.ydtech.modules.admin.model.QuUserNum;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.QuTeamNumDto;
 import com.ydtech.modules.admin.model.dto.QuUserNumDto;
 import com.ydtech.modules.admin.model.dto.SysUserDto;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserVO;
+import com.ydtech.modules.admin.model.vo.SysUserVOExt;
 import com.ydtech.modules.base.model.dto.PageDto;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -168,7 +170,24 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<QuUserNum> getUserNum(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
 
     List<QuUserNum> getUserByCompany(@Param("quUserNumDto") QuUserNumDto quUserNumDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:51
+     *  @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%'")
 
+    List<SysUserBaseVO> findQXUserList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 16:25
+     *  @Description: 通过工号、姓名、手机号查询工号信息
+     */
+    List<SysUserBaseVO> getAllUsersByHospitality(@Param("user") SysUserVOExt sysUserVOExt);
 }
 
 

+ 1 - 2
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java

@@ -9,7 +9,6 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
 
 
 @Data
@@ -42,5 +41,5 @@ public class SysDeptAccountWithdraw implements Serializable {
 
     @TableField(value = "create_time")
     @ApiModelProperty("创建时间")
-    private Date createTime;
+    private String createTime;
 }

+ 8 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountDto.java

@@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 @Data
@@ -19,4 +20,11 @@ public class SysDeptAccountDto {
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDateTime createTime;
 
+    @ApiModelProperty(value = "提现中金额")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal waitAmount;
+
+    @ApiModelProperty(value = "已提现金额")
+    @JsonFormat(pattern = "0.00")
+    private BigDecimal totalAmount;
 }

+ 8 - 1
src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountHistoryDto.java

@@ -3,7 +3,6 @@ package com.ydtech.modules.admin.model.dto;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ydtech.core.page.PageRequest;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -58,4 +57,12 @@ public class SysDeptAccountHistoryDto{
     @ApiModelProperty(value = "备注")
     @TableField(value = "remark")
     private String remark;
+
+    private String createTimeStart;
+
+    private String createTimeEnd;
+
+    private int pageNo;
+
+    private int pageSize;
 }

+ 28 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkPtlAgreementDto.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:57
+ *  @Description: 人员关联协议返回前台对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkPtlAgreementDto extends PageRequest {
+
+    @ApiModelProperty("前线人员关联协议id")
+    private Long id;
+
+    @ApiModelProperty("前线人员用户")
+    private SysUser sysUser;
+
+    @ApiModelProperty("协议信息")
+    private PtlAgreement ptlAgreement;
+}

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

@@ -0,0 +1,88 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:32
+ *  @Description: 前线人员关联协议表
+ */
+@TableName(value = "sys_user_link_pl_agreement")
+@Data
+@NoArgsConstructor
+public class SysUserLinkPtlAgreement implements Serializable {
+    /***
+     * 主键自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /***
+     * 前线用户ID
+     */
+    @TableField(value = "user_id")
+    private  String userId;
+    /***
+     * 协议ID
+     */
+    @TableField(value = "ptl_agreement_id")
+    private Long ptlAgreementId;
+    /***
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+    /***
+     * 创建人名称
+     */
+    @TableField(value = "create_name")
+    private String createName;
+    /***
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time")
+    private Date createTime;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_id")
+    private String updateId;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_name")
+    private String updateName;
+    /***
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+    /***
+     * 协议类型  0 车险  1 非车
+     */
+    @TableField(value = "type")
+    private String type;
+
+    public SysUserLinkPtlAgreement(String userId, Long ptlAgreementId, String createId, String createName, Date createTime, String updateId, String updateName, Date updateTime) {
+        this.userId = userId;
+        this.ptlAgreementId = ptlAgreementId;
+        this.createId = createId;
+        this.createName = createName;
+        this.createTime = createTime;
+        this.updateId = updateId;
+        this.updateName = updateName;
+        this.updateTime = updateTime;
+    }
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountByUserVo.java

@@ -27,4 +27,10 @@ public class SysDeptAccountByUserVo {
 
     @ApiModelProperty("提现人员id")
     private String userId;
+
+    @ApiModelProperty("提现中金额")
+    private BigDecimal waitAmount;
+
+    @ApiModelProperty("已提现金额")
+    private BigDecimal totalAmount;
 }

+ 8 - 6
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountWithdrawVo.java

@@ -2,16 +2,14 @@ package com.ydtech.modules.admin.model.vo;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.ydtech.core.page.PageRequest;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
 
 @Data
-public class SysDeptAccountWithdrawVo extends PageRequest implements Serializable {
+public class SysDeptAccountWithdrawVo implements Serializable {
     @TableId(value = "id")
     @ApiModelProperty(value = "主键id")
     private String id;
@@ -38,13 +36,17 @@ public class SysDeptAccountWithdrawVo extends PageRequest implements Serializabl
 
     @TableField(value = "create_time")
     @ApiModelProperty(value = "创建时间")
-    private Date createTime;
+    private String createTime;
 
     @ApiModelProperty(value = "创建时间开始时间")
-    private Date createTimeStart;
+    private String createTimeStart;
 
 
     @ApiModelProperty(value = "创建时间结束时间")
-    private Date createTimeEnd;
+    private String createTimeEnd;
+
+    private int pageNo;
+
+    private int pageSize;
 
 }

+ 31 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkPtlAgreementAddVo.java

@@ -0,0 +1,31 @@
+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: 2024/4/15 15:08
+ *  @Description: 前线人员添加
+ */
+@Data
+@ApiModel
+public class SysUserLinkPtlAgreementAddVo {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("前线用户ID")
+    private String userId;
+
+    /***
+     * 协议IDs
+     */
+    @ApiModelProperty("协议IDs")
+    private List<Long> ptlAgreementIds = new ArrayList<Long>();
+}

+ 32 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkPtlAgreementVo.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.core.page.BasePageVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:55
+ *  @Description: 前台分页查询对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkPtlAgreementVo extends BasePageVO {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("前线用户ID")
+    private String userId;
+
+    /***
+     * 协议ID
+     */
+    @ApiModelProperty("协议ID")
+    private Long ptlAgreementId;
+
+    @ApiModelProperty("ID")
+    private Long  id;
+}

+ 25 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserVOExt.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/16 16:12
+ *  @Description: 待客录入查询类
+ */
+@Data
+@ApiModel("待客录入查询类")
+public class SysUserVOExt {
+
+    @ApiModelProperty("工号")
+    private String userId;
+
+    @ApiModelProperty("业务员名称")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String mobile;
+}

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

@@ -0,0 +1,59 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+
+import java.util.List;
+
+public interface SysUserLinkPtlAgreementService extends IService<SysUserLinkPtlAgreement> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:11
+     *  @Description: 分页
+     */
+    BasePageResult<SysUserLinkPtlAgreementDto> queryPage(SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:12
+     *  @Description: 修改
+     */
+    void addOrUpdate(SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo, SysUser user);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:23
+     *  @Description: 更具id删除数据
+     */
+    void deleteByIds(List<Long> ids);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:27
+     *  @Description: 查询所有的后线人员表
+     */
+    List<SysUserBaseVO> findUserList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:56
+     *  @Description:  查询所有审核的协议列表
+     */
+    List<PtlAgreement> findPtlAgreementList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 9:27
+     *  @Description: 查询前线人员关联的协议列表
+     */
+    List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(String userId);
+}

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

@@ -133,6 +133,13 @@ public interface SysUserService extends IService<SysUser> {
     IPage<QuUserNum> quUserNum(QuUserNumDto quUserNumDto);
 
     IPage<QuUserNum> getQuUserByCompany(QuUserNumDto quUserNumDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:50
+     *  @Description: 获取待客录入的可选业务员
+     */
+    List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt);
 }
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -96,6 +96,9 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
             if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAuditingStatus())){
                 params.put("auditingStatus",sysAmountAuditingVo.getAuditingStatus());
             }
+            if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserId())){
+                params.put("userId",sysAmountAuditingVo.getUserId());
+            }
             if(StringUtils.isNotEmpty(sysAmountAuditingVo.getId())){
                 params.put("id",sysAmountAuditingVo.getId());
             }

+ 7 - 6
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountHistoryServiceImpl.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.admin.dao.SysDeptAccountHistoryMapper;
 import com.ydtech.modules.admin.model.SysDeptAccountHistory;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
@@ -10,7 +11,6 @@ import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 
 @Service
 public class SysDeptAccountHistoryServiceImpl extends ServiceImpl<SysDeptAccountHistoryMapper, SysDeptAccountHistory> implements SysDeptAccountHistoryService {
@@ -21,10 +21,11 @@ public class SysDeptAccountHistoryServiceImpl extends ServiceImpl<SysDeptAccount
     private SysDeptAccountHistoryMapper sysDeptAccountHistoryMapper;
     @Override
     public IPage<SysDeptAccountHistoryDto> selectList(SysDeptAccountHistoryDto sysDeptAccountHistoryDto) {
-        Page<SysDeptAccountHistoryDto> page = new Page<>();
-        List<SysDeptAccountHistoryDto> deptHistoryList = sysDeptAccountHistoryMapper.getDeptHistory(sysDeptAccountHistoryDto);
-        page.setRecords(deptHistoryList);
-        page.setTotal(deptHistoryList.size());
-        return page;
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(sysDeptAccountHistoryDto.getPageNo());
+        pageRequest.setPageSize(sysDeptAccountHistoryDto.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        Page<SysDeptAccountHistoryDto> deptHistoryList = sysDeptAccountHistoryMapper.getDeptHistory(page,sysDeptAccountHistoryDto);
+        return deptHistoryList;
     }
 }

+ 4 - 3
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.sys.SysDeptAccountStatus;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysDeptAccountMapper;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.SysDeptAccountDto;
@@ -77,10 +78,10 @@ public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountMapper,
         SysDept sysDept = sysDeptService.getOne(queryWrapper);
 
         if (!BaseController.getUser().getId().equals(sysDept.getWithdrawUser())) {
-            return HttpResult.error("您不为该机构账户提现人员");
+            throw new SystemException("您不为该机构账户提现人员");
         }
         if (sysDeptAccount.getAmount().compareTo(deptAccount.getManagementFee()) > 0) {
-            return HttpResult.error("提现金额大于机构账户金额");
+            throw new SystemException("提现金额大于机构账户金额");
         }
         // 减去提现金额
         deptAccount.setManagementFee(deptAccount.getManagementFee().subtract(sysDeptAccount.getAmount()));
@@ -108,7 +109,7 @@ public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountMapper,
         sysDeptAccountWithdraw.setAmount(sysDeptAccount.getAmount());
         sysDeptAccountWithdraw.setStatus(SysDeptAccountStatus.WAIT.getCode()); //待审核
         sysDeptAccountWithdraw.setRemark("");
-        sysDeptAccountWithdraw.setCreateTime(new Date());
+        sysDeptAccountWithdraw.setCreateTime(String.valueOf(new Date()));
         sysDeptAccountWithdrawService.save(sysDeptAccountWithdraw);
 
         return HttpResult.ok("", sysDeptAccount);

+ 4 - 17
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountWithdrawServiceImpl.java

@@ -1,6 +1,6 @@
 package com.ydtech.modules.admin.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,27 +27,14 @@ public class SysDeptAccountWithdrawServiceImpl extends ServiceImpl<SysDeptAccoun
     private SysDeptAccountWithdrawService sysDeptAccountWithdrawService;
     @Autowired
     private SysDeptAccountService sysDeptAccountService;
-
     @Override
     public IPage<SysDeptAccountWithdraw> getList(SysDeptAccountWithdrawVo sysDeptAccountWithdrawVo) {
         PageRequest pageRequest = new PageRequest();
-        pageRequest.setPageNum(sysDeptAccountWithdrawVo.getPageNum());
+        pageRequest.setPageNum(sysDeptAccountWithdrawVo.getPageNo());
         pageRequest.setPageSize(sysDeptAccountWithdrawVo.getPageSize());
         Page page = PageRequest.buildPageRequest(pageRequest);
-        LambdaQueryWrapper<SysDeptAccountWithdraw> queryWrapper = new LambdaQueryWrapper<>();
-        //审核状态
-        if (sysDeptAccountWithdrawVo.getStatus() != null && !"".equals(sysDeptAccountWithdrawVo.getStatus())) {
-            queryWrapper.eq(SysDeptAccountWithdraw::getStatus, sysDeptAccountWithdrawVo.getStatus());
-        }
-        //创建时间区间
-        if (sysDeptAccountWithdrawVo.getCreateTimeStart() != null && !"".equals(sysDeptAccountWithdrawVo.getCreateTimeStart())) {
-            queryWrapper.ge(SysDeptAccountWithdraw::getCreateTime, sysDeptAccountWithdrawVo.getCreateTimeStart());
-        }
-        if (sysDeptAccountWithdrawVo.getCreateTimeEnd() != null && !"".equals(sysDeptAccountWithdrawVo.getCreateTimeEnd())) {
-            queryWrapper.le(SysDeptAccountWithdraw::getCreateTime, sysDeptAccountWithdrawVo.getCreateTimeEnd());
-        }
-        Page pageData = sysDeptAccountWithdrawMapper.selectPage(page, queryWrapper);
-        return pageData;
+        Page<SysDeptAccountWithdraw> iPage = sysDeptAccountWithdrawMapper.selectSysDeptAccountWithdraw(page,sysDeptAccountWithdrawVo);
+        return iPage;
     }
 
     @Override

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

@@ -0,0 +1,122 @@
+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.SysUserLinkPtlAgreementMapper;
+import com.ydtech.modules.admin.dao.SysUserMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import com.ydtech.modules.protocol.service.PtlAgreementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:52
+ *  @Description: 用户关联协议表
+ */
+@Service
+public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkPtlAgreementMapper, SysUserLinkPtlAgreement> implements SysUserLinkPtlAgreementService {
+
+
+    @Autowired
+    private SysUserLinkPtlAgreementMapper sysUserLinkPtlAgreementMapper;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Autowired
+    private PtlAgreementService ptlAgreementService;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:13
+     *  @Description:  分页
+     */
+    @Override
+    public BasePageResult<SysUserLinkPtlAgreementDto> queryPage(SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo) {
+        Page<SysUserLinkPtlAgreementDto> page = new Page<>(sysUserLinkPtlAgreementVo.getPageNum(),
+                sysUserLinkPtlAgreementVo.getPageSize());
+        Page<SysUserLinkPtlAgreementDto> sysUserLinkPtlAgreementDtoBasePageResult = sysUserLinkPtlAgreementMapper.queryPage(page, sysUserLinkPtlAgreementVo);
+        return  new BasePageResult<>(sysUserLinkPtlAgreementVo.getPageNum(), page.getSize(), sysUserLinkPtlAgreementDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkPtlAgreementDtoBasePageResult.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:13
+     *  @Description: 添加修改
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo, SysUser user) {
+        String userId = sysUserLinkPtlAgreementAddVo.getUserId();
+        List<Long> ptlAgreementIds = sysUserLinkPtlAgreementAddVo.getPtlAgreementIds();
+        //删除数据重新添加
+        sysUserLinkPtlAgreementMapper.deleteByUserId(userId);
+        List<SysUserLinkPtlAgreement> addList=new ArrayList<SysUserLinkPtlAgreement>();
+        //重新添加
+        if(ptlAgreementIds!=null && ptlAgreementIds.size()>0){
+            for (Long ptlAgreementId : ptlAgreementIds) {
+                SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,ptlAgreementId,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
+                addList.add(add);
+            }
+        }
+        this.saveBatch(addList);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:53
+     *  @Description:  通过id删除数据
+     */
+    @Override
+    public void deleteByIds(List<Long> ids) {
+        sysUserLinkPtlAgreementMapper.deleteBatchIds(ids);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 17:52
+     *  @Description: 查询所有的前线人员
+     */
+    @Override
+    public List<SysUserBaseVO> findUserList() {
+        return sysUserMapper.findQXUserList();
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 18:05
+     *  @Description: 查询所有审核的协议信息
+     */
+    @Override
+    public List<PtlAgreement> findPtlAgreementList() {
+        //预留查询条件后期添加
+        PtlAgreement param =new PtlAgreement();
+        return ptlAgreementService.findCheckAgreementList(param);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 9:31
+     *  @Description: 通过用户id查询关联的协议列表
+     */
+    @Override
+    public List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(String userId) {
+        return  sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserId(userId);
+    }
+}

+ 11 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.SysConstants;
@@ -981,7 +980,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         return exist;
     }
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:51
+     *  @Description: 获取待客录入的可选业务员
+     *  查询
+     */
+    @Override
+    public List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt) {
+        return super.baseMapper.getAllUsersByHospitality(sysUserVOExt);
+    }
 
 }
 

+ 17 - 0
src/main/java/com/ydtech/modules/esm/dao/InsOrderSetUserHisMapper.java

@@ -0,0 +1,17 @@
+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;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:47
+ *  @Description: 用户关联协议表Dao
+ */
+@Mapper
+public interface InsOrderSetUserHisMapper extends BaseMapper<InsOrderSetUserHis> {
+
+
+}

+ 76 - 0
src/main/java/com/ydtech/modules/esm/model/po/InsOrderSetUserHis.java

@@ -0,0 +1,76 @@
+package com.ydtech.modules.esm.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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:32
+ *  @Description: 订单转移历史记录表
+ */
+@TableName(value = "ins_order_set_user_his")
+@Data
+@NoArgsConstructor
+public class InsOrderSetUserHis implements Serializable {
+    /***
+     * 主键自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /***
+     * 前线用户ID
+     */
+    @TableField(value = "orderno")
+    private  String orderno;
+    /***
+     * 协议ID
+     */
+    @TableField(value = "quoteno")
+    private String quoteno;
+    /***
+     * 创建人
+     */
+    @TableField(value = "old_operator_id")
+    private String oldOperatorId;
+    /***
+     * 创建人名称
+     */
+    @TableField(value = "new_operator_id")
+    private String newOperatorId;
+    /***
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time")
+    private Date createTime;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "create_id")
+    private String createId;
+
+    /***
+     * 状态  1.转发  2. 回退
+     */
+    @TableField(value = "status")
+    private String status;
+
+    public InsOrderSetUserHis(String orderno, String quoteno, String oldOperatorId, String newOperatorId, Date createTime, String createId,String status) {
+        this.orderno = orderno;
+        this.quoteno = quoteno;
+        this.oldOperatorId = oldOperatorId;
+        this.newOperatorId = newOperatorId;
+        this.createTime = createTime;
+        this.createId = createId;
+        this.status = status;
+    }
+}

+ 54 - 0
src/main/java/com/ydtech/modules/esm/model/vo/InsOrderSetUserHisVo.java

@@ -0,0 +1,54 @@
+package com.ydtech.modules.esm.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 15:08
+ *  @Description: 订单操作人设置历史记录表
+ */
+@Data
+@ApiModel
+public class InsOrderSetUserHisVo {
+
+    /***
+     * 主键自增
+     */
+    @ApiModelProperty("主键ID")
+    private Long id;
+    /***
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private  String orderno;
+    /***
+     * 报价单号
+     */
+    @ApiModelProperty(value = "报价单号")
+    private String quoteno;
+    /***
+     * 原操作人
+     */
+    @ApiModelProperty(value = "原操作人")
+    private String oldOperatorId;
+    /***
+     * 现操作人
+     */
+    @ApiModelProperty(value = "现操作人")
+    private String newOperatorId;
+    /***
+     * 操作时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "操作时间")
+    private String createTime;
+    /***
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createId;
+}

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

@@ -0,0 +1,14 @@
+package com.ydtech.modules.esm.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.esm.model.po.InsOrderSetUserHis;
+
+public interface InsOrderSetUserHisService extends IService<InsOrderSetUserHis> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:12
+     *  @Description: 修改
+     */
+    void addOrUpdate(InsOrderSetUserHis insOrderSetUserHis);
+}

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

@@ -0,0 +1,37 @@
+package com.ydtech.modules.esm.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.esm.dao.InsOrderSetUserHisMapper;
+import com.ydtech.modules.esm.model.po.InsOrderSetUserHis;
+import com.ydtech.modules.esm.service.InsOrderSetUserHisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:52
+ *  @Description: 用户关联协议表
+ */
+@Service
+public class InsOrderSetUserHisServiceImpl extends ServiceImpl<InsOrderSetUserHisMapper, InsOrderSetUserHis> implements InsOrderSetUserHisService {
+
+
+    @Autowired
+    private InsOrderSetUserHisMapper insOrderSetUserHisMapper;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 15:13
+     *  @Description: 插入历史记录表中
+     */
+    @Override
+    public void addOrUpdate(InsOrderSetUserHis insOrderSetUserHis) {
+        if(insOrderSetUserHis.getId()!=null){
+            insOrderSetUserHisMapper.updateById(insOrderSetUserHis);
+        }else{
+            insOrderSetUserHisMapper.insert(insOrderSetUserHis);
+        }
+    }
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/DeptManagerFee.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 部门管理费用
+ */
+@Data
+public class DeptManagerFee {
+    @ApiModelProperty("险种")
+    private String insuranceType;
+
+    @ApiModelProperty("总管理比例")
+    private BigDecimal deptManagerRadio;
+
+    @ApiModelProperty("总管理费")
+    private BigDecimal deptManagerFee;
+
+    @ApiModelProperty("一级管理费比例")
+    private BigDecimal deptManagerRadioLevel1;
+
+    @ApiModelProperty("二级管理费比例")
+    private BigDecimal deptManagerRadioLevel2;
+
+    @ApiModelProperty("三级管理费比例")
+    private BigDecimal deptManagerRadioLevel3;
+
+    @ApiModelProperty("四级管理费比例")
+    private BigDecimal deptManagerRadioLevel4;
+
+    @ApiModelProperty("五级管理费比例")
+    private BigDecimal deptManagerRadioLevel5;
+
+    @ApiModelProperty("一级管理费")
+    private BigDecimal deptManagerFeeLevel1;
+
+    @ApiModelProperty("二级管理费")
+    private BigDecimal deptManagerFeeLevel2;
+
+    @ApiModelProperty("三级管理费")
+    private BigDecimal deptManagerFeeLevel3;
+
+    @ApiModelProperty("四级管理费")
+    private BigDecimal deptManagerFeeLevel4;
+
+    @ApiModelProperty("五级管理费")
+    private BigDecimal deptManagerFeeLevel5;
+
+
+
+}

+ 31 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/EntranceFee.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 入口费用
+ */
+@Data
+public class EntranceFee {
+    @ApiModelProperty("险种")
+    private String insuranceType;
+    @ApiModelProperty("保费")
+    private BigDecimal premium;
+    @ApiModelProperty("总比例")
+    private BigDecimal totalProportion;
+    @ApiModelProperty("总费用")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("手续费比例")
+    private BigDecimal superviseCosts;
+    @ApiModelProperty("手续费")
+    private BigDecimal sySuperviseCostsPremiums;
+    @ApiModelProperty("跟单比例")
+    private BigDecimal otherCostsProportion;
+    @ApiModelProperty("跟单费")
+    private BigDecimal otherCostsPremiums;
+    @ApiModelProperty("出口手续费比例")
+    private BigDecimal exportSuperviseCosts;
+}

+ 27 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/ExportFee.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 出口费用
+ */
+@Data
+public class ExportFee {
+    @ApiModelProperty("险种")
+    private String insuranceType;
+    @ApiModelProperty("总比例")
+    private BigDecimal totalProportion;
+    @ApiModelProperty("总费用")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("手续费比例")
+    private BigDecimal superviseCosts;
+    @ApiModelProperty("手续费")
+    private BigDecimal superviseCostsPremiums;
+    @ApiModelProperty("跟单比例")
+    private BigDecimal otherCostsProportion;
+    @ApiModelProperty("跟单费")
+    private BigDecimal otherCostsPremiums;
+}

+ 46 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/RetailStoreFee.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.fee.dto.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 分销费用
+ */
+@Data
+public class RetailStoreFee {
+    @ApiModelProperty("总分销比例")
+    private BigDecimal retailStoreRadio;
+
+    @ApiModelProperty("总分销费用")
+    private BigDecimal retailStoreFee;
+
+    @ApiModelProperty("一级分销比例")
+    private BigDecimal retailStoreRadioLevel1;
+
+    @ApiModelProperty("二级分销比例")
+    private BigDecimal retailStoreRadioLevel2;
+
+    @ApiModelProperty("三级分销比例")
+    private BigDecimal retailStoreRadioLevel3;
+
+    @ApiModelProperty("一级分销费")
+    private BigDecimal retailStoreFeeLevel1;
+
+    @ApiModelProperty("二级分销费")
+    private BigDecimal retailStoreFeeLevel2;
+
+    @ApiModelProperty("三级分销费")
+    private BigDecimal retailStoreFeeLevel3;
+
+    @ApiModelProperty("一级分销用户id")
+    private String retailStoreUserIdLevel1;
+
+    @ApiModelProperty("二级分销用户id")
+    private String retailStoreUserIdLevel2;
+
+    @ApiModelProperty("三级分销用户id")
+    private String retailStoreUserIdLevel3;
+
+}

+ 60 - 0
src/main/java/com/ydtech/modules/fee/service/CostsCalcService.java

@@ -0,0 +1,60 @@
+package com.ydtech.modules.fee.service;
+
+
+import com.ydtech.modules.fee.dto.vo.DeptManagerFee;
+import com.ydtech.modules.fee.dto.vo.EntranceFee;
+import com.ydtech.modules.fee.dto.vo.ExportFee;
+import com.ydtech.modules.fee.dto.vo.RetailStoreFee;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
+import com.ydtech.modules.order.entity.vo.QueryOrderFeeVo;
+
+import java.math.BigDecimal;
+
+/**
+ * 该类中只要包含费用的一些相关接口
+ * 跟单费用的获取、跟单费用的拆分等
+ */
+public interface CostsCalcService {
+
+    /**
+     * 计算交强入口费用
+     * @param insuranceType  险种
+     * @param jqPremium  总交强保费  去税保费
+     * @param feeRadio  手续费比例
+     * @Param documentFeeRadio 跟单比例
+     * @return
+     */
+    EntranceFee getEntranceFee(String insuranceType, BigDecimal jqPremium, BigDecimal feeRadio, BigDecimal documentFeeRadio);
+
+    /**
+     * 获取机构管理费
+     * @param insuranceType  险种
+     * @param premium   保险费用
+     * @param deptRadioLevel1 一级机构管理费比例
+     * @param deptRadioLevel2 二级机构管理费比例
+     * @param deptRadioLevel3 三级机构管理费比例
+     * @param deptRadioLevel4 四级机构管理费比例
+     * @param deptRadioLevel5 五级机构管理费比例
+     * @return
+     */
+    DeptManagerFee getDeptManagerFee(String insuranceType, BigDecimal premium, BigDecimal deptRadioLevel1, BigDecimal deptRadioLevel2, BigDecimal deptRadioLevel3, BigDecimal deptRadioLevel4, BigDecimal deptRadioLevel5);
+
+    /**
+     * 分销费用计算
+     * @param userId   出单用户id
+     * @param sumPremium   总保费
+     * @return
+     */
+    RetailStoreFee getRetailStoreFee(String userId,BigDecimal sumPremium);
+
+    /**
+     * 获取出口费用
+     * @param insuranceType 险种
+     * @param entranceFee 入口费用
+     * @param deptManagerFee 部门管理费用
+     * @param retailStoreFee 分销费用
+     * @param exportProceduresRadio 出口手续费比例
+     * @return
+     */
+    ExportFee getExportFee(String insuranceType,EntranceFee entranceFee,DeptManagerFee deptManagerFee, RetailStoreFee retailStoreFee,BigDecimal exportProceduresRadio);
+}

+ 178 - 0
src/main/java/com/ydtech/modules/fee/service/impl/CostsCalServiceImpl.java

@@ -0,0 +1,178 @@
+package com.ydtech.modules.fee.service.impl;
+
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.service.EsmRetailService;
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.fee.dto.FeeFactorInfoDto;
+import com.ydtech.modules.fee.dto.FeeSchemeReqDto;
+import com.ydtech.modules.fee.dto.FeeSchemeResDto;
+import com.ydtech.modules.fee.dto.vo.DeptManagerFee;
+import com.ydtech.modules.fee.dto.vo.EntranceFee;
+import com.ydtech.modules.fee.dto.vo.ExportFee;
+import com.ydtech.modules.fee.dto.vo.RetailStoreFee;
+import com.ydtech.modules.fee.service.CostsCalcService;
+import com.ydtech.modules.fee.service.FeeRuleSchemeService;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.InsCopyFeeOrder;
+import com.ydtech.modules.order.entity.InsFeeOrder;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.vo.*;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsCopyFeeOrderService;
+import com.ydtech.modules.order.service.InsFeeOrderService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementUndwrtRules;
+import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
+import com.ydtech.modules.protocol.service.*;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 费用接口中相关功能的实现类
+ */
+@Service
+public class CostsCalServiceImpl implements CostsCalcService {
+
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private EsmRetailService esmRetailService;
+
+    @Autowired
+    private EsmUserReferrerService esmUserReferrerService;
+
+    @Override
+    public EntranceFee getEntranceFee(String insuranceType, BigDecimal jqPremium, BigDecimal feeRadio, BigDecimal documentFeeRadio) {
+        EntranceFee entranceFee = new EntranceFee();
+        entranceFee.setInsuranceType(insuranceType);
+        entranceFee.setPremium(jqPremium);
+        entranceFee.setTotalProportion(feeRadio.add(documentFeeRadio));
+        entranceFee.setTotalAmount(jqPremium.multiply(feeRadio.add(documentFeeRadio).divide(new BigDecimal(100),2)).setScale(2, BigDecimal.ROUND_DOWN));
+        entranceFee.setSuperviseCosts(feeRadio);
+        entranceFee.setSySuperviseCostsPremiums(jqPremium.multiply(feeRadio.divide(new BigDecimal(100),2)).setScale(2, BigDecimal.ROUND_DOWN));
+        entranceFee.setOtherCostsProportion(documentFeeRadio);
+        entranceFee.setOtherCostsPremiums(jqPremium.multiply(documentFeeRadio.divide(new BigDecimal(100),2)).setScale(2, BigDecimal.ROUND_DOWN));
+        entranceFee.setExportSuperviseCosts(BigDecimal.ZERO);
+        return entranceFee;
+    }
+
+    @Override
+    public DeptManagerFee getDeptManagerFee(String insuranceType, BigDecimal premium, BigDecimal deptRadioLevel1, BigDecimal deptRadioLevel2, BigDecimal deptRadioLevel3, BigDecimal deptRadioLevel4, BigDecimal deptRadioLevel5) {
+        DeptManagerFee deptManagerFee = new DeptManagerFee();
+        deptManagerFee.setInsuranceType(insuranceType);
+        deptManagerFee.setDeptManagerRadioLevel1(deptRadioLevel1);
+        deptManagerFee.setDeptManagerRadioLevel2(deptRadioLevel2);
+        deptManagerFee.setDeptManagerRadioLevel3(deptRadioLevel3);
+        deptManagerFee.setDeptManagerRadioLevel4(deptRadioLevel4);
+        deptManagerFee.setDeptManagerRadioLevel5(deptRadioLevel5);
+        deptManagerFee.setDeptManagerRadio(deptRadioLevel1.add(deptRadioLevel2).add(deptRadioLevel3).add(deptRadioLevel4).add(deptRadioLevel5));
+
+        deptManagerFee.setDeptManagerFeeLevel1(premium.multiply(deptRadioLevel1.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptManagerFeeLevel2(premium.multiply(deptRadioLevel2.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptManagerFeeLevel3(premium.multiply(deptRadioLevel3.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptManagerFeeLevel4(premium.multiply(deptRadioLevel4.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptManagerFeeLevel5(premium.multiply(deptRadioLevel5.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptManagerFee(premium.multiply(deptManagerFee.getDeptManagerRadio().divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN));
+        return deptManagerFee;
+    }
+
+    @Override
+    public RetailStoreFee getRetailStoreFee(String userId,BigDecimal sumPremium) {
+
+        RetailStoreFee retailStoreFee = new RetailStoreFee();
+        //计算分销费用
+        SysUser sysUser = sysUserService.findByUserId(userId);
+
+        //获取分销比例
+        List<EsmRetail> esmRetailList = esmRetailService.selectList(" where t.deptid=? and t.status = '1' ",
+                new Object[]{sysUser.getDeptId()});
+
+
+        if (esmRetailList != null && !esmRetailList.isEmpty()) {
+            EsmRetail esmRetail = esmRetailList.get(0);
+            //用户分销人员id
+            List<EsmUserReferrer> parents = esmUserReferrerService.findParents(sysUser.getId());
+            if (esmRetail != null) {
+//                BigDecimal sumPremium = insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium());
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
+                    retailStoreFee.setRetailStoreRadioLevel1(new BigDecimal(esmRetail.getDisrate1()));
+                    retailStoreFee.setRetailStoreFeeLevel1(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
+                    if (parents != null && parents.size() > 2) {
+                        retailStoreFee.setRetailStoreUserIdLevel3(parents.get(2).getId());
+                    }
+                }
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
+                    retailStoreFee.setRetailStoreRadioLevel2(new BigDecimal(esmRetail.getDisrate2()));
+                    retailStoreFee.setRetailStoreFeeLevel2(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
+                    if (parents != null && parents.size() > 1) {
+                        retailStoreFee.setRetailStoreUserIdLevel2(parents.get(1).getId());
+                    }
+                }
+                if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
+                    retailStoreFee.setRetailStoreRadioLevel1(new BigDecimal(esmRetail.getDisrate1()));
+                    retailStoreFee.setRetailStoreFeeLevel1(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
+                    if (parents != null && parents.size() > 0) {
+                        retailStoreFee.setRetailStoreUserIdLevel1(parents.get(0).getId());
+                    }
+                }
+            }
+        }else{
+            retailStoreFee.setRetailStoreFee(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreRadio(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreRadioLevel1(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreRadioLevel2(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreRadioLevel3(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreFeeLevel1(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreFeeLevel2(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreFeeLevel3(BigDecimal.ZERO);
+            retailStoreFee.setRetailStoreUserIdLevel1("");
+            retailStoreFee.setRetailStoreUserIdLevel2("");
+            retailStoreFee.setRetailStoreUserIdLevel3("");
+        }
+        return retailStoreFee;
+    }
+
+    @Override
+    public ExportFee getExportFee(String insuranceType,EntranceFee entranceFee,DeptManagerFee deptManagerFee, RetailStoreFee retailStoreFee,BigDecimal exportProceduresRadio) {
+        ExportFee exportFee = new ExportFee();
+        //计算出口费用
+        //出口比例
+        BigDecimal jqExportRadio = entranceFee.getTotalProportion().subtract(deptManagerFee.getDeptManagerRadio()).subtract(retailStoreFee.getRetailStoreRadio());
+        //出口费用
+        exportFee.setSuperviseCosts(exportProceduresRadio);
+        exportFee.setSuperviseCostsPremiums(entranceFee.getPremium().multiply(exportProceduresRadio));
+        //跟单比例
+        exportFee.setOtherCostsProportion(entranceFee.getTotalProportion().subtract(exportProceduresRadio));
+        //跟单费用
+        exportFee.setOtherCostsPremiums(entranceFee.getPremium().multiply(exportFee.getOtherCostsProportion()));
+        //总比例
+        exportFee.setTotalProportion(exportFee.getSuperviseCosts().add(exportFee.getOtherCostsProportion()));
+        //总费用
+        exportFee.setTotalAmount(exportFee.getSuperviseCostsPremiums().add(exportFee.getOtherCostsPremiums()));
+        return exportFee;
+    }
+}

+ 1 - 1
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -600,7 +600,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             //如果是多选 对value进行转换
             if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
                 PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
-                        x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                        x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
                 ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
             }
             //如果是单选 并且是 性别的话 转换为code

+ 8 - 0
src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditService.java

@@ -15,4 +15,12 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
 
      void feeAudit(String orderNo,String insOrderNo) throws Exception;
 
+     /**
+      * 自动审核
+      * @param orderNo
+      * @param insOrderNo
+      * @return
+      */
+     boolean autoFeeAudit(String orderNo,String insOrderNo) throws Exception;
+
 }

+ 242 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -338,6 +338,248 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         }
     }
 
+    @Override
+    public boolean autoFeeAudit(String orderNo, String insOrderNo) throws Exception {
+        //保存审核表
+        InsFeeAudit insFeeAudit=new InsFeeAudit();
+        insFeeAudit.setOrderno(orderNo);
+        insFeeAudit.setInsOrderNo(insOrderNo);
+        insFeeAudit.setAuditstatus("1");
+        insFeeAudit.setAudittime(LocalDateTime.now());
+        insFeeAudit.setAudituser("自动审核");
+        this.save(insFeeAudit);
+
+
+        InsOrders order=insOrdersMapper.selectById(orderNo);
+        InsFeeOrderNew insFeeOrder=insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insFeeAudit.getInsOrderNo());
+        InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
+
+        //获取该订单的费用
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
+
+
+        //获取操作人员的机构来源
+        String deptId=order.getDeptid();
+
+        List<SysDept> teamList = sysDeptService.findTeamList(deptId);
+        teamList.forEach(sysDept -> {
+
+            if(StringUtils.isNotEmpty(sysDept.getComlevel()) &&  sysDept.getComlevel().equals("1")){
+                BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
+            }
+        });
+
+
+        //bigdecimal为null时设置为0
+//        handleBigdecimal(insFeeOrder);
+        //生成保司费用(应收费用)
+        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
+        //生成机构费用
+        gene_deptfee( order, insFeeOrderNew,insAreaCompany);
+        //生成分销费用
+//        saveRetail(order,insFeeOrderNew,insAreaCompany);
+        //个代费用生成
+//        saveInsCompanyFee(order,insFeeOrderNew,insAreaCompany);
+
+
+//      生成  用户账户表  数据
+        if(StringUtils.isNotEmpty(order.getUserid())){
+//            用戶賬戶表
+            SysUserAccount sysUserAccount = new SysUserAccount();
+
+            sysUserAccount.setUserId(order.getUserid());
+            if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
+//                手续非佣金  =  交强监管费用 + 商业监管费用 + 非车监管费用
+//                非跟单费用  = 交强非跟单费用 + 商业非跟单费用 + 非车非跟单费用
+                //手续费入口费用
+//                BigDecimal jqPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getJqSuperviseCostsPremiums());//交强监管费
+//                BigDecimal syPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getSySuperviseCostsPremiums());//商业监管费
+//                BigDecimal noPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getNoSuperviseCostsPremiums());//非车监管费用
+//                BigDecimal totalPremiumAmount = jqPremiumAmount.add(syPremiumAmount).add(noPremiumAmount);    // 手续非佣金
+//                //其他费用入口费用
+//                BigDecimal jqOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
+//                BigDecimal syOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
+//                BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
+//                BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion);  //非跟单费用
+
+                //总机构 交强管理比例
+                BigDecimal sumJqDeptProportion = insFeeOrderNew.getJqDeptProportionLevel1()
+                        .add(insFeeOrderNew.getJqDeptProportionLevel2())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel3())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel4())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel5());
+
+                //总机构 商业管理比例
+                BigDecimal sumSyDeptProportion = insFeeOrderNew.getSyDeptProportionLevel1()
+                        .add(insFeeOrderNew.getSyDeptProportionLevel2())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel3())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel4())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel5());
+
+                //总机构 非车管理比例
+                BigDecimal sumNoDeptProportion = insFeeOrderNew.getNoDeptProportionLevel1()
+                        .add(insFeeOrderNew.getNoDeptProportionLevel2())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel3())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel4())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel5());
+
+                //总分销比例
+                BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
+
+                //交强出口比例
+                BigDecimal jqExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
+                    jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
+                }
+                //商业出口比例
+                BigDecimal syExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
+                    syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
+                }
+                //非车出口比例
+                BigDecimal noExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
+                    noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
+                }
+
+                //交强手续费出口比例
+                BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+                //交强跟单出口费用
+                BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
+                        .multiply(jqExportProceduresProportion
+                                .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+
+                //商业手续费出口比例
+                BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+                //商业跟单出口比例
+                BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
+                        .multiply(syExportProceduresProportion
+                                .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+
+                //非车手续费出口比例
+                BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+                //非车跟单出口比例
+                BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
+                        .multiply(noExportProceduresProportion
+                                .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+
+                //用户出口手续费
+                BigDecimal totalPremiumAmount = new BigDecimal(0);
+                totalPremiumAmount = totalPremiumAmount.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
+
+                //用户出口跟单费
+                BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
+                totalOtherPremiumAmount = totalOtherPremiumAmount.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
+
+
+//              用戶
+                sysUserAccount.setHandlingFee(totalPremiumAmount);
+                sysUserAccount.setDocumentary(totalOtherPremiumAmount);
+//              算佣金
+                this.countUserAmount(insFeeOrderNew,orderNo);
+                sysUserAccount.setDocumentaryStatus("2");  // 收入
+                sysUserAccount.setSuborderId(orderNo);  // 订单Id
+                sysUserAccountService.addOrUpdate(sysUserAccount);
+
+
+                String deptid = insFeeOrderNew.getDeptId();
+                String distributionStatus = insFeeOrderNew.getDistributionStatus();
+                // 定义一个数组来存储各级机构的管理费
+                BigDecimal[] jqDeptPremiumsLevels = {insFeeOrderNew.getJqDeptPremiumsLevel1(), insFeeOrderNew.getJqDeptPremiumsLevel2(),
+                        insFeeOrderNew.getJqDeptPremiumsLevel3(), insFeeOrderNew.getJqDeptPremiumsLevel4(),
+                        insFeeOrderNew.getJqDeptPremiumsLevel5()};
+                BigDecimal[] syDeptPremiumsLevels = {insFeeOrderNew.getSyDeptPremiumsLevel1(), insFeeOrderNew.getSyDeptPremiumsLevel2(),
+                        insFeeOrderNew.getSyDeptPremiumsLevel3(), insFeeOrderNew.getSyDeptPremiumsLevel4(),
+                        insFeeOrderNew.getSyDeptPremiumsLevel5()};
+                BigDecimal[] noDeptPremiumsLevels = {insFeeOrderNew.getNoDeptPremiumsLevel1(), insFeeOrderNew.getNoDeptPremiumsLevel2(),
+                        insFeeOrderNew.getNoDeptPremiumsLevel3(), insFeeOrderNew.getNoDeptPremiumsLevel4(),
+                        insFeeOrderNew.getNoDeptPremiumsLevel5()};
+
+                for (int i = 1; i <= 5; i++) {
+                    // 根据循环次数确定机构ID的长度,第五级为11
+                    String levelDeptId = deptid.substring(0, (i == 5) ? 11 : i * 2);
+                    // 获取对应级别的机构信息
+                    SysDeptAccount levelSysDeptAccount = sysDeptAccountService.getOne(new LambdaQueryWrapper<SysDeptAccount>()
+                            .eq(SysDeptAccount::getDeptId, levelDeptId));
+
+                    // 初始化管理费总额为0
+                    BigDecimal sumManagementFee = BigDecimal.ZERO;
+
+                    // 根据分销等级和分销用户情况计算分销费用
+                    BigDecimal distributionFee = BigDecimal.ZERO;
+                    if (i == 5) {
+                        if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus) && insFeeOrderNew.getTwoLevelUserId() == null) {
+                            distributionFee = insFeeOrderNew.getSecondDetailPremiums();
+                        } else if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus) && insFeeOrderNew.getThreeLevelUserId() == null) {
+                            distributionFee = insFeeOrderNew.getThirdDetailPremiums();
+                        }
+                    }
+
+                    // 根据分销等级计算管理费总额
+                    if (i == 5) {
+                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
+                                .add(syDeptPremiumsLevels[i - 1])
+                                .add(noDeptPremiumsLevels[i - 1])
+                                .add(distributionFee);
+                    } else {
+                        sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
+                                .add(syDeptPremiumsLevels[i - 1])
+                                .add(noDeptPremiumsLevels[i - 1]);
+                    }
+
+                    // 如果机构信息不为空,更新管理费并记录历史
+                    if (levelSysDeptAccount != null) {
+                        levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
+                        sysDeptAccountService.updateById(levelSysDeptAccount);
+                        // 记录历史信息
+                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
+                        sysDeptAccountHistory.setId(IdGenerate.nextId());
+                        sysDeptAccountHistory.setDeptId(levelDeptId);
+                        sysDeptAccountHistory.setAmount(sumManagementFee);
+                        sysDeptAccountHistory.setSurplusAmount(levelSysDeptAccount.getManagementFee());
+                        sysDeptAccountHistory.setDocumentary("2"); //收入
+                        sysDeptAccountHistory.setSuborder(orderNo);
+                        sysDeptAccountHistory.setFromBankCard(null);
+                        sysDeptAccountHistory.setToBankCard(null);
+                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
+                        sysDeptAccountHistory.setCreateTime(new Date());
+                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
+                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
+                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
+                                ",分销费:" + distributionFee);
+                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
+                    } else {
+                        // 如果机构信息为空,新建机构信息并记录历史
+                        SysDeptAccount sysDeptAccount = new SysDeptAccount();
+                        sysDeptAccount.setDeptId(levelDeptId);
+                        sysDeptAccount.setManagementFee(sumManagementFee);
+                        sysDeptAccount.setCreateTime(new Date());
+                        sysDeptAccountService.save(sysDeptAccount);
+                        // 记录历史信息
+                        SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
+                        sysDeptAccountHistory.setId(IdGenerate.nextId());
+                        sysDeptAccountHistory.setDeptId(levelDeptId);
+                        sysDeptAccountHistory.setAmount(sumManagementFee);
+                        sysDeptAccountHistory.setSurplusAmount(sumManagementFee);
+                        sysDeptAccountHistory.setDocumentary("2"); //收入
+                        sysDeptAccountHistory.setSuborder(orderNo);
+                        sysDeptAccountHistory.setFromBankCard(null);
+                        sysDeptAccountHistory.setToBankCard(null);
+                        sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
+                        sysDeptAccountHistory.setCreateTime(new Date());
+                        sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
+                                ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
+                                ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
+                                ",分销费:" + distributionFee);
+                        sysDeptAccountHistoryService.save(sysDeptAccountHistory);
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
     private void countUserAmount(InsFeeOrderNew insFeeOrderNew ,String orderNo) {
         String distributionStatus = insFeeOrderNew.getDistributionStatus();
         if(StringUtils.isNotEmpty(distributionStatus)){

+ 4 - 1
src/main/java/com/ydtech/modules/ins/model/InsTaskHistory.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.ins.model;
 
 import java.io.Serializable;
-import java.util.Date;
 
 
 public class InsTaskHistory implements Serializable {
@@ -16,6 +15,10 @@ public class InsTaskHistory implements Serializable {
     private String operator;
     private String remark;
     private String company;
+    /***
+     * 原操作人id
+     */
+    private String  oldOperatorid;
 
     public String getId() {
         return id;

+ 9 - 2
src/main/java/com/ydtech/modules/inv/model/po/InvSource.java

@@ -1,6 +1,5 @@
 package com.ydtech.modules.inv.model.po;
 
-import cn.hutool.core.date.DateTime;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.HeadFontStyle;
@@ -379,8 +378,16 @@ public class InvSource implements Serializable {
     @ApiModelProperty("导入人Id")
     private String revenueUserId;
 
+    @TableField(value = "update_name")
+    @ApiModelProperty("修改人名字")
+    private String updateName;
+
+    @TableField(value = "update_userid")
+    @ApiModelProperty("修改人Id")
+    private String updateUserId;
+
     @TableField(value = "inv_source_type")
-    @ApiModelProperty("应收类型(平台,私有)")
+    @ApiModelProperty("应收类型(含税,不含税)")
     private String invSourceType;
 
     @TableField(exist = false)

+ 9 - 6
src/main/java/com/ydtech/modules/inv/service/impl/InvReceivableServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.inv.dao.InvReceivableMapper;
 import com.ydtech.modules.inv.dao.InvSettlementSourceMapper;
@@ -457,6 +458,8 @@ public class InvReceivableServiceImpl implements InvReceivableService {
                 "已结算".equals(invSource.getClearingState()) ? "1" : invSource.getClearingState());
         invSource.setInsuranceClearingState("未结算".equals(invSource.getInsuranceClearingState()) ? "0" :
                 "已结算".equals(invSource.getInsuranceClearingState()) ? "1" : invSource.getInsuranceClearingState());
+        invSource.setUpdateUserId(BaseController.getUser().getId());
+        invSource.setUpdateName(BaseController.getUser().getName());
         return invSourceMapper.updateById(invSource) > 0;
     }
 
@@ -627,9 +630,9 @@ public class InvReceivableServiceImpl implements InvReceivableService {
         invSource.builder();
         BigDecimal tax = new BigDecimal(1.06);
         /**
-         * jqPremiumTax  交强险保费
-         * syPremiumTax  商业险保费
-         * nonCarPremiumTax 非车保费
+         * jqPremiumTax  交强险保费(含税)
+         * syPremiumTax  商业险保费(含税)
+         * nonCarPremiumTax 非车保费(含税)
          * jqReceivableRatio 交强应收比例
          * syReceivableRatio 商业应收比列
          * nonCarReceivableRatio 非车应收比列
@@ -668,13 +671,13 @@ public class InvReceivableServiceImpl implements InvReceivableService {
                 .add(invSource.getSyPremium().multiply(invSource.getSyPremiumRatio())
                         .add(invSource.getNonCarPremium().multiply(invSource.getNonCarPremiumRatio()))));
 
-        //非跟单金额  nonCopying
+        //非跟单金额  nonCopying 不含税保费 * 非跟单比例
         invSource.setNonCopying(invSource.getJqPremium().multiply(invSource.getJqNonCopyingRatio())
                 .add(invSource.getSyPremium().multiply(invSource.getSyNonCopyingRatio())
                         .add(invSource.getNonCarPremium().multiply(invSource.getNonCarNonCopyingRatio()))));
 
 
-        //选择类型为平台类型时 应收金额 = 含税保费 * 应收比例
+        //选择类型为含税类型时 应收金额 = 含税保费 * 应收比例
         if (invSource.getInvSourceType().equals("platform")) {
             //处理应收金额
             invSource.setReceivable(invSource.getJqPremiumTax().multiply(invSource.getJqReceivableRatio())
@@ -685,7 +688,7 @@ public class InvReceivableServiceImpl implements InvReceivableService {
                     invSource.getReceivable().add(invSource.getSubsidyAmount()));
         }
 
-        //选择类型为私有类型时 应收金额 = ( 不含税保费 * 手续费 )+ (不含税保费 * 非跟单比例)
+        //选择类型为不含税类型时 应收金额 = (不含税保费 * 手续费)+ (不含税保费 * 非跟单比例)
         if (invSource.getInvSourceType().equals("privately")) {
             //应收金额
             invSource.setReceivable(invSource.getPremium().add(invSource.getNonCopying()));

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

@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
+import static com.ydtech.modules.base.controller.BaseController.getUser;
+
 
 @Api(tags = "任务池")
 @RestController
@@ -64,4 +66,23 @@ public class OrderTaskPoolsController {
     public HttpResult queryOrderOperatorId(@RequestSingleParam(value = "orderNo") String orderNo) {
         return orderTaskPoolsService.checkCurrentUserEdit(orderNo);
     }
+
+
+    @PostMapping(value = "/querySubOrders")
+    @ApiOperation(value = "子订单任务查询")
+    public HttpResult querySubOrders(@RequestBody OrderTaskPoolsVo orderTaskPoolsVo) {
+        return orderTaskPoolsService.querySubOrders(orderTaskPoolsVo);
+    }
+
+    @PostMapping(value = "/forwardingSubOrders")
+    @ApiOperation(value = "子订单任务转发")
+    public HttpResult forwardingSubOrders(@RequestBody TaskForwardingVo taskForwardingVo) {
+        return orderTaskPoolsService.forwardingSubOrders(taskForwardingVo,getUser());
+    }
+
+    @PostMapping(value = "/recover")
+    @ApiOperation(value = "子订单任务收回")
+    public HttpResult recover(@RequestBody TaskForwardingVo taskForwardingVo) {
+        return orderTaskPoolsService.recover(taskForwardingVo);
+    }
 }

+ 28 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewRecordVo.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.order.entity.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+@ApiModel(description = "费用明细调整费用")
+@Data
+public class FeeOrderNewRecordVo implements Serializable {
+
+    @ApiModelProperty("费用id")
+    private String costsId;
+
+    @ApiModelProperty("feeId")
+    private String feeId;
+
+    @ApiModelProperty("修改前的费用")
+    private FeeOrderNewVo feeOrderNewVoOld;
+
+    @ApiModelProperty("修改后的费用")
+    private FeeOrderNewVo feeOrderNewVoNew;
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java

@@ -15,6 +15,11 @@ import java.util.List;
 @Data
 public class FeeOrderNewVo implements Serializable {
 
+    @ApiModelProperty("费用id")
+    private String costsId;
+
+    @ApiModelProperty("feeId")
+    private String feeId;
 
     @ApiModelProperty("入口费用")
     private List<EntranceFee> entranceFee;
@@ -49,6 +54,7 @@ public class FeeOrderNewVo implements Serializable {
         private BigDecimal otherCostsPremiums;
         @ApiModelProperty("出口手续费比例")
         private BigDecimal exportSuperviseCosts;
+
     }
 
     /**

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

@@ -70,4 +70,7 @@ public class OrderTaskPoolsVo {
 
     @ApiModelProperty(value = "每页数量")
     private int pageSize = 10;
+
+    @ApiModelProperty(value = "类型 1.任务池总 2.任务池分 ")
+    private String type;
 }

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

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.order.entity.vo.OrderTaskPoolsVo;
 import com.ydtech.modules.order.entity.vo.TaskForwardingVo;
 
@@ -24,4 +25,25 @@ public interface OrderTaskPoolsService {
      * @return
      */
     public HttpResult checkCurrentUserEdit(String orderNo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:36
+     *  @Description: 子订单查询
+     */
+    HttpResult querySubOrders(OrderTaskPoolsVo orderTaskPoolsVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:42
+     *  @Description: 子订单的收回
+     */
+    HttpResult recover(TaskForwardingVo taskForwardingVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:43
+     *  @Description: 子订单的转发
+     */
+    HttpResult forwardingSubOrders(TaskForwardingVo taskForwardingVo,SysUser sysUser);
 }

+ 16 - 4
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -11,6 +11,8 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.vo.PersonAreaVo;
 import com.ydtech.modules.admin.service.SysAreaService;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.fnc.service.InsPlyIncomeService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
@@ -34,6 +36,7 @@ import com.ydtech.modules.order.entity.vo.dajia.AccidentalInsuranceQueryVo;
 import com.ydtech.modules.order.entity.vo.dajia.InsAccidentalDrivingDajia;
 import com.ydtech.modules.order.entity.vo.dajia.InsAccidentalDrivingSubDajia;
 import com.ydtech.modules.order.service.*;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
@@ -48,12 +51,10 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent.*;
@@ -98,6 +99,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     @Autowired
     private InsImagesUploadCacheComponents insImagesUploadCacheComponents;
 
+    @Autowired
+    private InsFeeAuditService insFeeAuditService;
+
     @Autowired
     private InsPlyIncomeService insPlyIncomeService;
 
@@ -720,6 +724,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         return !collect.isEmpty();
     }
 
+
     /**
      * 查询订单状态
      *
@@ -798,6 +803,13 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
 //                    生成结算
+                    //判断协议是否为人工还是自动审核
+                    PtlAgreement ptlAgreement = ptlAgreementService.getById(insAreaCompany.getAgreementId());
+                    if(ptlAgreement.getAuditType() == 2)
+                    {
+                        //如果为自动审核 则自动进行审核
+                        insFeeAuditService.autoFeeAudit( insAreaCompany.getOrderno(),insAreaCompany.getId());
+                    }
                     insPlyIncomeService.saveBalance(companyId,insAreaCompany.getOrderno());
                 }
             }

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

@@ -657,6 +657,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 //            List<FeeOrderNewVo> feeOrderNewVoList = feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew);
 //            orderAndAreaCompany.setFeeOrderNewVoList(feeOrderNewVoList);
             FeeOrderNewVo  feeOrderNewVo =   feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew,ptlAgreementProductCostsNew);
+            feeOrderNewVo.setFeeId(insFeeOrderNew.getId());
             orderAndAreaCompany.setFeeOrderNewVo(feeOrderNewVo);
             List<DistributionLevelVo> distributionLevelVoList = feeRuleSchemeService.converDistrbutionData(insFeeOrderNew);
             orderAndAreaCompany.setDistributionLevelVoList(distributionLevelVoList);

+ 96 - 0
src/main/java/com/ydtech/modules/order/service/impl/OrderTaskPoolsServiceImpl.java

@@ -7,6 +7,8 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.model.po.InsOrderSetUserHis;
+import com.ydtech.modules.esm.service.InsOrderSetUserHisService;
 import com.ydtech.modules.ins.model.InsTaskHistory;
 import com.ydtech.modules.ins.service.InsTaskHistoryService;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -40,11 +42,14 @@ public class OrderTaskPoolsServiceImpl extends BaseController implements OrderTa
     private InsTaskHistoryService insTaskHistoryService;
     @Autowired
     private InsAreaCompanyService insAreaCompanyService;
+    @Autowired
+    private InsOrderSetUserHisService  insOrderSetUserHisService;
 
     @Override
     public HttpResult query(OrderTaskPoolsVo orderTaskPoolsVo) {
         //后线可以查所有,非后线只能查自己代客的
         String userId = getUserId();
+        userId="9914D17002";
         //查询当前工号是否为后线人员
         boolean isBachUser = false;
         List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId,"22");
@@ -127,4 +132,95 @@ public class OrderTaskPoolsServiceImpl extends BaseController implements OrderTa
             }
         }
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 15:36
+     *  @Description: 查询子订单信息   改为连表查询
+     */
+    @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);
+    }
+    /**
+     *  @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());
+        //插入轨迹表
+        InsOrderSetUserHis  his=new InsOrderSetUserHis(insOrders.getOrderno(), insOrders.getQuoteno(), insOrders.getOperatorid(), taskForwardingVo.getAuditId(), new Date(), sysUser.getId(),"1");
+        insOrderSetUserHisService.addOrUpdate(his);
+        insOrders.setOperatorid(sysUserNew.getId());
+        insOrdersService.updateById(insOrders);
+        return HttpResult.ok("保存成功");
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/16 18:51
+     *  @Description: 收回
+     */
+    @Override
+    @Transactional
+    public HttpResult recover(TaskForwardingVo taskForwardingVo) {
+        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);
+        return HttpResult.ok("保存成功");
+    }
 }

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

@@ -196,6 +196,12 @@ public class PtlAgreement implements Serializable {
     @TableField(value = "update_time")
     private LocalDateTime updateTime;
 
+    /**
+     * 审核类型
+     */
+    @TableField(value = "audit_type")
+    private Integer auditType;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

+ 17 - 2
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java

@@ -7,9 +7,7 @@ import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementSaveDto;
-import com.ydtech.modules.protocol.entity.dto.PtlAgreementUndwrtRulesSaveDto;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
-import com.ydtech.modules.protocol.entity.po.PtlAgreementNonCarProductCosts;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementUndwrtRules;
 import com.ydtech.modules.protocol.entity.vo.*;
@@ -192,4 +190,21 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
      * @return
      */
     HttpResult<List<PtlAgreement>> findRelationAgreement(String associationCompaniesId);
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 18:04
+     *  @Description: 查询所有审核的协议
+     */
+    List<PtlAgreement> findCheckAgreementList(PtlAgreement ptlAgreement);
+
+    /**
+     * 获取当前费用的保险公司所有协议
+     * @param agreementId
+     * @return
+     */
+    List<PtlAgreement> getCurrentAgreementList(String agreementId);
+
 }

+ 28 - 3
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -2,7 +2,6 @@ package com.ydtech.modules.protocol.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,7 +9,6 @@ import com.ydtech.config.DictEnumConfig;
 import com.ydtech.constants.enums.dict.DictionaryData;
 import com.ydtech.constants.enums.dict.DictionaryManagement;
 import com.ydtech.constants.enums.dict.agreement.AgreementType;
-import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
@@ -20,16 +18,22 @@ import com.ydtech.modules.order.service.InsCrawlerOrderService;
 import com.ydtech.modules.protocol.constants.HistoryStatusConstants;
 import com.ydtech.modules.protocol.dao.PtlAgreementMapper;
 import com.ydtech.modules.protocol.entity.constants.PtlApiType;
-import com.ydtech.modules.protocol.entity.dto.*;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementDto;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementSaveDto;
 import com.ydtech.modules.protocol.entity.dto.history.PtlAgreementUndwrtRulesHistory;
 import com.ydtech.modules.protocol.entity.po.*;
 import com.ydtech.modules.protocol.entity.vo.*;
 import com.ydtech.modules.protocol.service.*;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
+import com.ydtech.modules.protocols.service.PtlAgreementProductCostsNewService;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -78,6 +82,7 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
 
     private final PtlAgreementAttributionHistoryService ptlAgreementAttributionHistoryService;
 
+
     public PtlAgreementServiceImpl(PtlAgreementProductCostsService ptlAgreementProductCostsService,
                                    PtlAgreementAttributionService ptlAgreementAttributionService, PtlAgreementDeptService ptlAgreementDeptService,
                                    EsmInsCompanyService esmInsCompanyService, PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService,
@@ -591,4 +596,24 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         }
         return HttpResult.ok(resultList);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/15 18:02
+     *  @Description: 查询审核的协议
+     */
+    public List<PtlAgreement> findCheckAgreementList(PtlAgreement ptlAgreement){
+        LambdaQueryWrapper<PtlAgreement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlAgreement::getValidStatus,"1");
+        List<PtlAgreement> list = proxyObject.list(wrapper);
+        return list;
+    }
+
+    public List<PtlAgreement> getCurrentAgreementList(String agreementId){
+        PtlAgreement ptlAgreement = this.getById(agreementId);
+        String insuranceCompanyId = ptlAgreement.getInsuranceCompanyId();
+        List<PtlAgreement> ptlAgreements = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreement>().eq(PtlAgreement::getInsuranceCompanyId, insuranceCompanyId));
+        return ptlAgreements;
+    }
+
 }

+ 19 - 0
src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java

@@ -7,10 +7,13 @@ import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementPageVo;
 import com.ydtech.modules.protocol.entity.vo.PtlAgreementProductQueryVo;
+import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesDict;
@@ -45,6 +48,10 @@ public class PtlNewAgreementController extends BaseController {
     @Autowired
     private PtlAgreementUndwrtRulesNewService ptlAgreementUndwrtRulesNewService;
 
+    @Autowired
+    private PtlAgreementService ptlAgreementService;
+
+
     @ApiOperation(value = "协议承保规则属性列表")
     @GetMapping("/attr/list")
     public HttpResult<List<PtlAgreementUndwrtRulesAttr>> list() {
@@ -52,6 +59,12 @@ public class PtlNewAgreementController extends BaseController {
         return HttpResult.ok(undwrtRulesAttrList);
     }
 
+    @ApiOperation(value = "查询保险公司所有协议列表")
+    @GetMapping("/companyAgreementList")
+    public HttpResult<List<PtlAgreement>> companyAgreementList(String agreementId){
+        return HttpResult.ok(ptlAgreementService.getCurrentAgreementList(agreementId));
+    }
+
     @PostMapping("/getProduct")
     @ApiOperation("查询协议产品费用列表")
     public PageResult getProduct(@RequestBody AgreementProductQueryVo agreementProductQueryVo) {
@@ -94,6 +107,12 @@ public class PtlNewAgreementController extends BaseController {
         return ptlAgreementProductCostsNewService.costsCopy(orgCostsId,newAgreementId) ? HttpResult.ok("复制协议费用成功") : HttpResult.error("复制协议费用失败");
     }
 
+    @ApiOperation(value = "调整费用")
+    @PostMapping("/costs/adjust")
+    public HttpResult costsAdjust(@RequestBody FeeOrderNewRecordVo feeOrderNewRecordVo){
+        return ptlAgreementProductCostsNewService.costsAdjust(feeOrderNewRecordVo) ? HttpResult.ok("调整费用成功") : HttpResult.error("调整费用失败");
+    }
+
     @ApiOperation(value = "费用审核")
     @PostMapping("/costs/audit")
     public HttpResult costsAudit(@RequestBody CostsAuditVo costsAuditVo){

+ 19 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewRecordMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewRecord;
+
+
+/**
+ * @author tz
+ * @description 费用结算的数据库操作Mapper
+ * @createDate 2024-2-22 15:44:29
+ */
+public interface InsFeeOrderNewRecordMapper extends BaseMapper<InsFeeOrderNewRecord> {
+
+}
+
+
+
+

+ 324 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNewRecord.java

@@ -0,0 +1,324 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+*@author: tz
+*@description: 新的费用订单表历史记录
+*@create: 2024-2-29 08:36:53
+*/
+
+@TableName(value = "ins_fee_order_new_record", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class InsFeeOrderNewRecord {
+    @TableId(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "子订单id")
+    @TableField(value = "ins_order_no")
+    private String insOrderNo;
+
+    @ApiModelProperty(value = "费用id")
+    @TableField(value = "costs_id")
+    private String costsId;
+
+    @ApiModelProperty(value = "feeid")
+    @TableField(value = "fee_order_id")
+    private String feeOrderId;
+
+    @ApiModelProperty(value = "交强险费用比例历史")
+    @TableField(value = "jq_costs_proportion_old")
+    private BigDecimal jqCostsProportionOld;
+
+    @ApiModelProperty(value = "交强险费用比例")
+    @TableField(value = "jq_costs_proportion")
+    private BigDecimal jqCostsProportion;
+
+    @ApiModelProperty(value = "商业险费用比例历史")
+    @TableField(value = "sy_costs_proportion_old")
+    private BigDecimal syCostsProportionOld;
+
+    @ApiModelProperty(value = "商业险费用比例")
+    @TableField(value = "sy_costs_proportion")
+    private BigDecimal syCostsProportion;
+
+    @ApiModelProperty(value = "非车险费用比例历史")
+    @TableField(value = "no_costs_proportion_old")
+    private BigDecimal noCostsProportionOld;
+
+    @ApiModelProperty(value = "非车险费用比例")
+    @TableField(value = "no_costs_proportion")
+    private BigDecimal noCostsProportion;
+
+    @ApiModelProperty(value = "交强监管费比例历史")
+    @TableField(value = "jq_supervise_costs_proportion_old")
+    private BigDecimal jqSuperviseCostsProportionOld;
+
+    @ApiModelProperty(value = "交强监管费比例")
+    @TableField(value = "jq_supervise_costs_proportion")
+    private BigDecimal jqSuperviseCostsProportion;
+
+    @ApiModelProperty(value = "商业监管费比例")
+    @TableField(value = "sy_supervise_costs_proportion_old")
+    private BigDecimal sySuperviseCostsProportionOld;
+
+    @ApiModelProperty(value = "商业监管费比例")
+    @TableField(value = "sy_supervise_costs_proportion")
+    private BigDecimal sySuperviseCostsProportion;
+
+    @ApiModelProperty(value = "非车监管费比例")
+    @TableField(value = "no_supervise_costs_proportion_old")
+    private BigDecimal noSuperviseCostsProportionOld;
+
+    @ApiModelProperty(value = "非车监管费比例")
+    @TableField(value = "no_supervise_costs_proportion")
+    private BigDecimal noSuperviseCostsProportion;
+
+    @ApiModelProperty(value = "交强其他费用比例")
+    @TableField(value = "jq_other_costs_proportion_old")
+    private BigDecimal jqOtherCostsProportionOld;
+
+
+    @ApiModelProperty(value = "交强其他费用比例")
+    @TableField(value = "jq_other_costs_proportion")
+    private BigDecimal jqOtherCostsProportion;
+
+    @ApiModelProperty(value = "商业其他费用比例")
+    @TableField(value = "sy_other_costs_proportion_old")
+    private BigDecimal syOtherCostsProportionOld;
+
+    @ApiModelProperty(value = "商业其他费用比例")
+    @TableField(value = "sy_other_costs_proportion")
+    private BigDecimal syOtherCostsProportion;
+
+    @ApiModelProperty(value = "非车其他费用比例")
+    @TableField(value = "no_other_costs_proportion_old")
+    private BigDecimal noOtherCostsProportionOld;
+
+    @ApiModelProperty(value = "非车其他费用比例")
+    @TableField(value = "no_other_costs_proportion")
+    private BigDecimal noOtherCostsProportion;
+
+
+    @ApiModelProperty(value = "交强一级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_1_old")
+    private BigDecimal jqDeptProportionLevel1Old;
+
+    @ApiModelProperty(value = "交强二级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_2_old")
+    private BigDecimal jqDeptProportionLevel2Old;
+
+    @ApiModelProperty(value = "交强三级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_3_old")
+    private BigDecimal jqDeptProportionLevel3Old;
+
+    @ApiModelProperty(value = "交强四级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_4_old")
+    private BigDecimal jqDeptProportionLevel4Old;
+
+    @ApiModelProperty(value = "交强五级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_5_old")
+    private BigDecimal jqDeptProportionLevel5Old;
+
+    @ApiModelProperty(value = "商业一级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_1_old")
+    private BigDecimal syDeptProportionLevel1Old;
+
+    @ApiModelProperty(value = "商业二级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_2_old")
+    private BigDecimal syDeptProportionLevel2Old;
+
+    @ApiModelProperty(value = "商业三级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_3_old")
+    private BigDecimal syDeptProportionLevel3Old;
+
+    @ApiModelProperty(value = "商业四级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_4_old")
+    private BigDecimal syDeptProportionLevel4Old;
+
+    @ApiModelProperty(value = "商业五级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_5_old")
+    private BigDecimal syDeptProportionLevel5Old;
+
+    @ApiModelProperty(value = "非车一级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_1_old")
+    private BigDecimal noDeptProportionLevel1Old;
+
+    @ApiModelProperty(value = "非车二级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_2_old")
+    private BigDecimal noDeptProportionLevel2Old;
+
+    @ApiModelProperty(value = "非车三级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_3_old")
+    private BigDecimal noDeptProportionLevel3Old;
+
+    @ApiModelProperty(value = "非车四级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_4_old")
+    private BigDecimal noDeptProportionLevel4Old;
+
+    @ApiModelProperty(value = "非车五级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_5_old")
+    private BigDecimal noDeptProportionLevel5Old;
+
+
+
+
+
+    @ApiModelProperty(value = "交强一级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_1")
+    private BigDecimal jqDeptProportionLevel1;
+
+    @ApiModelProperty(value = "交强二级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_2")
+    private BigDecimal jqDeptProportionLevel2;
+
+    @ApiModelProperty(value = "交强三级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_3")
+    private BigDecimal jqDeptProportionLevel3;
+
+    @ApiModelProperty(value = "交强四级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_4")
+    private BigDecimal jqDeptProportionLevel4;
+
+    @ApiModelProperty(value = "交强五级机构管理费比例")
+    @TableField(value = "jq_dept_proportion_level_5")
+    private BigDecimal jqDeptProportionLevel5;
+
+    @ApiModelProperty(value = "商业一级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_1")
+    private BigDecimal syDeptProportionLevel1;
+
+    @ApiModelProperty(value = "商业二级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_2")
+    private BigDecimal syDeptProportionLevel2;
+
+    @ApiModelProperty(value = "商业三级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_3")
+    private BigDecimal syDeptProportionLevel3;
+
+    @ApiModelProperty(value = "商业四级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_4")
+    private BigDecimal syDeptProportionLevel4;
+
+    @ApiModelProperty(value = "商业五级机构管理费比例")
+    @TableField(value = "sy_dept_proportion_level_5")
+    private BigDecimal syDeptProportionLevel5;
+
+    @ApiModelProperty(value = "非车一级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_1")
+    private BigDecimal noDeptProportionLevel1;
+
+    @ApiModelProperty(value = "非车二级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_2")
+    private BigDecimal noDeptProportionLevel2;
+
+    @ApiModelProperty(value = "非车三级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_3")
+    private BigDecimal noDeptProportionLevel3;
+
+    @ApiModelProperty(value = "非车四级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_4")
+    private BigDecimal noDeptProportionLevel4;
+
+    @ApiModelProperty(value = "非车五级机构管理费比例")
+    @TableField(value = "no_dept_proportion_level_5")
+    private BigDecimal noDeptProportionLevel5;
+
+
+    @ApiModelProperty(value = "出口手续费比例")
+    @TableField(exist = false)
+    private BigDecimal jqCostsExportProportionOld;
+
+    @ApiModelProperty(value = "出口商业手续费比例")
+    @TableField(exist = false)
+    private BigDecimal syCostsExportProportionOld;
+
+    @ApiModelProperty(value = "出口非车手续费比例")
+    @TableField(exist = false)
+    private BigDecimal noCostsExportProportionOld;
+
+    @ApiModelProperty(value = "出口手续费比例")
+    @TableField(exist = false)
+    private BigDecimal jqCostsExportProportion;
+
+    @ApiModelProperty(value = "出口商业手续费比例")
+    @TableField(exist = false)
+    private BigDecimal syCostsExportProportion;
+
+    @ApiModelProperty(value = "出口非车手续费比例")
+    @TableField(exist = false)
+    private BigDecimal noCostsExportProportion;
+
+
+
+    @ApiModelProperty(value = "一级分销比例")
+    @TableField(value = "first_detail_proportion")
+    private BigDecimal firstDetailProportion;
+
+    @ApiModelProperty(value = "一级分销费用")
+    @TableField(value = "first_detail_premiums")
+    private BigDecimal firstDetailPremiums;
+
+    @ApiModelProperty(value = "二级分销比例")
+    @TableField(value = "second_detail_proportion")
+    private BigDecimal secondDetailProportion;
+
+    @ApiModelProperty(value = "二级分销费用")
+    @TableField(value = "second_detail_premiums")
+    private BigDecimal secondDetailPremiums;
+
+    @ApiModelProperty(value = "三级分销比例")
+    @TableField(value = "third_detail_proportion")
+    private BigDecimal thirdDetailProportion;
+
+    @ApiModelProperty(value = "三级分销费用")
+    @TableField(value = "third_detail_premiums")
+    private BigDecimal thirdDetailPremiums;
+
+    @ApiModelProperty(value = "一级分销用户id")
+    @TableField(value = "first_level_user_id")
+    private String firstLevelUserId;
+
+    @ApiModelProperty(value = "一级分销用户信息")
+    @TableField(exist = false)
+    private String firstLevelUserInfo;
+
+    @ApiModelProperty(value = "二级分销用户id")
+    @TableField(value = "two_level_user_id")
+    private String twoLevelUserId;
+
+    @ApiModelProperty(value = "二级分销用户信息")
+    @TableField(exist = false)
+    private String twoLevelUserInfo;
+
+    @ApiModelProperty(value = "三级分销用户id")
+    @TableField(value = "three_level_user_id")
+    private String threeLevelUserId;
+
+    @ApiModelProperty(value = "三级分销用户信息")
+    @TableField(exist = false)
+    private String threeLevelUserInfo;
+
+    @ApiModelProperty(value = "分销等级")
+    @TableField(value = "distribution_status")
+    private String distributionStatus;
+
+
+    @ApiModelProperty(value = "机构分销费用")
+    @TableField(value = "dept_distribution")
+    private BigDecimal deptDistribution;
+
+
+
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductQueryVo.java

@@ -15,4 +15,10 @@ public class AgreementProductQueryVo extends PageRequest {
 
     @ApiModelProperty(value = "产品id")
     private String productCode;
+
+    @ApiModelProperty(value = "费用起期")
+    private String costStartDate;
+
+    @ApiModelProperty(value = "费用止期")
+    private String costsEndDate;
 }

+ 15 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewRecordService.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewRecord;
+
+/**
+*@author: tz
+*@description: 费用计算表 service
+*@create: 2024-2-22 15:44:29
+*/
+public interface InsFeeOrderNewRecordService extends IService<InsFeeOrderNewRecord> {
+
+
+}

+ 9 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java

@@ -2,6 +2,8 @@ package com.ydtech.modules.protocols.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
@@ -74,4 +76,11 @@ public interface PtlAgreementProductCostsNewService extends IService<PtlAgreemen
      * @return
      */
     boolean costsAudit(CostsAuditVo costsAuditVo);
+
+    /**
+     * 调整费用
+     * @param feeOrderNewRecordVo
+     * @return
+     */
+    boolean costsAdjust(FeeOrderNewRecordVo feeOrderNewRecordVo);
 }

+ 22 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewRecordServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.protocols.dao.InsFeeOrderNewMapper;
+import com.ydtech.modules.protocols.dao.InsFeeOrderNewRecordMapper;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewRecord;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewRecordService;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description 费用结算表 service实现类
+ * @createDate 2024-2-22 15:44:29
+ * @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementUndwrtRulesAttrMapper
+ */
+@Service
+public class InsFeeOrderNewRecordServiceImpl extends ServiceImpl<InsFeeOrderNewRecordMapper, InsFeeOrderNewRecord>
+        implements InsFeeOrderNewRecordService {
+
+}

+ 305 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -4,8 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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;
+import com.ydtech.modules.fee.dto.vo.DeptManagerFee;
+import com.ydtech.modules.fee.dto.vo.EntranceFee;
+import com.ydtech.modules.fee.dto.vo.ExportFee;
+import com.ydtech.modules.fee.dto.vo.RetailStoreFee;
+import com.ydtech.modules.fee.service.CostsCalcService;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewRecordVo;
+import com.ydtech.modules.order.entity.vo.FeeOrderNewVo;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
+import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
 import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsNewMapper;
 import com.ydtech.modules.protocols.entity.po.*;
@@ -15,11 +30,13 @@ import com.ydtech.modules.protocols.entity.vo.AgreementProductQueryVo;
 import com.ydtech.modules.protocols.entity.vo.CostsAuditVo;
 import com.ydtech.modules.protocols.service.*;
 import com.ydtech.utils.idgen.IdGenerate;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -52,6 +69,12 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Autowired
     PtlAgreementProductCostsAttrLinkHistoryService ptlAgreementProductCostsAttrLinkHistoryService;
 
+    @Autowired
+    InsFeeOrderNewRecordService insFeeOrderNewRecordService;
+
+    @Autowired
+    InsFeeOrderNewService insFeeOrderNewService;
+
     @Override
     public Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, AgreementProductQueryVo agreementProductQueryVo) {
         LambdaQueryWrapper<PtlAgreementProductCostsNew> ptlAgreementProductCostsNewLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -66,6 +89,13 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             ptlAgreementProductCostsNewLambdaQueryWrapper.eq(PtlAgreementProductCostsNew::getProductId, agreementProductQueryVo.getProductCode());
         }
 
+        //费用时间
+        if(agreementProductQueryVo.getCostStartDate() != null)
+        {
+            ptlAgreementProductCostsNewLambdaQueryWrapper.or().gt(PtlAgreementProductCostsNew::getCostsStartDate, agreementProductQueryVo.getCostStartDate())
+                    .lt(PtlAgreementProductCostsNew::getCostsEndDate, agreementProductQueryVo.getCostsEndDate());
+        }
+
         Page<PtlAgreementProductCostsNew> pages = baseMapper.selectPage(page, ptlAgreementProductCostsNewLambdaQueryWrapper);
 
 //                .lt(PtlAgreementProductCostsNew::getCostsStartDate, formattedDateTime)
@@ -636,4 +666,279 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         ptlAgreementProductCostsNew.setAuditTime(LocalDateTime.now());
         return baseMapper.updateById(ptlAgreementProductCostsNew) > 0 ? true : false;
     }
+
+    @Autowired
+    PtlAgreementService ptlAgreementService;
+
+    @Autowired
+    CostsCalcService costsCalcService;
+
+    @Autowired
+    InsOrdersService insOrdersService;
+
+    @Autowired
+    SysUserService sysUserService;
+
+    @Autowired
+    InsAreaCompanyService insAreaCompanyService;
+
+    @Transactional
+    @Override
+    public boolean costsAdjust(FeeOrderNewRecordVo feeOrderNewRecordVo) {
+        String feeId = feeOrderNewRecordVo.getFeeId();
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getById(feeId);
+        //查询协议是否包含税
+        PtlAgreement ptlAgreement = ptlAgreementService.getById(insFeeOrderNew.getAgreementId());
+        BigDecimal taxRadio = new BigDecimal("1.00");
+        if(ptlAgreement.getWithTax().equals("是")){
+            taxRadio = new BigDecimal("1.06");
+        }
+
+        InsFeeOrderNewRecord record = new InsFeeOrderNewRecord();
+        FeeOrderNewVo feeOrderNewVoOld = feeOrderNewRecordVo.getFeeOrderNewVoOld();
+        FeeOrderNewVo feeOrderNewVo = feeOrderNewRecordVo.getFeeOrderNewVoNew();
+
+        //交强入口费用
+        EntranceFee jqEntranceFee = costsCalcService.getEntranceFee("交强险", feeOrderNewVo.getEntranceFee().get(0).getPremium().divide(taxRadio,2),
+                feeOrderNewVo.getEntranceFee().get(0).getSuperviseCosts(), feeOrderNewVo.getEntranceFee().get(0).getOtherCostsProportion());
+
+        //商业入口费用
+        EntranceFee syEntranceFee = costsCalcService.getEntranceFee("商业险", feeOrderNewVo.getEntranceFee().get(1).getPremium().divide(taxRadio,2),
+                feeOrderNewVo.getEntranceFee().get(1).getSuperviseCosts(), feeOrderNewVo.getEntranceFee().get(1).getOtherCostsProportion());
+
+        //非车入口费用
+        EntranceFee noEntranceFee = costsCalcService.getEntranceFee("非车险", feeOrderNewVo.getEntranceFee().get(2).getPremium().divide(taxRadio,2),
+                feeOrderNewVo.getEntranceFee().get(2).getSuperviseCosts(), feeOrderNewVo.getEntranceFee().get(2).getOtherCostsProportion());
+
+        //交强部门管理费用
+        DeptManagerFee jqDeptManagerFee = costsCalcService.getDeptManagerFee("交强险", insFeeOrderNew.getJqPremium().divide(taxRadio,2),
+                insFeeOrderNew.getJqDeptProportionLevel1(), insFeeOrderNew.getJqDeptProportionLevel2(), insFeeOrderNew.getJqDeptProportionLevel3(),
+                insFeeOrderNew.getJqDeptProportionLevel4(), insFeeOrderNew.getJqDeptProportionLevel5());
+
+        //商业部门管理费用
+        DeptManagerFee syDeptManagerFee = costsCalcService.getDeptManagerFee("商业险", insFeeOrderNew.getSyPremium().divide(taxRadio,2),
+                insFeeOrderNew.getSyDeptProportionLevel1(), insFeeOrderNew.getSyDeptProportionLevel2(), insFeeOrderNew.getSyDeptProportionLevel3(),
+                insFeeOrderNew.getSyDeptProportionLevel4(), insFeeOrderNew.getSyDeptProportionLevel5());
+
+        //非车部门管理费用
+        DeptManagerFee noDeptManagerFee = costsCalcService.getDeptManagerFee("非车险", insFeeOrderNew.getNoPremium().divide(taxRadio,2),
+                insFeeOrderNew.getNoDeptProportionLevel1(), insFeeOrderNew.getNoDeptProportionLevel2(), insFeeOrderNew.getNoDeptProportionLevel3(),
+                insFeeOrderNew.getNoDeptProportionLevel4(), insFeeOrderNew.getNoDeptProportionLevel5());
+
+
+        //分销费用
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(insFeeOrderNew.getInsOrderNo());
+        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
+        SysUser sysUser = sysUserService.findByUserId(insOrders.getUserid());
+        RetailStoreFee retailStoreFee = costsCalcService.getRetailStoreFee(sysUser.getId(),
+                insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium()));
+
+        //出口
+        ExportFee jqExportFee = costsCalcService.getExportFee("交强险",jqEntranceFee,jqDeptManagerFee,retailStoreFee,
+                feeOrderNewRecordVo.getFeeOrderNewVoNew().getExportFee().get(0).getSuperviseCosts());
+
+        ExportFee syExportFee = costsCalcService.getExportFee("商业险",syEntranceFee,syDeptManagerFee,retailStoreFee,
+                feeOrderNewRecordVo.getFeeOrderNewVoNew().getExportFee().get(1).getSuperviseCosts());
+
+        ExportFee noExportFee = costsCalcService.getExportFee("非车险",noEntranceFee,noDeptManagerFee,retailStoreFee,
+                feeOrderNewRecordVo.getFeeOrderNewVoNew().getExportFee().get(0).getSuperviseCosts());
+
+        //转换输出的格式
+        FeeOrderNewVo resultFeeOrderNewVo = new FeeOrderNewVo();
+        List<FeeOrderNewVo.EntranceFee> entranceFeeList = new ArrayList<>();
+        List<FeeOrderNewVo.DeptManagerFee> deptManagerFeeList = new ArrayList<>();
+        List<FeeOrderNewVo.ExportFee> exportFeeList = new ArrayList<>();
+
+
+        FeeOrderNewVo.EntranceFee jqEntranceFeeConv = new FeeOrderNewVo.EntranceFee();
+        BeanUtils.copyProperties(jqEntranceFee,jqEntranceFeeConv);
+        entranceFeeList.add(jqEntranceFeeConv);
+
+        FeeOrderNewVo.EntranceFee syEntranceFeeConv = new FeeOrderNewVo.EntranceFee();
+        BeanUtils.copyProperties(syEntranceFee,syEntranceFeeConv);
+        entranceFeeList.add(syEntranceFeeConv);
+
+        FeeOrderNewVo.EntranceFee noEntranceFeeConv = new FeeOrderNewVo.EntranceFee();
+        BeanUtils.copyProperties(noEntranceFee,noEntranceFeeConv);
+        entranceFeeList.add(noEntranceFeeConv);
+
+        resultFeeOrderNewVo.setEntranceFee(entranceFeeList);
+
+
+
+        FeeOrderNewVo.DeptManagerFee jqDeptManagerFeeConv = new FeeOrderNewVo.DeptManagerFee();
+        BeanUtils.copyProperties(jqDeptManagerFee,jqDeptManagerFeeConv);
+        deptManagerFeeList.add(jqDeptManagerFeeConv);
+
+        FeeOrderNewVo.DeptManagerFee syDeptManagerFeeConv = new FeeOrderNewVo.DeptManagerFee();
+        BeanUtils.copyProperties(syDeptManagerFee,syDeptManagerFeeConv);
+        deptManagerFeeList.add(syDeptManagerFeeConv);
+
+        FeeOrderNewVo.DeptManagerFee noDeptManagerFeeConv = new FeeOrderNewVo.DeptManagerFee();
+        BeanUtils.copyProperties(noDeptManagerFee,noDeptManagerFeeConv);
+        deptManagerFeeList.add(noDeptManagerFeeConv);
+
+        resultFeeOrderNewVo.setDeptManagerFee(deptManagerFeeList);
+
+
+
+        FeeOrderNewVo.ExportFee jqExportFeeConv = new FeeOrderNewVo.ExportFee();
+        BeanUtils.copyProperties(jqExportFee,jqExportFeeConv);
+        exportFeeList.add(jqExportFeeConv);
+
+        FeeOrderNewVo.ExportFee syExportFeeConv = new FeeOrderNewVo.ExportFee();
+        BeanUtils.copyProperties(syExportFee,syExportFeeConv);
+        exportFeeList.add(syExportFeeConv);
+
+        FeeOrderNewVo.ExportFee noExportFeeConv = new FeeOrderNewVo.ExportFee();
+        BeanUtils.copyProperties(noExportFee,noExportFeeConv);
+        exportFeeList.add(noExportFeeConv);
+
+        resultFeeOrderNewVo.setExportFee(exportFeeList);
+
+
+
+        //入口
+        record.setJqCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(0).getTotalProportion());
+        record.setSyCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(1).getTotalProportion());
+        record.setNoCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(2).getTotalProportion());
+        record.setJqSuperviseCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(0).getSuperviseCosts());
+        record.setSySuperviseCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(1).getSuperviseCosts());
+        record.setNoSuperviseCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(2).getSuperviseCosts());
+        record.setJqOtherCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(0).getOtherCostsProportion());
+        record.setSyOtherCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(1).getOtherCostsProportion());
+        record.setNoOtherCostsProportionOld(feeOrderNewVoOld.getEntranceFee().get(2).getOtherCostsProportion());
+
+        record.setJqCostsProportion(feeOrderNewVo.getEntranceFee().get(0).getTotalProportion());
+        record.setSyCostsProportion(feeOrderNewVo.getEntranceFee().get(1).getTotalProportion());
+        record.setNoCostsProportion(feeOrderNewVo.getEntranceFee().get(2).getTotalProportion());
+        record.setJqSuperviseCostsProportion(feeOrderNewVo.getEntranceFee().get(0).getSuperviseCosts());
+        record.setSySuperviseCostsProportion(feeOrderNewVo.getEntranceFee().get(1).getSuperviseCosts());
+        record.setNoSuperviseCostsProportion(feeOrderNewVo.getEntranceFee().get(2).getSuperviseCosts());
+        record.setJqOtherCostsProportion(feeOrderNewVo.getEntranceFee().get(0).getOtherCostsProportion());
+        record.setSyOtherCostsProportion(feeOrderNewVo.getEntranceFee().get(1).getOtherCostsProportion());
+        record.setNoOtherCostsProportion(feeOrderNewVo.getEntranceFee().get(2).getOtherCostsProportion());
+
+
+        //出口
+        record.setJqCostsExportProportionOld(feeOrderNewVoOld.getExportFee().get(0).getTotalProportion());
+        record.setSyCostsExportProportionOld(feeOrderNewVoOld.getExportFee().get(1).getTotalProportion());
+        record.setNoCostsExportProportionOld(feeOrderNewVoOld.getExportFee().get(2).getTotalProportion());
+
+        record.setJqCostsExportProportion(feeOrderNewVo.getExportFee().get(0).getTotalProportion());
+        record.setSyCostsExportProportion(feeOrderNewVo.getExportFee().get(1).getTotalProportion());
+        record.setNoCostsExportProportion(feeOrderNewVo.getExportFee().get(2).getTotalProportion());
+
+        //机构管理费 (交强)
+        //old
+        record.setJqDeptProportionLevel1Old(feeOrderNewVoOld.getDeptManagerFee().get(0).getDeptProportionLevelOne());
+        record.setJqDeptProportionLevel2Old(feeOrderNewVoOld.getDeptManagerFee().get(0).getDeptProportionLevelTwo());
+        record.setJqDeptProportionLevel3Old(feeOrderNewVoOld.getDeptManagerFee().get(0).getDeptProportionLevelThree());
+        record.setJqDeptProportionLevel4Old(feeOrderNewVoOld.getDeptManagerFee().get(0).getDeptProportionLevelFoure());
+        record.setJqDeptProportionLevel5Old(feeOrderNewVoOld.getDeptManagerFee().get(0).getDeptProportionLevelFive());
+
+        //new
+        record.setJqDeptProportionLevel1(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelOne());
+        record.setJqDeptProportionLevel2(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelTwo());
+        record.setJqDeptProportionLevel3(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelThree());
+        record.setJqDeptProportionLevel4(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFoure());
+        record.setJqDeptProportionLevel5(feeOrderNewVo.getDeptManagerFee().get(0).getDeptProportionLevelFive());
+
+
+
+        //机构管理费 (商业)
+        //old
+        record.setSyDeptProportionLevel1Old(feeOrderNewVoOld.getDeptManagerFee().get(1).getDeptProportionLevelOne());
+        record.setSyDeptProportionLevel2Old(feeOrderNewVoOld.getDeptManagerFee().get(1).getDeptProportionLevelTwo());
+        record.setSyDeptProportionLevel3Old(feeOrderNewVoOld.getDeptManagerFee().get(1).getDeptProportionLevelThree());
+        record.setSyDeptProportionLevel4Old(feeOrderNewVoOld.getDeptManagerFee().get(1).getDeptProportionLevelFoure());
+        record.setSyDeptProportionLevel5Old(feeOrderNewVoOld.getDeptManagerFee().get(1).getDeptProportionLevelFive());
+
+        //new
+        record.setSyDeptProportionLevel1(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelOne());
+        record.setSyDeptProportionLevel2(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelTwo());
+        record.setSyDeptProportionLevel3(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelThree());
+        record.setSyDeptProportionLevel4(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFoure());
+        record.setSyDeptProportionLevel5(feeOrderNewVo.getDeptManagerFee().get(1).getDeptProportionLevelFive());
+
+
+        //机构管理费 (非车)
+        //old
+        record.setNoDeptProportionLevel1Old(feeOrderNewVoOld.getDeptManagerFee().get(2).getDeptProportionLevelOne());
+        record.setNoDeptProportionLevel2Old(feeOrderNewVoOld.getDeptManagerFee().get(2).getDeptProportionLevelTwo());
+        record.setNoDeptProportionLevel3Old(feeOrderNewVoOld.getDeptManagerFee().get(2).getDeptProportionLevelThree());
+        record.setNoDeptProportionLevel4Old(feeOrderNewVoOld.getDeptManagerFee().get(2).getDeptProportionLevelFoure());
+        record.setNoDeptProportionLevel5Old(feeOrderNewVoOld.getDeptManagerFee().get(2).getDeptProportionLevelFive());
+
+        //new
+        record.setNoDeptProportionLevel1(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelOne());
+        record.setNoDeptProportionLevel2(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelTwo());
+        record.setNoDeptProportionLevel3(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelThree());
+        record.setNoDeptProportionLevel4(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFoure());
+        record.setNoDeptProportionLevel5(feeOrderNewVo.getDeptManagerFee().get(2).getDeptProportionLevelFive());
+
+        //保存历史记录
+        record.setFeeOrderId(feeId);
+        insFeeOrderNewRecordService.save(record);
+
+
+        insFeeOrderNew.setJqCostsProportion(jqEntranceFee.getTotalProportion());
+        insFeeOrderNew.setJqCostsPremiums(jqEntranceFee.getTotalAmount());
+        insFeeOrderNew.setSyCostsProportion(syEntranceFee.getTotalProportion());
+        insFeeOrderNew.setSyCostsPremiums(syEntranceFee.getTotalAmount());
+        insFeeOrderNew.setNoCostsProportion(noEntranceFee.getTotalProportion());
+        insFeeOrderNew.setNoCostsPremiums(noEntranceFee.getTotalAmount());
+
+        insFeeOrderNew.setJqSuperviseCostsProportion(jqEntranceFee.getSuperviseCosts());
+        insFeeOrderNew.setJqSuperviseCostsPremiums(jqEntranceFee.getSySuperviseCostsPremiums());
+        insFeeOrderNew.setSySuperviseCostsProportion(syEntranceFee.getSuperviseCosts());
+        insFeeOrderNew.setSySuperviseCostsPremiums(syEntranceFee.getSySuperviseCostsPremiums());
+        insFeeOrderNew.setNoSuperviseCostsProportion(noEntranceFee.getSuperviseCosts());
+        insFeeOrderNew.setNoSuperviseCostsPremiums(noEntranceFee.getSySuperviseCostsPremiums());
+
+        insFeeOrderNew.setJqOtherCostsProportion(jqEntranceFee.getOtherCostsProportion());
+        insFeeOrderNew.setJqOtherCostsPremiums(jqEntranceFee.getOtherCostsPremiums());
+        insFeeOrderNew.setSyOtherCostsProportion(syEntranceFee.getOtherCostsProportion());
+        insFeeOrderNew.setSyOtherCostsPremiums(syEntranceFee.getOtherCostsPremiums());
+        insFeeOrderNew.setNoOtherCostsProportion(noEntranceFee.getOtherCostsProportion());
+        insFeeOrderNew.setNoOtherCostsPremiums(noEntranceFee.getOtherCostsPremiums());
+
+        insFeeOrderNew.setJqDeptProportionLevel1(jqDeptManagerFee.getDeptManagerRadioLevel1());
+        insFeeOrderNew.setJqDeptProportionLevel2(jqDeptManagerFee.getDeptManagerRadioLevel2());
+        insFeeOrderNew.setJqDeptProportionLevel3(jqDeptManagerFee.getDeptManagerRadioLevel3());
+        insFeeOrderNew.setJqDeptProportionLevel4(jqDeptManagerFee.getDeptManagerRadioLevel4());
+        insFeeOrderNew.setJqDeptProportionLevel5(jqDeptManagerFee.getDeptManagerRadioLevel5());
+        insFeeOrderNew.setJqDeptPremiumsLevel1(jqDeptManagerFee.getDeptManagerFeeLevel1());
+        insFeeOrderNew.setJqDeptPremiumsLevel2(jqDeptManagerFee.getDeptManagerFeeLevel2());
+        insFeeOrderNew.setJqDeptPremiumsLevel3(jqDeptManagerFee.getDeptManagerFeeLevel3());
+        insFeeOrderNew.setJqDeptPremiumsLevel4(jqDeptManagerFee.getDeptManagerFeeLevel4());
+        insFeeOrderNew.setJqDeptPremiumsLevel5(jqDeptManagerFee.getDeptManagerFeeLevel5());
+
+        insFeeOrderNew.setSyDeptProportionLevel1(syDeptManagerFee.getDeptManagerRadioLevel1());
+        insFeeOrderNew.setSyDeptProportionLevel2(syDeptManagerFee.getDeptManagerRadioLevel2());
+        insFeeOrderNew.setSyDeptProportionLevel3(syDeptManagerFee.getDeptManagerRadioLevel3());
+        insFeeOrderNew.setSyDeptProportionLevel4(syDeptManagerFee.getDeptManagerRadioLevel4());
+        insFeeOrderNew.setSyDeptProportionLevel5(syDeptManagerFee.getDeptManagerRadioLevel5());
+        insFeeOrderNew.setSyDeptPremiumsLevel1(syDeptManagerFee.getDeptManagerFeeLevel1());
+        insFeeOrderNew.setSyDeptPremiumsLevel2(syDeptManagerFee.getDeptManagerFeeLevel2());
+        insFeeOrderNew.setSyDeptPremiumsLevel3(syDeptManagerFee.getDeptManagerFeeLevel3());
+        insFeeOrderNew.setSyDeptPremiumsLevel4(syDeptManagerFee.getDeptManagerFeeLevel4());
+        insFeeOrderNew.setSyDeptPremiumsLevel5(syDeptManagerFee.getDeptManagerFeeLevel5());
+
+        insFeeOrderNew.setNoDeptProportionLevel1(noDeptManagerFee.getDeptManagerRadioLevel1());
+        insFeeOrderNew.setNoDeptProportionLevel2(noDeptManagerFee.getDeptManagerRadioLevel2());
+        insFeeOrderNew.setNoDeptProportionLevel3(noDeptManagerFee.getDeptManagerRadioLevel3());
+        insFeeOrderNew.setNoDeptProportionLevel4(noDeptManagerFee.getDeptManagerRadioLevel4());
+        insFeeOrderNew.setNoDeptProportionLevel5(noDeptManagerFee.getDeptManagerRadioLevel5());
+        insFeeOrderNew.setNoDeptPremiumsLevel1(noDeptManagerFee.getDeptManagerFeeLevel1());
+        insFeeOrderNew.setNoDeptPremiumsLevel2(noDeptManagerFee.getDeptManagerFeeLevel2());
+        insFeeOrderNew.setNoDeptPremiumsLevel3(noDeptManagerFee.getDeptManagerFeeLevel3());
+        insFeeOrderNew.setNoDeptPremiumsLevel4(noDeptManagerFee.getDeptManagerFeeLevel4());
+        insFeeOrderNew.setNoDeptPremiumsLevel5(noDeptManagerFee.getDeptManagerFeeLevel5());
+
+        //保存新的比例
+        insFeeOrderNewService.updateById(insFeeOrderNew);
+        return true;
+
+    }
 }

+ 2 - 1
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java

@@ -109,7 +109,8 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
     @Override
     public List<PtlAgreementUndwrtRulesNew> rulesList(String agreementId) {
         List<PtlAgreementUndwrtRulesNew> rulesList = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
-                .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId));
+                .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId)
+                .eq(PtlAgreementUndwrtRulesNew::getValidInd, "1"));
         List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
         rulesList.forEach(item -> {
             List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());

+ 8 - 0
src/main/resources/mapper/modules/admin/SysDeptAccountHistoryMapper.xml

@@ -13,6 +13,8 @@
         <result column="user_id" jdbcType="VARCHAR" property="userId"/>
         <result column="remark" jdbcType="VARCHAR" property="remark"/>
         <result column="create_date" jdbcType="TIMESTAMP" property="createTime"/>
+        <result property="createTimeStart" column="createTimeStart" jdbcType="VARCHAR"/>
+        <result property="createTimeEnd" column="createTimeEnd" jdbcType="VARCHAR"/>
     </resultMap>
 
     <select id="getDeptHistory" resultMap="BaseResultMap">
@@ -41,6 +43,12 @@
         <if test="sysDeptAccountHistoryDto.documentary != null and sysDeptAccountHistoryDto.documentary != ''">
             AND a.documentary = #{sysDeptAccountHistoryDto.documentary}
         </if>
+        <if test="sysDeptAccountHistoryDto.createTimeStart != null and sysDeptAccountHistoryDto.createTimeStart != ''">
+            and DATE(a.create_time) &gt;= #{sysDeptAccountHistoryDto.createTimeStart}
+        </if>
+        <if test="sysDeptAccountHistoryDto.createTimeEnd != null and sysDeptAccountHistoryDto.createTimeEnd != ''">
+            and DATE(a.create_time) &lt;= #{sysDeptAccountHistoryDto.createTimeEnd}
+        </if>
     </select>
 
 </mapper>

+ 12 - 2
src/main/resources/mapper/modules/admin/SysDeptAccountMapper.xml

@@ -8,6 +8,8 @@
         <result column="name" jdbcType="VARCHAR" property="deptName"/>
         <result column="management_fee" jdbcType="DECIMAL" property="managementFee"/>
         <result column="create_date" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="waitAmount" jdbcType="DECIMAL" property="waitAmount"/>
+        <result column="totalAmount" jdbcType="DECIMAL" property="totalAmount"/>
     </resultMap>
 
     <select id="getDept" resultMap="BaseResultMap">
@@ -15,10 +17,13 @@
         a.dept_id,
         b.NAME,
         a.management_fee,
-        DATE(a.create_time) as create_date
+        DATE(a.create_time) as create_date,
+        SUM(CASE WHEN c.status = 0 THEN c.amount ELSE 0 END) AS waitAmount,
+        SUM(CASE WHEN c.status = 1 THEN c.amount ELSE 0 END) AS totalAmount
         FROM
         sys_dept_account a
         LEFT JOIN sys_dept b ON a.dept_id = b.id
+        LEFT JOIN sys_dept_account_withdraw c on a.dept_id = c.dept_id
         where
             b.del_flag = 0
         <if test="sysDeptAccountDto.deptId != null and sysDeptAccountDto.deptId != ''">
@@ -27,6 +32,7 @@
         <if test="sysDeptAccountDto.deptName != null and sysDeptAccountDto.deptName != ''">
             AND b.name like concat(#{sysDeptAccountDto.deptName},'%')
         </if>
+        group by a.dept_id
     </select>
 
 
@@ -48,15 +54,19 @@
         a.comattribute,
         a.comtype,
         b.management_fee,
-        a.withdraw_user
+        a.withdraw_user,
+        SUM(CASE WHEN c.status = 0 THEN c.amount ELSE 0 END) AS waitAmount,
+        SUM(CASE WHEN c.status = 1 THEN c.amount ELSE 0 END) AS totalAmount
         FROM
         sys_dept a
         RIGHT JOIN sys_dept_account b ON a.id = b.dept_id
+        LEFT JOIN sys_dept_account_withdraw c on a.id = c.dept_id
         where
         a.del_flag = 0
         <if test="userId != null and userId != ''">
             AND a.withdraw_user = #{userId}
         </if>
+        group by a.id
     </select>
 
     <select id="getDeptAccountByDept" resultMap="SysAccountByUserMap">

+ 37 - 0
src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml

@@ -1,4 +1,41 @@
 <?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.SysDeptAccountWithdrawMapper">
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.vo.SysDeptAccountWithdrawVo">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="deptId" column="dept_id" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="amount" column="amount" jdbcType="DECIMAL"/>
+        <result property="status" column="status" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_date" jdbcType="TIMESTAMP"/>
+        <result property="createTimeStart" column="createTimeStart" jdbcType="VARCHAR"/>
+        <result property="createTimeEnd" column="createTimeEnd" jdbcType="VARCHAR"/>
+    </resultMap>
+
+
+    <select id="selectSysDeptAccountWithdraw" resultMap="BaseResultMap">
+        select
+        id,
+        dept_id,
+        name,amount,
+        status,
+        remark,
+        DATE(create_time) as create_date
+        from sys_dept_account_withdraw
+        where
+        <if test="sysDeptAccountWithdrawVo.status != null and sysDeptAccountWithdrawVo.status != ''">
+             status = #{sysDeptAccountWithdrawVo.status}
+        </if>
+        <if test="sysDeptAccountWithdrawVo.deptId != null and sysDeptAccountWithdrawVo.deptId != ''">
+            and dept_id  = #{sysDeptAccountWithdrawVo.deptId}
+        </if>
+        <if test="sysDeptAccountWithdrawVo.createTimeStart != null and sysDeptAccountWithdrawVo.createTimeStart != ''">
+            and create_time &gt;= #{sysDeptAccountWithdrawVo.createTimeStart}
+        </if>
+        <if test="sysDeptAccountWithdrawVo.createTimeEnd != null and sysDeptAccountWithdrawVo.createTimeEnd != ''">
+            and create_time &lt;= #{sysDeptAccountWithdrawVo.createTimeEnd}
+        </if>
+    </select>
+
 </mapper>

+ 71 - 0
src/main/resources/mapper/modules/admin/SysUserLinkPtlAgreementMapper.xml

@@ -0,0 +1,71 @@
+<?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.SysUserLinkPtlAgreementMapper">
+    <sql id="Base_Column_List">
+            link.id as id,
+            user.id as "sysUser.id",
+            user.name as "sysUser.name",
+            agree.companies_type as  "ptlAgreement.id",
+            agree.companies_type as  "ptlAgreement.companiesType",
+            agree.agreement_type as  "ptlAgreement.agreementType",
+            agree.agreement_code as  "ptlAgreement.agreementCode",
+            agree.agreement_name as  "ptlAgreement.agreementName",
+            agree.agreement_abbreviation as  "ptlAgreement.underwritingDescription",
+            agree.partner_companies_id as  "ptlAgreement.partnerCompaniesId",
+            agree.association_companies_id as  "ptlAgreement.associationCompaniesId",
+            agree.insurance_company as  "ptlAgreement.insuranceCompany",
+            agree.insurance_company_id as  "ptlAgreement.insuranceCompanyId",
+            agree.start_date as  "ptlAgreement.startDate",
+            agree.end_date  as  "ptlAgreement.endDate",
+            agree.money_time  as  "ptlAgreement.moneyTime",
+            agree.match_type   as  "ptlAgreement.matchType",
+            agree.docking_person  as  "ptlAgreement.dockingPerson",
+            agree.docking_phone  as  "ptlAgreement.dockingPhone",
+            agree.with_tax  as  "ptlAgreement.withTax",
+            agree.money_type  as  "ptlAgreement.moneyType",
+            agree.valid_status  as  "ptlAgreement.validStatus",
+            agree.file_id   as  "ptlAgreement.fileId",
+            agree.audit_content  as  "ptlAgreement.auditContent",
+            agree.audit_status  as  "ptlAgreement.auditStatus",
+            agree.serial_number	  as  "ptlAgreement.serialNumber",
+            agree.underwriting_description	 as  "ptlAgreement.underwritingDescription"
+    </sql>
+
+    <select id="queryPage"  resultType="com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto">
+        SELECT
+          <include refid="Base_Column_List"/>
+        FROM
+        sys_user_link_pl_agreement link
+        LEFT JOIN sys_user USER ON link.user_id = USER.id
+        LEFT JOIN ptl_agreement agree ON link.ptl_agreement_id = agree.id
+        <where>
+            <if test="vo.userId != null and vo.userId != ''">
+                and  link.user_id =  #{vo.userId}
+            </if>
+            <if test="vo.ptlAgreementId != null">
+                and link.ptl_agreement_id = #{vo.ptlAgreementId}
+            </if>
+        </where>
+    </select>
+
+    <delete id="deleteByUserId">
+      delete  from     sys_user_link_pl_agreement
+     where   user_id=#{userId}
+    </delete>
+
+    <select id="findPtlAgreementListByUserId"  resultType="com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto">
+        SELECT
+             <include refid="Base_Column_List"/>
+        FROM
+        sys_user_link_pl_agreement link
+        LEFT JOIN sys_user USER ON link.user_id = USER.id
+        LEFT JOIN ptl_agreement agree ON link.ptl_agreement_id = agree.id
+        <where>
+            <if test="userId != null and userId != ''">
+                and  link.user_id =  #{userId}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 38 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -433,4 +433,42 @@
         iac.company_id,
         iac.inscompany
     </select>
+
+
+    <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
+        SELECT
+        su.id as userId,
+        su.name,
+        info.sex,
+        su.mobile,
+        su.status,
+        sd.id as deptId,
+        sd.name as deptName,
+        t4.id as roleId,
+        t4.name as roleName,
+        sd.management_source,
+        psd.id as pDeptId,
+        psd.name as pDeptName
+        FROM
+        sys_user su
+        LEFT JOIN sys_user_info info ON info.id = su.id
+        LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+        left join sys_dept psd on psd.id = sd.parent_id
+        LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
+        LEFT JOIN sys_role t4 ON t3.role_id = t4.id
+        AND sd.del_flag = '0'
+        WHERE
+        su.status =1
+        <if test='user !=null  '>
+            <if test='user.name !=null and user.name!="" '>
+                and su.name = #{user.name}
+            </if>
+            <if test='user.userId !=null and user.userId!="" '>
+                and su.id = #{user.userId}
+            </if>
+            <if test='user.mobile !=null and user.mobile!=""  '>
+                and su.mobile = #{user.mobile}
+            </if>
+        </if>
+    </select>
 </mapper>

+ 10 - 0
src/main/resources/mapper/modules/esm/InsOrderSetUserHisMapper.xml

@@ -0,0 +1,10 @@
+<?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">
+
+
+
+
+</mapper>

+ 42 - 0
src/main/resources/sql/sql.txt

@@ -0,0 +1,42 @@
+
+添加 前线人员关联协议表    hxl  add by 2024-04-16
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 测试环境
+ Source Server Type    : MySQL
+ Source Server Version : 50719
+ Source Host           : 47.92.254.66:3306
+ Source Schema         : zgdd
+
+ Target Server Type    : MySQL
+ Target Server Version : 50719
+ File Encoding         : 65001
+
+ Date: 16/04/2024 16:44:32
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_user_link_pl_agreement
+-- ----------------------------
+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;
+
+SET FOREIGN_KEY_CHECKS = 1;