Quellcode durchsuchen

修改行单数

wks vor 2 Jahren
Ursprung
Commit
c8ae5bba9b
80 geänderte Dateien mit 3175 neuen und 223 gelöschten Zeilen
  1. 27 0
      src/main/java/com/ydtech/constants/enums/dict/ins/InsFeeAuditDistributionStatusEnum.java
  2. 24 0
      src/main/java/com/ydtech/modules/admin/constants/MoneyAttrConstants.java
  3. 23 0
      src/main/java/com/ydtech/modules/admin/constants/WithdrawTypeConstants.java
  4. 18 0
      src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountController.java
  5. 37 0
      src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountHistoryController.java
  6. 0 10
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountDao.java
  7. 9 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountHistoryMapper.java
  8. 17 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountMapper.java
  9. 3 11
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountEntity.java
  10. 61 0
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountHistory.java
  11. 30 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountDto.java
  12. 55 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountHistoryDto.java
  13. 17 0
      src/main/java/com/ydtech/modules/admin/service/SysDeptAccountHistoryService.java
  14. 3 1
      src/main/java/com/ydtech/modules/admin/service/SysDeptAccountService.java
  15. 46 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountHistoryServiceImpl.java
  16. 11 39
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java
  17. 22 17
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  18. 4 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  19. 15 3
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java
  20. 4 3
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  21. 35 4
      src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java
  22. 40 0
      src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesController.java
  23. 40 0
      src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryLogController.java
  24. 11 0
      src/main/java/com/ydtech/modules/fnc/dao/InsPlyIncomeMapper.java
  25. 19 0
      src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryFeesMapper.java
  26. 12 0
      src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryLogMapper.java
  27. 62 1
      src/main/java/com/ydtech/modules/fnc/entity/InsPlyIncome.java
  28. 66 0
      src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesEntity.java
  29. 40 0
      src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryLogEntity.java
  30. 1 1
      src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditService.java
  31. 15 0
      src/main/java/com/ydtech/modules/fnc/service/InsPlyIncomeService.java
  32. 18 0
      src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesService.java
  33. 16 0
      src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryLogService.java
  34. 242 88
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  35. 220 0
      src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java
  36. 62 0
      src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesServiceImpl.java
  37. 25 0
      src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryLogImpl.java
  38. 53 1
      src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java
  39. 58 0
      src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesVo.java
  40. 46 0
      src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryLogVo.java
  41. 1 0
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  42. 14 0
      src/main/java/com/ydtech/modules/order/dao/InsPinAnAreaMapper.java
  43. 57 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/area/InsPinAnArea.java
  44. 88 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/LicenseTypeCodeEnum.java
  45. 66 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/NewCarAreaCodeEnum.java
  46. 108 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/PinAnTwoDepartCodeEnum.java
  47. 30 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/ResposeErrorCodeEnum.java
  48. 46 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/SpecialLicenseCodeEnum.java
  49. 96 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/TaxAreaCodeEnum.java
  50. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/ApplicantDocumentCodeEnum.java
  51. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/AssuredCodeEnum.java
  52. 50 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/CorrectionMaterialsCodeEnum.java
  53. 48 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/DoubleRecordingCodeEnum.java
  54. 36 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/DriversLicenseTypeDocumentCodeEnum.java
  55. 49 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/IndexDocumentCodeEnum.java
  56. 42 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/InsuranceApplicationDocumentCodeEnum.java
  57. 68 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/LocalUsedCodeEnum.java
  58. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalAssuredDocumentCodeEnum.java
  59. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalOwnerDocumentCodeEnum.java
  60. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalPolicyholderDocumentCodeEnum.java
  61. 46 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OtherCodeEnum.java
  62. 67 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OwnerDocumentCodeEnum.java
  63. 38 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/RatingFactorCodeEnum.java
  64. 38 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/TaxDocumentCodeEnum.java
  65. 7 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  66. 13 0
      src/main/java/com/ydtech/modules/order/service/InsPinAnAreaService.java
  67. 10 0
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  68. 11 0
      src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java
  69. 5 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  70. 13 4
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  71. 25 0
      src/main/java/com/ydtech/modules/order/service/impl/InsPinAnAreaServiceImpl.java
  72. 14 3
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  73. 0 20
      src/main/resources/mapper/modules/admin/SysDeptAccountDao.xml
  74. 31 0
      src/main/resources/mapper/modules/admin/SysDeptAccountMapper.xml
  75. 102 0
      src/main/resources/mapper/modules/fnc/InsPlyIncomeMapper.xml
  76. 47 0
      src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml
  77. 17 0
      src/main/resources/mapper/modules/fnc/SettlementDocumentaryLogMapper.xml
  78. 2 2
      src/main/resources/mapper/modules/largescreen/AgreementDataMapper.xml
  79. 46 11
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml
  80. 2 4
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml

+ 27 - 0
src/main/java/com/ydtech/constants/enums/dict/ins/InsFeeAuditDistributionStatusEnum.java

@@ -0,0 +1,27 @@
+package com.ydtech.constants.enums.dict.ins;
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "InsFeeAuditDistributionStatus", desc = "费用订单表分销等级")
+public enum InsFeeAuditDistributionStatusEnum implements IBaseEnum {
+
+    DS_1("1","一级分销",0,1),
+
+    DS_2("2","二级分销",0,1),
+
+    DS_3("3","三级分销",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/constants/MoneyAttrConstants.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 金钱属性
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum MoneyAttrConstants {
+
+    M_1(1, "手续费"),
+    M_2(2,"跟单费"),
+    M_3(3,"推广费");
+
+    private final Integer code;
+
+    private final String desc;
+}

+ 23 - 0
src/main/java/com/ydtech/modules/admin/constants/WithdrawTypeConstants.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 提现类型
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum WithdrawTypeConstants {
+
+    WT_1("1", "提现"),
+    WT_2("2","收入");
+
+    private final String code;
+
+    private final String desc;
+}

+ 18 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountController.java

@@ -1,8 +1,13 @@
 package com.ydtech.modules.admin.controller;
 
 
+import com.github.pagehelper.IPage;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.dao.SysDeptAccountMapper;
+import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountDto;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
@@ -10,12 +15,15 @@ import com.ydtech.modules.admin.service.SysDeptAccountService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.List;
 
 @Api(tags = "机构账户表")
 @RequestMapping("/sysDeptAccount")
@@ -25,6 +33,9 @@ public class SysDeptAccountController extends BaseController {
     @Autowired
     private SysDeptAccountService sysDeptAccountService;
 
+    @Autowired
+    private SysDeptAccountMapper sysDeptAccountMapper;
+
     @PostMapping("/queryPage")
     @ApiOperation(value = "机构账户表")
     public HttpResult<BasePageResult<SysDeptAccountEntity>> queryPageOrder(@RequestBody @Valid SysDeptAccountVO sysDeptAccountVO ) {
@@ -32,6 +43,13 @@ public class SysDeptAccountController extends BaseController {
         return HttpResult.ok("success", result);
     }
 
+    @ApiOperation("机构账户表查询")
+    @PostMapping("sysDeptAccountPage")
+    public HttpResult sysDeptAccountPage(@RequestBody SysDeptAccountDto sysDeptAccountDto){
+
+        return HttpResult.ok("", sysDeptAccountMapper.getDept(sysDeptAccountDto));
+    }
+
 
     @PostMapping("/insert")
     @ApiOperation("提交")

+ 37 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountHistoryController.java

@@ -0,0 +1,37 @@
+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.SysDeptAccountHistory;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
+import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+import java.text.ParseException;
+
+@Api(tags = "机构账户历史明细表")
+@RequestMapping("/sysDeptAccountHistory")
+@RestController
+public class SysDeptAccountHistoryController extends BaseController {
+    @Autowired
+    private SysDeptAccountHistoryService sysDeptAccountHistoryService;
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "机构账户表日志记录分页")
+    public HttpResult getSysDeptAccountHistory(@RequestBody SysDeptAccountHistoryDto sysDeptAccountHistoryDto){
+        IPage<SysDeptAccountHistory> getSysDeptAccountHistory = sysDeptAccountHistoryService.selectList(sysDeptAccountHistoryDto);
+        PageResult pageResult = buildPageResponse(getSysDeptAccountHistory);
+        return HttpResult.ok(pageResult);
+    }
+}

+ 0 - 10
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountDao.java

@@ -1,10 +0,0 @@
-package com.ydtech.modules.admin.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.SysDeptAccountEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-@Mapper
-public interface SysDeptAccountDao extends BaseMapper<SysDeptAccountEntity> {
-}

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

@@ -0,0 +1,9 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysDeptAccountHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysDeptAccountHistoryMapper extends BaseMapper<SysDeptAccountHistory> {
+}

+ 17 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountMapper.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.pagehelper.IPage;
+import com.ydtech.modules.admin.model.QuTeamNum;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.dto.QuTeamNumDto;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface SysDeptAccountMapper extends BaseMapper<SysDeptAccountEntity> {
+    List<SysDeptAccountDto> getDept(@Param("sysDeptAccountDto") SysDeptAccountDto sysDeptAccountDto);
+}

+ 3 - 11
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountEntity.java

@@ -5,6 +5,7 @@ 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 com.ydtech.core.page.PageRequest;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -23,20 +24,11 @@ public class SysDeptAccountEntity implements Serializable {
     @TableId(value = "dept_id")
     private String deptId;
 
-    @TableField(value = "handling_fee")
-    private BigDecimal handlingFee;
-
-    @TableField(value = "documentary")
-    private BigDecimal documentary;
-
-    @TableField(value = "promotion")
-    private BigDecimal promotion;
-
+    @TableField(value = "management_fee")
+    private BigDecimal managementFee;
 
     @TableField(value = "create_time")
     private Date createTime;
 
 
-
-
 }

+ 61 - 0
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountHistory.java

@@ -0,0 +1,61 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@TableName(value = "sys_dept_account_history")
+@Data
+@ApiModel(value = "机构管理历史记录")
+public class SysDeptAccountHistory implements Serializable{
+        @ApiModelProperty(value = "历史记录ID")
+        @TableId(value = "id")
+        private String id;
+
+        @ApiModelProperty(value = "部门ID")
+        @TableField(value = "dept_id")
+        private String deptId;
+
+        @TableField(value = "amount")
+        private BigDecimal amount;
+
+        @ApiModelProperty(value = "剩余金额")
+        @TableField(value = "surplus_amount")
+        private BigDecimal surplusAmount;
+        @ApiModelProperty(value = "提现/收入 1提现 2收入")
+        @TableField(value = "documentary")
+        private String documentary;
+
+        @ApiModelProperty(value = "来源订单")
+        @TableField(value = "suborder")
+        private String suborder;
+
+        @ApiModelProperty(value = "转出银行卡")
+        @TableField(value = "from_bank_card")
+        private String fromBankCard;
+
+        @ApiModelProperty(value = "转入银行卡")
+        @TableField(value = "to_bank_card")
+        private String toBankCard;
+
+        @ApiModelProperty(value = "提交人")
+        @TableField(value = "user_id")
+        private String userId;
+
+        @ApiModelProperty(value = "创建时间")
+        @TableField(value = "create_time")
+        private Date createTime;
+
+        @ApiModelProperty(value = "备注")
+        @TableField(value = "remark")
+        private String remark;
+
+
+}

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

@@ -0,0 +1,30 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+@Data
+public class SysDeptAccountDto {
+    @ApiModelProperty("部门id")
+    private String deptId;
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("管理费")
+    private String managementFee;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private int pageNo;
+
+    @TableField(exist = false)
+    private int pageSize;
+}

+ 55 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysDeptAccountHistoryDto.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.admin.model.dto;
+
+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.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SysDeptAccountHistoryDto extends PageRequest {
+    @ApiModelProperty(value = "历史记录ID")
+    @TableId(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "部门ID")
+    @TableField(value = "dept_id")
+    private String deptId;
+
+    @TableField(value = "amount")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "剩余金额")
+    @TableField(value = "surplus_amount")
+    private BigDecimal surplusAmount;
+    @ApiModelProperty(value = "提现/收入 1提现 2收入")
+    @TableField(value = "documentary")
+    private String documentary;
+
+    @ApiModelProperty(value = "来源订单")
+    @TableField(value = "suborder")
+    private String suborder;
+
+    @ApiModelProperty(value = "转出银行卡")
+    @TableField(value = "from_bank_card")
+    private String fromBankCard;
+
+    @ApiModelProperty(value = "转入银行卡")
+    @TableField(value = "to_bank_card")
+    private String toBankCard;
+
+    @ApiModelProperty(value = "提交人")
+    @TableField(value = "user_id")
+    private String userId;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @ApiModelProperty(value = "备注")
+    @TableField(value = "remark")
+    private String remark;
+}

+ 17 - 0
src/main/java/com/ydtech/modules/admin/service/SysDeptAccountHistoryService.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysDeptAccountHistory;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
+import com.ydtech.modules.inv.model.InvAccountOperate;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+
+
+public interface SysDeptAccountHistoryService extends IService<SysDeptAccountHistory> {
+    IPage<SysDeptAccountHistory> selectList(SysDeptAccountHistoryDto sysDeptAccountHistoryDto);
+}

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

@@ -1,10 +1,13 @@
 package com.ydtech.modules.admin.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysDeptAccountEntity;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
 
 public interface SysDeptAccountService extends IService<SysDeptAccountEntity> {
     BasePageResult<SysDeptAccountEntity> queryByVo(SysDeptAccountVO sysDeptAccountVO);
@@ -15,7 +18,6 @@ public interface SysDeptAccountService extends IService<SysDeptAccountEntity> {
 
     void uodate(SysDeptAccountVO sysDeptAccountVO);
 
-    void addOrUpdate(SysDeptAccountEntity sysDeptAccountEntity);
 
 
 }

+ 46 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountHistoryServiceImpl.java

@@ -0,0 +1,46 @@
+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;
+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;
+import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
+import com.ydtech.modules.ser.dao.SerAnnualAuditOrderMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysDeptAccountHistoryServiceImpl extends ServiceImpl<SysDeptAccountHistoryMapper, SysDeptAccountHistory> implements SysDeptAccountHistoryService {
+    @Autowired
+    private SysDeptAccountHistoryService sysDeptAccountHistoryService;
+
+    @Autowired
+    private SysDeptAccountHistoryMapper sysDeptAccountHistoryMapper;
+    @Override
+    public IPage<SysDeptAccountHistory> selectList(SysDeptAccountHistoryDto sysDeptAccountHistoryDto) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(sysDeptAccountHistoryDto.getPageNum());
+        pageRequest.setPageSize(sysDeptAccountHistoryDto.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<SysDeptAccountHistory> queryWrapper = new LambdaQueryWrapper<>();
+        //机构Id
+        if (sysDeptAccountHistoryDto.getDeptId() != null && !"".equals(sysDeptAccountHistoryDto.getDeptId())) {
+            queryWrapper.likeRight(SysDeptAccountHistory::getDeptId, sysDeptAccountHistoryDto.getDeptId());
+        }
+        //提现、收入
+        if (sysDeptAccountHistoryDto.getDocumentary() != null && !"".equals(sysDeptAccountHistoryDto.getDocumentary())) {
+            queryWrapper.eq(SysDeptAccountHistory::getDocumentary, sysDeptAccountHistoryDto.getDocumentary());
+        }
+        //来源订单
+        if (sysDeptAccountHistoryDto.getSuborder() != null && !"".equals(sysDeptAccountHistoryDto.getSuborder())) {
+            queryWrapper.eq(SysDeptAccountHistory::getSuborder, sysDeptAccountHistoryDto.getSuborder());
+        }
+        Page pageData = sysDeptAccountHistoryMapper.selectPage(page, queryWrapper);
+
+        return pageData;
+    }
+}

+ 11 - 39
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java

@@ -1,24 +1,30 @@
 package com.ydtech.modules.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.modules.admin.dao.SysDeptAccountDao;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.admin.dao.SysDeptAccountMapper;
+import com.ydtech.modules.admin.model.QuTeamNum;
 import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountDto;
 import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
 import com.ydtech.modules.admin.service.SysDeptAccountService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
-import org.apache.commons.lang3.ObjectUtils;
 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.util.List;
 
 @Service
-public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountDao, SysDeptAccountEntity>  implements SysDeptAccountService {
-
+public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountMapper, SysDeptAccountEntity>  implements SysDeptAccountService {
+    @Autowired
+    private SysDeptAccountMapper sysDeptAccountMapper;
 
     @Override
     public BasePageResult<SysDeptAccountEntity> queryByVo(SysDeptAccountVO sysDeptAccountVO) {
@@ -54,38 +60,4 @@ public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountDao, Sy
         super.updateById(sysDeptAccountEntity);
     }
 
-    @Override
-    public void addOrUpdate(SysDeptAccountEntity sysDeptAccountEntity) {
-        //          如果用户id有值则累加   没有则 新增
-        BigDecimal handlingFee =BigDecimal.ZERO;
-        BigDecimal documentary = BigDecimal.ZERO;
-        BigDecimal promotion = BigDecimal.ZERO;
-
-        String deptId = sysDeptAccountEntity.getDeptId();
-        SysDeptAccountEntity sysUserAccountEntityById = super.getById(deptId);
-        if(ObjectUtils.isNotEmpty(sysUserAccountEntityById)){
-            if(sysUserAccountEntityById.getHandlingFee()==null){
-                sysUserAccountEntityById.setHandlingFee(handlingFee);
-            }
-            if (sysUserAccountEntityById.getDocumentary()==null){
-                sysUserAccountEntityById.setDocumentary(documentary);
-            }
-            if(sysUserAccountEntityById.getPromotion()==null){
-                sysUserAccountEntityById.setPromotion(promotion);
-            }
-            sysUserAccountEntityById.setHandlingFee(sysDeptAccountEntity.getHandlingFee().add(sysUserAccountEntityById.getHandlingFee()));
-            sysUserAccountEntityById.setDocumentary(sysDeptAccountEntity.getDocumentary().add(sysUserAccountEntityById.getDocumentary()));
-            sysUserAccountEntityById.setPromotion(sysDeptAccountEntity.getPromotion().add(sysUserAccountEntityById.getPromotion()));
-
-            baseMapper.updateById(sysUserAccountEntityById);
-        }else {
-            SysDeptAccountEntity newAccount = new SysDeptAccountEntity();
-            newAccount.setDeptId(deptId);
-            newAccount.setDocumentary(sysDeptAccountEntity.getDocumentary());
-            newAccount.setPromotion(sysDeptAccountEntity.getPromotion());
-            newAccount.setHandlingFee(sysDeptAccountEntity.getHandlingFee());
-            baseMapper.insert(newAccount);
-        }
-
-    }
 }

+ 22 - 17
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.constants.MoneyAttrConstants;
+import com.ydtech.modules.admin.constants.WithdrawTypeConstants;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
@@ -65,7 +67,6 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         SysUserAccount newAccount = new SysUserAccount();
 
         if (ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
-
             sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
             sysUserAccountEntity.setDocumentary(sysUserAccount.getDocumentary().add(sysUserAccountEntity.getDocumentary()));
             sysUserAccountEntity.setPromotion(sysUserAccount.getPromotion().add(sysUserAccountEntity.getPromotion()));
@@ -74,14 +75,15 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             }
             baseMapper.updateById(sysUserAccountEntity);
         } else {
-            newAccount.setUserId(userId);
-            newAccount.setDocumentary(sysUserAccount.getDocumentary());
-            newAccount.setPromotion(sysUserAccount.getPromotion());
-            newAccount.setHandlingFee(sysUserAccount.getHandlingFee());
+            sysUserAccountEntity = new SysUserAccount();
+            sysUserAccountEntity.setUserId(userId);
+            sysUserAccountEntity.setDocumentary(sysUserAccount.getDocumentary());
+            sysUserAccountEntity.setPromotion(sysUserAccount.getPromotion());
+            sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee());
             if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
-                newAccount.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
+                sysUserAccountEntity.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
             }
-            baseMapper.insert(newAccount);
+            baseMapper.insert(sysUserAccountEntity);
         }
 
         if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
@@ -89,37 +91,40 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
             sysUserAccountHistory.setUserId(sysUserAccount.getUserId());
             sysUserAccountHistory.setDocumentary(Integer.valueOf(sysUserAccount.getDocumentaryStatus()));
-            sysUserAccountHistory.setSuborder(sysUserAccountEntity.getSuborderId());
+            sysUserAccountHistory.setSuborder(sysUserAccount.getSuborderId());
+            //跟单费
             if(sysUserAccount.getDocumentary()!=null && sysUserAccount.getDocumentary().compareTo(BigDecimal.ZERO)!=0){
                 sysUserAccountHistory.setAmount(sysUserAccount.getDocumentary());
-                sysUserAccountHistory.setProperty(2);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getDocumentary().add(newSysAccount.getDocumentary()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_2.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getDocumentary());
                 }else {
                     BigDecimal subtract = newSysAccount.getDocumentary().subtract(sysUserAccount.getDocumentary());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
+            //手续费
             if(sysUserAccount.getHandlingFee()!=null  &&  sysUserAccount.getHandlingFee().compareTo(BigDecimal.ZERO) !=0){
                 sysUserAccountHistory.setId(null);
                 sysUserAccountHistory.setAmount(sysUserAccount.getHandlingFee());
-                sysUserAccountHistory.setProperty(1);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getHandlingFee().add(newSysAccount.getHandlingFee()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_1.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getHandlingFee());
                 }else {
                     BigDecimal subtract = newSysAccount.getHandlingFee().subtract(sysUserAccount.getHandlingFee());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
+            //推广费
             if(sysUserAccount.getPromotion() !=null && sysUserAccount.getPromotion().compareTo(BigDecimal.ZERO) !=0){
                 sysUserAccountHistory.setId(null);
 
                 sysUserAccountHistory.setAmount(sysUserAccount.getPromotion());
-                sysUserAccountHistory.setProperty(3);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getPromotion().add(newSysAccount.getPromotion()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_3.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getPromotion());
                 }else {
                     BigDecimal subtract = newSysAccount.getPromotion().subtract(sysUserAccount.getPromotion());
                     sysUserAccountHistory.setSurplusAmount(subtract);

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

@@ -712,6 +712,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public List<SysUser> findTree() {
         //获取领导字段不为空的人的ID
         List<SysUser> list1 = lambdaQuery().isNotNull(SysUser::getLeaderId).list();
+        if (list1 == null || list1.size() == 0){
+            return new ArrayList<>();
+        }
+
         List<String> collect1 = list1.stream().map(SysUser::getLeaderId).collect(Collectors.toList());
 
         //存放1级用户

+ 15 - 3
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -2661,8 +2661,20 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getJqDeptProportionLevel4())
                 .add(insFeeOrderNew.getJqDeptProportionLevel5());
 
+        //分销总比例
+        BigDecimal sumRetail = new BigDecimal(0);
+        if(insFeeOrderNew.getFirstDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getFirstDetailProportion());
+        }
+        if(insFeeOrderNew.getSecondDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getSecondDetailProportion());
+        }
+        if(insFeeOrderNew.getThirdDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getThirdDetailProportion());
+        }
+
         //交强总出口费比例
-        BigDecimal jqExportTotalProportion = jqEntranceFee.getTotalProportion().subtract(sumJqDeptProportion);
+        BigDecimal jqExportTotalProportion = jqEntranceFee.getTotalProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
 
         //交强出口手续费比例
         BigDecimal jqExportSuperviseCosts =
@@ -2717,7 +2729,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getSyDeptProportionLevel5());
 
         //商业总出口费比例
-        BigDecimal syExportTotalProportion = syEntranceFee.getTotalProportion().subtract(sumSyDeptProportion);
+        BigDecimal syExportTotalProportion = syEntranceFee.getTotalProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
 
         //商业出口手续费比例
         BigDecimal syExportSuperviseCosts =
@@ -2773,7 +2785,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getNoDeptProportionLevel5());
 
         //非车总出口费比例
-        BigDecimal nonExportTotalProportion = nonEntranceFee.getTotalProportion().subtract(sumNonDeptProportion);
+        BigDecimal nonExportTotalProportion = nonEntranceFee.getTotalProportion().subtract(sumNonDeptProportion).subtract(sumRetail);
 
         //非车出口手续费比例
         BigDecimal nonExportSuperviseCosts =

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

@@ -400,23 +400,24 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             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){
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
-                    insFeeOrderNew.setFirstDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setFirstDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 2){
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
                     }
                 }
                 if(Integer.parseInt(esmRetail.getRetailtype()) >= 2){
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
-                    insFeeOrderNew.setSecondDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setSecondDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 1){
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
                     }
                 }
                 if(Integer.parseInt(esmRetail.getRetailtype()) >= 1){
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
-                    insFeeOrderNew.setThirdDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setThirdDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
                     }

+ 35 - 4
src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.fnc.controller;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.fnc.entity.InsPlyIncome;
 import com.ydtech.modules.fnc.service.InsPlyIncomeService;
@@ -10,15 +11,15 @@ import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.OrderQueryVo;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.time.LocalDate;
 import java.time.Period;
+import java.util.List;
 
 /**
  * <p>
@@ -64,5 +65,35 @@ public class InsPlyIncomeController extends BaseController {
 
         return result;
     }
+    @PostMapping("/query")
+    @ApiOperation(value = "[1]保司费用查询new")
+    public HttpResult<BasePageResult<InsPlyIncome>> query(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
+
+        HttpResult<BasePageResult<InsPlyIncome>> result=insPlyIncomeService.queryNew(insPlyIncomeVo);
+
+        return result;
+    }
+    @PutMapping("/balance")
+    @ApiModelProperty(value = "结算手续费")
+    public HttpResult<Object> balance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
+        insPlyIncomeService.uodateBalance(insPlyIncomeVo);
+        return HttpResult.ok("手续费结算成功");
+    }
+
+    @PostMapping("/totalQuery")
+    @ApiOperation(value = "跟单费总数")
+    public HttpResult<BasePageResult<InsPlyIncome>> totalQuery(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
+        HttpResult<BasePageResult<InsPlyIncome>> result=insPlyIncomeService.totalQuery(insPlyIncomeVo);
+        return result;
+    }
+
+    @PutMapping("/batchBalance")
+    @ApiModelProperty(value = "批量跟单费")
+    public HttpResult<Object> batchBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
+        insPlyIncomeService.batchBalance(insPlyIncomeVo);
+        return HttpResult.ok("批量跟单费结算成功");
+    }
+
+
 
 }

+ 40 - 0
src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesController.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.fnc.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@RestController
+@Api(tags = "跟单费结算")
+@RequestMapping("/fnc/SettlementFees")
+public class SettlementDocumentaryFeesController extends BaseController {
+    @Autowired
+    private SettlementDocumentaryFeesService settlementDocumentaryFeesService;
+
+    @PostMapping("/query")
+    @ApiOperation(value = "查询")
+    public BasePageResult<SettlementDocumentaryFeesEntity> query(@RequestBody @Valid SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+        BasePageResult<SettlementDocumentaryFeesEntity> result=settlementDocumentaryFeesService.querySettle(settlementDocumentaryFeesVo);
+        return result;
+    }
+
+    @PostMapping("/insert")
+    @ApiOperation("提交")
+    public void submit(@RequestBody SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+       settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
+    }
+
+}

+ 40 - 0
src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryLogController.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.fnc.controller;
+
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryLogVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@RestController
+@Api(tags = "跟单费结算")
+@RequestMapping("/fnc/SettlementFeesLog")
+public class SettlementDocumentaryLogController {
+
+
+
+    @Autowired
+    private SettlementDocumentaryLogService settlementDocumentaryLogService;
+
+    @PostMapping("/query")
+    @ApiOperation(value = "查询")
+    public BasePageResult<SettlementDocumentaryLogEntity> query(@RequestBody @Valid SettlementDocumentaryLogVo settlementDocumentaryLogVo) {
+        BasePageResult<SettlementDocumentaryLogEntity> result=settlementDocumentaryLogService.querySettle(settlementDocumentaryLogVo);
+        return result;
+    }
+
+
+
+
+}

+ 11 - 0
src/main/java/com/ydtech/modules/fnc/dao/InsPlyIncomeMapper.java

@@ -1,13 +1,16 @@
 package com.ydtech.modules.fnc.dao;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.fnc.entity.InsPlyIncome;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.fnc.entity.InsPlySettleDetail;
 import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
 import com.ydtech.modules.fnc.vo.InsPlySettleVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -72,4 +75,12 @@ public interface InsPlyIncomeMapper extends BaseMapper<InsPlyIncome> {
     )
     List<InsPlyIncome> selectSettleByCondition(InsPlySettleVo insPlySettleVo);
 
+
+
+    List<InsPlyIncome> queryNew(HashMap<String, Object> params);
+
+    List<InsPlyIncome> totalQuery(HashMap<String, Object> params);
+
+    void uopdateByOrderno(InsPlyIncome insPlyIncome);
+
 }

+ 19 - 0
src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryFeesMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Mapper
+public interface SettlementDocumentaryFeesMapper  extends BaseMapper<SettlementDocumentaryFeesEntity> {
+
+    Page<SettlementDocumentaryFeesEntity> querySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo, Page<SettlementDocumentaryFeesEntity> page);
+
+    List<SettlementDocumentaryFeesEntity> checkDate(HashMap<String, Object> params);
+}

+ 12 - 0
src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryLogMapper.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface SettlementDocumentaryLogMapper extends BaseMapper<SettlementDocumentaryLogEntity> {
+}

+ 62 - 1
src/main/java/com/ydtech/modules/fnc/entity/InsPlyIncome.java

@@ -31,10 +31,18 @@ public class InsPlyIncome implements Serializable {
     @TableField("orderno")
     private String orderno;
 
-    @ApiModelProperty("保单号")
+    @ApiModelProperty("交强保单号")
     @TableField("policyno")
     private String policyno;
 
+    @ApiModelProperty("商业保单号")
+    @TableField("sy_policyno")
+    private String syPolicyno;
+
+    @ApiModelProperty("非车保单号")
+    @TableField("no_policyno")
+    private String noPolicyno;
+
     @ApiModelProperty("结算单号")
     @TableField(exist = false)
     private String settleno;
@@ -113,4 +121,57 @@ public class InsPlyIncome implements Serializable {
     @ApiModelProperty("记录插入时间")
     @TableField("create_time")
     private LocalDateTime createTime;
+
+    @ApiModelProperty("凭证号")
+    @TableField("voucher_number")
+    private String voucherNumber;
+
+    @ApiModelProperty("合同号")
+    @TableField("contract_id")
+    private String contractId;
+
+    @ApiModelProperty("合同附件id")
+    @TableField("contract_file_id")
+    private String contractFileId;
+
+    @ApiModelProperty("手续费结算状态  1 为已结算")
+    @TableField("handling_fees_status")
+    private String handlingFeesStatus;
+
+
+    @ApiModelProperty("跟单费结算状态  1 为已结算")
+    @TableField("documentary_fees_status")
+    private String documentaryFeesStatus;
+
+
+    @ApiModelProperty("是否是非车")
+    @TableField("is_not_car")
+    private String isNotCar;
+
+
+    @ApiModelProperty("总单数")
+    @TableField(exist = false)
+    private String totalorders;
+
+
+    @ApiModelProperty("总费用")
+    @TableField(exist = false)
+    private String totAmount;
+
+
+    @ApiModelProperty("协议类型")
+    @TableField(exist = false)
+    private String agreementtype;
+
+
+    @ApiModelProperty("ids")
+    @TableField(exist = false)
+    private String ids;
+
+    @ApiModelProperty("时间范围")
+    @TableField(exist = false)
+    private String timeFrame;
+
+
+
 }

+ 66 - 0
src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesEntity.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.fnc.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+@TableName("settlement_documentary_fees")
+@ApiModel(value = "SettlementDocumentaryFees对象", description = "跟单费结算")
+public class SettlementDocumentaryFeesEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty("主键")
+    @TableId("id")
+    private String id;
+
+
+    @ApiModelProperty("结算单数")
+    @TableField("total_orders")
+    private String totalOrders;
+
+    @ApiModelProperty("时间范围")
+    @TableField("time_frame")
+    private String timeFrame;
+
+    @ApiModelProperty("结算总金额")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("结算金额")
+    @TableField("settlement_amount")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("未结算金额")
+    @TableField("unsettled_amount")
+    private BigDecimal unsettledAmount;
+
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+
+    @ApiModelProperty("开始时间")
+    @TableField("start_time")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    @TableField("end_time")
+    private LocalDateTime endTime;
+
+
+
+
+}

+ 40 - 0
src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryLogEntity.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.fnc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Getter
+@Setter
+@TableName("settlement_documentary_log")
+@ApiModel(value = "SettlementDocumentaryLog对象", description = "跟单费结算日志")
+public class SettlementDocumentaryLogEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("主键")
+    @TableId("id")
+    private String id;
+
+    @ApiModelProperty("金额")
+    @TableField("amount")
+    private BigDecimal amount;
+
+    @ApiModelProperty("关联跟单费id")
+    @TableField("settlement_documentary_id")
+    private String settlementDocumentaryId;
+
+    @ApiModelProperty("金额类型")
+    @TableField("amount_type")
+    private String amountType;
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    private Date createTime;
+}

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

@@ -13,6 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface InsFeeAuditService extends IService<InsFeeAudit> {
 
-    public void feeAudit(String orderNo,String insOrderNo) throws Exception;
+     void feeAudit(String orderNo,String insOrderNo) throws Exception;
 
 }

+ 15 - 0
src/main/java/com/ydtech/modules/fnc/service/InsPlyIncomeService.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.util.List;
+
 /**
  * <p>
  * 保司结算手续费 服务类
@@ -16,4 +18,17 @@ import com.ydtech.modules.order.entity.BasePageResult;
  */
 public interface InsPlyIncomeService extends IService<InsPlyIncome> {
     public HttpResult<BasePageResult<InsPlyIncome>> queryplyIncome(InsPlyIncomeVo insPlyIncomeVo);
+
+    void saveBalance(String companyId, String orderno);
+
+
+
+    void uodateBalance(InsPlyIncomeVo insPlyIncomeVo);
+
+
+    HttpResult<BasePageResult<InsPlyIncome>> totalQuery(InsPlyIncomeVo insPlyIncomeVo);
+
+    void batchBalance(InsPlyIncomeVo insPlyIncomeVo);
+
+    HttpResult<BasePageResult<InsPlyIncome>> queryNew(InsPlyIncomeVo insPlyIncomeVo);
 }

+ 18 - 0
src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesService.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.fnc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.HashMap;
+
+public interface SettlementDocumentaryFeesService extends IService<SettlementDocumentaryFeesEntity> {
+    BasePageResult<SettlementDocumentaryFeesEntity> querySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo);
+
+    void inertSettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo);
+
+    String checkDate(HashMap<String, Object> params);
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryLogService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.fnc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryLogVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface SettlementDocumentaryLogService extends IService<SettlementDocumentaryLogEntity> {
+    BasePageResult<SettlementDocumentaryLogEntity> querySettle(SettlementDocumentaryLogVo settlementDocumentaryLogVo);
+
+}

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

@@ -3,14 +3,14 @@ package com.ydtech.modules.fnc.service.impl;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.SysDeptAccountHistory;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
-import com.ydtech.modules.admin.service.SysDeptAccountService;
-import com.ydtech.modules.admin.service.SysDeptService;
-import com.ydtech.modules.admin.service.SysUserAccountService;
-import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.admin.service.*;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
 import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
@@ -30,19 +30,18 @@ import com.ydtech.modules.fnc.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsFeeOrder;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.service.InsFeeOrderService;
-import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.utils.DateUtil;
 import com.ydtech.utils.StringUtils;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.math.NumberUtils;
-import org.apache.poi.hpsf.Decimal;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
@@ -84,6 +83,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private SysDeptAccountService sysDeptAccountService;
 
+    @Autowired
+    private SysDeptAccountHistoryService sysDeptAccountHistoryService;
+
 
     public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsFeeOrderService insFeeOrderService,InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
         this.insAreaCompanyMapper = insAreaCompanyMapper;
@@ -146,25 +148,92 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         if(StringUtils.isNotEmpty(order.getUserid())){
 //            用戶賬戶表
             SysUserAccount sysUserAccount = new SysUserAccount();
-//            部門金額表
-            SysDeptAccountEntity sysDeptAccountEntity = new SysDeptAccountEntity();
+
             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 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 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 jqOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
-                BigDecimal syOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
-                BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
+                //非车手续费出口比例
+                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);
 
 
-                BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion);  //非跟单费用
 //              用戶
                 sysUserAccount.setHandlingFee(totalPremiumAmount);
                 sysUserAccount.setDocumentary(totalOtherPremiumAmount);
@@ -172,93 +241,178 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 this.countUserAmount(insFeeOrderNew,orderNo);
                 sysUserAccount.setDocumentaryStatus("2");  // 收入
                 sysUserAccount.setSuborderId(orderNo);  // 订单Id
-//              部门金额
-                sysDeptAccountEntity.setHandlingFee(totalPremiumAmount);
-                sysDeptAccountEntity.setDocumentary(totalOtherPremiumAmount);
-//                sysDeptAccountEntity.setPromotion(noPremium);
-                sysDeptAccountEntity.setDeptId(order.getDeptid());
                 sysUserAccountService.addOrUpdate(sysUserAccount);
-                sysDeptAccountService.addOrUpdate(sysDeptAccountEntity);
 
 
+                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);
+                    // 获取对应级别的机构信息
+                    SysDeptAccountEntity levelSysDeptAccount = sysDeptAccountService.getOne(new LambdaQueryWrapper<SysDeptAccountEntity>()
+                            .eq(SysDeptAccountEntity::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 {
+                        // 如果机构信息为空,新建机构信息并记录历史
+                        SysDeptAccountEntity sysDeptAccount = new SysDeptAccountEntity();
+                        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);
+                    }
+                }
             }
         }
-
     }
 
-        private void countUserAmount(InsFeeOrderNew insFeeOrderNew ,String orderNo) {
-            String distributionStatus = insFeeOrderNew.getDistributionStatus();
-            if(StringUtils.isNotEmpty(distributionStatus)){
-                if("3".equals(distributionStatus)){
-                    BigDecimal totalDept = BigDecimal.ZERO;
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
-                        String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
-                        BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
-                        this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
-                    }else {
-                        totalDept =  totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
-                    }
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
-                        String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
-                        BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
-                        this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
-                    }else {
-                        totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
-                    }
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getThreeLevelUserId())){
-                        String threeLevelUserId = insFeeOrderNew.getThreeLevelUserId();
-                        BigDecimal threeDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
-                        this.saveUpdateAccount(threeLevelUserId,threeDetailPremiums,orderNo);
-                    }else {
-                        totalDept =totalDept.add(insFeeOrderNew.getThirdDetailPremiums());
-                    }
-//                     机构管理 费用给五级交钱机构管理费
-                    if(totalDept.compareTo(BigDecimal.ZERO) ==0){
-                        BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
-                        jqDeptPremiumsLevel5.add(totalDept);
-                        insFeeOrderNewService.updateById(insFeeOrderNew);
-                    }
-                } else if ("2".equals(distributionStatus)) {
-                    BigDecimal totalDept = BigDecimal.ZERO;
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
-                        String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
-                        BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
-                        this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
-                    }else {
-                        totalDept =  totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
-                    }
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
-                        String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
-                        BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
-                        this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
-                    }else {
-                        totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
-                    }
+    private void countUserAmount(InsFeeOrderNew insFeeOrderNew ,String orderNo) {
+        String distributionStatus = insFeeOrderNew.getDistributionStatus();
+        if(StringUtils.isNotEmpty(distributionStatus)){
+            if(InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus)){
+                BigDecimal totalDept = BigDecimal.ZERO;
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
+                    String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
+                    BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
+                    this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
+                }else {
+                    totalDept =  totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
+                }
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
+                    String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
+                    BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
+                    this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
+                }else {
+                    totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
+                }
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getThreeLevelUserId())){
+                    String threeLevelUserId = insFeeOrderNew.getThreeLevelUserId();
+                    BigDecimal threeDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
+                    this.saveUpdateAccount(threeLevelUserId,threeDetailPremiums,orderNo);
+                }else {
+                    totalDept =totalDept.add(insFeeOrderNew.getThirdDetailPremiums());
+                }
 //                     机构管理 费用给五级交钱机构管理费
-                    if(totalDept.compareTo(BigDecimal.ZERO) ==0){
-                        BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
-                        jqDeptPremiumsLevel5.add(totalDept);
-                        insFeeOrderNewService.updateById(insFeeOrderNew);
-                    }
+                if(totalDept.compareTo(BigDecimal.ZERO) ==0){
+                    BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
+                    jqDeptPremiumsLevel5.add(totalDept);
+                    insFeeOrderNewService.updateById(insFeeOrderNew);
+                }
+                } else if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus)) {
+                BigDecimal totalDept = BigDecimal.ZERO;
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
+                    String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
+                    BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
+                    this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
                 }else {
+                    totalDept =  totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
+                }
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
+                    String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
+                    BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
+                    this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
+                }else {
+                    totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
+                }
+//                     机构管理 费用给五级交钱机构管理费
+                if(totalDept.compareTo(BigDecimal.ZERO) ==0){
+                    BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
+                    jqDeptPremiumsLevel5.add(totalDept);
+                    insFeeOrderNewService.updateById(insFeeOrderNew);
+                }
+            }else {
 //                    一级分销
 
-                    if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
-                        String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
-                        BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
-                        this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
-                    }else {
-                        if(insFeeOrderNew.getFirstDetailPremiums().compareTo(BigDecimal.ZERO) ==0){
-                            BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
-                            jqDeptPremiumsLevel5.add(insFeeOrderNew.getFirstDetailPremiums());
-                            insFeeOrderNewService.updateById(insFeeOrderNew);
-                        }
+                if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
+                    String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
+                    BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
+                    this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
+                }else {
+                    if(insFeeOrderNew.getFirstDetailPremiums().compareTo(BigDecimal.ZERO) ==0){
+                        BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
+                        jqDeptPremiumsLevel5.add(insFeeOrderNew.getFirstDetailPremiums());
+                        insFeeOrderNewService.updateById(insFeeOrderNew);
                     }
                 }
             }
-
         }
 
+    }
+
     private void saveUpdateAccount(String userId, BigDecimal amount, String orderNo) {
         SysUserAccount sysUserAccount = new SysUserAccount();
         sysUserAccount.setUserId(userId);

+ 220 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -1,18 +1,42 @@
 package com.ydtech.modules.fnc.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
+import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 import com.ydtech.modules.fnc.entity.InsPlyIncome;
 import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
 import com.ydtech.modules.fnc.service.InsPlyIncomeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
 import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
+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.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -27,6 +51,19 @@ import java.util.List;
 public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, InsPlyIncome> implements InsPlyIncomeService {
 
 
+    @Autowired
+    private InsOrdersService insOrdersService;
+    @Autowired
+    private InsAreaCompanyService insAreaCompanyService;
+
+    @Autowired
+    private InsFeeOrderNewService insFeeOrderNewService;
+    @Autowired
+    private SettlementDocumentaryFeesService settlementDocumentaryFeesService;
+    @Autowired
+    private SettlementDocumentaryLogService settlementDocumentaryLogService;
+
+
     public HttpResult<BasePageResult<InsPlyIncome>> queryplyIncome(InsPlyIncomeVo insPlyIncomeVo){
 
         try{
@@ -44,5 +81,188 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
 
 
 
+    }
+
+    @Override
+    public void saveBalance(String companyId, String orderno) {
+        InsOrders insOrders = insOrdersService.getById(orderno);
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(companyId);
+        this.saveBalanc(insFeeOrderNew, insOrders, insAreaCompany);
+    }
+
+
+
+    private void saveBalanc(InsFeeOrderNew insFeeOrderNew, InsOrders insOrders, InsAreaCompany insAreaCompany) {
+        InsPlyIncome insPlyIncome = new InsPlyIncome();
+
+
+        insPlyIncome.setOrderno(insFeeOrderNew.getId());  // 子订单号
+//      存储保单号
+        try {
+            this.setPolicyno(insPlyIncome,insAreaCompany);
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
+
+        insPlyIncome.setDeptId(insFeeOrderNew.getDeptId());
+        insPlyIncome.setRiskcode(insOrders.getProductid());
+        insPlyIncome.setPayDate(insAreaCompany.getPayDate());
+        insPlyIncome.setSignDate(insAreaCompany.getSigningTime());
+        insPlyIncome.setCompanyId(insAreaCompany.getCompanyId());
+        insPlyIncome.setAgreementId(insFeeOrderNew.getAgreementId());
+        insPlyIncome.setLicenseno(insOrders.getLicenseno());
+        insPlyIncome.setTaxamount(insAreaCompany.getTaxamount());
+
+        BigDecimal bigDecimal = this.sumAmount(insFeeOrderNew.getJqNoTaxPremium(), insFeeOrderNew.getSyNoTaxPremium(), insFeeOrderNew.getNoNoTaxPremium());
+        //      不含保费
+        insPlyIncome.setNoTaxPremium(bigDecimal);
+//      手续费比例
+        BigDecimal CostsProportion = this.sumAmount(insFeeOrderNew.getJqSuperviseCostsProportion(), insFeeOrderNew.getSySuperviseCostsProportion(), insFeeOrderNew.getNoSuperviseCostsProportion());
+        insPlyIncome.setCommissionFeerate(CostsProportion);
+//      其他费用比例
+        BigDecimal OtherCostsProportion = this.sumAmount(insFeeOrderNew.getJqOtherCostsProportion(), insFeeOrderNew.getSyOtherCostsProportion(), insFeeOrderNew.getNoOtherCostsProportion());
+        insPlyIncome.setOtherFeerate(OtherCostsProportion);
+//        手续费金额
+        BigDecimal SuperviseCostsPremiums = this.sumAmount(insFeeOrderNew.getJqSuperviseCostsPremiums(), insFeeOrderNew.getSySuperviseCostsPremiums(), insFeeOrderNew.getNoSuperviseCostsPremiums());
+        insPlyIncome.setCommissionFeevalue(SuperviseCostsPremiums);
+//      其他费用金额
+        BigDecimal OtherCostsPremiums = this.sumAmount(insFeeOrderNew.getJqOtherCostsPremiums(), insFeeOrderNew.getSyOtherCostsPremiums(), insFeeOrderNew.getNoOtherCostsPremiums());
+        insPlyIncome.setOtherFeevalue(OtherCostsPremiums);
+        insPlyIncome.setAllFeeValue(SuperviseCostsPremiums.add(OtherCostsPremiums));
+        insPlyIncome.setCreateTime(LocalDateTime.now());
+        insPlyIncome.setDocumentaryFeesStatus("0");
+        insPlyIncome.setHandlingFeesStatus("0");
+        baseMapper.insert(insPlyIncome);
+
+    }
+
+    private void setPolicyno(InsPlyIncome insPlyIncome, InsAreaCompany insAreaCompany) throws JsonProcessingException {
+        ObjectMapper objJson = new ObjectMapper();
+
+        String jqpolicyno = insAreaCompany.getJqpolicyno();  // 交强保单号
+        String sypolicyno = insAreaCompany.getSypolicyno();  // 商业保单号
+        JSONArray crossInsurance = insAreaCompany.getCrossInsurance();  // 非车保单号
+
+        if(ObjectUtils.isNotEmpty(jqpolicyno)){
+            insPlyIncome.setPolicyno(jqpolicyno);
+
+        }
+        if(ObjectUtils.isNotEmpty(sypolicyno)){
+            insPlyIncome.setSyPolicyno(sypolicyno);
+        }
+        if(ObjectUtils.isNotEmpty(crossInsurance)){
+         JsonNode   jsonArryNode= objJson.readTree(crossInsurance.toJSONString());
+            if (jsonArryNode.isArray()) {
+                for (JsonNode jsonNode : jsonArryNode) {
+                    JsonNode jsonNode1 = jsonNode.get("policyNumber");//非车保单号
+                    if(ObjectUtils.isNotEmpty(jsonNode1)){
+                        insPlyIncome.setNoPolicyno(jsonNode1.asText());
+                    }else {
+                       String  nopolicy =   jsonNode.get("policy").asText();   //非车保单号
+                        insPlyIncome.setNoPolicyno(nopolicy);
+                    }
+                }
+            }
+
+        }
+
+
+    }
+
+    private BigDecimal sumAmount(BigDecimal amount1, BigDecimal amount2, BigDecimal amount3) {
+        BigDecimal jqNoTaxPremium = (amount1 != null) ? amount1 : BigDecimal.ZERO;
+        BigDecimal syNoTaxPremium = (amount2 != null) ? amount2 : BigDecimal.ZERO;
+        BigDecimal noNoTaxPremium = (amount3 != null) ? amount3 : BigDecimal.ZERO;
+
+        return jqNoTaxPremium.add(syNoTaxPremium).add(noNoTaxPremium);
+    }
+
+
+    public HttpResult<BasePageResult<InsPlyIncome>> queryNew(InsPlyIncomeVo insPlyIncomeVo){
+        try{
+            HashMap<String, Object> params = new HashMap<>();
+            PageInfo<List<InsPlyIncome>> pageHelper = null;
+            PageHelper.startPage(insPlyIncomeVo.getPageNum(),insPlyIncomeVo.getPageSize());
+            params.put("pageNum",insPlyIncomeVo.getPageNum());
+            params.put("pageSize",insPlyIncomeVo.getPageSize());
+            params.put("startDate",insPlyIncomeVo.getStartDate().toString());
+            params.put("endDate",insPlyIncomeVo.getEndDate().toString());
+            List<InsPlyIncome> list= this.baseMapper.queryNew(params);
+            pageHelper=new PageInfo(list);
+            BasePageResult<InsPlyIncome> pageResult=new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
+            return HttpResult.ok(pageResult);
+        }catch (Exception e){
+            e.printStackTrace();
+            return HttpResult.error("查询异常");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void uodateBalance(InsPlyIncomeVo insPlyIncomeVo) {
+        InsPlyIncome insPlyIncome = new InsPlyIncome();
+        BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
+        baseMapper.uopdateByOrderno(insPlyIncome);
+
+//        生成记录
+        SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
+        settlementDocumentaryLogEntity.setAmount(insPlyIncomeVo.getCommissionFeevalue());  // 手续费金额
+        settlementDocumentaryLogEntity.setSettlementDocumentaryId(insPlyIncomeVo.getOrderno()); // 关联id
+        settlementDocumentaryLogEntity.setAmountType("1");  //手续费结算
+        settlementDocumentaryLogEntity.setCreateTime(new Date());
+        settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
+    }
+
+    @Override
+    @Transactional
+    public HttpResult<BasePageResult<InsPlyIncome>> totalQuery(InsPlyIncomeVo insPlyIncomeVo) {
+        HashMap<String, Object> params = new HashMap<>();
+        PageInfo<List<InsPlyIncome>> pageHelper = null;
+        params.put("startDate",insPlyIncomeVo.getStartDate().toString());
+        params.put("endDate",insPlyIncomeVo.getEndDate().toString());
+//      判断非跟单结算日期是否已经存在
+        String resultDate = this.JudgingDate(params);
+        if(StringUtils.isNotEmpty(resultDate)){
+            return HttpResult.error("该时间段已近有单据做过结算,请结算");
+        }
+
+        params.put("pageNum",insPlyIncomeVo.getPageNum());
+        params.put("pageSize",insPlyIncomeVo.getPageSize());
+        List<InsPlyIncome> list= this.baseMapper.totalQuery(params);
+        pageHelper=new PageInfo(list);
+
+        return  HttpResult.ok(new BasePageResult<>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list));
+    }
+
+    private String JudgingDate(HashMap<String, Object> params) {
+        if(ObjectUtils.isNotEmpty(params.get("startDate"))  &&  ObjectUtils.isNotEmpty(params.get("endDate")) ){
+            String   checkResult = settlementDocumentaryFeesService.checkDate(params);
+            if(StringUtils.isNotEmpty(checkResult)){
+                return checkResult;
+            }
+        }
+        return  null;
+
+    }
+
+    @Override
+    @Transactional
+    public void batchBalance(InsPlyIncomeVo insPlyIncomeVo) {
+//      生成新数据
+        SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();
+        settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getTotAmount());
+        settlementDocumentaryFeesVo.setTotalOrders(insPlyIncomeVo.getTotalorders());
+        settlementDocumentaryFeesVo.setTimeFrame(insPlyIncomeVo.getTimeFrame());
+        settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
+        settlementDocumentaryFeesVo.setStartTime(insPlyIncomeVo.getStartDate().atStartOfDay());
+        settlementDocumentaryFeesVo.setEndTime(insPlyIncomeVo.getEndDate().atStartOfDay());
+        settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());//  结算金额
+        settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getTotAmount().subtract(insPlyIncomeVo.getSettlementAmount()));  //未结算金额
+
+        settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
+
+
+//
     }
 }

+ 62 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesServiceImpl.java

@@ -0,0 +1,62 @@
+package com.ydtech.modules.fnc.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+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.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class SettlementDocumentaryFeesServiceImpl extends ServiceImpl<SettlementDocumentaryFeesMapper, SettlementDocumentaryFeesEntity> implements SettlementDocumentaryFeesService {
+
+        @Autowired
+        private SettlementDocumentaryLogService settlementDocumentaryLogService;
+    @Override
+    public BasePageResult<SettlementDocumentaryFeesEntity> querySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+
+        Page<SettlementDocumentaryFeesEntity> page = new Page<>(settlementDocumentaryFeesVo.getPageNum(), settlementDocumentaryFeesVo.getPageSize());
+
+        Page<SettlementDocumentaryFeesEntity> resultPage  = baseMapper.querySettle(settlementDocumentaryFeesVo,page);
+
+        return new BasePageResult<>(settlementDocumentaryFeesVo.getPageNum(),page.getSize(),resultPage.getTotal(),page.getPages(),resultPage.getRecords());
+    }
+
+    @Override
+    @Transactional
+    public void inertSettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+        SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = new SettlementDocumentaryFeesEntity();
+        BeanUtils.copyProperties(settlementDocumentaryFeesVo, settlementDocumentaryFeesEntity);
+        baseMapper.insert(settlementDocumentaryFeesEntity);
+
+        //       生成跟单费结算记录
+        SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
+        settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount());  // 结算金额
+        settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
+        settlementDocumentaryLogEntity.setAmountType("2");  //跟单费结算
+        settlementDocumentaryLogEntity.setCreateTime(new Date());
+        settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
+    }
+
+    @Override
+    public String  checkDate(HashMap<String, Object> params) {
+
+        List<SettlementDocumentaryFeesEntity> startList=  baseMapper.checkDate(params);
+        if(startList.size()>0 ){
+            return "有重复";
+        }
+        return null;
+    }
+}

+ 25 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryLogImpl.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.fnc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.dao.SettlementDocumentaryLogMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryLogVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class SettlementDocumentaryLogImpl extends ServiceImpl<SettlementDocumentaryLogMapper, SettlementDocumentaryLogEntity> implements SettlementDocumentaryLogService {
+
+
+    @Override
+    public BasePageResult<SettlementDocumentaryLogEntity> querySettle(SettlementDocumentaryLogVo settlementDocumentaryLogVo) {
+        return null;
+    }
+
+
+}

+ 53 - 1
src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java

@@ -4,6 +4,7 @@ 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 com.ydtech.modules.order.entity.po.InsUploadFiles;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,6 +13,7 @@ import lombok.Setter;
 
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
+import java.io.File;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -42,7 +44,7 @@ public class InsPlyIncomeVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate endDate;
 
-    @ApiModelProperty("保单号")
+    @ApiModelProperty("交强保单号")
     private String policyno;
 
     @ApiModelProperty("机构")
@@ -62,6 +64,12 @@ public class InsPlyIncomeVo implements Serializable {
 
     private String flag;//0待结算
 
+    @ApiModelProperty("手续费金额")
+    private BigDecimal commissionFeevalue;
+
+    @ApiModelProperty("其他费用金额")
+    private BigDecimal otherFeevalue;
+
     @ApiModelProperty(value = "每页页数")
     @Min(value = 20, message = "页数最小为20")
     @Max(value = 100, message = "页数最大为100")
@@ -70,4 +78,48 @@ public class InsPlyIncomeVo implements Serializable {
     @ApiModelProperty(value = "页数")
     @Min(value = 1, message = "页数最小为1")
     private int pageNum=1;
+
+    @ApiModelProperty("协议类型")
+    private String agreementType;
+
+    @ApiModelProperty("时间范围")
+    private String timeFrame;
+
+    @ApiModelProperty("凭证号")
+    private String voucherNumber;
+
+    @ApiModelProperty("合同号")
+    private String contractId;
+
+    @ApiModelProperty("合同附件id")
+    private String contractFileId;
+
+    @ApiModelProperty("手续费结算状态  1 为已结算")
+    private String handlingFeesStatus;
+
+
+    @ApiModelProperty("跟单费结算状态  1 为已结算")
+    private String documentaryFeesStatus;
+
+
+    @ApiModelProperty("总单数")
+    private String  totalorders;
+
+    @ApiModelProperty("ids")
+    private String  ids;
+
+    @ApiModelProperty("总手续费")
+    private BigDecimal  totAmount;
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("商业保单号")
+    private String syPolicyno;
+
+    @ApiModelProperty("非车保单号")
+    private String noPolicyno;
+
+    @ApiModelProperty("是否非车")
+    private String isNotCar;
+
 }

+ 58 - 0
src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesVo.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.fnc.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("跟单费用结算")
+public class SettlementDocumentaryFeesVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("结算单数")
+    private String totalOrders;
+
+    @ApiModelProperty("时间范围")
+    private String timeFrame;
+
+    @ApiModelProperty("结算总金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("结算金额")
+    @TableField("settlement_amount")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("未结算金额")
+    @TableField("unsettled_amount")
+    private BigDecimal unsettledAmount;
+
+    @ApiModelProperty("开始时间")
+    @TableField("start_time")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    @TableField("end_time")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize=20;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum=1;
+}

+ 46 - 0
src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryLogVo.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.fnc.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("跟单费用结算")
+public class SettlementDocumentaryLogVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("id")
+    private String id;
+
+
+    @ApiModelProperty("金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("关联跟单费id")
+    private String settlementDocumentaryId;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize=20;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum=1;
+
+    @ApiModelProperty("金额类型")
+    private String amountType;
+
+
+}

+ 1 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -51,6 +51,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      */
     Page<InsOrders> getPendingAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 
+    Page<InsOrders> getAlreadyAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 }
 
 

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

@@ -0,0 +1,14 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.api.pingan.area.InsPinAnArea;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/12 9:23
+ *  @Description:  针对平安区域的转换
+ */
+public interface InsPinAnAreaMapper extends BaseMapper<InsPinAnArea> {
+
+}

+ 57 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/area/InsPinAnArea.java

@@ -0,0 +1,57 @@
+package com.ydtech.modules.order.entity.api.pingan.area;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@TableName(value ="ins_pinan_area")
+@NoArgsConstructor
+@Data
+public class InsPinAnArea implements Serializable {
+
+    /**
+     * 主键自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 省/市code
+     */
+    @TableField(value = "value_code")
+    private String valueCode;
+
+    /**
+     * 省市名称
+     */
+    @TableField(value = "value_chinese_name")
+    private String valueChineseName;
+
+    /**
+     * 市code
+     */
+    @TableField(value = "city_code")
+    private String cityCode;
+
+    /**
+     * 市名称
+     */
+    @TableField(value = "city_name")
+    private String cityName;
+    /**
+     * 地区代码
+     */
+    @TableField(value = "area_code")
+    private String areaCode;
+
+    /**
+     * 地区名称
+     */
+    @TableField(value = "area_cname")
+    private String areaCname;
+}

+ 88 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/LicenseTypeCodeEnum.java

@@ -0,0 +1,88 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:20
+ *  @Description: 号牌种类枚举
+ *  01	大型汽车
+ * 02	小型汽车
+ * 03	使馆汽车
+ * 04	领馆汽车
+ * 05	境外汽车
+ * 06	外籍汽车
+ * 07	两、三轮摩托车
+ * 08	轻便摩托车
+ * 09	使馆摩托车
+ * 10	领馆摩托车
+ * 11	境外摩托车
+ * 12	外籍摩托车
+ * 13	农用运输车
+ * 14	拖拉机
+ * 15	挂车
+ * 16	教练汽车
+ * 17	教练摩托车
+ * 18	试验汽车
+ * 19	试验摩托车
+ * 20	临时入境汽车
+ * 21	临时入境摩托车
+ * 22	临时行驶车
+ * 23	公安警车
+ * 24	其它车型
+ * 25	专用机械
+ * 26	警备摩托车
+ * 27	大型警车
+ * 31	武警号牌
+ * 32	军队号牌
+ * 33	应急号牌
+ * 51	大型新能源汽车
+ * 52	小型新能源汽车
+ */
+@AllArgsConstructor
+@Getter
+public enum LicenseTypeCodeEnum {
+
+    LICENSE_TYPE_CODE_MSG_01("01","大型汽车"),
+    LICENSE_TYPE_CODE_MSG_02("02","小型汽车"),
+    LICENSE_TYPE_CODE_MSG_03("03","使馆汽车"),
+    LICENSE_TYPE_CODE_MSG_04("04","领馆汽车"),
+    LICENSE_TYPE_CODE_MSG_05("05","境外汽车"),
+    LICENSE_TYPE_CODE_MSG_06("06","外籍汽车"),
+    LICENSE_TYPE_CODE_MSG_07("07","两、三轮摩托车"),
+    LICENSE_TYPE_CODE_MSG_08("08","轻便摩托车"),
+    LICENSE_TYPE_CODE_MSG_09("09","使馆摩托车"),
+    LICENSE_TYPE_CODE_MSG_10("10","领馆摩托车"),
+    LICENSE_TYPE_CODE_MSG_11("11","境外摩托车"),
+    LICENSE_TYPE_CODE_MSG_12("12","外籍摩托车"),
+    LICENSE_TYPE_CODE_MSG_13("13","农用运输车"),
+    LICENSE_TYPE_CODE_MSG_14("14","拖拉机 "),
+    LICENSE_TYPE_CODE_MSG_15("15","挂车  "),
+    LICENSE_TYPE_CODE_MSG_16("16","教练汽车"),
+    LICENSE_TYPE_CODE_MSG_17("17","教练摩托车"),
+    LICENSE_TYPE_CODE_MSG_18("18","试验汽车"),
+    LICENSE_TYPE_CODE_MSG_19("19","试验摩托车"),
+    LICENSE_TYPE_CODE_MSG_20("20","临时入境汽车"),
+    LICENSE_TYPE_CODE_MSG_21("21","临时入境摩托车"),
+    LICENSE_TYPE_CODE_MSG_22("22","临时行驶车"),
+    LICENSE_TYPE_CODE_MSG_23("23","公安警车"),
+    LICENSE_TYPE_CODE_MSG_24("24","其它车型"),
+    LICENSE_TYPE_CODE_MSG_25("25","专用机械"),
+    LICENSE_TYPE_CODE_MSG_26("26","警备摩托车"),
+    LICENSE_TYPE_CODE_MSG_27("27","大型警车"),
+    LICENSE_TYPE_CODE_MSG_31("31","武警号牌"),
+    LICENSE_TYPE_CODE_MSG_32("32","军队号牌"),
+    LICENSE_TYPE_CODE_MSG_33("33","应急号牌"),
+    LICENSE_TYPE_CODE_MSG_51("51","大型新能源汽车"),
+    LICENSE_TYPE_CODE_MSG_52("52","小型新能源汽车");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 66 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/NewCarAreaCodeEnum.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:11
+ *  @Description: 新车销售公司所在地市标识代码枚举
+ *  440100	广州市
+ * 440200	韶关市
+ * 440400	珠海市
+ * 440500	汕头市
+ * 440600	佛山市
+ * 440700	江门市
+ * 440800	湛江市
+ * 440900	茂名市
+ * 441200	肇庆市
+ * 441300	惠州市
+ * 441400	梅州市
+ * 441500	汕尾市
+ * 441600	河源市
+ * 441700	阳江市
+ * 441800	清远市
+ * 441900	东莞市
+ * 442000	中山市
+ * 445100	潮州市
+ * 445200	揭阳市
+ * 445300	云浮市
+ * 999999	其他
+ */
+@AllArgsConstructor
+@Getter
+public enum NewCarAreaCodeEnum {
+
+    NEW_CAR_AREA_CODE_MSG_440100("440100","广州市"),
+    NEW_CAR_AREA_CODE_MSG_440200("440200","韶关市"),
+    NEW_CAR_AREA_CODE_MSG_440400("440400","珠海市"),
+    NEW_CAR_AREA_CODE_MSG_440500("440500","汕头市"),
+    NEW_CAR_AREA_CODE_MSG_440600("440600","佛山市"),
+    NEW_CAR_AREA_CODE_MSG_440700("440700","江门市"),
+    NEW_CAR_AREA_CODE_MSG_440800("440800","湛江市"),
+    NEW_CAR_AREA_CODE_MSG_440900("440900","茂名市"),
+    NEW_CAR_AREA_CODE_MSG_441200("441200","肇庆市"),
+    NEW_CAR_AREA_CODE_MSG_441300("441300","惠州市"),
+    NEW_CAR_AREA_CODE_MSG_441400("441400","梅州市"),
+    NEW_CAR_AREA_CODE_MSG_441500("441500","汕尾市"),
+    NEW_CAR_AREA_CODE_MSG_441600("441600","河源市"),
+    NEW_CAR_AREA_CODE_MSG_441700("441700","阳江市"),
+    NEW_CAR_AREA_CODE_MSG_441800("441800","清远市"),
+    NEW_CAR_AREA_CODE_MSG_441900("441900","东莞市"),
+    NEW_CAR_AREA_CODE_MSG_442000("442000","中山市"),
+    NEW_CAR_AREA_CODE_MSG_445100("445100","潮州市"),
+    NEW_CAR_AREA_CODE_MSG_445200("445200","揭阳市"),
+    NEW_CAR_AREA_CODE_MSG_445300("445300","云浮市"),
+    NEW_CAR_AREA_CODE_MSG_999999("999999","其他");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 108 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/PinAnTwoDepartCodeEnum.java

@@ -0,0 +1,108 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:40
+ *  @Description: 平安二级机构编码的枚举类
+北京	201
+上海	202
+天津	203
+广东	204
+深圳	205
+辽宁	206
+大连	207
+吉林	208
+湖北	209
+江苏	210
+青岛	211
+浙江	212
+福建	213
+广西	214
+海南	215
+云南	216
+陕西	217
+重庆	218
+黑龙江	219
+湖南	220
+贵州	221
+江西	222
+新疆	223
+河北	224
+安徽	225
+四川	226
+青海	227
+宁夏	228
+宁波	229
+厦门	230
+内蒙古	231
+河南	232
+山西	233
+甘肃	234
+东莞	235
+山东	236
+西藏	237
+佛山	241
+苏州	245
+无锡	246
+温州	248
+唐山	251
+ */
+@AllArgsConstructor
+@Getter
+public enum PinAnTwoDepartCodeEnum {
+
+    PIN_AN_TWO_DEPART_CODE_MSG_201("201","北京"),
+    PIN_AN_TWO_DEPART_CODE_MSG_202("202","上海"),
+    PIN_AN_TWO_DEPART_CODE_MSG_203("203","天津"),
+    PIN_AN_TWO_DEPART_CODE_MSG_204("204","广东"),
+    PIN_AN_TWO_DEPART_CODE_MSG_205("205","深圳"),
+    PIN_AN_TWO_DEPART_CODE_MSG_206("206","辽宁"),
+    PIN_AN_TWO_DEPART_CODE_MSG_207("207","大连"),
+    PIN_AN_TWO_DEPART_CODE_MSG_208("208","吉林"),
+    PIN_AN_TWO_DEPART_CODE_MSG_209("209","湖北"),
+    PIN_AN_TWO_DEPART_CODE_MSG_210("210","江苏"),
+    PIN_AN_TWO_DEPART_CODE_MSG_211("211","青岛"),
+    PIN_AN_TWO_DEPART_CODE_MSG_212("212","浙江"),
+    PIN_AN_TWO_DEPART_CODE_MSG_213("213","福建"),
+    PIN_AN_TWO_DEPART_CODE_MSG_214("214","广西"),
+    PIN_AN_TWO_DEPART_CODE_MSG_215("215","海南"),
+    PIN_AN_TWO_DEPART_CODE_MSG_216("216","云南"),
+    PIN_AN_TWO_DEPART_CODE_MSG_217("217","陕西"),
+    PIN_AN_TWO_DEPART_CODE_MSG_218("218","重庆"),
+    PIN_AN_TWO_DEPART_CODE_MSG_219("219","黑龙江"),
+    PIN_AN_TWO_DEPART_CODE_MSG_220("220","湖南"),
+    PIN_AN_TWO_DEPART_CODE_MSG_221("221","贵州"),
+    PIN_AN_TWO_DEPART_CODE_MSG_222("222","江西"),
+    PIN_AN_TWO_DEPART_CODE_MSG_223("223","新疆"),
+    PIN_AN_TWO_DEPART_CODE_MSG_224("224","河北"),
+    PIN_AN_TWO_DEPART_CODE_MSG_225("225","安徽"),
+    PIN_AN_TWO_DEPART_CODE_MSG_226("226","四川"),
+    PIN_AN_TWO_DEPART_CODE_MSG_227("227","青海"),
+    PIN_AN_TWO_DEPART_CODE_MSG_228("228","宁夏"),
+    PIN_AN_TWO_DEPART_CODE_MSG_229("229","宁波"),
+    PIN_AN_TWO_DEPART_CODE_MSG_230("230","厦门"),
+    PIN_AN_TWO_DEPART_CODE_MSG_231("231","内蒙古"),
+    PIN_AN_TWO_DEPART_CODE_MSG_232("232","河南"),
+    PIN_AN_TWO_DEPART_CODE_MSG_233("233","山西"),
+    PIN_AN_TWO_DEPART_CODE_MSG_234("234","甘肃"),
+    PIN_AN_TWO_DEPART_CODE_MSG_235("235","东莞"),
+    PIN_AN_TWO_DEPART_CODE_MSG_236("236","山东"),
+    PIN_AN_TWO_DEPART_CODE_MSG_237("237","西藏"),
+    PIN_AN_TWO_DEPART_CODE_MSG_241("241","佛山"),
+    PIN_AN_TWO_DEPART_CODE_MSG_245("245","苏州"),
+    PIN_AN_TWO_DEPART_CODE_MSG_246("246","无锡"),
+    PIN_AN_TWO_DEPART_CODE_MSG_248("248","温州"),
+    PIN_AN_TWO_DEPART_CODE_MSG_251("251","唐山");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 30 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/ResposeErrorCodeEnum.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:11
+ *  @Description: 接口返回错误码
+ *  560-投保流程不存在或已超时!
+ * 561-入参校验不通过!
+ * 555-系统异常!
+ */
+@AllArgsConstructor
+@Getter
+public enum ResposeErrorCodeEnum {
+
+    ERROR_CODE_MSG_560("560","投保流程不存在或已超时!"),
+    ERROR_CODE_MSG_561("561","入参校验不通过!"),
+    ERROR_CODE_MSG_555("555","系统异常!");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 46 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/SpecialLicenseCodeEnum.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:11
+ *  @Description: 特殊好牌枚举
+ * 01	教练
+ * 02	旅游客运
+ * 03	危化品运输车
+ * 04	租赁
+ * 05	公交客运
+ * 06	公路客运
+ * 07	出租客运
+ * 08	货运
+ * 09	出租租赁
+ * 10	预约出租客运
+ * 11	校车
+ */
+@AllArgsConstructor
+@Getter
+public enum SpecialLicenseCodeEnum {
+
+    SPECIAL_LICENSE_CODE_MSG_01("01","教练"),
+    SPECIAL_LICENSE_CODE_MSG_02("02","旅游客运"),
+    SPECIAL_LICENSE_CODE_MSG_03("03","危化品运输车"),
+    SPECIAL_LICENSE_CODE_MSG_04("04","租赁"),
+    SPECIAL_LICENSE_CODE_MSG_05("05","公交客运"),
+    SPECIAL_LICENSE_CODE_MSG_06("06","公路客运"),
+    SPECIAL_LICENSE_CODE_MSG_07("07","出租客运"),
+    SPECIAL_LICENSE_CODE_MSG_08("08","货运"),
+    SPECIAL_LICENSE_CODE_MSG_09("09","出租租赁"),
+    SPECIAL_LICENSE_CODE_MSG_10("10","预约出租客运"),
+    SPECIAL_LICENSE_CODE_MSG_11("11","校车");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 96 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/TaxAreaCodeEnum.java

@@ -0,0 +1,96 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:22
+ *  @Description: 车船税完税凭证地区代码的枚举类
+ * 110000	北京
+ * 120000	天津
+ * 130000	河北
+ * 140000	山西
+ * 150000	内蒙古
+ * 210000	辽宁
+ * 210200	大连
+ * 220000	吉林
+ * 230000	黑龙江
+ * 310000	上海
+ * 320000	江苏
+ * 330000	浙江
+ * 330200	宁波
+ * 340000	安徽
+ * 350000	福建
+ * 350200	厦门
+ * 360000	江西
+ * 370000	山东
+ * 370200	青岛
+ * 410000	河南
+ * 420000	湖北
+ * 430000	湖南
+ * 440000	广东
+ * 440300	深圳
+ * 450000	广西
+ * 460000	海南
+ * 500000	重庆
+ * 510000	四川
+ * 520000	贵州
+ * 530000	云南
+ * 540000	西藏
+ * 610000	陕西
+ * 620000	甘肃
+ * 630000	青海
+ * 640000	宁夏
+ * 650000	新疆 "
+ */
+@AllArgsConstructor
+@Getter
+public enum TaxAreaCodeEnum {
+
+    TAX_AREA_CODE_MSG_110000("110000","北京"),
+    TAX_AREA_CODE_MSG_120000("120000","天津"),
+    TAX_AREA_CODE_MSG_130000("130000","河北"),
+    TAX_AREA_CODE_MSG_140000("140000","山西"),
+    TAX_AREA_CODE_MSG_150000("150000","内蒙古"),
+    TAX_AREA_CODE_MSG_210000( "210000","辽宁"),
+    TAX_AREA_CODE_MSG_210200("210200","大连"),
+    TAX_AREA_CODE_MSG_220000("220000","吉林"),
+    TAX_AREA_CODE_MSG_230000("230000","黑龙江"),
+    TAX_AREA_CODE_MSG_310000("310000","上海"),
+    TAX_AREA_CODE_MSG_320000("320000","江苏"),
+    TAX_AREA_CODE_MSG_330000("330000","浙江"),
+    TAX_AREA_CODE_MSG_330200("330200","宁波"),
+    TAX_AREA_CODE_MSG_340000("340000","安徽"),
+    TAX_AREA_CODE_MSG_350000("350000","福建"),
+    TAX_AREA_CODE_MSG_350200("350200","厦门"),
+    TAX_AREA_CODE_MSG_360000("360000","江西"),
+    TAX_AREA_CODE_MSG_370000("370000","山东"),
+    TAX_AREA_CODE_MSG_370200("370200","青岛"),
+    TAX_AREA_CODE_MSG_410000("410000","河南"),
+    TAX_AREA_CODE_MSG_420000("420000","湖北"),
+    TAX_AREA_CODE_MSG_430000("430000","湖南"),
+    TAX_AREA_CODE_MSG_440000("440000","广东"),
+    TAX_AREA_CODE_MSG_440300("440300","深圳"),
+    TAX_AREA_CODE_MSG_450000("450000","广西"),
+    TAX_AREA_CODE_MSG_460000("460000","海南"),
+    TAX_AREA_CODE_MSG_500000("500000","重庆"),
+    TAX_AREA_CODE_MSG_510000("510000","四川"),
+    TAX_AREA_CODE_MSG_520000("520000","贵州"),
+    TAX_AREA_CODE_MSG_530000("530000","云南"),
+    TAX_AREA_CODE_MSG_540000("540000","西藏"),
+    TAX_AREA_CODE_MSG_610000("610000","陕西"),
+    TAX_AREA_CODE_MSG_620000("620000","甘肃"),
+    TAX_AREA_CODE_MSG_630000("630000","青海"),
+    TAX_AREA_CODE_MSG_640000("640000","宁夏"),
+    TAX_AREA_CODE_MSG_650000( "650000","新疆");
+    /**
+     * 编码
+     */
+    private final String code;
+    /**
+     * 描述
+     */
+    private final String msg;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/ApplicantDocumentCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:42
+ *  @Description: 投保人身份证明文件类型枚举
+ * T01	投保人身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum ApplicantDocumentCodeEnum {
+
+    APPLICANT_DOCUMENT_CODE_MSG_T01_001("T01","投保人身份证明","001","身份证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_002("T01","投保人身份证明","002","港澳居民来往内地通行证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_003("T01","投保人身份证明","003","暂住证/居住证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_004("T01","投保人身份证明","004","居民户口簿"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_005("T01","投保人身份证明","005","护照 "),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_006("T01","投保人身份证明","006","军人证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_007("T01","投保人身份证明","007","台湾居民来往大陆通行证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_008("T01","投保人身份证明","008","临时身份证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_009("T01","投保人身份证明","009","港澳通行证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_010("T01","投保人身份证明","010","驾驶证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_013("T01","投保人身份证明","013","组织机构代码证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_014("T01","投保人身份证明","014","税务登记证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_016("T01","投保人身份证明","016","统一社会信用代码"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_020("T01","投保人身份证明","020","外国人永久居留身份证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_021("T01","投保人身份证明","021","港澳台居民居住证"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_022("T01","投保人身份证明","022","营业执照/统一社会信用码"),
+    APPLICANT_DOCUMENT_CODE_MSG_T01_OT99("T01","投保人身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/AssuredCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:54
+ *  @Description: 被保险人身份证明文件类型枚举
+ * T02	被保险人身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum AssuredCodeEnum {
+
+    ASSURED_DOCUMENT_CODE_MSG_T02_001("T02","被保险人身份证明","001","身份证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_002("T02","被保险人身份证明","002","港澳居民来往内地通行证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_003("T02","被保险人身份证明","003","暂住证/居住证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_004("T02","被保险人身份证明","004","居民户口簿"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_005("T02","被保险人身份证明","005","护照 "),
+    ASSURED_DOCUMENT_CODE_MSG_T02_006("T02","被保险人身份证明","006","军人证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_007("T02","被保险人身份证明","007","台湾居民来往大陆通行证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_008("T02","被保险人身份证明","008","临时身份证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_009("T02","被保险人身份证明","009","港澳通行证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_010("T02","被保险人身份证明","010","驾驶证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_013("T02","被保险人身份证明","013","组织机构代码证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_014("T02","被保险人身份证明","014","税务登记证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_016("T02","被保险人身份证明","016","统一社会信用代码"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_020("T02","被保险人身份证明","020","外国人永久居留身份证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_021("T02","被保险人身份证明","021","港澳台居民居住证"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_022("T02","被保险人身份证明","022","营业执照/统一社会信用码"),
+    ASSURED_DOCUMENT_CODE_MSG_T02_OT99("T02","被保险人身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 50 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/CorrectionMaterialsCodeEnum.java

@@ -0,0 +1,50 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:54
+ *  @Description: 批改资料文件类型枚举
+ * T15	批改资料	ER01	批改申请书
+ * 		ER03	保单正本
+ * 		ER04	保险发票
+ * 		ER05	保卡
+ * 		ER06	标志
+ * 		ER07	报废声明
+ * 		ER08	放弃权益声明
+ * 		ER09	遗失声明
+ * 		ER10	批单
+ */
+@AllArgsConstructor
+@Getter
+public enum CorrectionMaterialsCodeEnum {
+
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER01("T15","批改资料","ER01","批改申请书"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER03("T15","批改资料","ER03","保单正本"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER04("T15","批改资料","ER04","保险发票"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER05("T15","批改资料","ER05","保卡"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER06("T15","批改资料","ER06","标志"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER07("T15","批改资料","ER07","报废声明"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER08("T15","批改资料","ER08","放弃权益声明"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER09("T15","批改资料","ER09","遗失声明"),
+    CORRECTION_MATERIALS_DOCUMENT_CODE_MSG_T15_ER10("T15","批改资料","ER10","批单");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 48 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/DoubleRecordingCodeEnum.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:20
+ *  @Description: 双录证明文件类型枚举
+ * T21	双录证明	TS001	代办人身份证明原件正、反面照片
+ * 		TS002	保险公司或中介机构销售人员执业证件
+ * 		TS003	投保人签署相关文件时的照片
+ * 		TS004	代办人签署相关文件时的照片
+ * 		TS005	销售人员手持执业证与代办人的正面合影
+ * 		TS006	加盖公章的单位委托书与投保人证件原件(或复印件加盖公章)的合影
+ * 		TS007	团体业务授权委托书
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum DoubleRecordingCodeEnum {
+
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS001("T21","双录证明","TS001","代办人身份证明原件正、反面照片"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS002("T21","双录证明","TS002","保险公司或中介机构销售人员执业证件"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS003("T21","双录证明","TS003","投保人签署相关文件时的照片"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS004("T21","双录证明","TS004","代办人签署相关文件时的照片"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS005("T21","双录证明","TS005","销售人员手持执业证与代办人的正面合影"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS006("T21","双录证明","TS006","加盖公章的单位委托书与投保人证件原件(或复印件加盖公章)的合影"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_TS007("T21","双录证明","TS007","团体业务授权委托书"),
+    DOUBLE_RECORDING_DOCUMENT_CODE_MSG_T21_OT99("T21","双录证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 36 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/DriversLicenseTypeDocumentCodeEnum.java

@@ -0,0 +1,36 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:03
+ *  @Description: 驾驶证明文件类型枚举
+ * T05	驾驶证明	010	驾驶证
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum DriversLicenseTypeDocumentCodeEnum {
+
+    DRIVERS_LICENSE_TYPE_DOCUMENT_CODE_MSG_T05_010("T05","驾驶证明","010","驾驶证"),
+    DRIVERS_LICENSE_TYPE_DOCUMENT_CODE_MSG_T05_OT99("T05","驾驶证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 49 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/IndexDocumentCodeEnum.java

@@ -0,0 +1,49 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:11
+ *  @Description: 标的证明文件类型枚举
+ * T04	标的证明
+ *      TAR01	机动车销售统一发票
+ * 		TAR02	机动车整车出厂合格证
+ * 		TAR03	关单(货物进口证明书)
+ * 		TAR04	行驶证
+ * 		TAR05	机动车辆登记证书
+ * 		TAR06	二手车交易发票
+ * 		TAR07	新增设备清单或发票
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum IndexDocumentCodeEnum {
+
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR01("T04","标的证明","TAR01","机动车销售统一发票"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR02("T04","标的证明","TAR02","机动车整车出厂合格证"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR03("T04","标的证明","TAR03","关单(货物进口证明书)"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR04("T04","标的证明","TAR04","行驶证"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR05("T04","标的证明","TAR05","机动车辆登记证书"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR06("T04","标的证明","TAR06","二手车交易发票"),
+    INDEX_DOCUMENT_CODE_MSG_T04_TAR07("T04","标的证明","TAR07","新增设备清单或发票"),
+    INDEX_DOCUMENT_CODE_MSG_T04_OT99("T04","标的证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 42 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/InsuranceApplicationDocumentCodeEnum.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:11
+ *  @Description: 投保申请书文件类型枚举
+ * T06	投保申请书	APP01	投保单
+ * 		APP02	投保确认书(广东、佛山、东莞独有)
+ * 		APP03	销售事项确认书(广东、佛山、东莞独有)
+ * 		APP04	车辆损失险保险金额确认书(北京独有)
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum InsuranceApplicationDocumentCodeEnum {
+
+    INSURANCE_APPLICATION_DOCUMENT_CODE_MSG_T06_APP01("T06","投保申请书","APP01","投保单"),
+    INSURANCE_APPLICATION_DOCUMENT_CODE_MSG_T06_APP02("T06","投保申请书","APP02","投保确认书(广东、佛山、东莞独有)"),
+    INSURANCE_APPLICATION_DOCUMENT_CODE_MSG_T06_APP03("T06","投保申请书","APP03","销售事项确认书(广东、佛山、东莞独有)"),
+    INSURANCE_APPLICATION_DOCUMENT_CODE_MSG_T06_APP04("T06","投保申请书","APP04","车辆损失险保险金额确认书(北京独有)"),
+    INSURANCE_APPLICATION_DOCUMENT_CODE_MSG_T06_OT99("T06","投保申请书","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 68 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/LocalUsedCodeEnum.java

@@ -0,0 +1,68 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:31
+ *  @Description: 本地使用证明文件类型枚举
+ * T30	本地使用证明	LOC01	新车购车发票
+ * 		LOC02	车主居住证
+ * 		LOC03	车主身份证
+ * 		LOC04	车主社保卡
+ * 		LOC05	车主房产证
+ * 		LOC06	被保险人居住证
+ * 		LOC07	被保险人身份证
+ * 		LOC08	被保险人房产证
+ * 		LOC09	被保险人社保卡
+ * 		LOC10	消费发票
+ * 		LOC12	标的行驶证
+ * 		LOC13	车主港澳台居民居住证
+ * 		LOC14	被保人港澳台居民居住证
+ * 		LOC15	机动车辆登记证书
+ * 		LOC16	车主营业执照/统一社会信用码
+ * 		LOC17	车主统一社会信用代码证
+ * 		LOC18	车主组织机构代码证
+ * 		OT99	其他
+ */
+@AllArgsConstructor
+@Getter
+public enum LocalUsedCodeEnum {
+
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC01("T30","本地使用证明","LOC01","新车购车发票"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC02("T30","本地使用证明","LOC02","车主居住证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC03("T30","本地使用证明","LOC03","车主身份证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC04("T30","本地使用证明","LOC04","车主社保卡"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC05("T30","本地使用证明","LOC05","车主房产证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC06("T30","本地使用证明","LOC06","被保险人居住证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC07("T30","本地使用证明","LOC07","被保险人身份证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC08("T30","本地使用证明","LOC08","被保险人房产证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC09("T30","本地使用证明","LOC09","被保险人社保卡"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC10("T30","本地使用证明","LOC10","消费发票"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC12("T30","本地使用证明","LOC12","标的行驶证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC13("T30","本地使用证明","LOC13","车主港澳台居民居住证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC14("T30","本地使用证明","LOC14","被保人港澳台居民居住证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC15("T30","本地使用证明","LOC15","机动车辆登记证书"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC16("T30","本地使用证明","LOC16","车主营业执照/统一社会信用码"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC17("T30","本地使用证明","LOC17","车主统一社会信用代码证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_LOC18("T30","本地使用证明","LOC18","车主组织机构代码证"),
+    LOCAL_USED_DOCUMENT_CODE_MSG_T30_OT99("T30","本地使用证明","OT99","其他");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalAssuredDocumentCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:11
+ *  @Description: 原被保险人身份证明文件类型枚举
+ * T18	原被保险人身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum OriginalAssuredDocumentCodeEnum {
+
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_001("T18","原被保险人身份证明","001","身份证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_002("T18","原被保险人身份证明","002","港澳居民来往内地通行证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_003("T18","原被保险人身份证明","003","暂住证/居住证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_004("T18","原被保险人身份证明","004","居民户口簿"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_005("T18","原被保险人身份证明","005","护照 "),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_006("T18","原被保险人身份证明","006","军人证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_007("T18","原被保险人身份证明","007","台湾居民来往大陆通行证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_008("T18","原被保险人身份证明","008","临时身份证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_009("T18","原被保险人身份证明","009","港澳通行证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_010("T18","原被保险人身份证明","010","驾驶证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_013("T18","原被保险人身份证明","013","组织机构代码证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_014("T18","原被保险人身份证明","014","税务登记证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_016("T18","原被保险人身份证明","016","统一社会信用代码"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_020("T18","原被保险人身份证明","020","外国人永久居留身份证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_021("T18","原被保险人身份证明","021","港澳台居民居住证"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_022("T18","原被保险人身份证明","022","营业执照/统一社会信用码"),
+    ORIGINAL_ASSURED_DOCUMENT_CODE_MSG_T18_OT99("T18","原被保险人身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalOwnerDocumentCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:00
+ *  @Description: 原车主身份证明文件类型枚举
+ * T19	原车主身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum OriginalOwnerDocumentCodeEnum {
+
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_001("T19","原车主身份证明","001","身份证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_002("T19","原车主身份证明","002","港澳居民来往内地通行证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_003("T19","原车主身份证明","003","暂住证/居住证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_004("T19","原车主身份证明","004","居民户口簿"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_005("T19","原车主身份证明","005","护照 "),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_006("T19","原车主身份证明","006","军人证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_007("T19","原车主身份证明","007","台湾居民来往大陆通行证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_008("T19","原车主身份证明","008","临时身份证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_009("T19","原车主身份证明","009","港澳通行证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_010("T19","原车主身份证明","010","驾驶证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_013("T19","原车主身份证明","013","组织机构代码证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_014("T19","原车主身份证明","014","税务登记证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_016("T19","原车主身份证明","016","统一社会信用代码"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_020("T19","原车主身份证明","020","外国人永久居留身份证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_021("T19","原车主身份证明","021","港澳台居民居住证"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_022("T19","原车主身份证明","022","营业执照/统一社会信用码"),
+    ORIGINAL_OWNER_DOCUMENT_CODE_MSG_T19_OT99("T19","原车主身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OriginalPolicyholderDocumentCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:50
+ *  @Description: 原投保人身份证明文件类型枚举
+ * T17	原投保人身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum OriginalPolicyholderDocumentCodeEnum {
+
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_001("T17","原投保人身份证明","001","身份证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_002("T17","原投保人身份证明","002","港澳居民来往内地通行证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_003("T17","原投保人身份证明","003","暂住证/居住证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_004("T17","原投保人身份证明","004","居民户口簿"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_005("T17","原投保人身份证明","005","护照 "),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_006("T17","原投保人身份证明","006","军人证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_007("T17","原投保人身份证明","007","台湾居民来往大陆通行证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_008("T17","原投保人身份证明","008","临时身份证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_009("T17","原投保人身份证明","009","港澳通行证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_010("T17","原投保人身份证明","010","驾驶证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_013("T17","原投保人身份证明","013","组织机构代码证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_014("T17","原投保人身份证明","014","税务登记证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_016("T17","原投保人身份证明","016","统一社会信用代码"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_020("T17","原投保人身份证明","020","外国人永久居留身份证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_021("T17","原投保人身份证明","021","港澳台居民居住证"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_022("T17","原投保人身份证明","022","营业执照/统一社会信用码"),
+    ORIGINAL_POLICYHOLDER_DOCUMENT_CODE_MSG_T17_OT99("T17","原投保人身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 46 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OtherCodeEnum.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 17:54
+ *  @Description: 其他证明文件类型枚举
+ * T09	其他证明	OT01	上年商业险保单
+ * 		OT09	跨省投保系数使用证明
+ * 		OT03	挂靠证明
+ * 		OT04	车辆租赁合同
+ * 		OT18	原投保人人证合影
+ * 		OT19	车主人证合影
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum OtherCodeEnum {
+
+   OTHER_DOCUMENT_CODE_MSG_T09_OT01("T09","其他证明","OT01","上年商业险保单"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT09("T09","其他证明","OT09","跨省投保系数使用证明"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT03("T09","其他证明","OT03","挂靠证明"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT04("T09","其他证明","OT04","车辆租赁合同"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT18("T09","其他证明","OT18","原投保人人证合影"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT19("T09","其他证明","OT19","车主人证合影"),
+   OTHER_DOCUMENT_CODE_MSG_T09_OT99("T09","其他证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 67 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/OwnerDocumentCodeEnum.java

@@ -0,0 +1,67 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 16:11
+ *  @Description: 车主身份证明文件类型枚举
+ * T03	车主身份证明
+ *      001	身份证
+ * 		002	港澳居民来往内地通行证
+ * 		003	暂住证/居住证
+ * 		004	居民户口簿
+ * 		005	护照
+ * 		006	军人证
+ * 		007	台湾居民来往大陆通行证
+ * 		008	临时身份证
+ * 		009	港澳通行证
+ * 		010	驾驶证
+ * 		013	组织机构代码证
+ * 		014	税务登记证
+ * 		016	统一社会信用代码
+ * 		020	外国人永久居留身份证
+ * 		021	港澳台居民居住证
+ * 		022	营业执照/统一社会信用码
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum OwnerDocumentCodeEnum {
+
+    OWNER_DOCUMENT_CODE_MSG_T03_001("T03","车主身份证明","001","身份证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_002("T03","车主身份证明","002","港澳居民来往内地通行证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_003("T03","车主身份证明","003","暂住证/居住证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_004("T03","车主身份证明","004","居民户口簿"),
+    OWNER_DOCUMENT_CODE_MSG_T03_005("T03","车主身份证明","005","护照 "),
+    OWNER_DOCUMENT_CODE_MSG_T03_006("T03","车主身份证明","006","军人证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_007("T03","车主身份证明","007","台湾居民来往大陆通行证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_008("T03","车主身份证明","008","临时身份证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_009("T03","车主身份证明","009","港澳通行证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_010("T03","车主身份证明","010","驾驶证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_013("T03","车主身份证明","013","组织机构代码证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_014("T03","车主身份证明","014","税务登记证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_016("T03","车主身份证明","016","统一社会信用代码"),
+    OWNER_DOCUMENT_CODE_MSG_T03_020("T03","车主身份证明","020","外国人永久居留身份证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_021("T03","车主身份证明","021","港澳台居民居住证"),
+    OWNER_DOCUMENT_CODE_MSG_T03_022("T03","车主身份证明","022","营业执照/统一社会信用码"),
+    OWNER_DOCUMENT_CODE_MSG_T03_OT99("T03","车主身份证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 38 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/RatingFactorCodeEnum.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:19
+ *  @Description: 费率因子证明文件类型枚举
+ * T08	费率因子证明	FA01	无赔款证明
+ * 		FA02	无违章证明
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum RatingFactorCodeEnum {
+
+    RATING_FACTOR_DOCUMENT_CODE_MSG_T08_FA01("T08","费率因子证明","FA01","无赔款证明"),
+    RATING_FACTOR_DOCUMENT_CODE_MSG_T08_FA02("T08","费率因子证明","FA02","无违章证明"),
+    RATING_FACTOR_DOCUMENT_CODE_MSG_T08_OT99("T08","费率因子证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

+ 38 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/constants/dict/document/TaxDocumentCodeEnum.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.order.entity.api.pingan.constants.dict.document;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/11 18:15
+ *  @Description: 车船税证明文件类型枚举
+ * T07	车船税证明	TAX01	完税凭证
+ * 		TAX02	减免税证明
+ * 		OT99	其它
+ */
+@AllArgsConstructor
+@Getter
+public enum TaxDocumentCodeEnum {
+
+    TAX_DOCUMENT_CODE_MSG_T07_TAX01("T07","车船税证明","TAX01","完税凭证"),
+    TAX_DOCUMENT_CODE_MSG_T07_TAX02("T07","车船税证明","TAX02","减免税证明"),
+    TAX_DOCUMENT_CODE_MSG_T07_OT99("T07","车船税证明","OT99","其它");
+    /**
+     * 编码
+     */
+    private final String documentClass;
+    /**
+     * 描述
+     */
+    private final String documentName;
+    /**
+     * 描述
+     */
+    private final String documentType;
+    /**
+     * 描述
+     */
+    private final String documentTypeName;
+}

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

@@ -78,5 +78,12 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      */
     Page<InsOrders> getPendingAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
+    /**
+     * 查询已审核得订单
+     * @param page
+     * @param orderQueryVo
+     * @return
+     */
+    Page<InsOrders> getAlreadyAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
 }

+ 13 - 0
src/main/java/com/ydtech/modules/order/service/InsPinAnAreaService.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.api.pingan.area.InsPinAnArea;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/12 9:44
+ *  @Description: 添加平安数据区域表
+ */
+public interface InsPinAnAreaService extends IService<InsPinAnArea> {
+}

+ 10 - 0
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -11,6 +11,7 @@ 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.service.InsPlyIncomeService;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
@@ -36,6 +37,8 @@ import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.DateTimeUtil;
 import com.ydtech.utils.baidu.FileUtil;
@@ -43,6 +46,7 @@ import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -94,6 +98,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     @Autowired
     private InsImagesUploadCacheComponents insImagesUploadCacheComponents;
 
+    @Autowired
+    private InsPlyIncomeService insPlyIncomeService;
+
     @Value("${upload.file.path}")
     private String uploadFilePath;
 
@@ -720,6 +727,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
      * @return
      */
     @Override
+    @Transactional
     public HttpResult<Object> verifyPayment(String companyId) {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
@@ -789,6 +797,8 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     //更新订单状态
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                     insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+//                    生成结算
+                    insPlyIncomeService.saveBalance(companyId,insAreaCompany.getOrderno());
                 }
             }
             return HttpResult.ok("查询订单状态成功");

+ 11 - 0
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -6,6 +6,8 @@ import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 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.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
@@ -76,6 +78,8 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
     private final HuaTaiQuotationProcessorComponent huaTaiQuotationProcessorComponent;
 
+    private final SysAreaService sysAreaService;
+
     @Value("${upload.file.path}")
     private String uploadFilePath;
 
@@ -165,6 +169,13 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         YaQuoteInfoVo yaQuoteInfoVo = new YaQuoteInfoVo(insOrders);
 
+        //查找车主的区划信息
+        PersonAreaVo ownerPersonArea = sysAreaService.queryByAddress(yaQuoteInfoVo.getOwnerInfo().getAddr(),
+                yaQuoteInfoVo.getOwnerInfo().getIdentifyNumber());
+        huaTaiConfigureParameters.setCity(ownerPersonArea.getCityCode());
+        huaTaiConfigureParameters.setProvince(ownerPersonArea.getProvinceCode());
+        huaTaiConfigureParameters.setDistrict(ownerPersonArea.getCountyCode());
+
         // 2. 调用转投保接口
         HuaTaiSubmitResponse response = submitForUnderwriting(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList);
 

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -107,6 +107,11 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         return baseMapper.getPendingAuditOrders(page,orderQueryVo);
     }
 
+    @Override
+    public Page<InsOrders> getAlreadyAuditOrders(Page page, OrderQueryVo orderQueryVo) {
+        return baseMapper.getAlreadyAuditOrders(page,orderQueryVo);
+    }
+
 }
 
 

+ 13 - 4
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -350,11 +350,20 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
         }
         Page<InsAreaCompany> page = PageRequest.buildPageRequest(orderQueryVo.getPageRequest());
-        Page<InsOrders> pendingAuditOrders = insAreaCompanyService.getPendingAuditOrders(page,orderQueryVo);
 
-        return new BasePageResult<>(pendingAuditOrders.getCurrent(), page.getSize(), pendingAuditOrders.getTotal(),
-                pendingAuditOrders.getPages(),
-                pendingAuditOrders.getRecords());
+        Page<InsOrders> resultOrders = new Page<>();
+
+        //查询未审核
+        if(orderQueryVo.getAuditStatus().equals("0")){
+            resultOrders = insAreaCompanyService.getPendingAuditOrders(page, orderQueryVo);
+        }else if(orderQueryVo.getAuditStatus().equals("1")){
+            //已审核
+            resultOrders = insAreaCompanyService.getAlreadyAuditOrders(page,orderQueryVo);
+        }
+
+        return new BasePageResult<>(resultOrders.getCurrent(), page.getSize(), resultOrders.getTotal(),
+                resultOrders.getPages(),
+                resultOrders.getRecords());
     }
 
 //    @Override

+ 25 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsPinAnAreaServiceImpl.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.dao.InsPinAnAreaMapper;
+import com.ydtech.modules.order.entity.api.pingan.area.InsPinAnArea;
+import com.ydtech.modules.order.service.InsPinAnAreaService;
+import org.springframework.stereotype.Service;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/12 9:43
+ *  @Description: 添加平安区域数据表
+ */
+@Service
+public class InsPinAnAreaServiceImpl extends ServiceImpl<InsPinAnAreaMapper, InsPinAnArea>
+        implements InsPinAnAreaService {
+
+
+
+}
+
+
+
+

+ 14 - 3
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -280,9 +280,9 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Override
     public boolean costsAdd(AgreementProductCosts agreementProductCosts) {
         //校验非车信息是否存在
-        PtlAgreementProductCostsAttrLink nonMotorInsurance = agreementProductCosts.getCostsAttrLinks().stream().filter(x -> x.getAttrCode().equals("NonMotorInsurance")).findFirst().get();
-        if (nonMotorInsurance != null) {
-            if((!nonMotorInsurance.getMin().equals("0") || !nonMotorInsurance.getMax().equals("0"))) {
+        List<PtlAgreementProductCostsAttrLink> nonMotorInsurance = agreementProductCosts.getCostsAttrLinks().stream().filter(x -> x.getAttrCode().equals("NonMotorInsurance")).collect(Collectors.toList());
+        if (nonMotorInsurance.size() > 0) {
+            if((!nonMotorInsurance.get(0).getMin().equals("0") || !nonMotorInsurance.get(0).getMax().equals("0"))) {
                 if((agreementProductCosts.getNoCostsProportion() == null || agreementProductCosts.getNoCostsProportion().equals("0"))){
                     throw new SystemException("检测到存在非车费用因子,请填写非车费用!");
                 }
@@ -373,6 +373,17 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Transactional
     @Override
     public boolean costsUpdate(AgreementProductCosts agreementProductCosts) {
+        //校验非车信息是否存在
+//        List<PtlAgreementProductCostsAttrLink> nonMotorInsurance = agreementProductCosts.getCostsAttrLinks().stream().filter(x -> x.getAttrCode().equals("NonMotorInsurance")).collect(Collectors.toList());
+//        if (nonMotorInsurance.size() > 0) {
+//
+//            if((!nonMotorInsurance.get(0).getMin().equals("0") || !nonMotorInsurance.get(0).getMax().equals("0"))) {
+//                if((agreementProductCosts.getNoCostsProportion() == null || agreementProductCosts.getNoCostsProportion().equals("0"))){
+//                    throw new SystemException("检测到存在非车费用因子,请填写非车费用!");
+//                }
+//            }
+//        }
+
         //更新费用主表信息
         PtlAgreementProductCostsNew ptlAgreementProductCostsNew = new PtlAgreementProductCostsNew();
         BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsNew);

+ 0 - 20
src/main/resources/mapper/modules/admin/SysDeptAccountDao.xml

@@ -1,20 +0,0 @@
-<?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.SysDeptAccountDao">
-
-
-    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.SysDeptAccountEntity">
-        <id column="dept_id" jdbcType="VARCHAR" property="deptId"/>
-        <result column="handling_fee" jdbcType="DECIMAL" property="handlingFee"/>
-        <result column="documentary" jdbcType="DECIMAL" property="documentary"/>
-        <result column="promotion" jdbcType="DECIMAL" property="promotion"/>
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
-    </resultMap>
-
-
-    <sql id="Base_Column_List">
-        dept_id
-        , handling_fee, documentary, promotion, create_time
-    </sql>
-
-</mapper>

+ 31 - 0
src/main/resources/mapper/modules/admin/SysDeptAccountMapper.xml

@@ -0,0 +1,31 @@
+<?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.SysDeptAccountMapper">
+
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.dto.SysDeptAccountDto">
+        <id column="dept_id" jdbcType="VARCHAR" property="deptId"/>
+        <result column="name" jdbcType="VARCHAR" property="deptName"/>
+        <result column="management_fee" jdbcType="DECIMAL" property="managementFee"/>
+        <result column="create_date" jdbcType="TIMESTAMP" property="createTime"/>
+    </resultMap>
+
+    <select id="getDept" resultMap="BaseResultMap">
+        SELECT
+        a.dept_id,
+        b.NAME,
+        a.management_fee,
+        DATE(a.create_time) as create_date
+        FROM
+        sys_dept_account a
+        LEFT JOIN sys_dept b ON a.dept_id = b.id
+        where
+            b.del_flag = 0
+        <if test="sysDeptAccountDto.deptId != null and sysDeptAccountDto.deptId != ''">
+            AND a.dept_id like concat(#{sysDeptAccountDto.deptId},'%')
+        </if>
+        <if test="sysDeptAccountDto.deptName != null and sysDeptAccountDto.deptName != ''">
+            AND b.name like concat(#{sysDeptAccountDto.deptName},'%')
+        </if>
+    </select>
+</mapper>

+ 102 - 0
src/main/resources/mapper/modules/fnc/InsPlyIncomeMapper.xml

@@ -24,6 +24,108 @@
         <result column="final_fee_value" property="finalFeeValue" />
         <result column="doing_fee_value" property="doingFeeValue" />
         <result column="create_time" property="createTime" />
+        <result column="voucher_number" property="voucherNumber"/>
+        <result column="contract_id" property="contractId"/>
+        <result column="contract_file_id" property="contractFileId"/>
+        <result column="handling_fees_status" property="handlingFeesStatus"/>
+        <result column="documentary_fees_status" property="documentaryFeesStatus"/>
+        <result column="no_policyno" property="noPolicyno"/>
+        <result column="sy_policyno" property="syPolicyno"/>
     </resultMap>
 
+    <select id="queryNew"  resultType="com.ydtech.modules.fnc.entity.InsPlyIncome">
+            select
+                a.orderno  as  "orderno",
+                a.policyno  as  "policyno",
+                a.dept_id  as  "deptId",
+                a.riskcode  as  "riskcode",
+                a.pay_date  as  "payDate",
+                a.signdate  as  "signdate",
+                a.company_id  as  "companyId",
+                a.agreement_id  as  "agreementId",
+                a.licenseno  as  "licenseno",
+                a.taxamount  as  "taxamount",
+                a.no_tax_premium  as  "noTaxPremium",
+                a.commission_feerate  as  "commissionFeerate",
+                a.other_feerate  as  "otherFeerate",
+                a.commission_feevalue  as  "commissionFeevalue",
+                a.other_feevalue  as  "otherFeevalue",
+                a.all_fee_value  as  "allFeeValue",
+                a.final_fee_value  as  "finalFeeValue",
+                a.doing_fee_value  as  "doingFeeValue",
+                a.voucher_number  as  "voucherNumber",
+                a.contract_id  as  "contractId",
+                a.contract_file_id  as  "contractFileId",
+                a.handling_fees_status  as  "handlingFeesStatus",
+                a.no_policyno  as  "noPolicyno",
+                a.sy_policyno  as  "syPolicyno",
+                a.documentary_fees_status  as  "documentaryFeesStatus",
+                a.create_time  as  "createTime"
+                from  ins_ply_income a
+                LEFT  JOIN  ptl_agreement  pa  on  a.agreement_id  = pa.id
+            <where>
+                <if test="startDate !=null  and  startDate!='' and  endDate !=null and endDate !=''">
+                    and DATE_FORMAT( a.signdate, '%Y-%m-%d')  between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')
+                </if>
+                <if test="agreementType !=null  and  agreementType  !=''">
+                    and pa.agreement_type =#{agreementType}
+                </if>
+
+               <if test="handlingFeesStatus !=null  and  handlingFeesStatus  !=''">
+                    and a.handling_fees_status =#{handlingFeesStatus}
+                </if>
+                <if test="documentaryFeesStatus !=null  and  documentaryFeesStatus  !=''">
+                    and a.documentary_fees_status =#{documentaryFeesStatus}
+                </if>
+            </where>
+    </select>
+
+
+    <select id="totalQuery"  resultType="com.ydtech.modules.fnc.entity.InsPlyIncome">
+            select
+                 sum(a.other_feevalue) as "totAmount",
+                GROUP_CONCAT(orderno) as  "ids",
+                count(1) as "totalorders"
+                from  ins_ply_income a
+                LEFT  JOIN  ptl_agreement  pa  on  a.agreement_id  = pa.id
+            <where>
+                <if test="startDate !=null  and  startDate!='' and  endDate !=null and endDate !=''">
+                    and DATE_FORMAT( a.signdate, '%Y-%m-%d')  between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')
+                </if>
+
+                <if test="agreementtype !=null  and  agreementtype  !=''">
+                    and pa.agreement_type =#{agreementtype}
+                </if>
+
+                <if test="handlingFeesStatus !=null  and  handlingFeesStatus  !=''">
+                    and a.handling_fees_status =#{handlingFeesStatus}
+                </if>
+
+                <if test="documentaryFeesStatus !=null  and  documentaryFeesStatus  !=''">
+                    and a.documentary_fees_status =#{documentaryFeesStatus}
+                </if>
+            </where>
+    </select>
+
+    <update id="uopdateByOrderno" parameterType="com.ydtech.modules.fnc.entity.InsPlyIncome">
+        update ins_ply_income
+        <set>
+            <if test="contractId != null">
+                contract_id = #{contractId},
+            </if>
+            <if test="voucherNumber != null">
+                voucher_number = #{voucherNumber},
+            </if>
+            <if test="contractFileId != null">
+                contract_file_id = #{contractFileId},
+            </if>
+            <if test="handlingFeesStatus != null">
+                handling_fees_status = #{handlingFeesStatus},
+            </if>
+            <if test="documentaryFeesStatus != null">
+                documentary_fees_status = #{documentaryFeesStatus},
+            </if>
+        </set>
+        where  orderno  =#{orderno}
+    </update>
 </mapper>

+ 47 - 0
src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml

@@ -0,0 +1,47 @@
+<?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.fnc.dao.SettlementDocumentaryFeesMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity">
+        <id column="id" property="id" />
+        <result column="total_orders" property="totalOrders"/>
+        <result column="time_frame" property="timeFrame"/>
+        <result column="total_amount" property="totalAmount"/>
+        <result column="create_time" property="createTime"/>
+    </resultMap>
+
+
+
+    <select id="querySettle" resultType="com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity">
+        select
+            a.id as "id",
+            a.total_orders as "totalOrders",
+            a.time_frame as "timeFrame",
+            a.total_amount as "totalAmount",
+            a.create_time as "createTime"
+            from  settlement_documentary_fees  a
+    </select>
+
+
+    <select id="checkDate" resultType="com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity">
+        select a.id                as "id",
+        a.total_orders      as "totalOrders",
+        a.time_frame        as "timeFrame",
+        a.total_amount      as "totalAmount",
+        a.create_time       as "createTime",
+        a.start_time        as "startTime",
+        a.end_time          as "endTime",
+        a.settlement_amount as "settlementAmount",
+        a.unsettled_amount  as "unsettledAmount"
+        from settlement_documentary_fees a
+        <where>
+            <if test="startDate !=null  and  startDate  !=''  and endDate !=null  and  endDate  !=''" >
+                (start_time &lt; #{endDate} AND start_time &gt; #{startDate}) OR (end_time &lt;  #{endDate} AND end_time &gt; #{startDate})
+            </if>
+        </where>
+    </select>
+
+
+
+</mapper>

+ 17 - 0
src/main/resources/mapper/modules/fnc/SettlementDocumentaryLogMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.fnc.dao.SettlementDocumentaryLogMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity">
+        <id column="id" property="id"/>
+        <result column="amount" property="amount"/>
+        <result column="settlement_documentary_id" property="settlementDocumentaryId"/>
+        <result column="amount_type" property="amountType"/>
+        <result column="create_time" property="createTime"/>
+    </resultMap>
+
+
+
+
+</mapper>

+ 2 - 2
src/main/resources/mapper/modules/largescreen/AgreementDataMapper.xml

@@ -89,7 +89,7 @@
         SELECT
             count( orderno )
         FROM
-            ins_orders
+            ins_area_company
         WHERE
             1=1
         <if test="startDate != null and startDate != ''">
@@ -297,4 +297,4 @@
             insurance_dept
     </select>
 
-</mapper>
+</mapper>

+ 46 - 11
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -134,26 +134,29 @@
 
     <select id="getPendingAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-            *
+        *
         FROM
-            ins_orders
+        ins_orders
         WHERE
-            orderno IN (
-            SELECT
-                orderno
-            FROM
-                ins_area_company
-            WHERE
-                    id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE ins_order_no IN ( SELECT id FROM ins_area_company WHERE orderstatus = 2 OR orderstatus = 3 ) UNION SELECT ins_order_no FROM ins_fee_audit )
+        orderno IN (
+        SELECT
+        orderno
+        FROM
+        ins_area_company
+        WHERE
+        id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE id NOT IN ( SELECT ins_order_no FROM ins_fee_audit ) )
+        AND orderstatus = 2
         )
+        AND
+        orderstatus= 2
         <if test="params.orderNo != null and params.orderNo != ''">
             AND orderno = #{params.orderNo}
         </if>
         <if test="params.licenseNo != null and params.licenseNo != ''">
-            AND license_no = #{params.licenseNo}
+            AND licenseno = #{params.licenseNo}
         </if>
         <if test="params.frameNo != null and params.frameNo != ''">
-            AND frame_no = #{params.frameNo}
+            AND frameno = #{params.frameNo}
         </if>
         <if test="params.insuredname != null and params.insuredname != ''">
             AND insuredname = #{params.insuredname}
@@ -163,4 +166,36 @@
         </if>
     </select>
 
+
+    <select id="getAlreadyAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        *
+        FROM
+        ins_orders
+        WHERE
+        orderno IN (
+        SELECT
+        orderno
+        FROM
+        ins_area_company
+        WHERE
+        id IN ( SELECT ifon.ins_order_no FROM ins_fee_order_new ifon RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no ))
+          AND
+            orderstatus = 2
+        <if test="params.orderNo != null and params.orderNo != ''">
+            AND orderno = #{params.orderNo}
+        </if>
+        <if test="params.licenseNo != null and params.licenseNo != ''">
+            AND licenseno = #{params.licenseNo}
+        </if>
+        <if test="params.frameNo != null and params.frameNo != ''">
+            AND frameno = #{params.frameNo}
+        </if>
+        <if test="params.insuredname != null and params.insuredname != ''">
+            AND insuredname = #{params.insuredname}
+        </if>
+        <if test="params.startDate != null and params.startDate != ''">
+            BETWEEN createtime = #{params.startDate} and #{params.endDate}
+        </if>
+    </select>
 </mapper>

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

@@ -246,8 +246,7 @@
                syenddate,
                risk,
                king,
-               vehicle_and_vessel_tax,
-               ubi_predicted_info_score
+               vehicle_and_vessel_tax
         from ins_orders
         where userid = #{userId, jdbcType=VARCHAR}
           and licenseno = #{licenseNo, jdbcType=VARCHAR}
@@ -385,8 +384,7 @@
         b.kindinfo,
         b.pay_date,
         b.signing_time,
-        b.cross_insurance,
-        a.ubi_predicted_info_score
+        b.cross_insurance
         FROM ins_orders a LEFT JOIN ins_area_company b on a.orderno = b.orderno
         WHERE
         1 = 1