Sfoglia il codice sorgente

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

# Conflicts:
#	src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
#	src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
785834757 2 anni fa
parent
commit
588d241fe1
89 ha cambiato i file con 4410 aggiunte e 182 eliminazioni
  1. 15 10
      src/main/java/com/ydtech/config/SwaggerConfig.java
  2. 29 0
      src/main/java/com/ydtech/constants/enums/dict/AuditingStatusEnum.java
  3. 47 0
      src/main/java/com/ydtech/constants/enums/dict/ser/OderStateEnum.java
  4. 39 0
      src/main/java/com/ydtech/constants/enums/dict/ser/RescueTypeEnum.java
  5. 20 6
      src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java
  6. 6 1
      src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java
  7. 24 16
      src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java
  8. 6 1
      src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingMapper.java
  9. 4 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserBankCardMapper.java
  10. 65 2
      src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java
  11. 11 1
      src/main/java/com/ydtech/modules/admin/model/po/SysUserAccountHistory.java
  12. 7 1
      src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCard.java
  13. 47 2
      src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java
  14. 1 1
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountHistoryVo.java
  15. 4 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountVo.java
  16. 4 1
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java
  17. 6 0
      src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java
  18. 2 0
      src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java
  19. 7 0
      src/main/java/com/ydtech/modules/admin/service/SysUserBankCardService.java
  20. 31 3
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java
  21. 26 13
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  22. 27 4
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java
  23. 23 27
      src/main/java/com/ydtech/modules/ins/model/guoren/InsuranceSlipReq.java
  24. 17 0
      src/main/java/com/ydtech/modules/ins/model/guoren/PremiumResp.java
  25. 0 12
      src/main/java/com/ydtech/modules/inv/controller/InvReceivableController.java
  26. 3 2
      src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java
  27. 18 0
      src/main/java/com/ydtech/modules/order/components/pingan/PinganRequestApiComponents.java
  28. 1 1
      src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java
  29. 86 0
      src/main/java/com/ydtech/modules/order/controller/PingAnOrderApiController.java
  30. 1 1
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  31. 11 0
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java
  32. 65 2
      src/main/java/com/ydtech/modules/order/entity/api/bohai/response/UnderwritingResponse.java
  33. 1 0
      src/main/java/com/ydtech/modules/order/entity/api/huatai/HuaTaiBaseResponse.java
  34. 194 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/CarConfirmRequest.java
  35. 71 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/IndexRequest.java
  36. 22 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/PingAnBaseRequest.java
  37. 239 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/QuoteRequest.java
  38. 19 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/RenewalConfirmRequest.java
  39. 24 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SearchPAVehicleListRequest.java
  40. 20 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/ServiceContractRequest.java
  41. 170 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SubmitApplyRequest.java
  42. 20 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UnAutoProductDetailRequest.java
  43. 32 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UnAutoProductListRequest.java
  44. 246 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/CarConfirmResponse.java
  45. 120 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/IndexResponse.java
  46. 16 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/PingAnBaseResponse.java
  47. 441 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/QuoteResponse.java
  48. 279 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/RenewalConfirmResponse.java
  49. 111 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/SearchPAVehicleListResponse.java
  50. 35 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/ServiceContractResponse.java
  51. 15 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/SubmitApplyResponse.java
  52. 25 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/UnAutoProductDetailResponse.java
  53. 57 0
      src/main/java/com/ydtech/modules/order/entity/api/pingan/response/UnAutoProductListResponse.java
  54. 1 1
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  55. 57 0
      src/main/java/com/ydtech/modules/order/service/PingAnOrderApiService.java
  56. 28 12
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  57. 1 4
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  58. 1 1
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  59. 176 29
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  60. 50 0
      src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java
  61. 1 1
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  62. 40 0
      src/main/java/com/ydtech/modules/ser/controller/SerAnnualAuditOrderController.java
  63. 52 0
      src/main/java/com/ydtech/modules/ser/controller/SerCarInfoController.java
  64. 56 0
      src/main/java/com/ydtech/modules/ser/controller/SerRescueOrderController.java
  65. 55 0
      src/main/java/com/ydtech/modules/ser/controller/SerServePriceController.java
  66. 7 0
      src/main/java/com/ydtech/modules/ser/dao/SerAnnualAuditOrderMapper.java
  67. 7 0
      src/main/java/com/ydtech/modules/ser/dao/SerCarInfoMapper.java
  68. 8 0
      src/main/java/com/ydtech/modules/ser/dao/SerRescueOrderMapper.java
  69. 7 0
      src/main/java/com/ydtech/modules/ser/dao/SerServePriceMapper.java
  70. 92 0
      src/main/java/com/ydtech/modules/ser/model/SerAnnualAuditOrder.java
  71. 123 0
      src/main/java/com/ydtech/modules/ser/model/SerCarInfo.java
  72. 83 0
      src/main/java/com/ydtech/modules/ser/model/po/RescueOrder.java
  73. 59 0
      src/main/java/com/ydtech/modules/ser/model/po/ServePrice.java
  74. 55 0
      src/main/java/com/ydtech/modules/ser/model/vo/RescueOrderVo.java
  75. 89 0
      src/main/java/com/ydtech/modules/ser/model/vo/SerAnnualAuditOrderQueryVo.java
  76. 12 0
      src/main/java/com/ydtech/modules/ser/service/SerAnnualAuditOrderService.java
  77. 12 0
      src/main/java/com/ydtech/modules/ser/service/SerCarInfoService.java
  78. 16 0
      src/main/java/com/ydtech/modules/ser/service/SerRescueOrderService.java
  79. 16 0
      src/main/java/com/ydtech/modules/ser/service/SerServePriceService.java
  80. 59 0
      src/main/java/com/ydtech/modules/ser/service/impl/SerAnnualAuditOrderServiceImpl.java
  81. 114 0
      src/main/java/com/ydtech/modules/ser/service/impl/SerCarInfoServiceImpl.java
  82. 115 0
      src/main/java/com/ydtech/modules/ser/service/impl/SerRescueOrderServiceImpl.java
  83. 34 0
      src/main/java/com/ydtech/modules/ser/service/impl/SerServePriceServiceImpl.java
  84. 48 0
      src/main/java/com/ydtech/modules/ser/utils/PositionUtil.java
  85. 58 10
      src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml
  86. 23 0
      src/main/resources/mapper/modules/admin/SysUserBankCardMapper.xml
  87. 37 17
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml
  88. 4 0
      src/main/resources/mapper/modules/ser/SerAnnualAuditOrderMapper.xml
  89. 4 0
      src/main/resources/mapper/modules/ser/SerCarInfoMapper.xml

+ 15 - 10
src/main/java/com/ydtech/config/SwaggerConfig.java

@@ -52,7 +52,7 @@ public class SwaggerConfig {
     @Bean(value = "invApi")
     @Bean(value = "invApi")
     @Order(value = 4)
     @Order(value = 4)
     public Docket invApi() {
     public Docket invApi() {
-        return buildDocket("inv","inv财务");
+        return buildDocket("inv", "inv财务");
     }
     }
 
 
     @Bean(value = "reportApi")
     @Bean(value = "reportApi")
@@ -86,18 +86,25 @@ public class SwaggerConfig {
         return buildDocket("protocols");
         return buildDocket("protocols");
     }
     }
 
 
-    @Bean(value = "demoApi")
+    @Bean(value = "serApi")
     @Order(value = 9)
     @Order(value = 9)
+    public Docket serApi() {
+        return buildDocket("ser");
+    }
+
+    @Bean(value = "demoApi")
+    @Order(value = 10)
     public Docket baseDemoApi() {
     public Docket baseDemoApi() {
-        return buildDocket("demo","示例演示");
+        return buildDocket("demo", "示例演示");
     }
     }
 
 
     @Bean(value = "largescreenApi")
     @Bean(value = "largescreenApi")
-    @Order(value = 10)
+    @Order(value = 11)
     public Docket largescreenApi() {
     public Docket largescreenApi() {
-        return buildDocket("largescreen","大屏接口");
+        return buildDocket("largescreen", "大屏接口");
     }
     }
 
 
+
     private ApiInfo apiInfo() {
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
         return new ApiInfoBuilder()
                 .title("晋掌柜 API 文档")
                 .title("晋掌柜 API 文档")
@@ -152,8 +159,7 @@ public class SwaggerConfig {
     }
     }
 
 
 
 
-
-    public Docket buildDocket(String basePackage){
+    public Docket buildDocket(String basePackage) {
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                 .select()
                 .select()
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
@@ -167,7 +173,8 @@ public class SwaggerConfig {
                 ;
                 ;
 
 
     }
     }
-    public Docket buildDocket(String basePackage,String groupName){
+
+    public Docket buildDocket(String basePackage, String groupName) {
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                 .select()
                 .select()
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
                 .apis(RequestHandlerSelectors.basePackage("com.ydtech.modules." + basePackage))
@@ -183,6 +190,4 @@ public class SwaggerConfig {
     }
     }
 
 
 
 
-
-
 }
 }

+ 29 - 0
src/main/java/com/ydtech/constants/enums/dict/AuditingStatusEnum.java

@@ -0,0 +1,29 @@
+package com.ydtech.constants.enums.dict;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "pay_status", desc = "提现金额类型")
+public enum AuditingStatusEnum implements IBaseEnum{
+
+
+
+    PS1("1","手续费佣金",1,0),
+    PS2("2","非跟单佣金",2,0),
+    PS3("3","推广佣金",3,0);
+
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+}

+ 47 - 0
src/main/java/com/ydtech/constants/enums/dict/ser/OderStateEnum.java

@@ -0,0 +1,47 @@
+package com.ydtech.constants.enums.dict.ser;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "oderState", desc = "订单状态")
+public enum OderStateEnum implements IBaseEnum {
+
+    UNPAID("101","待支付",0,1),
+
+    AWAIT_RESCUE("102","待救援",0,1),
+
+    UNDERWAY_RESCUE("103","救援中",0,1),
+
+    FINISHED("104","已结束",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+    public static OderStateEnum getOderStateEnum(String code)
+    {
+        for (OderStateEnum item : OderStateEnum.values())
+        {
+            if (item.getCode().equals(code))
+            {
+                return item;
+            }
+        }
+        return null;
+    }
+
+
+
+
+
+}

+ 39 - 0
src/main/java/com/ydtech/constants/enums/dict/ser/RescueTypeEnum.java

@@ -0,0 +1,39 @@
+package com.ydtech.constants.enums.dict.ser;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "rescueType", desc = "救援类型")
+public enum RescueTypeEnum implements IBaseEnum {
+
+    ELECTRIC_RESCUE("201","搭电救援",0,1),
+
+    TRAILER_RESCUE("202","拖车救援",0,1),
+
+    TYRE_RESCUE("203","换胎救援",0,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+
+    public static RescueTypeEnum getRescueTypeEnum(String code) {
+        for (RescueTypeEnum rescueTypeEnum : RescueTypeEnum.values()) {
+            if (rescueTypeEnum.getCode().equals(code)) {
+                return rescueTypeEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 20 - 6
src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java

@@ -2,26 +2,33 @@ package com.ydtech.modules.admin.controller;
 
 
 
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PutMapping;
-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.*;
 
 
-@Api(tags = "账户余额")
+import javax.validation.Valid;
+
+@Api(tags = "提现审核")
 @RequestMapping("/sysAmountAuditing")
 @RequestMapping("/sysAmountAuditing")
 @RestController
 @RestController
 public class SysAmountAuditingController extends BaseController {
 public class SysAmountAuditingController extends BaseController {
     @Autowired
     @Autowired
     private SysAmountAuditingService sysAmountAuditingService;
     private SysAmountAuditingService sysAmountAuditingService;
 
 
-
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "提现审核分页")
+    public HttpResult<BasePageResult<SysAmountAuditingEntity>> queryPageOrder(@RequestBody @Valid SysAmountAuditingVo sysAmountAuditingVo) {
+        BasePageResult<SysAmountAuditingEntity> result = sysAmountAuditingService.queryByVo(sysAmountAuditingVo);
+        return HttpResult.ok("success", result);
+    }
 
 
     @PutMapping("AmountReview")
     @PutMapping("AmountReview")
     @ApiOperation("审核提现")
     @ApiOperation("审核提现")
@@ -29,4 +36,11 @@ public class SysAmountAuditingController extends BaseController {
         sysAmountAuditingService.AmountReview(sysUserAccountVo);
         sysAmountAuditingService.AmountReview(sysUserAccountVo);
         return HttpResult.ok("审核成功");
         return HttpResult.ok("审核成功");
     }
     }
+
+    @PostMapping("/queryAppPage")
+    @ApiOperation(value = "提现审核分页")
+    public HttpResult<BasePageResult<SysAmountAuditingEntity>> queryAppPage(@RequestBody @Valid SysAmountAuditingVo sysAmountAuditingVo) {
+        BasePageResult<SysAmountAuditingEntity> result = sysAmountAuditingService.queryAppPage(sysAmountAuditingVo);
+        return HttpResult.ok("success", result);
+    }
 }
 }

+ 6 - 1
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
+import java.math.BigDecimal;
 
 
 @Api(tags = "账户余额")
 @Api(tags = "账户余额")
 @RequestMapping("/sysUserAccount")
 @RequestMapping("/sysUserAccount")
@@ -40,7 +41,11 @@ public class SysUserAccountController extends BaseController {
         return sysUserAccountService.inert(sysUserAccountVo);
         return sysUserAccountService.inert(sysUserAccountVo);
     }
     }
 
 
-
+    @GetMapping(value = "/getSysUserAmount")
+    @ApiOperation("用户账户余额")
+    public HttpResult<SysUserAccount> getSysUserAmount(@RequestParam String userid) {
+        return HttpResult.ok(sysUserAccountService.getSysUserAmount(userid));
+    }
 
 
 
 
 
 

+ 24 - 16
src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java

@@ -3,25 +3,18 @@ package com.ydtech.modules.admin.controller;
 
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
-import com.ydtech.modules.admin.model.vo.SysPositionVo;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
-import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
-import com.ydtech.modules.admin.model.vo.SysUserVO;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.base.controller.BaseController;
-import com.ydtech.modules.esm.model.vo.EsmInsVehicleInspectionCodeVo;
-import com.ydtech.modules.fnc.model.FncSubject;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
-import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.vo.OrderQueryVo;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
-import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import javax.validation.Valid;
-import java.util.HashMap;
+import java.util.List;
 
 
 @Api(tags = "银行卡号")
 @Api(tags = "银行卡号")
 @RequestMapping("/userBank")
 @RequestMapping("/userBank")
@@ -32,12 +25,10 @@ public class SysUserBankController extends BaseController {
     private SysUserBankCardService bankCardService;
     private SysUserBankCardService bankCardService;
 
 
 
 
-
-
     @PostMapping("/queryPage")
     @PostMapping("/queryPage")
     @ApiOperation(value = "银行卡号分页")
     @ApiOperation(value = "银行卡号分页")
-    public HttpResult<BasePageResult<SysUserBankCard>> queryPageOrder(@RequestBody @Valid SysUserBankCardVO sysUserBankCardVO ) {
-            BasePageResult<SysUserBankCard> result = bankCardService.queryByVo(sysUserBankCardVO);
+    public HttpResult<BasePageResult<SysUserBankCard>> queryPageOrder(@RequestBody @Valid SysUserBankCardVO sysUserBankCardVO) {
+        BasePageResult<SysUserBankCard> result = bankCardService.queryByVo(sysUserBankCardVO);
         return HttpResult.ok("success", result);
         return HttpResult.ok("success", result);
     }
     }
 
 
@@ -56,14 +47,31 @@ public class SysUserBankController extends BaseController {
         bankCardService.deleteSysUserBank(id);
         bankCardService.deleteSysUserBank(id);
         return HttpResult.ok("删除成功");
         return HttpResult.ok("删除成功");
     }
     }
+
     @PutMapping("update")
     @PutMapping("update")
     @ApiOperation("修改")
     @ApiOperation("修改")
     public HttpResult<Object> modification(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
     public HttpResult<Object> modification(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
         bankCardService.uodate(sysUserBankCardVO);
         bankCardService.uodate(sysUserBankCardVO);
         return HttpResult.ok("修改成功");
         return HttpResult.ok("修改成功");
     }
     }
-    @GetMapping HttpResult<SysUserBankCardVO> getById (String  userId){
-        return  bankCardService.getByUserId(userId);
+
+    @GetMapping
+    HttpResult<SysUserBankCardVO> getById(String userId) {
+        return bankCardService.getByUserId(userId);
+    }
+
+    @PostMapping("/insertByBankNumber")
+    @ApiOperation("新增卡号开户行")
+    public HttpResult<Object> insertByBankNumber(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
+        bankCardService.insertByBankNumber(sysUserBankCardVO);
+
+        return HttpResult.ok("新增成功");
+    }
+
+    @GetMapping("getUserBankList")
+    @ApiOperation("返回卡包")
+    public HttpResult<List<SysUserBankCard>> getUserBankList() {
+        return bankCardService.getUserBankList();
     }
     }
 
 
 
 

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

@@ -1,11 +1,16 @@
 package com.ydtech.modules.admin.dao;
 package com.ydtech.modules.admin.dao;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
+import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 
 @Mapper
 @Mapper
-public interface SysAmountAuditingMapper  extends BaseMapper<SysAmountAuditingEntity> {
+public interface SysAmountAuditingMapper extends BaseMapper<SysAmountAuditingEntity> {
     SysAmountAuditingEntity getByUserId(String userId);
     SysAmountAuditingEntity getByUserId(String userId);
 
 
+    Page<SysAmountAuditingEntity> queryPageOrder(@Param("sysAmountAuditingVo") SysAmountAuditingVo sysAmountAuditingVo, Page<SysAmountAuditingEntity> page);
+
 }
 }

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

@@ -5,6 +5,8 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 
 
+import java.util.List;
+
 /**
 /**
 * @author Administrator
 * @author Administrator
 * @description 针对表【sys_user_bank_card(银行卡号)】的数据库操作Mapper
 * @description 针对表【sys_user_bank_card(银行卡号)】的数据库操作Mapper
@@ -15,6 +17,8 @@ public interface SysUserBankCardMapper extends BaseMapper<SysUserBankCard> {
 
 
 
 
     HttpResult<SysUserBankCardVO> getByUserId(String userId);
     HttpResult<SysUserBankCardVO> getByUserId(String userId);
+
+    List<SysUserBankCard> getUserBankList(String userId);
 }
 }
 
 
 
 

+ 65 - 2
src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java

@@ -9,7 +9,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
 
 
-@TableName(value ="sys_amount_auditing")
+@TableName(value = "sys_amount_auditing")
 @Data
 @Data
 public class SysAmountAuditingEntity implements Serializable {
 public class SysAmountAuditingEntity implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
@@ -18,7 +18,7 @@ public class SysAmountAuditingEntity implements Serializable {
      * id
      * id
      */
      */
     @TableId(value = "id")
     @TableId(value = "id")
-    private Integer id;
+    private String id;
     /**
     /**
      * 用户id
      * 用户id
      */
      */
@@ -52,4 +52,67 @@ public class SysAmountAuditingEntity implements Serializable {
      */
      */
     @TableField(value = "amount_status")
     @TableField(value = "amount_status")
     private String amountStatus;
     private String amountStatus;
+
+    /**
+     * 审核时间
+     */
+    @TableField(value = "auditing_time")
+    private Date auditingTime;
+
+    /**
+     * 审核人
+     */
+    @TableField(value = "auditing_user_id")
+    private String auditingUserId;
+
+
+    /**
+     * 用户当前金额
+     */
+    @TableField(exist = false)
+    private BigDecimal userAmount;
+
+    /**
+     * 提现金额
+     */
+    @TableField(exist = false)
+    private BigDecimal historyAmount;
+
+    /**
+     * 剩余金额
+     */
+    @TableField(exist = false)
+    private BigDecimal surplusAmount;
+
+
+    /**
+     * 用户名称
+     */
+    @TableField(exist = false)
+    private String userName;
+
+
+    /**
+     * 部门id
+     */
+    @TableField(exist = false)
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 开户行
+     */
+    @TableField(exist = false)
+    private String bankAccount;
+
+    /**
+     * 审核人名称
+     */
+    @TableField(exist = false)
+    private String auditingUserName;
 }
 }

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

@@ -20,7 +20,12 @@ public class SysUserAccountHistory implements Serializable {
      * 主键
      * 主键
      */
      */
     @TableId(value = "id")
     @TableId(value = "id")
-    private Long id;
+    private String id;
+    /**
+     *   用户提现审核id
+     */
+    @TableField(value = "auditiing_id")
+    private String auditiingId;
 
 
     /**
     /**
      * 金额
      * 金额
@@ -33,6 +38,11 @@ public class SysUserAccountHistory implements Serializable {
      */
      */
     @TableField(value = "surplus_amount")
     @TableField(value = "surplus_amount")
     private BigDecimal surplusAmount;
     private BigDecimal surplusAmount;
+    /**
+     * 用户剩余金额
+     */
+    @TableField(value = "user_amount")
+    private BigDecimal userAmount;
 
 
     /**
     /**
      * 提现 / 收入 1 提现 2 收入
      * 提现 / 收入 1 提现 2 收入

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

@@ -23,7 +23,7 @@ public class SysUserBankCard implements Serializable {
      * 主键
      * 主键
      */
      */
     @TableId(value = "id")
     @TableId(value = "id")
-    private Long id;
+    private String id;
 
 
     /**
     /**
      * 银行卡号
      * 银行卡号
@@ -43,6 +43,12 @@ public class SysUserBankCard implements Serializable {
     @TableField(value = "user_id")
     @TableField(value = "user_id")
     private String userId;
     private String userId;
 
 
+    /**
+     * 是否默认值
+     */
+    @TableField(value = "is_default")
+    private Integer isDefault;
+
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */

+ 47 - 2
src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java

@@ -3,9 +3,11 @@ package com.ydtech.modules.admin.model.vo;
 
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.Min;
@@ -17,7 +19,7 @@ import java.util.Date;
 public class SysAmountAuditingVo {
 public class SysAmountAuditingVo {
 
 
     @ApiModelProperty(value = "id")
     @ApiModelProperty(value = "id")
-    private Integer id;
+    private String id;
 
 
     @ApiModelProperty(value = "用户id")
     @ApiModelProperty(value = "用户id")
     private String userId;
     private String userId;
@@ -29,7 +31,7 @@ public class SysAmountAuditingVo {
     @ApiModelProperty(value = "提现金额")
     @ApiModelProperty(value = "提现金额")
     private BigDecimal amount;
     private BigDecimal amount;
 
 
-
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "创建时间")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
     private Date createTime;
 
 
@@ -40,6 +42,30 @@ public class SysAmountAuditingVo {
     @ApiModelProperty(value = "金额类型")
     @ApiModelProperty(value = "金额类型")
     private String amountStatus;
     private String amountStatus;
 
 
+    @ApiModelProperty(value = "用户当前金额")
+    private BigDecimal userAmount;
+
+    @ApiModelProperty(value = "提现金额")
+    private BigDecimal historyAmount;
+
+
+    @ApiModelProperty(value = "剩余金额")
+    private BigDecimal surplusAmount;
+
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+
+    @ApiModelProperty(value = "部门id")
+    private String deptId;
+
+    @ApiModelProperty(value = "部门名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "开户行")
+    private String bankAccount;
+
     @ApiModelProperty(value = "每页页数")
     @ApiModelProperty(value = "每页页数")
     @Min(value = 20, message = "页数最小为20")
     @Min(value = 20, message = "页数最小为20")
     @Max(value = 100, message = "页数最大为100")
     @Max(value = 100, message = "页数最大为100")
@@ -49,4 +75,23 @@ public class SysAmountAuditingVo {
     @Min(value = 1, message = "页数最小为1")
     @Min(value = 1, message = "页数最小为1")
     private int pageNum;
     private int pageNum;
 
 
+    @ApiModelProperty("开始时间")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    @ApiModelProperty("结束时间")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    @ApiModelProperty("审批时间")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date auditingTime;
+
+    @ApiModelProperty("审核人")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private String auditingUserId;
+    @ApiModelProperty(value = "审核人名称")
+    private String auditingUserName;
+
+
 }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountHistoryVo.java

@@ -19,7 +19,7 @@ import java.util.Date;
 public class SysUserAccountHistoryVo {
 public class SysUserAccountHistoryVo {
 
 
     @ApiModelProperty("id")
     @ApiModelProperty("id")
-    private Long id;
+    private String id;
 
 
     @ApiModelProperty("金额")
     @ApiModelProperty("金额")
     private BigDecimal amount;
     private BigDecimal amount;

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountVo.java

@@ -96,4 +96,8 @@ public class SysUserAccountVo {
 
 
     @ApiModelProperty(value = "银行卡")
     @ApiModelProperty(value = "银行卡")
     private String fromBankCard;
     private String fromBankCard;
+
+
+    @ApiModelProperty(value = "银行卡Id")
+    private Long fromBankCardId;
 }
 }

+ 4 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java

@@ -20,7 +20,7 @@ import java.util.Date;
 public class SysUserBankCardVO {
 public class SysUserBankCardVO {
 
 
     @ApiModelProperty("id")
     @ApiModelProperty("id")
-    private Long id;
+    private String id;
 
 
     @ApiModelProperty(value = "银行卡号")
     @ApiModelProperty(value = "银行卡号")
     private String bankNumber;
     private String bankNumber;
@@ -31,6 +31,9 @@ public class SysUserBankCardVO {
     @ApiModelProperty(value = "userId")
     @ApiModelProperty(value = "userId")
     private String userId;
     private String userId;
 
 
+    @ApiModelProperty(value = "是否默认值")
+    private Integer isDefault;
+
 
 
     @JsonFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
     @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)

+ 6 - 0
src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java

@@ -3,9 +3,15 @@ package com.ydtech.modules.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
+import com.ydtech.modules.order.entity.BasePageResult;
 
 
 public interface SysAmountAuditingService extends IService<SysAmountAuditingEntity> {
 public interface SysAmountAuditingService extends IService<SysAmountAuditingEntity> {
     void AmountReview(SysAmountAuditingVo sysUserAccountVo);
     void AmountReview(SysAmountAuditingVo sysUserAccountVo);
 
 
     SysAmountAuditingEntity getByUserId(String userId);
     SysAmountAuditingEntity getByUserId(String userId);
+
+    BasePageResult<SysAmountAuditingEntity> queryByVo(SysAmountAuditingVo sysAmountAuditingVo);
+
+    BasePageResult<SysAmountAuditingEntity> queryAppPage(SysAmountAuditingVo sysAmountAuditingVo);
+
 }
 }

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java

@@ -20,4 +20,6 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
 
 
     HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo);
     HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo);
 
 
+    SysUserAccount getSysUserAmount(String userid);
+
 }
 }

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

@@ -7,6 +7,7 @@ import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
+import java.util.List;
 
 
 /**
 /**
 * @author Administrator
 * @author Administrator
@@ -25,4 +26,10 @@ public interface SysUserBankCardService extends IService<SysUserBankCard> {
     void uodate(SysUserBankCardVO sysUserBankCardVO);
     void uodate(SysUserBankCardVO sysUserBankCardVO);
 
 
     HttpResult<SysUserBankCardVO> getByUserId(String userId);
     HttpResult<SysUserBankCardVO> getByUserId(String userId);
+
+    void insertByBankNumber(SysUserBankCardVO sysUserBankCardVO);
+
+    HttpResult<List<SysUserBankCard>> getUserBankList();
+
+
 }
 }

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

@@ -1,5 +1,7 @@
 package com.ydtech.modules.admin.service.impl;
 package com.ydtech.modules.admin.service.impl;
 
 
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysAmountAuditingMapper;
 import com.ydtech.modules.admin.dao.SysAmountAuditingMapper;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
@@ -7,6 +9,8 @@ import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.admin.service.SysUserAccountService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -15,6 +19,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Date;
 
 
 @Service
 @Service
 public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingMapper, SysAmountAuditingEntity> implements SysAmountAuditingService {
 public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingMapper, SysAmountAuditingEntity> implements SysAmountAuditingService {
@@ -44,16 +49,18 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
                     } else if ("2".equals(amountStatus)) {
                     } else if ("2".equals(amountStatus)) {
                         BigDecimal documentary = sysUserAccount.getDocumentary();
                         BigDecimal documentary = sysUserAccount.getDocumentary();
                         BigDecimal afterAmount = documentary.subtract(amount);
                         BigDecimal afterAmount = documentary.subtract(amount);
-                        sysUserAccountEntity.setHandlingFee(afterAmount);
+                        sysUserAccountEntity.setDocumentary(afterAmount);
                     } else {
                     } else {
                         BigDecimal promotion = sysUserAccount.getPromotion();
                         BigDecimal promotion = sysUserAccount.getPromotion();
                         BigDecimal afterAmount = promotion.subtract(amount);
                         BigDecimal afterAmount = promotion.subtract(amount);
-                        sysUserAccountEntity.setHandlingFee(afterAmount);
+                        sysUserAccountEntity.setPromotion(afterAmount);
                     }
                     }
                 }
                 }
                 sysUserAccountService.updateById(sysUserAccountEntity);
                 sysUserAccountService.updateById(sysUserAccountEntity);
             }
             }
             sysAmountAuditingVo.setAuditingStatus("3");
             sysAmountAuditingVo.setAuditingStatus("3");
+            sysAmountAuditingVo.setAuditingUserId(BaseController.getUser().getId());
+            sysAmountAuditingVo.setAuditingTime(new Date());
             BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity);
             BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity);
             baseMapper.updateById(sysAmountAuditingEntity);
             baseMapper.updateById(sysAmountAuditingEntity);
         }
         }
@@ -63,6 +70,27 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
 
 
     @Override
     @Override
     public SysAmountAuditingEntity getByUserId(String userId) {
     public SysAmountAuditingEntity getByUserId(String userId) {
-        return  baseMapper.getByUserId(userId);
+        return baseMapper.getByUserId(userId);
+    }
+
+    @Override
+    public BasePageResult<SysAmountAuditingEntity> queryByVo(SysAmountAuditingVo sysAmountAuditingVo) {
+        Page<SysAmountAuditingEntity> page = new Page<>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize());
+        QueryWrapper<SysAmountAuditingEntity> wrapper = new QueryWrapper<>();
+
+        Page<SysAmountAuditingEntity> sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysAmountAuditingVo, page);
+        return new BasePageResult<>(sysAmountAuditingVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
+                sysUserAccountHistoryPage.getRecords());
+    }
+
+    @Override
+    public BasePageResult<SysAmountAuditingEntity> queryAppPage(SysAmountAuditingVo sysAmountAuditingVo) {
+        String id = BaseController.getUser().getId();
+        sysAmountAuditingVo.setUserId(id);
+        Page<SysAmountAuditingEntity> page = new Page<>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize());
+        QueryWrapper<SysAmountAuditingEntity> wrapper = new QueryWrapper<>();
+        Page<SysAmountAuditingEntity> sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysAmountAuditingVo, page);
+        return new BasePageResult<>(sysAmountAuditingVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
+                sysUserAccountHistoryPage.getRecords());
     }
     }
 }
 }

+ 26 - 13
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.service.*;
 import com.ydtech.modules.admin.service.*;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -134,37 +135,41 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Override
     @Override
     @Transactional
     @Transactional
     public HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo) {
     public HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo) {
-        String userId = sysUserAccountVo.getUserId();
+        String userId = BaseController.getUser().getId();
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal beforeAmount;
         BigDecimal beforeAmount;
         BigDecimal afterAmount;
         BigDecimal afterAmount;
 //       用户当前金额
 //       用户当前金额
         BigDecimal amount = sysUserAccountVo.getAmount();
         BigDecimal amount = sysUserAccountVo.getAmount();
-//       扣减后金额更改
         SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();  // 记录
         SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();  // 记录
         sysUserAccountHistory.setDocumentary(1);  // 1提现
         sysUserAccountHistory.setDocumentary(1);  // 1提现
-        sysUserAccountHistory.setUserId(sysUserAccountVo.getUserId());
+        sysUserAccountHistory.setUserId(userId);
         SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity();//审核记录表
         SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity();//审核记录表
-        sysAmountAuditingEntity.setUserId(sysUserAccountVo.getUserId());
+        sysAmountAuditingEntity.setUserId(userId);
         sysAmountAuditingEntity.setAmount(sysUserAccountVo.getAmount());
         sysAmountAuditingEntity.setAmount(sysUserAccountVo.getAmount());
         SysAmountAuditingEntity   judge =    sysAmountAuditingService.getByUserId(userId);
         SysAmountAuditingEntity   judge =    sysAmountAuditingService.getByUserId(userId);
         if(ObjectUtils.isNotEmpty(judge)){
         if(ObjectUtils.isNotEmpty(judge)){
             return HttpResult.ok("有未提现审核单据, 请审核完成之后再提现");
             return HttpResult.ok("有未提现审核单据, 请审核完成之后再提现");
         }
         }
-//      获取银行卡
-        HttpResult<SysUserBankCardVO> byUserId = sysUserBankCardService.getByUserId(userId);
-        if(byUserId!=null  && byUserId.getData()!=null  ){
-            SysUserBankCardVO data = byUserId.getData();
-            if(ObjectUtils.isNotEmpty(data)){
-                sysAmountAuditingEntity.setBankNumber( data.getBankNumber());
-                sysUserAccountHistory.setFromBankCard( data.getBankNumber());
+//      通过银行卡id 查询卡包
+        Long fromBankCardId = sysUserAccountVo.getFromBankCardId();
+        if(fromBankCardId!=null){
+            SysUserBankCard byId = sysUserBankCardService.getById(fromBankCardId);
+            String bankUserId = byId.getUserId();
+            if(!userId.equals(bankUserId)){
+                return HttpResult.ok("非本人提现");
             }
             }
-        }
+            byId.setIsDefault(1);
 
 
+            sysAmountAuditingEntity.setBankNumber( byId.getBankNumber());
+            sysUserAccountHistory.setFromBankCard( byId.getBankNumber());
+            sysUserBankCardService.updateById(byId);
+        }
 
 
         if (StringUtils.isNotEmpty(userId)) {
         if (StringUtils.isNotEmpty(userId)) {
             SysUserAccount sysUserAccount = baseMapper.getById(userId);
             SysUserAccount sysUserAccount = baseMapper.getById(userId);
 
 
+
             if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
             if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
                 sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus()));   //金额类型
                 sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus()));   //金额类型
 
 
@@ -186,18 +191,26 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                 }
                 }
                 sysUserAccountHistory.setAmount(amount);  // 金额
                 sysUserAccountHistory.setAmount(amount);  // 金额
                 sysUserAccountHistory.setSurplusAmount(afterAmount); // 剩余金额
                 sysUserAccountHistory.setSurplusAmount(afterAmount); // 剩余金额
+                sysUserAccountHistory.setUserAmount(beforeAmount);   // 用户剩余金额
                 sysAmountAuditingEntity.setCreateTime(new Date());
                 sysAmountAuditingEntity.setCreateTime(new Date());
                 sysAmountAuditingEntity.setAuditingStatus("2");   // 2  为待审核  3  审核通过
                 sysAmountAuditingEntity.setAuditingStatus("2");   // 2  为待审核  3  审核通过
                 sysAmountAuditingEntity.setAmountStatus(sysUserAccountVo.getAmountStatus());
                 sysAmountAuditingEntity.setAmountStatus(sysUserAccountVo.getAmountStatus());
 //              新增金额记录
 //              新增金额记录
-                sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
                 sysAmountAuditingService.save(sysAmountAuditingEntity);
                 sysAmountAuditingService.save(sysAmountAuditingEntity);
+                sysUserAccountHistory.setAuditiingId(sysAmountAuditingEntity.getId());
+
+                sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
             }
 
 
         }
         }
         return HttpResult.ok("提现成功,等待审核");
         return HttpResult.ok("提现成功,等待审核");
     }
     }
 
 
+    @Override
+    public SysUserAccount getSysUserAmount(String userid) {
+        SysUserAccount sysUserAccount = baseMapper.getById(userid);
+        return sysUserAccount;
+    }
 
 
 
 
     private void judgeLevel(String userId, SysUserAccount sysUserAccountEntity, SysUserAccount newAccount) {
     private void judgeLevel(String userId, SysUserAccount sysUserAccountEntity, SysUserAccount newAccount) {

+ 27 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java

@@ -8,6 +8,7 @@ import com.ydtech.modules.admin.dao.SysUserBankCardMapper;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -18,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import java.util.Date;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
+import java.util.List;
 
 
 /**
 /**
  * @author Administrator
  * @author Administrator
@@ -29,18 +31,17 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
         implements SysUserBankCardService {
         implements SysUserBankCardService {
 
 
 
 
-
     @Override
     @Override
     public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
     public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
         Page<SysUserBankCard> page = new Page<>(sysUserBankCardVO.getPageNum(), sysUserBankCardVO.getPageSize());
         Page<SysUserBankCard> page = new Page<>(sysUserBankCardVO.getPageNum(), sysUserBankCardVO.getPageSize());
 
 
 
 
         LambdaQueryWrapper<SysUserBankCard> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<SysUserBankCard> wrapper = new LambdaQueryWrapper<>();
-        if(StringUtils.isNotEmpty(sysUserBankCardVO.getBankNumber())){
+        if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankNumber())) {
             wrapper.eq(SysUserBankCard::getBankNumber, ObjectUtils.isNotEmpty(sysUserBankCardVO.getBankNumber()));
             wrapper.eq(SysUserBankCard::getBankNumber, ObjectUtils.isNotEmpty(sysUserBankCardVO.getBankNumber()));
 
 
         }
         }
-        if(StringUtils.isNotEmpty(sysUserBankCardVO.getBankAccount())){
+        if (StringUtils.isNotEmpty(sysUserBankCardVO.getBankAccount())) {
             wrapper.eq(SysUserBankCard::getBankAccount, sysUserBankCardVO.getBankAccount());
             wrapper.eq(SysUserBankCard::getBankAccount, sysUserBankCardVO.getBankAccount());
         }
         }
         Page<SysUserBankCard> insOrdersPage = page(page, wrapper);
         Page<SysUserBankCard> insOrdersPage = page(page, wrapper);
@@ -71,7 +72,29 @@ public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMappe
 
 
     @Override
     @Override
     public HttpResult<SysUserBankCardVO> getByUserId(String userId) {
     public HttpResult<SysUserBankCardVO> getByUserId(String userId) {
-      return   baseMapper.getByUserId(userId) ;
+        return baseMapper.getByUserId(userId);
+    }
+
+    @Override
+    @Transactional
+    public void insertByBankNumber(SysUserBankCardVO sysUserBankCardVO) {
+
+        String id = BaseController.getUser().getId();
+        if (StringUtils.isNotEmpty(id)) {
+            sysUserBankCardVO.setUserId(id);
+        }
+        SysUserBankCard sysUserBankCard = new SysUserBankCard();
+
+        BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
+        sysUserBankCard.setCreateTime(new Date());
+        baseMapper.insert(sysUserBankCard);
+    }
+
+    @Override
+    public HttpResult<List<SysUserBankCard>> getUserBankList() {
+        String userId = BaseController.getUser().getId();
+        List<SysUserBankCard> sysUserBankCardList = baseMapper.getUserBankList(userId);
+        return HttpResult.ok("success", sysUserBankCardList);
     }
     }
 }
 }
 
 

+ 23 - 27
src/main/java/com/ydtech/modules/ins/model/guoren/InsuranceSlipReq.java

@@ -4,11 +4,14 @@ import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.order.entity.api.guoren.constants.GuoRenRiskCode;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreementVo;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 投保单保存 入参
  * 投保单保存 入参
@@ -26,13 +29,14 @@ public class InsuranceSlipReq {
     @JSONField(name = "prpTinsured")
     @JSONField(name = "prpTinsured")
 
 
     private PrpTinsuredDTO prpTinsured;
     private PrpTinsuredDTO prpTinsured;
+
     @JsonProperty(value = "biPrptenages")
     @JsonProperty(value = "biPrptenages")
     @JSONField(name = "biPrptenages")
     @JSONField(name = "biPrptenages")
-    private List<?> biPrptenages;
+    private List<PremiumResp.DataDTO.BiPrptenagesDTO> biPrptenages;
 
 
     @JsonProperty(value = "ciPrptenages")
     @JsonProperty(value = "ciPrptenages")
     @JSONField(name = "ciPrptenages")
     @JSONField(name = "ciPrptenages")
-    private List<CiPrptenagesDTO> ciPrptenages;
+    private List<PremiumResp.DataDTO.CiPrptenagesDTO> ciPrptenages;
 
 
     @JsonProperty(value = "order")
     @JsonProperty(value = "order")
     @JSONField(name = "order")
     @JSONField(name = "order")
@@ -41,7 +45,10 @@ public class InsuranceSlipReq {
      * 构造请求参数
      * 构造请求参数
      */
      */
     @JsonIgnore
     @JsonIgnore
-    public static InsuranceSlipReq buildParam(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum, String orderCode) {
+    public static InsuranceSlipReq buildParam(BaseQuoteInfoVo yaQuoteInfoVo,
+                                              String carPriceNum,
+                                              String orderCode,
+                                              List<GuoRenSpecialAgreementVo> specialAgreementVo) {
         //投保人
         //投保人
         CustomerInfoVo policyHolderInfo = yaQuoteInfoVo.getPolicyHolderInfo();
         CustomerInfoVo policyHolderInfo = yaQuoteInfoVo.getPolicyHolderInfo();
         //被保人
         //被保人
@@ -86,8 +93,19 @@ public class InsuranceSlipReq {
 
 
         req.setOrder(orderCode);
         req.setOrder(orderCode);
         req.setPrpTinsured(prpTinsured);
         req.setPrpTinsured(prpTinsured);
-        req.setBiPrptenages(null);
-        req.setCiPrptenages(null);
+
+        List<PremiumResp.DataDTO.CiPrptenagesDTO> ciPrptenages = specialAgreementVo.stream()
+                .filter(x -> GuoRenRiskCode.R_0507.getCode().equals(x.getRiskCode()))
+                .map(PremiumResp.DataDTO.CiPrptenagesDTO::new)
+                .collect(Collectors.toList());
+
+        List<PremiumResp.DataDTO.BiPrptenagesDTO> biPrptenages = specialAgreementVo.stream()
+                .filter(x -> GuoRenRiskCode.R_0518.getCode().equals(x.getRiskCode()))
+                .map(PremiumResp.DataDTO.BiPrptenagesDTO::new)
+                .collect(Collectors.toList());
+
+        req.setBiPrptenages(biPrptenages);
+        req.setCiPrptenages(ciPrptenages);
         return req;
         return req;
 
 
     }
     }
@@ -163,26 +181,4 @@ public class InsuranceSlipReq {
         private String insuredIDValidDate;
         private String insuredIDValidDate;
     }
     }
 
 
-    @NoArgsConstructor
-    @Data
-    public static class CiPrptenagesDTO {
-        @JsonProperty(value = "serialNo")
-        @JSONField(name = "serialNo")
-        private Integer serialNo;
-        @JsonProperty(value = "clauseCode")
-        @JSONField(name = "clauseCode")
-        private String clauseCode;
-        @JsonProperty(value = "clauses")
-        @JSONField(name = "clauses")
-        private String clauses;
-        @JsonProperty(value = "clausesContext")
-        @JSONField(name = "clausesContext")
-        private String clausesContext;
-        @JsonProperty(value = "flag")
-        @JSONField(name = "flag")
-        private String flag;
-        @JsonProperty(value = "select")
-        @JSONField(name = "select")
-        private Boolean select;
-    }
 }
 }

+ 17 - 0
src/main/java/com/ydtech/modules/ins/model/guoren/PremiumResp.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.ins.model.guoren;
 
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreementVo;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 import net.minidev.json.annotate.JsonIgnore;
 import net.minidev.json.annotate.JsonIgnore;
@@ -824,6 +825,15 @@ public class PremiumResp {
             @JsonProperty(value = "flag")
             @JsonProperty(value = "flag")
             @JSONField(name = "flag")
             @JSONField(name = "flag")
             private String flag;
             private String flag;
+
+
+            public BiPrptenagesDTO(GuoRenSpecialAgreementVo guoRenSpecialAgreementVo) {
+                this.riskCode = guoRenSpecialAgreementVo.getRiskCode();
+                this.clauseCode = guoRenSpecialAgreementVo.getClauseCode();
+                this.clauses = guoRenSpecialAgreementVo.getClauses();
+                this.clausesContext = guoRenSpecialAgreementVo.getClausesContext();
+            }
+
         }
         }
 
 
         @NoArgsConstructor
         @NoArgsConstructor
@@ -859,6 +869,13 @@ public class PremiumResp {
             @JsonProperty(value = "flag")
             @JsonProperty(value = "flag")
             @JSONField(name = "flag")
             @JSONField(name = "flag")
             private String flag;
             private String flag;
+
+            public CiPrptenagesDTO(GuoRenSpecialAgreementVo guoRenSpecialAgreementVo) {
+                this.riskCode = guoRenSpecialAgreementVo.getRiskCode();
+                this.clauseCode = guoRenSpecialAgreementVo.getClauseCode();
+                this.clauses = guoRenSpecialAgreementVo.getClauses();
+                this.clausesContext = guoRenSpecialAgreementVo.getClausesContext();
+            }
         }
         }
     }
     }
 }
 }

+ 0 - 12
src/main/java/com/ydtech/modules/inv/controller/InvReceivableController.java

@@ -16,21 +16,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.core.io.UrlResource;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URLEncoder;
 import java.nio.file.Files;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.Paths;

+ 3 - 2
src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java

@@ -20,6 +20,7 @@ import com.ydtech.modules.order.entity.api.guoren.response.QueryNoCarPolicyNoRes
 import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
 import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
 import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreementVo;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -99,9 +100,9 @@ public class GuorenRequestApiComponent {
     /**
     /**
      * 投保单保存
      * 投保单保存
      */
      */
-    public InsuranceSlipResp insuranceSlip(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum, String orderCode) {
+    public InsuranceSlipResp insuranceSlip(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum, String orderCode,  List<GuoRenSpecialAgreementVo> specialAgreementVo) {
         //构造请求参数
         //构造请求参数
-        InsuranceSlipReq req = InsuranceSlipReq.buildParam(yaQuoteInfoVo, carPriceNum, orderCode);
+        InsuranceSlipReq req = InsuranceSlipReq.buildParam(yaQuoteInfoVo, carPriceNum, orderCode, specialAgreementVo);
         return request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResp.class);
         return request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResp.class);
     }
     }
 
 

+ 18 - 0
src/main/java/com/ydtech/modules/order/components/pingan/PinganRequestApiComponents.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.components.pingan;
+
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+@Component
+@RequiredArgsConstructor
+public class PinganRequestApiComponents {
+
+    private final RestTemplate restTemplate;
+
+
+
+
+
+}

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

@@ -6,9 +6,9 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.aop.QuoteVerification;
-import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo;
 import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
 import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo;
 import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreement;
 import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreement;
 import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceList;
 import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceList;
 import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceQueryVo;
 import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceQueryVo;

+ 86 - 0
src/main/java/com/ydtech/modules/order/controller/PingAnOrderApiController.java

@@ -0,0 +1,86 @@
+package com.ydtech.modules.order.controller;
+
+
+import com.ydtech.aop.request.RequestSingleParam;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.aop.QuoteVerification;
+import com.ydtech.modules.order.components.InsOrdersComponents;
+import com.ydtech.modules.order.entity.api.bohai.BoHaiEncrypted;
+import com.ydtech.modules.order.entity.api.bohai.request.ManualReviewRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.PaymentCallbackRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.PolicyResultCallbackRequest;
+import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsDetailsResponse;
+import com.ydtech.modules.order.entity.api.bohai.response.NonAutomotiveProductsResponse;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
+import com.ydtech.modules.order.entity.vo.bohai.ProductDetailsQueryVo;
+import com.ydtech.modules.order.entity.vo.bohai.ProductQueryVo;
+import com.ydtech.modules.order.service.PingAnOrderApiService;
+import com.ydtech.modules.order.utils.SignatureUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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.util.List;
+
+@Api(tags = "平安财险 API ")
+@Slf4j
+@RestController
+@RequestMapping("/order/pingAnApi")
+@RequiredArgsConstructor
+public class PingAnOrderApiController {
+
+    private final PingAnOrderApiService pingAnOrderApiService;
+
+    private final InsOrdersComponents insOrdersComponents;
+
+
+    @QuoteVerification("报价授权")
+    @PostMapping("/quote")
+    @ApiOperation("报价")
+    public HttpResult<QuoteRespVo> quote(@RequestBody BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo) throws Exception {
+        BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(), quoteVo.getAgreementId());
+        return this.pingAnOrderApiService.quote(quoteInfo, quoteVo);
+    }
+
+    @PostMapping(value = "/submitImage")
+    @ApiOperation(value = "提交影像信息")
+    public HttpResult<Object> submitImage(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
+        return this.pingAnOrderApiService.submitImage(companyId);
+    }
+
+    @PostMapping(value = "/audit")
+    @ApiOperation(value = "提交核保")
+    public HttpResult<Object> audit(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
+        return this.pingAnOrderApiService.audit(companyId);
+    }
+
+    @PostMapping("/getPolicyPrint")
+    @ApiOperation(value = "电子保单")
+    public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
+        return this.pingAnOrderApiService.getPolicyPrint(companyId);
+    }
+
+    @PostMapping("/getOrderDetail")
+    @ApiOperation(value = "订单状态查询")
+    public HttpResult<Object> getOrderDetail(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
+        return this.pingAnOrderApiService.getOrderDetail(companyId);
+    }
+
+    @PostMapping("/auditStatusQuery")
+    @ApiOperation(value = "核保状态查询")
+    public HttpResult<Object> auditStatusQuery(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
+        return this.pingAnOrderApiService.auditStatusQuery(companyId);
+    }
+
+
+
+}

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

@@ -38,7 +38,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @param orderNo 订单号
      * @param orderNo 订单号
      * @return
      * @return
      */
      */
-    InsAreaCompany queryLatestStatus(@Param("orderNo") String orderNo);
+    String queryLatestStatus(@Param("orderNo") String orderNo);
 
 
 
 
     List<InsAreaCompany> getorDerIds();
     List<InsAreaCompany> getorDerIds();

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

@@ -15,6 +15,7 @@ import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.utils.idgen.IdGenerate;
 import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -35,6 +36,7 @@ import java.util.Objects;
 @Data
 @Data
 @ApiModel(value = "报价渠道")
 @ApiModel(value = "报价渠道")
 @NoArgsConstructor
 @NoArgsConstructor
+@AllArgsConstructor
 public class InsAreaCompany implements Serializable {
 public class InsAreaCompany implements Serializable {
     /**
     /**
      * 主键
      * 主键
@@ -351,6 +353,12 @@ public class InsAreaCompany implements Serializable {
     @TableField(exist = false)
     @TableField(exist = false)
     private String userId;
     private String userId;
 
 
+    @TableField(value = "inside_order_status")
+    private Integer insideOrderStatus;
+
+    @TableField(value = "inside_pay_time")
+    private String insidePayTime;
+
     @TableField(exist = false)
     @TableField(exist = false)
     private SysCarInfo carinfo;
     private SysCarInfo carinfo;
 
 
@@ -389,6 +397,9 @@ public class InsAreaCompany implements Serializable {
         this.lossRation = quoteRespVo.getLossRation();
         this.lossRation = quoteRespVo.getLossRation();
         this.jqLossRation = quoteRespVo.getJqLossRation();
         this.jqLossRation = quoteRespVo.getJqLossRation();
         this.syLossRation = quoteRespVo.getSyLossRation();
         this.syLossRation = quoteRespVo.getSyLossRation();
+
+        this.jqapplyno = quoteRespVo.getJqApplyNo();
+        this.syapplyno = quoteRespVo.getSyApplyNo();
     }
     }
 
 
     public void setPaymentLink(String paymentLink) {
     public void setPaymentLink(String paymentLink) {

+ 65 - 2
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/UnderwritingResponse.java

@@ -2,13 +2,17 @@ package com.ydtech.modules.order.entity.api.bohai.response;
 
 
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.entity.api.bohai.constants.ResultCode;
 import com.ydtech.modules.order.entity.api.bohai.constants.ResultCode;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.StringUtils;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
+import org.springframework.util.ObjectUtils;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 
 
@@ -48,12 +52,26 @@ public class UnderwritingResponse extends BoHaiBaseResponse {
         @JsonProperty("total")
         @JsonProperty("total")
         private String total;
         private String total;
 
 
+        @JsonProperty("propertyPolicies")
+        private List<UnAutoPolicyDTO> propertyPolicies;
+
+        @JsonProperty("casualtyPolicies")
+        private List<UnAutoPolicyDTO> casualtyPolicies;
+
         @JsonProperty("businessPolicy")
         @JsonProperty("businessPolicy")
         private BusinessPolicyDTO businessPolicy;
         private BusinessPolicyDTO businessPolicy;
 
 
         @JsonProperty("trafficPolicy")
         @JsonProperty("trafficPolicy")
         private TrafficPolicyDTO trafficPolicy;
         private TrafficPolicyDTO trafficPolicy;
 
 
+        public List<UnAutoPolicyDTO> getPropertyPolicies() {
+            return ObjectUtils.isEmpty(propertyPolicies) ? new ArrayList<>() : propertyPolicies;
+        }
+
+        public List<UnAutoPolicyDTO> getCasualtyPolicies() {
+            return ObjectUtils.isEmpty(casualtyPolicies) ? new ArrayList<>() : casualtyPolicies;
+        }
+
         public int verificationUnderwriting() {
         public int verificationUnderwriting() {
             int traffic = 1;
             int traffic = 1;
             int business = 1;
             int business = 1;
@@ -66,9 +84,9 @@ public class UnderwritingResponse extends BoHaiBaseResponse {
                 business = extracted(this.businessResultCode);
                 business = extracted(this.businessResultCode);
             }
             }
 
 
-            if(traffic == 1 && business == 1){
+            if (traffic == 1 && business == 1) {
                 return 1;
                 return 1;
-            }else if(traffic == 2 || business == 2){
+            } else if (traffic == 2 || business == 2) {
                 return 2;
                 return 2;
             }
             }
             return 0;
             return 0;
@@ -134,5 +152,50 @@ public class UnderwritingResponse extends BoHaiBaseResponse {
                 private String specialTermText;
                 private String specialTermText;
             }
             }
         }
         }
+
+        @NoArgsConstructor
+        @Data
+        public static class UnAutoPolicyDTO implements Serializable {
+
+            private static final long serialVersionUID = 6048226723767902266L;
+
+            /**
+             * 产品编码
+             */
+            @JsonProperty("productCode")
+            private String productCode;
+
+            /**
+             * 套餐编码
+             */
+            @JsonProperty("packageCode")
+            private String packageCode;
+
+            /**
+             * 投保单号
+             */
+            @JsonProperty("applicationNo")
+            private String applicationNo;
+
+            /**
+             * 非车核保规则
+             */
+            @JsonProperty("resultMsg")
+            private String resultMsg;
+
+
+            public DrivingInsuranceDto toDrivingInsuranceDto() {
+                if (StringUtils.isNotEmpty(resultMsg)) {
+                    throw new SystemException(resultMsg);
+                }
+
+                DrivingInsuranceDto drivingInsuranceDto = new DrivingInsuranceDto();
+                drivingInsuranceDto.setCode(this.getProductCode());
+                drivingInsuranceDto.setName(this.getPackageCode());
+                drivingInsuranceDto.setApplicationNumber(this.getApplicationNo());
+                return drivingInsuranceDto;
+            }
+
+        }
     }
     }
 }
 }

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/HuaTaiBaseResponse.java

@@ -14,6 +14,7 @@ public abstract class HuaTaiBaseResponse implements Serializable {
 
 
 
 
     private static final long serialVersionUID = -990496711871560039L;
     private static final long serialVersionUID = -990496711871560039L;
+
     @JsonProperty(value = "head")
     @JsonProperty(value = "head")
     private HuaTaiBaseResponseHead head;
     private HuaTaiBaseResponseHead head;
 
 

+ 194 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/CarConfirmRequest.java

@@ -0,0 +1,194 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class CarConfirmRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = -2970494216237904379L;
+
+    private String macAddress;
+
+    private String ip;
+
+    private String deviceType;
+
+    private String isInternetBusiness;
+
+    private VehicleDTO vehicle;
+
+    private RegisterDTO register;
+
+    private InsuredDTO insured;
+
+    private ApplicantDTO applicant;
+
+    private BizQuoteDTO bizQuote;
+
+    private ForceQuoteDTO forceQuote;
+
+    private TaxFormDTO taxForm;
+
+    private String jiangSuCheckCode;
+
+    private String beiJingCheckCode;
+
+    private String checkCode;
+
+    private String isCalculateWithoutCirc;
+
+    private String bizClaimRecord;
+
+    private String forceClaimRecord;
+
+    private String remark;
+
+    private String isNewEnergy;
+
+    private String energyType;
+
+    private String carDriverType;
+
+    private String developmentStage;
+
+    @Data
+    public static class VehicleDTO implements Serializable {
+
+        private static final long serialVersionUID = -2016238508046403647L;
+        private String registerDate;
+        private String frameNo;
+        private String engineNo;
+        private String modelCode;
+        private String paModelCode;
+        private String modelIndex;
+        private String vehicleStyleUniqueId;
+        private String autoModelName;
+        private String seats;
+        private String wholeWeight;
+        private String tonNumber;
+        private String exhaustMeasure;
+        private String power;
+        private String vehicleCertiType;
+        private String vehicleCertiNo;
+        private String vehicleCertiDate;
+        private String invoiceDate;
+        private String useAttribute;
+        private String useAttributDetailCode;
+        private String ownAttribute;
+        private String offerLastPolicyFlag;
+        private String isOfferLocalUseProof;
+        private String shanghaiVehicleType;
+        private String isNewEnergyVehicle;
+        private String vehicleCodeForShangHai;
+        private String specialCarLicense;
+
+    }
+
+
+    @Data
+    public static class RegisterDTO implements Serializable {
+        private static final long serialVersionUID = 5813499296522149580L;
+
+        private String name;
+
+        private String birthday;
+
+        private String gender;
+
+        private String idType;
+
+        private String idNo;
+
+        private String mobile;
+
+        private String address;
+
+        private String addressCode;
+
+        private String certificateDate;
+
+    }
+
+    @Data
+    public static class InsuredDTO implements Serializable {
+
+        private static final long serialVersionUID = 3194577722449684615L;
+
+        private String personnelType;
+        private String name;
+        private String idType;
+        private String idNo;
+        private String gender;
+        private String certificateIssueDate;
+        private String certificateValidDate;
+        private String birthday;
+        private String mobile;
+        private String organizationType;
+        private String phoneExchange;
+        private String contactName;
+        private String linkManCertificateTypeCode;
+        private String linkManCertificateNo;
+        private String phoneHolderName;
+        private String phoneHolderCertificateType;
+        private String phoneHolderCertificateNo;
+        private String address;
+
+    }
+
+    @Data
+    public static class ApplicantDTO implements Serializable {
+
+        private static final long serialVersionUID = -6224889213421486612L;
+
+        private String personnelType;
+
+        private String name;
+
+        private String certificateIssueDate;
+
+        private String certificateValidDate;
+    }
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 8584350525465881646L;
+
+        private String specialCarFlag;
+
+        private String specialCarDate;
+    }
+
+    @Data
+    public static class ForceQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 5551652885963961844L;
+
+        private String fuelType;
+
+    }
+
+    @Data
+    public static class TaxFormDTO implements Serializable {
+
+        private static final long serialVersionUID = 467492463257226669L;
+
+        private String taxType;
+
+        private String taxPayNo;
+
+        private String taxDocumentDate;
+
+        private String taxPaidOrgName;
+
+        private String taxPaidAreaCode;
+
+    }
+
+
+}

+ 71 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/IndexRequest.java

@@ -0,0 +1,71 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+
+/**
+ * @version
+ * @description: 首页 请求实体
+ * @author: wenks
+ * @date: 2024/3/21 8:57
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IndexRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = -2587880061389730743L;
+
+    /**
+     * 由平安提供数据字段
+     */
+    private String cityCode;
+
+    /**
+     * 平安好伙伴外网录单账号
+     */
+    private String inputBy;
+
+    /**
+     * 车商编码/合作网点编码
+     */
+    private String saleCode;
+
+    private VehicleDTO vehicle;
+
+    private boolean isAllowRepeat;
+
+    @Data
+    public static class VehicleDTO implements Serializable {
+
+        private static final long serialVersionUID = 408333879699278346L;
+        /**
+         * 车牌号码
+         */
+        private String licenseNo;
+
+        /**
+         * 车架号
+         * 如果返回多标的时传targetNo的值
+         */
+        private String frameNo;
+
+    }
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = -4583474052247976539L;
+
+        /**
+         * 商业险车贷投保多年标志(1:车贷投保多年 0:未车贷投保多年)
+         * 默认0
+         */
+        private String loanVehicleFlag;
+
+    }
+
+}

+ 22 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/PingAnBaseRequest.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PingAnBaseRequest implements Serializable {
+
+    private static final long serialVersionUID = 8554995712964526165L;
+
+    /**
+     * 合作伙伴操作用户ID,用来记录合作伙伴操作人身份
+     */
+    private String userId;
+    /**
+     * 流程ID
+     */
+    private String flowid;
+
+
+}

+ 239 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/QuoteRequest.java

@@ -0,0 +1,239 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class QuoteRequest implements Serializable {
+
+    private static final long serialVersionUID = 2169810871161326883L;
+
+    private boolean applyBiz;
+
+    private BizQuoteDTO bizQuote;
+
+    private boolean isAllowBizRepeat;
+
+    private boolean isOnlineProducts;
+
+    private String amount01;
+    private String inputAmount;
+    private String inputAmount01;
+    private String amount02;
+    private String amount04;
+    private String amount05;
+    private String amount06;
+    private String amount07;
+    private String amount07Fee;
+    private String amount08;
+    private String amount08Fee;
+    private String amount09;
+    private String amount09Fee;
+    private String amount10;
+    private String amount10Fee;
+    private String amount11;
+    private String amount17;
+    private String amount32;
+    private String amount30;
+    private String amount31;
+    private String amount52;
+    private String amount53;
+    private String amount54;
+    private String amount55;
+    private String amount56;
+    private String amount73;
+    private String amount74;
+    private String amount75;
+    private String amount01Sv;
+    private String amount02Sv;
+    private String amount03Sv;
+    private String amount04Sv;
+
+    private List<Amount11DeviceListDTO> amount11DeviceList;
+
+    private String applyForce;
+
+    private ForceQuoteDTO forceQuote;
+
+    private String bizApplyCheckCode;
+
+    private String forceApplyCheckCode;
+
+    private BizDecisionTreeDTO bizDecisionTree;
+
+    private String accommodationFlag;
+
+    private String accommodationUrgency;
+
+    private String ratioFactor78;
+
+    private String accommodationReason;
+
+    private List<DocListDTO> docList;
+
+    private String applyUnAuto;
+
+    private String applyXiaoWei;
+
+    private List<UnAutoListInfoDTO> unAutoListInfo;
+
+    private List<UnAutoListInfoDTO> xiaoWeiListInfo;
+
+    private String unAutoAgentCode;
+
+    private String unAutoAgentAgreementNo;
+
+    private String unAutoSupplementAgreementNo;
+
+    private String amount01XNY;
+    private String inputAmountXNY;
+    private String inputAmount01XNY;
+    private String amount02XNY;
+    private String amount03XNY;
+    private String amount04XNY;
+    private String amount05XNY;
+    private String amount06XNY;
+    private String amount07XNY;
+    private String amount08XNY;
+    private String amount09XNY;
+    private String amount10XNY;
+    private String amount11XNY;
+    private String amount12XNY;
+    private String amount12XNYFee;
+    private String amount13XNY;
+    private String amount14XNY;
+    private String amount15XNY;
+    private String amount16XNY;
+    private String amount17XNY;
+    private String amount18XNY;
+    private String amount18XNYFee;
+    private String amount19XNY;
+    private String amount19XNYFee;
+    private String amount20XNY;
+    private String amount20XNYFee;
+    private String amount21XNY;
+    private String amount22XNY;
+    private String amount23XNY;
+    private String amount01SvXNY;
+    private String amount02SvXNY;
+    private String amount03SvXNY;
+    private String amount04SvXNY;
+
+    private List<Amount10XNYDeviceListDTO> amount10XNYDeviceList;
+
+    private List<Amount22XNYChargingPostListDTO> amount22XNYChargingPostList;
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 8602378544549217224L;
+
+        private String beginDate;
+
+        private String endDate;
+
+        private String loanVehicleFlag;
+
+    }
+
+    @Data
+    public static class ForceQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 8602378544549217224L;
+
+        private String beginDate;
+
+    }
+
+    @Data
+    public static class BizDecisionTreeDTO implements Serializable {
+
+        private static final long serialVersionUID = 8870681514978773365L;
+
+        private String sortNo;
+
+    }
+
+    @Data
+    public static class DocListDTO implements Serializable {
+
+        private static final long serialVersionUID = 6955022128518406978L;
+
+        private String docId;
+        private String documentClass;
+        private String documentType;
+        private String documentName;
+        private String documentFormat;
+        private String documentSize;
+
+    }
+
+    @Data
+    public static class UnAutoListInfoDTO implements Serializable {
+
+        private static final long serialVersionUID = -6298513343991052214L;
+
+        private String productCode;
+        private String packageCode;
+        private String sellListSize;
+
+
+    }
+
+    @Data
+    public static class Amount10XNYDeviceListDTO implements Serializable {
+
+        private static final long serialVersionUID = 6863134086698512097L;
+
+        private String subjectName;
+
+        private String insuredAmount;
+    }
+
+
+    @Data
+    public static class Amount11DeviceListDTO implements Serializable {
+
+        private static final long serialVersionUID = -6591231607784848595L;
+
+        private String subjectName;
+
+        private String insuredAmount;
+
+    }
+
+    @Data
+    public static class Amount22XNYChargingPostListDTO implements Serializable {
+
+        private static final long serialVersionUID = -894470366239236223L;
+
+        private String subjectName;
+        private String insuredAmount;
+        private String chargingPostType;
+        private String chargingPostCode;
+        private String chargingPostAddress;
+        private String chargingPostAddressType;
+        private String chargingPostKind;
+
+    }
+
+    @Data
+    public static class Amount23XNYChargingPostListDTO implements Serializable {
+
+        private static final long serialVersionUID = 3929526327182409487L;
+
+        private String subjectName;
+        private String insuredAmount;
+        private String chargingPostType;
+        private String chargingPostCode;
+        private String chargingPostAddress;
+        private String chargingPostAddressType;
+        private String chargingPostKind;
+
+
+    }
+
+
+}

+ 19 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/RenewalConfirmRequest.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @description: 续保确认 请求实体
+ * @author: wenks
+ * @date: 2024/3/21 9:11
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RenewalConfirmRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = -5378494631164497419L;
+
+    private String checkNo;
+
+}

+ 24 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SearchPAVehicleListRequest.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+ * @description: 平安车型搜索接口 请求参数
+ * @author: wenks
+ * @date: 2024/3/20 10:14
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SearchPAVehicleListRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = 6733489357016348708L;
+
+    /**
+     * 车型关键字
+     */
+    private String keyword;
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/ServiceContractRequest.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ServiceContractRequest implements Serializable {
+
+    private static final long serialVersionUID = -1941729373528324145L;
+
+    private String inputBy;
+
+    private String departmentCode;
+
+    private String useAttribute;
+
+    private String flowid;
+
+}

+ 170 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SubmitApplyRequest.java

@@ -0,0 +1,170 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SubmitApplyRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = 3439644023985148752L;
+
+    private String isApply;
+    private String bizFormatType;
+    private String forceFormatType;
+    private String saleCompanyName;
+    private String saleCompanyAreaCode;
+    private String sale4SFlag;
+    private String salerSortNo;
+    private String macAddress;
+    private String ip;
+    private String deviceType;
+
+    private RegisterDTO register;
+
+    private InsuredDTO insured;
+
+    private ApplicantDTO applicant;
+
+    private AddressDTO address;
+
+    private List<BizSpecialPromiseListDTO> bizSpecialPromiseList;
+
+    private List<BizSpecialPromiseListDTO> forceSpecialPromiseList;
+
+    private String disputedSettleMode;
+    private String arbitralDepartment;
+    private String expectationUnderwriteLimit;
+    private String vehicleCheckType;
+    private String checkVehicleDate;
+    private String checkVehicleDateZone;
+    private String checkVehicleAddress;
+
+    private String bizApplyCheckCode;
+    private String forceApplyCheckCode;
+    private String beijingIssueCode;
+    private String invoiceType;
+    private String taxpayerCertificateType;
+    private String taxpayerCertificateNo;
+
+    private String taxpayerAddress;
+    private String taxpayerPhone;
+    private String taxpayerBankName;
+    private String taxpayerBankAccount;
+    private String forbidOprIbcsFlag;
+    private String isElectronicApplyPolicy;
+    private String doubleInputSaleName;
+    private String doubleInputSaleCode;
+    private String agencySaleName;
+    private String saleAgentProfCertNo;
+    private String agencySaleProfCertifNo;
+    private String amount01Sv;
+    private String amount02Sv;
+    private String amount03Sv;
+    private String amount04Sv;
+    private String amount01SvXNY;
+    private String amount02SvXNY;
+    private String amount03SvXNY;
+    private String amount04SvXNY;
+
+    private List<DocListDTO> docList;
+
+    @Data
+    public static class RegisterDTO implements Serializable {
+
+        private static final long serialVersionUID = -1140399358502175422L;
+
+        private String mobile;
+
+        private String address;
+
+        private String addressCode;
+
+    }
+
+    @Data
+    public static class InsuredDTO implements Serializable {
+
+        private static final long serialVersionUID = 8838515153962598021L;
+
+        private String mobile;
+        private String certificateIssueDate;
+        private String certificateValidDate;
+        private String address;
+
+    }
+
+    @Data
+    public static class ApplicantDTO implements Serializable {
+
+        private static final long serialVersionUID = -7332185087236863504L;
+
+        private String personnelType;
+        private String name;
+        private String idType;
+        private String idNo;
+        private String certificateIssueDate;
+        private String certificateValidDate;
+        private String birthday;
+        private String gender;
+        private String mobile;
+        private String email;
+        private String organizationType;
+        private String phoneExchange;
+        private String contactName;
+        private String address;
+        private String linkManCertificateTypeCode;
+        private String linkManCertificateNo;
+        private String phoneHolderName;
+        private String phoneHolderCertificateType;
+        private String phoneHolderCertificateNo;
+    }
+
+    @Data
+    public static class AddressDTO implements Serializable {
+
+        private static final long serialVersionUID = -6942992745332676824L;
+
+        private String receiveMode;
+        private String address;
+        private String name;
+        private String mobile;
+        private String townCityCode;
+        private String townCode;
+
+    }
+
+    @Data
+    public static class BizSpecialPromiseListDTO implements Serializable {
+
+        private static final long serialVersionUID = 3052472157066379795L;
+
+        private String sortIndex;
+        private String promiseCode;
+        private String promiseDesc;
+        private String promiseType;
+
+    }
+
+    @Data
+    public static class DocListDTO implements Serializable {
+
+        private static final long serialVersionUID = -3042944648863765719L;
+
+        private String docId;
+        private String documentClass;
+        private String documentType;
+        private String documentName;
+        private String documentFormat;
+        private String documentSize;
+        private String certificateBeginDate;
+        private String certificateEndDate;
+        private String carDriverType;
+        private String developmentStage;
+    }
+
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UnAutoProductDetailRequest.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class UnAutoProductDetailRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = 9069583090917257234L;
+
+    private String userId;
+
+    private String productCode;
+
+    private String packageCode;
+
+    private String version;
+
+}

+ 32 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UnAutoProductListRequest.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @description: 获取财意险险种套餐列表 请求参数
+ * @author: wenks
+ * @date: 2024/3/21 10:04
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class UnAutoProductListRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = -8799389547040438941L;
+
+    private String useAttribute;
+
+    private String ownAttribute;
+
+    private String seats;
+
+    private String inputBy;
+
+    private String cityCode;
+
+    private String saleCode;
+
+    private String tonNumber;
+
+}

+ 246 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/CarConfirmResponse.java

@@ -0,0 +1,246 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import com.ydtech.modules.order.entity.api.pingan.request.PingAnBaseRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class CarConfirmResponse extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = 4647773777095564417L;
+
+    private String flowid;
+
+    private String clauseCaseSwitch;
+
+    private String bizRenewalType;
+
+    private String forceRenewalType;
+
+    private String isBizElectronicPolicy;
+
+    private String isForceElectronicPolicy;
+
+    private BizQuoteDTO bizQuote;
+
+    private ForceQuoteDTO forceQuote;
+
+    private String hasDelivery;
+
+    private List<ModelsDTO> models;
+
+    private List<VehicleModelsDTO> vehicleModels;
+
+    private VehicleDTO vehicle;
+
+    private RegisterDTO register;
+
+    private BizQuoteConfigDTO bizQuoteConfig;
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 8797282780429139870L;
+
+        private String beginDate;
+
+        private String specialCarFlag;
+
+        private String specialCarDate;
+
+    }
+
+    @Data
+    public static class ForceQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 5751320076031186697L;
+
+        private String beginDate;
+
+    }
+
+    @Data
+    public static class ModelsDTO implements Serializable {
+
+        private static final long serialVersionUID = 239459498159328042L;
+
+        private String modelCode;
+
+        private String paModelCode;
+
+        private String modelIndex;
+
+        private String brandName;
+
+        private String modelName;
+
+        private String description;
+
+        private String seats;
+
+        private String marketDate;
+
+        private String price;
+
+        private String vehicleCodeForShangHai;
+
+    }
+
+    @Data
+    public static class VehicleModelsDTO implements Serializable {
+
+        private static final long serialVersionUID = -5372460031717400566L;
+
+        private List<JyModelsDTO> jyModels;
+
+        private List<CircModelsDTO> circModels;
+
+        @Data
+        public static class JyModelsDTO implements Serializable {
+
+            private static final long serialVersionUID = -2492814034788945102L;
+
+            private String modelCode;
+
+            private String paModelCode;
+
+            private String modelIndex;
+
+            private String brandName;
+
+            private String modelName;
+
+            private String description;
+
+            private String seats;
+
+            private String marketDate;
+
+            private String price;
+
+            private String vehicleCodeForShangHai;
+
+        }
+
+        @Data
+        public static class CircModelsDTO implements Serializable {
+
+            private static final long serialVersionUID = 2613256512680229752L;
+
+            private String vehicleStyleUniqueId;
+
+            private String brandName;
+
+            private String modelName;
+
+            private String seats;
+
+            private String marketDate;
+
+            private String price;
+
+        }
+
+    }
+
+    @Data
+    public static class VehicleDTO implements Serializable {
+
+        private static final long serialVersionUID = 4858741948573409545L;
+
+        private String licenseNo;
+
+        private String frameNo;
+
+        private String engineNo;
+
+        private String registerDate;
+
+        private String modelCode;
+
+        private String brandName;
+
+        private String modelName;
+
+        private String description;
+
+        private String seats;
+
+        private String price;
+
+        private String tonNumber;
+
+        private String wholeWeight;
+
+        private String exhaustMeasure;
+
+        private String licenceTypeCode;
+
+        private String useAttribute;
+
+        private String useAttributDetailCode;
+
+        private String ownAttribute;
+
+        private String groupBusinessCode;
+
+        private String importFlag;
+
+        private String energyType;
+
+    }
+
+    @Data
+    public static class RegisterDTO implements Serializable {
+
+        private static final long serialVersionUID = 7598763365636214128L;
+
+        private String personnelType;
+
+        private String name;
+
+        private String idType;
+
+        private String idNo;
+
+        private String gender;
+
+        private String birthday;
+
+
+    }
+
+    @Data
+    public static class BizQuoteConfigDTO implements Serializable {
+
+        private static final long serialVersionUID = 7598763365636214128L;
+
+        private String amount01Default;
+
+        private String amount01Min;
+
+        private String amount01Max;
+
+        private String amount03Default;
+
+        private String amount03Min;
+
+        private String amount03Max;
+
+        private String amount18Default;
+
+        private String amount18Min;
+
+        private String amount18Max;
+
+        private String passengerSeats;
+
+
+    }
+
+
+}

+ 120 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/IndexResponse.java

@@ -0,0 +1,120 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description: 首页 响应实体
+ * @author: wenks
+ * @date: 2024/3/21 8:57
+ **/
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IndexResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = 6550972601202599801L;
+
+    /**
+     * M	平安出单机构编码
+     */
+    private String departmentCode;
+
+    /**
+     * M	平安三级机构编码
+     */
+    private String level3DepartmentCode;
+
+    /**
+     * M	平安二级机构编码
+     */
+    private String level2DepartmentCode;
+
+    /**
+     * M
+     * 当前机构是否开通保单即时生效
+     * 北京交强险不支持即时起保
+     */
+    private boolean isRealTimeEffect;
+
+    /**
+     * M
+     * 当前机构商业险平台限定的可提前投保天数
+     */
+    private String bizAdvanceDays;
+
+    private String forceAdvanceDays;
+
+    private boolean isJiangSuShowCheckCode;
+
+    private boolean isBeiJingShowCheckCode;
+
+    private boolean isShowCheckCode;
+
+    private boolean isBeiJing;
+
+    private boolean isYunNan;
+
+    private boolean isShengZhen;
+
+    private boolean isTianJin;
+
+    private boolean isXiamen;
+
+    private boolean isShangHai;
+
+    private String saleCodeName;
+
+    private String cityCode;
+
+    private String clauseCaseSwitch;
+
+    private boolean showCircModelsSwitch;
+
+    private String businessSourceCode;
+
+    private String businessSourceDetailCode;
+
+    private String agentCode;
+
+    private List<SalerInfoListDTO>  salerInfoList;
+
+    private List<TargetInfoListDTO> targetInfoList;
+
+    @Data
+    public static class SalerInfoListDTO implements Serializable {
+
+        private static final long serialVersionUID = -4778254640088390619L;
+
+        private String name;
+
+        private String licenseNo;
+
+        private String telephone;
+
+        private String salerSortNo;
+
+    }
+
+    @Data
+    public static class TargetInfoListDTO implements Serializable {
+
+        private static final long serialVersionUID = -7266500416787597318L;
+
+        private String targetNo;
+
+        private String dvehicleFrameNo;
+
+        private String autoModelName;
+
+        private String firstRegisterDate;
+
+
+    }
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/PingAnBaseResponse.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PingAnBaseResponse implements Serializable {
+
+    private static final long serialVersionUID = -4960017696151958700L;
+
+    private String resultMessage;
+
+    private String resultCode;
+
+}

+ 441 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/QuoteResponse.java

@@ -0,0 +1,441 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class QuoteResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = 1877726964909064331L;
+
+    private String flowid;
+
+    private String recommendRatioFactorF78;
+
+    private String recommendDiscount;
+
+    private String recommendCommissionBrokerFee;
+
+    private QuoteDTO bizQuote;
+
+    private QuoteDTO forceQuote;
+
+    private BizQuoteResultDTO bizQuoteResult;
+
+    private ForceQuoteResultDTO forceQuoteResult;
+
+    private BizAccommodationResultDTO bizAccommodationResult;
+
+    private AhsUpcActualPremiumDTO ahsUpcActualPremium;
+
+    private XwActualPremiumDTO xwActualPremium;
+
+    @Data
+    public static class QuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = -8371329918074721876L;
+
+        private String beginDate;
+
+        private String endDate;
+
+    }
+
+    @Data
+    public static class RateListDTO implements Serializable {
+
+
+        private static final long serialVersionUID = 1694242014669228903L;
+
+        private String factorCode;
+
+        private String factorName;
+
+        private String ratio;
+
+    }
+
+    @Data
+    public static class ClauseCaseListDTO implements Serializable {
+
+        private static final long serialVersionUID = 734065036543979918L;
+
+        private String productCode;
+
+        private String productName;
+
+        private String amount;
+
+        private String count;
+
+        private String lowerLimit;
+
+        private String upperLimit;
+
+    }
+
+    @Data
+    public static class BizQuoteResultDTO implements Serializable {
+
+        private static final long serialVersionUID = 3036863448541204517L;
+
+        private String premiumTotal;
+        private String standardPremium;
+        private String premium01;
+        private String premium02;
+        private String premium04;
+        private String premium05;
+        private String premium06;
+        private String premium07;
+        private String premium08;
+        private String premium09;
+        private String premium10;
+        private String premium11;
+        private String premium17;
+        private String premium32;
+        private String premium30;
+        private String premium31;
+        private String premium52;
+        private String premium53;
+        private String premium54;
+        private String premium55;
+        private String premium56;
+        private String premium73;
+        private String premium74;
+        private String premium75;
+        private String premium01Sv;
+        private String premium02Sv;
+        private String premium03Sv;
+        private String premium04Sv;
+        private String claimNumber;
+        private String centile;
+        private String renewalRate;
+        private String riskWarningCount;
+        private String insureYears;
+        private String claimTimes;
+        private String claimAdjustLevel;
+        private String commissionBrokerFee;
+        private String queryRequestCode;
+        private String applyCheckCode;
+
+        private List<ClauseCaseListDTO> clauseCaseList;
+
+        private String offerClauseAmount;
+
+        private BizQuoteConfigDTO bizQuoteConfig;
+
+        private List<RateListDTO> rateList;
+
+        private DecisionTreeResultDTO decisionTreeResult;
+
+        private String premium01XNY;
+        private String premium02XNY;
+        private String premium03XNY;
+        private String premium04XNY;
+        private String premium05XNY;
+        private String premium06XNY;
+        private String premium07XNY;
+        private String premium08XNY;
+        private String premium09XNY;
+        private String premium10XNY;
+        private String premium11XNY;
+        private String premium12XNY;
+        private String premium13XNY;
+        private String premium14XNY;
+        private String premium15XNY;
+        private String premium16XNY;
+        private String premium17XNY;
+        private String premium18XNY;
+        private String premium19XNY;
+        private String premium20XNY;
+        private String premium21XNY;
+        private String premium22XNY;
+        private String premium23XNY;
+        private String premium01SvXNY;
+        private String premium02SvXNY;
+        private String premium03SvXNY;
+        private String premium04SvXNY;
+
+
+        @Data
+        public static class BizQuoteConfigDTO implements Serializable {
+
+            private static final long serialVersionUID = -4715504504767375582L;
+
+            private String amount01;
+            private String amount02;
+            private String amount03;
+
+            private String amount04;
+            private String amount05;
+            private String amount08;
+            private String amount17;
+            private String amount18;
+            private String amount27;
+            private String amount28;
+            private String amount41;
+            private String amount48;
+            private String amount49;
+            private String amount57;
+            private String amount63;
+            private String amount75;
+            private String amount77;
+            private String amount79;
+            private String amount80;
+            private String inputAmount;
+            private String inputAmount03;
+            private String inputAmount18;
+            private String bizQuoteDeviceList;
+
+            private String amount01Default;
+            private String amount01Min;
+            private String amount01Max;
+            private String amount03Default;
+            private String amount03Min;
+            private String amount03Max;
+            private String amount18Default;
+            private String amount18Min;
+            private String amount18Max;
+            private String passengerSeats;
+
+            private String amount01XNY;
+            private String inputAmountXNY;
+            private String inputAmount01XNY;
+            private String amount02XNY;
+            private String amount03XNY;
+            private String amount04XNY;
+            private String amount05XNY;
+            private String amount06XNY;
+            private String amount07XNY;
+            private String amount08XNY;
+            private String amount09XNY;
+            private String amount10XNY;
+            private String amount11XNY;
+            private String amount12XNY;
+            private String amount12XNYFee;
+            private String amount13XNY;
+            private String amount14XNY;
+            private String amount15XNY;
+            private String amount16XNY;
+            private String amount17XNY;
+            private String amount18XNY;
+            private String amount18XNYFee;
+            private String amount19XNY;
+            private String amount19XNYFee;
+            private String amount20XNY;
+            private String amount20XNYFee;
+            private String amount21XNY;
+            private String amount22XNY;
+            private String amount23XNY;
+            private String amount01SvXNY;
+            private String amount02SvXNY;
+            private String amount03SvXNY;
+            private String amount04SvXNY;
+            private String amount10XNYDeviceList;
+            private String amount22XNYChargingPostList;
+            private String amount23XNYChargingPostList;
+
+        }
+
+
+        @Data
+        public static class DecisionTreeResultDTO implements Serializable {
+
+
+            private static final long serialVersionUID = -3084349966591156390L;
+            private List<SchemesDTO> schemes;
+
+            @Data
+            public static class SchemesDTO implements Serializable {
+
+                private static final long serialVersionUID = -5612140777786229174L;
+
+                private String sortNo;
+
+                private String selfPriceRate;
+
+                private String commissionBrokerFee;
+
+            }
+
+        }
+
+
+    }
+
+    @Data
+    public static class ForceQuoteResultDTO implements Serializable {
+
+        private static final long serialVersionUID = 5506352292832228963L;
+
+        private String totalPremium;
+
+        private String forcePremium;
+
+        private String taxPremium;
+
+        private String renewalRate;
+
+        private String claimNumber;
+
+        private String commissionBrokerFee;
+
+        private String queryRequestCode;
+
+        private String applyCheckCode;
+
+        private TaxDTO tax;
+
+        private List<RateListDTO> rateList;
+
+        @Data
+        public static class TaxDTO implements Serializable {
+
+            private static final long serialVersionUID = -5612140777786229174L;
+
+            private String sortNo;
+
+            private String selfPriceRate;
+
+            private String commissionBrokerFee;
+
+        }
+
+
+    }
+
+    @Data
+    public static class BizAccommodationResultDTO implements Serializable {
+
+        private static final long serialVersionUID = -3576660316922300113L;
+
+        private String accommodationFlag;
+        private String ratioFactorF78;
+        private String accommodationDiscount;
+        private String accommodationReason;
+        private String premiumTotal;
+        private String standardPremium;
+        private String centile;
+        private String premium01;
+        private String premium02;
+        private String premium03;
+        private String premium04;
+        private String premium05;
+        private String premium06;
+        private String premium07;
+        private String premium08;
+        private String premium09;
+        private String premium10;
+        private String premium11;
+        private String premium12;
+        private String premium13;
+        private String premium14;
+        private String premium15;
+        private String premium16;
+        private String premium17;
+        private String premium18;
+        private String premium19;
+        private String premium20;
+        private String premium21;
+        private String premium22;
+        private String premium23;
+        private String premium24;
+        private String premium25;
+        private String premium26;
+        private String premium27;
+        private String premium28;
+        private String premium29;
+        private String premium30;
+        private String premium31;
+        private String premium32;
+        private String premium33;
+        private String premium34;
+        private String premium35;
+        private String premium36;
+        private String premium37;
+        private String premium38;
+        private String premium39;
+        private String premium40;
+        private String premium41;
+        private String premium42;
+        private String premium43;
+        private String premium44;
+        private String premium45;
+        private String premium46;
+        private String premium47;
+        private String premium48;
+        private String premium49;
+        private String premium50;
+        private String premium51;
+        private String premium52;
+        private String premium53;
+        private String premium54;
+        private String premium55;
+        private String premium56;
+        private String premium57;
+        private String premium58;
+        private String premium59;
+        private String premium60;
+        private String premium61;
+        private String premium62;
+        private String premium63;
+        private String premium64;
+        private String premium65;
+        private String premium66;
+        private String premium67;
+        private String premium68;
+        private String premium69;
+        private String premium70;
+        private String premium71;
+        private String premium72;
+        private String premium73;
+        private String premium74;
+        private String premium75;
+        private String premium76;
+        private String premium77;
+        private String premium78;
+        private String premium79;
+        private String premium80;
+        private String premium81;
+        private String premium82;
+        private String premium83;
+        private String premium84;
+        private String premium85;
+
+        private List<RateListDTO> rateListDTOS;
+
+        private List<ClauseCaseListDTO> clauseCaseList;
+
+        private String offerClauseAmount;
+
+    }
+
+    @Data
+    public static class AhsUpcActualPremiumDTO implements Serializable {
+
+        private static final long serialVersionUID = -8650092146880896930L;
+
+        private String ahsUpcTotalPremium;
+
+        private String ahsPremium;
+
+        private String upcPremium;
+
+    }
+
+    @Data
+    public static class XwActualPremiumDTO implements Serializable {
+
+        private static final long serialVersionUID = -834439604510301531L;
+
+        private String xwPremium;
+
+    }
+
+
+}

+ 279 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/RenewalConfirmResponse.java

@@ -0,0 +1,279 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+ * @description: 续保确认 响应请求
+ * @author: wenks
+ * @date: 2024/3/21 9:28
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RenewalConfirmResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = -8873429389539363291L;
+
+    private String flowid;
+
+    private String productVersion;
+
+    private String isNewEnergy;
+
+    private VehicleDTO vehicle;
+
+    private BizQuoteDTO bizQuote;
+
+    private ForceQuoteDTO forceQuote;
+
+    private InsuredDTO insured;
+
+    private List<ChargingPostListDTO> chargingPostList;
+
+    private AddressDTO address;
+
+    @Data
+    public static class VehicleDTO implements Serializable {
+
+        private static final long serialVersionUID = -2693316695687367619L;
+
+        private String licenseNo;
+
+        private String frameNo;
+
+        private String engineNo;
+
+        private String registerDate;
+
+        private String brandName;
+
+        private String modelName;
+
+        private String seats;
+
+        private String price;
+
+        private String wholeWeight;
+
+        private String exhaustMeasure;
+
+        private String tonNumber;
+
+        private String licenceTypeCode;
+
+        private String useAttribute;
+
+        private String ownAttribute;
+
+        private String energyType;
+
+    }
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = 550815378655396224L;
+
+        private String specialCarFlag;
+
+        private String specialCarDate;
+
+
+    }
+
+    @Data
+    public static class ForceQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = -7590812943328629609L;
+
+        private String fuelType;
+    }
+
+    @Data
+    public static class InsuredDTO implements Serializable {
+
+        private static final long serialVersionUID = 7454556088842207818L;
+
+        private String personnelType;
+
+        private String name;
+
+        private String idType;
+
+        private String idNo;
+
+        private String gender;
+
+        private String birthday;
+
+        private String mobile;
+
+        private String organizationType;
+
+        private String phoneExchange;
+
+        private String contactName;
+
+        private String address;
+
+    }
+
+    @Data
+    public static class RegisterDTO implements Serializable {
+
+        private static final long serialVersionUID = 5158351053368351213L;
+
+        private String personnelType;
+
+        private String name;
+
+        private String idType;
+
+        private String idNo;
+
+        private String gender;
+
+        private String birthday;
+
+        private String address;
+    }
+
+    @Data
+    public static class ApplicantDTO implements Serializable {
+
+        private static final long serialVersionUID = -7551366445468303439L;
+
+        private String personnelType;
+
+        private String name;
+
+        private String idType;
+
+        private String idNo;
+
+        private String gender;
+
+        private String birthday;
+
+        private String mobile;
+
+        private String email;
+
+        private String organizationType;
+
+        private String phoneExchange;
+
+        private String contactName;
+
+        private String address;
+    }
+
+    @Data
+    public static class RenewalDTO implements Serializable {
+        private static final long serialVersionUID = -5775490730217696270L;
+        private String premiumTotal;
+        private String amount01;
+        private String amount02;
+        private String amount04;
+        private String amount05;
+        private String amount06;
+        private String amount07;
+        private String amount07Fee;
+        private String amount08;
+        private String amount08Fee;
+        private String amount09;
+        private String amount09Fee;
+        private String amount10;
+        private String amount10Fee;
+        private String amount11;
+        private String amount17;
+        private String amount32;
+        private String amount30;
+        private String amount31;
+        private String amount52;
+        private String amount53;
+        private String amount54;
+        private String amount55;
+        private String amount56;
+        private String amount73;
+        private String amount74;
+        private String amount75;
+        private String amount01Sv;
+        private String amount02Sv;
+        private String amount03Sv;
+        private String amount04Sv;
+        private String amount01XNY;
+        private String inputAmountXNY;
+        private String inputAmount01XNY;
+        private String amount02XNY;
+        private String amount03XNY;
+        private String amount04XNY;
+        private String amount05XNY;
+        private String amount06XNY;
+        private String amount07XNY;
+        private String amount08XNY;
+        private String amount09XNY;
+        private String amount10XNY;
+        private String amount11XNY;
+        private String amount12XNY;
+        private String amount12XNYFee;
+        private String amount13XNY;
+        private String amount14XNY;
+        private String amount15XNY;
+        private String amount16XNY;
+        private String amount17XNY;
+        private String amount18XNY;
+        private String amount18XNYFee;
+        private String amount19XNY;
+        private String amount19XNYFee;
+        private String amount20XNY;
+        private String amount20XNYFee;
+        private String amount21XNY;
+        private String amount22XNY;
+        private String amount23XNY;
+        private String amount01SvXNY;
+        private String amount02SvXNY;
+        private String amount03SvXNY;
+        private String amount04SvXNY;
+        private String amount10XNYDeviceList;
+
+    }
+
+    @Data
+    public static class ChargingPostListDTO implements Serializable {
+
+        private static final long serialVersionUID = 374839579312563821L;
+
+        private String subjectName;
+
+        private String chargingPostType;
+
+        private String chargingPostCode;
+
+        private String chargingPostAddress;
+
+        private String chargingPostAddressType;
+
+        private String chargingPostKind;
+
+
+    }
+
+    @Data
+    public static class AddressDTO implements Serializable {
+
+        private static final long serialVersionUID = 374839579312563821L;
+
+        private String receiveMode;
+
+        private String name;
+
+        private String mobile;
+
+    }
+}

+ 111 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/SearchPAVehicleListResponse.java

@@ -0,0 +1,111 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+
+/**
+ * @version
+ * @description: 平安车型搜索接口 响应参数
+ * @author: wenks
+ * @date: 2024/3/20 10:14
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SearchPAVehicleListResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = 3896621571201019470L;
+
+    private List<ModelsDto> models;
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class ModelsDto {
+
+        /**
+         * 车型编码索引
+         */
+        private String modelIndex;
+
+        /**
+         * 车型编码-非精友编码(可以通过车型编码,
+         * 脱离流程。暂定仅3个月有效,无法通过pa
+         * ModelCode反推精友编码)modelIndex
+         * 与paModelCode都会返回,可以选择一种
+         * 进行投保
+         */
+        private String paModelCode;
+
+        /**
+         * 品牌名
+         */
+        private String brandName;
+
+        /**
+         * 车型名称
+         */
+        private String modelName;
+
+        /**
+         * 车型详情
+         */
+        private String description;
+
+        /**
+         * 新车购置价
+         */
+        private String price;
+
+        /**
+         * 座位数
+         */
+        private String seats;
+
+        /**
+         * 上市时间
+         */
+        private String marketDate;
+
+        /**
+         * 排气量(升)
+         */
+        private String exhaustMeasure;
+
+        /**
+         * 整备质量(kg)
+         */
+        private String fullWeight;
+
+        /**
+         * 燃料类型(精友)
+         * D1:汽油
+         * D2:柴油
+         * D3:天然气
+         * D4:液化石油气
+         * D5:混合动力
+         * D6:电动
+         * D7:两用燃料
+         * D8:燃料电池
+         * D9:甲醇
+         * D11 :其他
+         * D12 :插电式混合动力
+         * D13 :混合油
+         * D14 :太阳能
+         * D15 :无
+         */
+        private String powerTypeCode;
+
+        /**
+         * 车辆种类
+         */
+        private String vehicleType;
+
+    }
+
+}

+ 35 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/ServiceContractResponse.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ServiceContractResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = 7934610842795471920L;
+
+    private DAtaDTO data;
+
+    @Data
+    public static class DAtaDTO implements Serializable {
+
+        private static final long serialVersionUID = -6329314932281319677L;
+
+        private String vasSpecialClause;
+
+        private String isShown;
+
+        private String isChecked;
+
+        private String defaultDisplayNum;
+
+        private String optionNum;
+
+    }
+
+
+}

+ 15 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/SubmitApplyResponse.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SubmitApplyResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = -506696668160218786L;
+
+
+}

+ 25 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/UnAutoProductDetailResponse.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class UnAutoProductDetailResponse implements Serializable {
+
+    private static final long serialVersionUID = 5920848005412486015L;
+
+    private List<UnAutoProductDetailsDTO> unAutoProductDetailsDTOList;
+
+    @Data
+    public static class UnAutoProductDetailsDTO {
+
+        private String insuranceCoverage;
+
+        private String unitInsuredAmount;
+
+    }
+
+
+}

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

@@ -0,0 +1,57 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class UnAutoProductListResponse implements Serializable {
+
+    private static final long serialVersionUID = -5511855293401586119L;
+
+
+    private List<UnAutoListInfoDTO> unAutoListInfo;
+
+    private List<UnAutoListInfoDTO> xiaoWeiListInfo;
+
+    @Data
+    public static class UnAutoListInfoDTO implements Serializable {
+
+        private static final long serialVersionUID = 9082610442188831877L;
+
+        private String displayName;
+
+        private String productType;
+
+        private List<ShowPackageInfoListDTO> showPackageInfoList;
+
+
+        @Data
+        public static class ShowPackageInfoListDTO implements Serializable {
+            private static final long serialVersionUID = -8503955203323398303L;
+
+            private String productCode;
+
+            private String discount;
+
+            private String insuredAmount;
+
+            private String insuredAmountTips;
+
+            private String leastAcceptInsureAge;
+
+            private String topAcceptInsureAge;
+
+            private String packageCode;
+
+            private String packageName;
+
+            private String version;
+
+            private String sellListSize;
+        }
+
+    }
+
+}

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

@@ -59,7 +59,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      *
      *
      * @param orderNo 主订单号
      * @param orderNo 主订单号
      */
      */
-    InsAreaCompany queryLatestStatus(String orderNo);
+    String queryLatestStatus(String orderNo);
 
 
     List<InsAreaCompany> getorDerIds();
     List<InsAreaCompany> getorDerIds();
 
 

+ 57 - 0
src/main/java/com/ydtech/modules/order/service/PingAnOrderApiService.java

@@ -0,0 +1,57 @@
+package com.ydtech.modules.order.service;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
+
+import java.util.List;
+
+public interface PingAnOrderApiService {
+
+    /**
+     * 报价
+     *
+     * @param quoteInfo
+     * @param quoteVo
+     * @return
+     */
+    HttpResult<QuoteRespVo> quote(BaseQuoteInfoVo quoteInfo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo);
+
+    /**
+     * 提交影像
+     * @param companyId 子订单号
+     * @return
+     */
+    HttpResult<Object> submitImage(String companyId);
+
+    /**
+     * 提交核保
+     * @param companyId 子订单号
+     * @return
+     */
+    HttpResult<Object> audit(String companyId);
+
+    /**
+     * 电子保单
+     * @param companyId 子订单号
+     * @return
+     */
+    HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(String companyId);
+
+    /**
+     * 订单状态查询
+     * @param companyId 子订单号
+     * @return
+     */
+    HttpResult<Object> getOrderDetail(String companyId);
+
+    /**
+     * 核保状态查询
+     * @param companyId
+     * @return
+     */
+    HttpResult<Object> auditStatusQuery(String companyId);
+}

+ 28 - 12
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.alibaba.fastjson.JSONArray;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
@@ -23,6 +24,7 @@ import com.ydtech.modules.order.entity.api.bohai.request.*;
 import com.ydtech.modules.order.entity.api.bohai.response.*;
 import com.ydtech.modules.order.entity.api.bohai.response.*;
 import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
 import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
@@ -38,7 +40,6 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.CalculateUtils;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.StringUtils;
-import com.ydtech.utils.idgen.IdGenerate;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -193,18 +194,32 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
         UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest,
         UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest,
                 parameters.getSysSourceCode());
                 parameters.getSysSourceCode());
-        int i = underwritingResponse.getData().verificationUnderwriting();
+        UnderwritingResponse.DataDTO data = underwritingResponse.getData();
+        int i = data.verificationUnderwriting();
         // 交强
         // 交强
-        UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = underwritingResponse.getData().getTrafficPolicy();
+        UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = data.getTrafficPolicy();
         if (!ObjectUtils.isEmpty(trafficPolicy)) {
         if (!ObjectUtils.isEmpty(trafficPolicy)) {
             insAreaCompany.setJqapplyno(trafficPolicy.getApplicationNo());
             insAreaCompany.setJqapplyno(trafficPolicy.getApplicationNo());
         }
         }
         // 商业
         // 商业
-        UnderwritingResponse.DataDTO.BusinessPolicyDTO businessPolicy = underwritingResponse.getData().getBusinessPolicy();
+        UnderwritingResponse.DataDTO.BusinessPolicyDTO businessPolicy = data.getBusinessPolicy();
         if (!ObjectUtils.isEmpty(businessPolicy)) {
         if (!ObjectUtils.isEmpty(businessPolicy)) {
             insAreaCompany.setSyapplyno(businessPolicy.getApplicationNo());
             insAreaCompany.setSyapplyno(businessPolicy.getApplicationNo());
         }
         }
 
 
+        // 将驾意险保存起来
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> casualtyPolicies = data.getCasualtyPolicies();
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> policyDTOS = new ArrayList<>(casualtyPolicies);
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> propertyPolicies = data.getPropertyPolicies();
+        policyDTOS.addAll(propertyPolicies);
+
+        List<DrivingInsuranceDto> collect = policyDTOS.stream()
+                .map(UnderwritingResponse.DataDTO.UnAutoPolicyDTO::toDrivingInsuranceDto)
+                .collect(Collectors.toList());
+
+        JSONArray objects = JSON.parseArray(JSON.toJSONString(collect));
+        insAreaCompany.setCrossInsurance(objects);
+
         if (i == 1) {
         if (i == 1) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 支付请求
             // 支付请求
@@ -219,9 +234,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         } else {
         } else {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
         }
         }
-
-        String trafficResultMsg = underwritingResponse.getData().getTrafficResultMsg();
-        String businessResultMsg = underwritingResponse.getData().getBusinessResultMsg();
+        String trafficResultMsg = data.getTrafficResultMsg();
+        String businessResultMsg = data.getBusinessResultMsg();
         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
         return HttpResult.error(trafficResultMsg + "/n" + businessResultMsg);
         return HttpResult.error(trafficResultMsg + "/n" + businessResultMsg);
     }
     }
@@ -393,8 +407,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                                                   BaseQuoteInfoVo yaQuoteInfoVo,
                                                   BaseQuoteInfoVo yaQuoteInfoVo,
                                                   VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
                                                   VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
                                                   PtlAgreementAttribution ptlAgreementAttribution,
                                                   PtlAgreementAttribution ptlAgreementAttribution,
-                                                  String orderNo
-    ) {
+                                                  String orderNo,
+                                                  List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
 
 
         double sumPayTax = 0;
         double sumPayTax = 0;
         double jqPremium = 0;
         double jqPremium = 0;
@@ -411,7 +425,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         // 交强
         // 交强
         quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
         quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
         quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
         quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
-        quoteRespVo.setJqApplyNo(trafficPolicy.getApplicationNo());
         // 商业险
         // 商业险
         QuotationResponse.DataDTO.BusinessPolicyDTO businessPolicy = response.getData().getBusinessPolicy();
         QuotationResponse.DataDTO.BusinessPolicyDTO businessPolicy = response.getData().getBusinessPolicy();
         List<QuoteKindRespVo> kindList1 = new ArrayList<>();
         List<QuoteKindRespVo> kindList1 = new ArrayList<>();
@@ -469,13 +482,14 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         quoteRespVo.setCoreModels(vehicleModelsDTO.toCoreModelsVo());
         quoteRespVo.setCoreModels(vehicleModelsDTO.toCoreModelsVo());
-        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo);
+        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
     }
     }
 
 
     public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
     public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
                                                  QuoteRespVo quoteRespVo,
                                                  QuoteRespVo quoteRespVo,
                                                  PtlAgreementAttribution ptlAgreementAttribution,
                                                  PtlAgreementAttribution ptlAgreementAttribution,
-                                                 String orderId) {
+                                                 String orderId,
+                                                 List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
         // 保存订单信息
         // 保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
 
 
@@ -485,6 +499,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(response)));
         insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(response)));
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setInsOrderNo(busUniqueId);
         insAreaCompany.setInsOrderNo(busUniqueId);
+        // 驾意险
+        insAreaCompany.setAccidentInfo(JSON.parseArray(JSON.toJSONString(accidentalDrivingVo)));
         // 车船税
         // 车船税
         QuotationResponse.DataDTO.TrafficPolicyDTO.VehicleTaxDTO vehicleTax = response.getData().getTrafficPolicy().getVehicleTax();
         QuotationResponse.DataDTO.TrafficPolicyDTO.VehicleTaxDTO vehicleTax = response.getData().getTrafficPolicy().getVehicleTax();
         TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(vehicleTax.getOverdueTaxAmount()),
         TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(vehicleTax.getOverdueTaxAmount()),

+ 1 - 4
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -228,13 +228,11 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         }
         }
         // 特别约定
         // 特别约定
         List<GuoRenSpecialAgreementVo> specialAgreementVo = quoteVo.getGuoRenSpecialAgreementVo();
         List<GuoRenSpecialAgreementVo> specialAgreementVo = quoteVo.getGuoRenSpecialAgreementVo();
-
         // 4、保费计算
         // 4、保费计算
         PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar,
         PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar,
                 specialAgreementVo);
                 specialAgreementVo);
         AssertionUtils.isEmpty(premiumResult, "保费计算失败");
         AssertionUtils.isEmpty(premiumResult, "保费计算失败");
 
 
-
         // 5、 生成订单
         // 5、 生成订单
         QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo, jsPremium);
         QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo, jsPremium);
         // 账号信息
         // 账号信息
@@ -242,10 +240,9 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 ptlAgreementAttributionService.getById(quoteVo.getAgreementId());
                 ptlAgreementAttributionService.getById(quoteVo.getAgreementId());
 
 
         InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo, ptlAgreementAttribution);
         InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo, ptlAgreementAttribution);
-
         //  6、 投保单保存
         //  6、 投保单保存
         InsuranceSlipResp insuranceSlip = guorenRequestApiComponent.insuranceSlip(yaQuoteInfoVo,
         InsuranceSlipResp insuranceSlip = guorenRequestApiComponent.insuranceSlip(yaQuoteInfoVo,
-                carPriceResult.getInputvo(), orderCode);
+                carPriceResult.getInputvo(), orderCode, specialAgreementVo);
         if (insuranceSlip.getResultCode() == 1) {
         if (insuranceSlip.getResultCode() == 1) {
             return HttpResult.error(insuranceSlip.getResultMsg());
             return HttpResult.error(insuranceSlip.getResultMsg());
         }
         }

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

@@ -202,7 +202,7 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
     }
 
 
     @Override
     @Override
-    public InsAreaCompany queryLatestStatus(String orderNo) {
+    public String queryLatestStatus(String orderNo) {
         return baseMapper.queryLatestStatus(orderNo);
         return baseMapper.queryLatestStatus(orderNo);
     }
     }
 
 

+ 176 - 29
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -119,6 +119,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
+    public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
+                                SysUserRoleService sysUserRoleService,
+                                EsmUserReferrerService esmUserReferrerService, SysDeptService sysDeptService,
+                                StringRedisTemplate redisTemplate, @Lazy InsAreaCompanyService insAreaCompanyService,
+                                PtlAgreementService ptlAgreementService,
+                                @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
+                                InsFeeAuditService insFeeAuditService, InsOrdersTrackService insOrdersTrackService,
+                                InsFileMapper insFileMapper) {
+
+        this.orderComponents = orderComponents;
     public InsOrdersServiceImpl(SysUserService sysUserService,
     public InsOrdersServiceImpl(SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
                                 SysUserRoleService sysUserRoleService,
                                 @Lazy InsAreaCompanyService insAreaCompanyService,
                                 @Lazy InsAreaCompanyService insAreaCompanyService,
@@ -155,12 +165,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             return;
             return;
         }
         }
 
 
+        String orderStatus = insAreaCompany.getOrderstatus();
+
         if (!ObjectUtils.isEmpty(insAreaCompany)) {
         if (!ObjectUtils.isEmpty(insAreaCompany)) {
             InsOrders insOrders = getById(insAreaCompany.getOrderno());
             InsOrders insOrders = getById(insAreaCompany.getOrderno());
 
 
+            // 查出最新状态的子订单修改
             if (!InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())) {
             if (!InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())) {
-                // 查出最新状态的子订单修改
-                insAreaCompany = insAreaCompanyService.queryLatestStatus(insAreaCompany.getOrderno());
+                orderStatus = insAreaCompanyService.queryLatestStatus(insAreaCompany.getOrderno());
             } else {
             } else {
                 insOrders.setCompanyId(insAreaCompany.getCompanyId());
                 insOrders.setCompanyId(insAreaCompany.getCompanyId());
                 insOrders.setInsCompany(insAreaCompany.getInscompany());
                 insOrders.setInsCompany(insAreaCompany.getInscompany());
@@ -170,7 +182,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 return;
                 return;
             }
             }
 
 
-            insOrders.setOrderstatus(insAreaCompany.getOrderstatus());
+            insOrders.setOrderstatus(orderStatus);
             LambdaQueryWrapper<InsOrders> insOrdersLambdaQueryWrapper = new LambdaQueryWrapper<>();
             LambdaQueryWrapper<InsOrders> insOrdersLambdaQueryWrapper = new LambdaQueryWrapper<>();
             insOrdersLambdaQueryWrapper.ne(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insOrdersLambdaQueryWrapper.ne(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insOrdersLambdaQueryWrapper.eq(InsOrders::getOrderno, insAreaCompany.getOrderno());
             insOrdersLambdaQueryWrapper.eq(InsOrders::getOrderno, insAreaCompany.getOrderno());
@@ -182,6 +194,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     @Override
     public List<CarModelDTO> vinSearch(String vin) {
     public List<CarModelDTO> vinSearch(String vin) {
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(InsOrders::getCarinfo);
+        wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus,
+                InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
+        InsOrders insOrders = baseMapper.selectOne(wrapper);
+        if (!ObjectUtils.isEmpty(insOrders)) {
+            JSONObject carinfo = insOrders.getCarinfo();
+            CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
 
 
 
 
         wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
         wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
@@ -206,6 +225,90 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return insOrders;
         return insOrders;
     }
     }
 
 
+    /**
+     * @param userId      当前登录人id
+     * @param quoteInfoVo 报价信息
+     * @return
+     */
+    @Override
+    public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
+        String realUserId = userId;//实际跟单业务人默认登录人
+        boolean daikeFlag = false;//是否代客录单业务
+        //添加出单员报价的逻辑,
+        boolean isCdy = false;//是否出单员标志
+        if (StringUtils.isNotEmpty(userId)) {
+            SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
+            if (19 == userRole.getRoleId()) {
+                isCdy = true;
+            }
+        }
+        if (isCdy) {
+            //如果是出单员  获取最终实际业务员
+            SysUser user = sysUserService.getById(realUserId);
+            realUserId = user.getOperatorCode();
+        } else {
+            //如果传递的业务归属人且与登录人不一致,则是代客录单业务
+            if (StringUtils.isNotEmpty(quoteInfoVo.getUserId()) && !userId.equals(quoteInfoVo.getUserId())) {
+                //实际跟单业务人变更为手工选择的人
+                realUserId = quoteInfoVo.getUserId();
+                daikeFlag = true;
+            }
+        }
+
+        // 1. 验证订单参数
+        orderComponents.checkEmpty(quoteInfoVo);
+        SysUser user = sysUserService.getById(realUserId);
+        SysDept dept = sysDeptService.getById(user.getDeptId());
+        // 2 构造订单
+        InsOrders insOrders = new InsOrders(user, dept, quoteInfoVo);
+        if (daikeFlag) {//当时代客录单业务时,才需要赋值该字段
+            insOrders.setOperatorid(userId);//赋值代客录单操作人为登录人
+        }
+        if (isCdy) {//赋值出单员  操作人为登录人
+            insOrders.setOperatorid(userId);
+        }
+        InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
+
+        //需要赋值代录单人ID
+
+        if (ObjectUtils.isEmpty(insOrders1)) {
+            insOrders1 = insOrders;
+        }
+
+        if (!quoteInfoVo.getCarInfo().getLicenseNo().equals(insOrders1.getLicenseno())) {
+            throw new SystemException("1001", "车牌与此订单不符,请重新录单");
+        }
+
+        // 3 订单操作
+        if (!realUserId.equals(insOrders1.getUserid()) || StringUtils.isEmpty(quoteInfoVo.getOrderNo())) {
+            // 存入订单
+            String orderno = IdGenerate.nextId();
+            insOrders.setOrderno(orderno);
+            // 将报价号返回
+            long l = new SnowFlakeUtil().nextId();
+            insOrders.setQuoteno(String.valueOf(l));
+            boolean save = this.saveAndTrajectories(insOrders);
+            if (!save) {
+                throw new SystemException("订单生成失败");
+            }
+
+        } else {
+            // 修改订单
+            insOrders.setOrderno(quoteInfoVo.getOrderNo());
+            this.updateById(insOrders);
+        }
+        // 4 将报价信息存入redis 中
+        String s = JSON.toJSONString(quoteInfoVo);
+        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s, QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
+
+        // 5 生成承包规则参数
+        UnderwritingRulesBo underwritingRulesBo = new UnderwritingRulesBo(quoteInfoVo);
+        String rules = JSON.toJSONString(underwritingRulesBo);
+        redisTemplate.opsForValue().set(QUOTE_RULES_KEY + insOrders.getOrderno(), rules, QUOTE_RULES_KEY_TIME,
+                TimeUnit.HOURS);
+
+        return insOrders;
+    }
 
 
     /**
     /**
      * 新的查询分页接口
      * 新的查询分页接口
@@ -223,7 +326,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         boolean isCdy = false;
         boolean isCdy = false;
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
-            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
+            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
+                //团队长可查询下面所有人员订单
                 isTeamLeader = true;
                 isTeamLeader = true;
             }
             }
             if (19 == userRole.getRoleId()) {
             if (19 == userRole.getRoleId()) {
@@ -235,7 +339,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, isTeamLeader, isCdy);
         Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, isTeamLeader, isCdy);
         Long total = baseMapper.queryPageOrderCount(orderQueryVo, isTeamLeader, isCdy);
         Long total = baseMapper.queryPageOrderCount(orderQueryVo, isTeamLeader, isCdy);
         orderVoPage.setTotal(total);
         orderVoPage.setTotal(total);
-        return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(), orderVoPage.getPages()
+        return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
+                orderVoPage.getPages()
                 , orderVoPage.getRecords());
                 , orderVoPage.getRecords());
     }
     }
 
 
@@ -249,7 +354,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
 
 
-            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
+            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
+                //团队长可查询下面所有人员订单
                 isTeamLeader = true;
                 isTeamLeader = true;
             }
             }
 
 
@@ -262,20 +368,27 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 构造查询条件
         // 构造查询条件
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getOrderNo()), InsOrders::getOrderno, orderQueryVo.getOrderNo())
         wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getOrderNo()), InsOrders::getOrderno, orderQueryVo.getOrderNo())
-                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid, orderQueryVo.getDeptId())
-                .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus, orderQueryVo.getOrderStatus())
-                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno, orderQueryVo.getFrameNo())
-                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getLicenseNo()), InsOrders::getLicenseno, orderQueryVo.getLicenseNo())
-                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getInsuredName()), InsOrders::getInsuredname, orderQueryVo.getInsuredName())
+                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid,
+                        orderQueryVo.getDeptId())
+                .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus,
+                        orderQueryVo.getOrderStatus())
+                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno,
+                        orderQueryVo.getFrameNo())
+                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getLicenseNo()), InsOrders::getLicenseno,
+                        orderQueryVo.getLicenseNo())
+                .likeRight(StringUtils.isNotEmpty(orderQueryVo.getInsuredName()), InsOrders::getInsuredname,
+                        orderQueryVo.getInsuredName())
                 .between(!ObjectUtils.isEmpty(orderQueryVo.getStartDate()) && !ObjectUtils.isEmpty(orderQueryVo.getEndDate()),
                 .between(!ObjectUtils.isEmpty(orderQueryVo.getStartDate()) && !ObjectUtils.isEmpty(orderQueryVo.getEndDate()),
                         InsOrders::getCreatetime, orderQueryVo.getStartDate(), orderQueryVo.getEndDatePlusOneDay())
                         InsOrders::getCreatetime, orderQueryVo.getStartDate(), orderQueryVo.getEndDatePlusOneDay())
                 .orderBy(true, false, InsOrders::getCreatetime);
                 .orderBy(true, false, InsOrders::getCreatetime);
 
 
 
 
         if (isCdy) {//如果是出单员查询时,只查自己的  与代客录单一致,查operatorid (手机前端userid传过来是出单用户,直接用该字段查询查operatorid)
         if (isCdy) {//如果是出单员查询时,只查自己的  与代客录单一致,查operatorid (手机前端userid传过来是出单用户,直接用该字段查询查operatorid)
-            wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getOperatorid, orderQueryVo.getUserId());
+            wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getOperatorid,
+                    orderQueryVo.getUserId());
         } else {
         } else {
-            wrapper.eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid, orderQueryVo.getUserId());
+            wrapper.eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid,
+                    orderQueryVo.getUserId());
         }
         }
 
 
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
@@ -283,7 +396,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {
         if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {
             List<InsAreaCompany> list = insAreaCompanyService.query().select("DISTINCT orderno").eq("company_id",
             List<InsAreaCompany> list = insAreaCompanyService.query().select("DISTINCT orderno").eq("company_id",
                     orderQueryVo.getCompanyId()).list();
                     orderQueryVo.getCompanyId()).list();
-            List<String> collect = list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
+            List<String> collect =
+                    list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
             if (!collect.isEmpty()) {
             if (!collect.isEmpty()) {
                 wrapper.in(InsOrders::getOrderno, collect);
                 wrapper.in(InsOrders::getOrderno, collect);
             }
             }
@@ -299,7 +413,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         }
 
 
         if (StringUtils.isNotEmpty(orderQueryVo.getAuditStatus()) && orderQueryVo.getAuditStatus().equals("0")) {
         if (StringUtils.isNotEmpty(orderQueryVo.getAuditStatus()) && orderQueryVo.getAuditStatus().equals("0")) {
-            List<InsFeeAudit> list = insFeeAuditService.query().select("DISTINCT orderno").eq("auditstatus", "1").list();
+            List<InsFeeAudit> list =
+                    insFeeAuditService.query().select("DISTINCT orderno").eq("auditstatus", "1").list();
             List<String> collect = list.stream().map(InsFeeAudit::getOrderno).distinct().collect(Collectors.toList());
             List<String> collect = list.stream().map(InsFeeAudit::getOrderno).distinct().collect(Collectors.toList());
 
 
             if (!collect.isEmpty()) {
             if (!collect.isEmpty()) {
@@ -308,10 +423,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         }
 
 
         //查出报价状态为 3
         //查出报价状态为 3
-        List<InsAreaCompany>   insAreaCompanies = insAreaCompanyService.getorDerIds();
+        List<InsAreaCompany> insAreaCompanies = insAreaCompanyService.getorDerIds();
 //      新的费用订单表
 //      新的费用订单表
-        if(insAreaCompanies.size()>0){
-            List<String> collect = insAreaCompanies.stream().map(insAreaCompany -> insAreaCompany.getOrderno()).collect(Collectors.toList());
+        if (insAreaCompanies.size() > 0) {
+            List<String> collect =
+                    insAreaCompanies.stream().map(insAreaCompany -> insAreaCompany.getOrderno()).collect(Collectors.toList());
             if (!collect.isEmpty()) {
             if (!collect.isEmpty()) {
                 wrapper.in(InsOrders::getOrderno, collect);
                 wrapper.in(InsOrders::getOrderno, collect);
             }
             }
@@ -319,7 +435,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
         Page<InsOrders> insOrdersPage = page(page, wrapper);
         Page<InsOrders> insOrdersPage = page(page, wrapper);
 
 
-        return new BasePageResult<>(orderQueryVo.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+        return new BasePageResult<>(orderQueryVo.getPageNum(), page.getSize(), insOrdersPage.getTotal(),
+                page.getPages(),
                 insOrdersPage.getRecords());
                 insOrdersPage.getRecords());
     }
     }
 
 
@@ -345,7 +462,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             insOrdersExcel.setRegisterDate(carInfoVo.getRegisterDate());
             insOrdersExcel.setRegisterDate(carInfoVo.getRegisterDate());
             insOrdersExcel.setIssueDate(carInfoVo.getIssueDate());
             insOrdersExcel.setIssueDate(carInfoVo.getIssueDate());
 
 
-            String natureOfVehicleUse = NatureOfVehicleUse.getNatureOfVehicleUse(carInfoVo.getCarnature(), carInfoVo.getVehicleUse());
+            String natureOfVehicleUse = NatureOfVehicleUse.getNatureOfVehicleUse(carInfoVo.getCarnature(),
+                    carInfoVo.getVehicleUse());
             insOrdersExcel.setVehicleUse(natureOfVehicleUse);
             insOrdersExcel.setVehicleUse(natureOfVehicleUse);
 
 
             insOrdersExcel.setCarNature(NatureOfVehicleUse.getDesc(carInfoVo.getCarnature()));
             insOrdersExcel.setCarNature(NatureOfVehicleUse.getDesc(carInfoVo.getCarnature()));
@@ -377,7 +495,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
             //非车
             //非车
             if (!ObjectUtils.isEmpty(insOrdersExcel.getCrossInsurance())) {
             if (!ObjectUtils.isEmpty(insOrdersExcel.getCrossInsurance())) {
-                List<DrivingInsuranceDto> drivingInsuranceDtos = insOrdersExcel.getCrossInsurance().toJavaList(DrivingInsuranceDto.class);
+                List<DrivingInsuranceDto> drivingInsuranceDtos =
+                        insOrdersExcel.getCrossInsurance().toJavaList(DrivingInsuranceDto.class);
                 if (!drivingInsuranceDtos.isEmpty()) {
                 if (!drivingInsuranceDtos.isEmpty()) {
                     String policyNumber = drivingInsuranceDtos.get(0).getPolicyNumber();
                     String policyNumber = drivingInsuranceDtos.get(0).getPolicyNumber();
                     insOrdersExcel.setJyPolicyno(policyNumber);
                     insOrdersExcel.setJyPolicyno(policyNumber);
@@ -417,7 +536,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
             return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
         } else {
         } else {
             if (folder.mkdirs()) {
             if (folder.mkdirs()) {
-                return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
+                return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class,
+                        insOrdersExcels));
             } else {
             } else {
                 throw new SystemException("文件导出失败");
                 throw new SystemException("文件导出失败");
             }
             }
@@ -441,8 +561,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             JSONObject reptxt = orderAndAreaCompany.getReptxt();
             JSONObject reptxt = orderAndAreaCompany.getReptxt();
             ResponseDataC2 responseDataC2 = JSON.toJavaObject(reptxt, ResponseDataC2.class);
             ResponseDataC2 responseDataC2 = JSON.toJavaObject(reptxt, ResponseDataC2.class);
             List<ExtendInfoDto> extendInfoDtos = responseDataC2.getResponseBody().getExtendInfo();
             List<ExtendInfoDto> extendInfoDtos = responseDataC2.getResponseBody().getExtendInfo();
-            Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new, (m, v) -> m.put(v.getKey(),
-                    v.getValue()), LinkedHashMap::putAll);
+            Map<String, String> stringStringMap = extendInfoDtos.stream().collect(LinkedHashMap::new,
+                    (m, v) -> m.put(v.getKey(),
+                            v.getValue()), LinkedHashMap::putAll);
             yaExtendInfoDto = MapToYaExtendInfoDto.INSTANCE.mapToYaExtendInfoDto(stringStringMap);
             yaExtendInfoDto = MapToYaExtendInfoDto.INSTANCE.mapToYaExtendInfoDto(stringStringMap);
             orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
             orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
         }
         }
@@ -500,10 +621,31 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
         //新增费用明细信息
         //新增费用明细信息
 //        QueryOrderFeeVo queryOrderFeeVo = feeRuleSchemeService.queryFeeOrderInfo(companyId);
 //        QueryOrderFeeVo queryOrderFeeVo = feeRuleSchemeService.queryFeeOrderInfo(companyId);
+        //查询费用信息
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .eq(InsFeeOrderNew::getInsOrderNo, companyId));
 //        orderAndAreaCompany.setOrderCommissionVo(queryOrderFeeVo.getOrderCommissionVo());
 //        orderAndAreaCompany.setOrderCommissionVo(queryOrderFeeVo.getOrderCommissionVo());
 //        orderAndAreaCompany.setAdjustFeeDescVo(queryOrderFeeVo.getAdjustFeeDescVo());
 //        orderAndAreaCompany.setAdjustFeeDescVo(queryOrderFeeVo.getAdjustFeeDescVo());
         boolean isShowOrderFee = false;
         boolean isShowOrderFee = false;
         //如果是财务菜单进入的,不再进行权限控制,所有都可查看
         //如果是财务菜单进入的,不再进行权限控制,所有都可查看
+//        if ("accountingUser".equals(userId)) {
+//            isShowOrderFee = true;
+//        } else {
+//            //判断当前登录人员是否为后线人员,来决定是否返回总费用详情信息
+//            List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
+//            if (userList != null && !userList.isEmpty()) {
+//                isShowOrderFee = true;
+//            }
+//        }
+//        if (isShowOrderFee) {
+//            List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(queryOrderFeeVo);
+//            if (!orderFeeVoList.isEmpty()) {
+//                orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
+//            }
+//        }
+        if (!Objects.isNull(insFeeOrderNew)) {
+            List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(insFeeOrderNew);
+            orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
         if ("accountingUser".equals(userId)) {
         if ("accountingUser".equals(userId)) {
             isShowOrderFee = true;
             isShowOrderFee = true;
         } else {
         } else {
@@ -526,7 +668,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         }
         //add 解决返回null页面错误  lig 2023-09-14
         //add 解决返回null页面错误  lig 2023-09-14
         if (null == orderAndAreaCompany.getExtendInfo()) orderAndAreaCompany.setExtendInfo("");
         if (null == orderAndAreaCompany.getExtendInfo()) orderAndAreaCompany.setExtendInfo("");
-        if (null == orderAndAreaCompany.getCrossInsurance()) orderAndAreaCompany.setCrossInsurance(JSON.parseArray("[]"));
+        if (null == orderAndAreaCompany.getCrossInsurance())
+            orderAndAreaCompany.setCrossInsurance(JSON.parseArray("[]"));
         if (null == orderAndAreaCompany.getKindinfo()) orderAndAreaCompany.setKindinfo(JSON.parseArray("[]"));
         if (null == orderAndAreaCompany.getKindinfo()) orderAndAreaCompany.setKindinfo(JSON.parseArray("[]"));
         if (null == orderAndAreaCompany.getFeeStatus()) orderAndAreaCompany.setFeeStatus("0");
         if (null == orderAndAreaCompany.getFeeStatus()) orderAndAreaCompany.setFeeStatus("0");
 
 
@@ -623,7 +766,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             queryFlag = "queryPayTime";
             queryFlag = "queryPayTime";
         }
         }
         policyInsuranceReportReqVo.setQueryFlag(queryFlag);
         policyInsuranceReportReqVo.setQueryFlag(queryFlag);
-        Page<InsOrders> page = new Page<>(policyInsuranceReportReqVo.getPageNum(), policyInsuranceReportReqVo.getPageSize());
+        Page<InsOrders> page = new Page<>(policyInsuranceReportReqVo.getPageNum(),
+                policyInsuranceReportReqVo.getPageSize());
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
         Page<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(page,
         Page<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(page,
                 policyInsuranceReportReqVo);
                 policyInsuranceReportReqVo);
@@ -635,7 +779,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
     }
 
 
     @Override
     @Override
-    public HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo, String userId) {
+    public HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo,
+                                                          String userId) {
         String queryFlag = "queryPayDate";
         String queryFlag = "queryPayDate";
         //判断当前登录人员是否为管理人员和财务人员;要求管理人员查询paytime,其他查询paydate
         //判断当前登录人员是否为管理人员和财务人员;要求管理人员查询paytime,其他查询paydate
         List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
         List<SysUser> userList = sysUserService.findAllAgentRoleUser(userId, "22");
@@ -643,8 +788,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             queryFlag = "queryPayTime";
             queryFlag = "queryPayTime";
         }
         }
         policyInsuranceReportReqVo.setQueryFlag(queryFlag);
         policyInsuranceReportReqVo.setQueryFlag(queryFlag);
-        List<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage = baseMapper.getPolicyInsuranceReport(policyInsuranceReportReqVo);
-        String s = EasyExcelUtils.downExcel(uploadFilePath, PolicyInsuranceReportResVo.class, policyInsuranceReportResVoPage);
+        List<PolicyInsuranceReportResVo> policyInsuranceReportResVoPage =
+                baseMapper.getPolicyInsuranceReport(policyInsuranceReportReqVo);
+        String s = EasyExcelUtils.downExcel(uploadFilePath, PolicyInsuranceReportResVo.class,
+                policyInsuranceReportResVoPage);
         return HttpResult.ok("", s);
         return HttpResult.ok("", s);
     }
     }
 
 

+ 50 - 0
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -0,0 +1,50 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
+import com.ydtech.modules.order.service.PingAnOrderApiService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Service
+public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
+
+
+    @Override
+    public HttpResult<QuoteRespVo> quote(BaseQuoteInfoVo quoteInfo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo) {
+        return null;
+    }
+
+    @Override
+    public HttpResult<Object> submitImage(String companyId) {
+        return null;
+    }
+
+    @Override
+    public HttpResult<Object> audit(String companyId) {
+        return null;
+    }
+
+    @Override
+    public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(String companyId) {
+        return null;
+    }
+
+    @Override
+    public HttpResult<Object> getOrderDetail(String companyId) {
+        return null;
+    }
+
+    @Override
+    public HttpResult<Object> auditStatusQuery(String companyId) {
+        return null;
+    }
+
+
+}

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

@@ -1020,7 +1020,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         redisKey.append(YC_AGREEMENT_INFO_KEY);
         redisKey.append(YC_AGREEMENT_INFO_KEY);
         redisKey.append(accidentalDrivingVo.getCompanyCode());
         redisKey.append(accidentalDrivingVo.getCompanyCode());
         redisKey.append(accidentalDrivingVo.getSeatNum());
         redisKey.append(accidentalDrivingVo.getSeatNum());
-        redisKey.append(accidentalDrivingVo.getCompanyCode());
+        redisKey.append(accidentalDrivingVo.getCode());
 
 
         //查询redis
         //查询redis
         if (!Objects.isNull(redisTemplate.opsForValue().get(redisKey.toString()))) {
         if (!Objects.isNull(redisTemplate.opsForValue().get(redisKey.toString()))) {

+ 40 - 0
src/main/java/com/ydtech/modules/ser/controller/SerAnnualAuditOrderController.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+import com.ydtech.modules.ser.service.SerAnnualAuditOrderService;
+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;
+
+@RestController
+@RequestMapping("/ser/annualAuditOrder")
+@Api(tags = "年审代办")
+public class SerAnnualAuditOrderController extends BaseController {
+    @Autowired
+    private SerAnnualAuditOrderService serAnnualAuditOrderService;
+
+    @ApiOperation("年审代办订单查询")
+    @PostMapping("annualAuditOrderPage")
+    public HttpResult annualAuditOrderPage(@RequestBody SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo){
+        IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage = serAnnualAuditOrderService.getAnnualAuditOrderPage(serAnnualAuditOrderQueryVo);
+        PageResult pageResult = buildPageResponse(getAnnualAuditOrderPage);
+        return HttpResult.ok(pageResult);
+    }
+
+
+    @ApiOperation("年审代办订单生成")
+    @PostMapping("addAnnualAuditOrder")
+    public HttpResult annualAuditOrder(@RequestBody SerAnnualAuditOrder serAnnualAuditOrder){
+        return serAnnualAuditOrderService.addAnnualAuditOrder(serAnnualAuditOrder);
+    }
+}

+ 52 - 0
src/main/java/com/ydtech/modules/ser/controller/SerCarInfoController.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.dao.SerCarInfoMapper;
+import com.ydtech.modules.ser.model.SerCarInfo;
+import com.ydtech.modules.ser.service.SerCarInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/ser/carInfo")
+@Api(tags = "车辆信息")
+public class SerCarInfoController {
+    @Resource
+    private SerCarInfoService serCarInfoService;
+
+    @Resource
+    private SerCarInfoMapper serCarInfoMapper;
+
+    @ApiOperation("车辆信息通过id查询")
+    @PostMapping("queryById")
+    public HttpResult queryById(@RequestBody SerCarInfo SerCarInfo) {
+        SerCarInfo serCarInfo = serCarInfoMapper.selectById(SerCarInfo);
+        if (serCarInfo == null) {
+            return HttpResult.error("未找到对应的车辆信息");
+        }
+        return HttpResult.ok("查询成功", serCarInfo);
+    }
+
+    @ApiOperation("车辆信息根据userid查询")
+    @PostMapping("queryByUserId")
+    public HttpResult queryCarInfoByUserId(){
+        return serCarInfoService.queryCarInfoByUserId();
+    }
+
+    @ApiOperation("车辆信息新增")
+    @PostMapping("addCarInfo")
+    public HttpResult addCarInfo(@RequestBody SerCarInfo serCarInfo){
+        return serCarInfoService.addCarInfo(serCarInfo);
+    }
+
+
+    @ApiOperation("车辆信息编辑")
+    @PostMapping("updateCarInfo")
+    public HttpResult updateCarInfo(@RequestBody SerCarInfo serCarInfo) {
+        return serCarInfoService.updateCarInfo(serCarInfo);
+    }
+}

+ 56 - 0
src/main/java/com/ydtech/modules/ser/controller/SerRescueOrderController.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+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;
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+@Api(tags = "救援订单")
+@RequestMapping("/ser/rescue")
+@RestController
+public class SerRescueOrderController extends BaseController {
+
+
+    @Autowired
+    private SerRescueOrderService rescueOrderService;
+
+    @PostMapping("rescueOrderPage")
+    @ApiOperation("分页查询救援订单")
+    public HttpResult<PageResult> rescueOrderPage(@RequestBody RescueOrderVo rescueOrderVo) {
+        IPage<RescueOrder> rescueOrderIPage = rescueOrderService.rescueOrderPage(rescueOrderVo);
+        PageResult pageResult = buildPageResponse(rescueOrderIPage);
+        return HttpResult.ok(pageResult);
+    }
+
+    @PostMapping("count/rescueSum")
+    @ApiOperation("计算金额")
+    public HttpResult<RescueOrder> countRescueSum(@RequestBody RescueOrder rescueOrder) {
+        return rescueOrderService.countRescueSum(rescueOrder);
+    }
+
+    @PostMapping("insert/rescueOrder")
+    @ApiOperation("新增订单")
+    public HttpResult<Object> insertRescueOrder(@RequestBody RescueOrder rescueOrder) {
+        return rescueOrderService.insertRescueOrder(rescueOrder);
+    }
+
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/ser/controller/SerServePriceController.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+import com.ydtech.modules.ser.service.SerServePriceService;
+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;
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+@Api(tags = "服务管理")
+@RequestMapping("/ser/serve")
+@RestController
+public class SerServePriceController extends BaseController {
+
+
+    @Autowired
+    private SerServePriceService servePriceService;
+
+
+    @PostMapping("insert/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> insertServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.insertServe(servePrice);
+    }
+
+    @PostMapping("update/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> updateServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.updateServe(servePrice);
+    }
+
+    @PostMapping("delete/serve")
+    @ApiOperation("新增服务")
+    public HttpResult<Object> deleteServe(@RequestBody ServePrice servePrice) {
+        return servePriceService.deleteServe(servePrice);
+    }
+
+
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerAnnualAuditOrderMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+
+public interface SerAnnualAuditOrderMapper extends BaseMapper<SerAnnualAuditOrder> {
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerCarInfoMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.SerCarInfo;
+
+public interface SerCarInfoMapper extends BaseMapper<SerCarInfo> {
+}

+ 8 - 0
src/main/java/com/ydtech/modules/ser/dao/SerRescueOrderMapper.java

@@ -0,0 +1,8 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+
+public interface SerRescueOrderMapper extends BaseMapper<RescueOrder> {
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerServePriceMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+
+public interface SerServePriceMapper extends BaseMapper<ServePrice> { }

+ 92 - 0
src/main/java/com/ydtech/modules/ser/model/SerAnnualAuditOrder.java

@@ -0,0 +1,92 @@
+package com.ydtech.modules.ser.model;
+
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 车辆年审代办订单表
+ * @TableName ser_annual_audit_order
+ */
+@TableName(value = "ser_annual_audit_order")
+@Data
+public class SerAnnualAuditOrder implements Serializable {
+    /**
+     * 主键  订单号
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车辆信息id
+     */
+    @TableField(value = "car_info_id")
+    @ApiModelProperty(value = "车辆信息id")
+    private String carInfoId;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+
+    /**
+     * 联系人
+     */
+    @TableField(value = "contact_person")
+    @ApiModelProperty(value = "联系人")
+    private String contactPerson;
+
+    /**
+     * 联系人电话
+     */
+    @TableField(value = "mobile")
+    @ApiModelProperty(value = "联系人电话")
+    private String mobile;
+
+    /**
+     * 地址
+     */
+    @TableField(value = "address")
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @TableField(value = "detail_address")
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    /**
+     * 服务价格(不包含检测费用)
+     */
+    @TableField(value = "test_price_not_included")
+    @ApiModelProperty(value = "服务价格(不包含检测费用)")
+    private Double testPriceNotIncluded;
+
+    /**
+     * 服务价格
+     */
+    @TableField(value = "service_price")
+    @ApiModelProperty(value = "服务价格")
+    private Double servicePrice;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+}

+ 123 - 0
src/main/java/com/ydtech/modules/ser/model/SerCarInfo.java

@@ -0,0 +1,123 @@
+package com.ydtech.modules.ser.model;
+
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 车辆年审车辆信息表
+ * @TableName ser_car_info
+ */
+
+@TableName(value = "ser_car_info")
+@Data
+public class SerCarInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+    /**
+     * 车主姓名
+     */
+    @TableField(value = "owner_name")
+    @ApiModelProperty(value = "车主姓名")
+    private String ownerName;
+
+    /**
+     * 车架号
+     */
+    @TableField(value = "frameno")
+    @ApiModelProperty(value = "车架号")
+    private String frameNo;
+
+    /**
+     * 发动机号
+     */
+    @TableField(value = "engineno")
+    @ApiModelProperty(value = "发动机号")
+    private String engineNo;
+
+    /**
+     * 车辆品牌
+     */
+    @TableField(value = "vehicle_brand")
+    @ApiModelProperty(value = "车辆品牌")
+    private String vehicleBrand;
+
+
+    /**
+     * 车辆类型
+     */
+    @TableField(value = "vehicle_type")
+    @ApiModelProperty(value = "车辆类型")
+    private String vehicleType;
+
+    /**
+     * 车辆使用性质
+     */
+    @TableField(value = "nature_of_vehicle_use")
+    @ApiModelProperty(value = "车辆使用性质")
+    private String natureOfVehicleUse;
+
+    /**
+     * 注册时间
+     */
+    @TableField(value = "register_time")
+    @ApiModelProperty(value = "注册时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date registerTime;
+
+    /**
+     * 年检到期时间
+     */
+    @TableField(value = "expire_time")
+    @ApiModelProperty(value = "年检到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date expireTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+    /**
+     * 年检逾期时间
+     */
+    @TableField(value = "overdue_time")
+    @ApiModelProperty(value = "年检逾期时间")
+    private String overdueTime;
+
+    /**
+     * 距离时间
+     */
+    @TableField(value = "distance_time")
+    @ApiModelProperty(value = "距离时间")
+    private String distanceTime;
+
+    /**
+     * userid
+     */
+    @TableField(value = "userid")
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+}

+ 83 - 0
src/main/java/com/ydtech/modules/ser/model/po/RescueOrder.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.ser.model.po;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@TableName(value = "ser_rescue_order", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RescueOrder {
+
+    @TableId(value = "id",type= IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "救援起点")
+    @TableField(value = "rescue_starting")
+    private String rescueStarting;
+
+    @ApiModelProperty(value = "起点经度")
+    @TableField(value = "rescue_starting_longitude")
+    private BigDecimal startingLongitude;
+
+    @ApiModelProperty(value = "起点纬度")
+    @TableField(value = "rescue_starting_latitude")
+    private BigDecimal startingLatitude;
+
+    @ApiModelProperty(value = "救援终点")
+    @TableField(value = "rescue_destination")
+    private String rescuePosition;
+
+    @ApiModelProperty(value = "终点经度")
+    @TableField(value = "rescue_position_longitude")
+    private BigDecimal positionLongitude;
+
+    @ApiModelProperty(value = "终点纬度")
+    @TableField(value = "rescue_position_latitude")
+    private BigDecimal positionLatitude;
+
+    @ApiModelProperty(value = "救援联系人")
+    @TableField(value = "rescue_user")
+    private String rescueUser;
+
+    @ApiModelProperty(value = "联系人电话")
+    @TableField(value = "phone_number")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "车牌号")
+    @TableField(value = "licence_plate")
+    private String licencePlate;
+
+    @ApiModelProperty(value = "救援场景")
+    @TableField(value = "rescue_scene")
+    private String rescueScene;
+
+    @ApiModelProperty(value = "订单状态")
+    @TableField(value = "order_state")
+    private String orderState;
+
+    @ApiModelProperty(value = "订单生成时间")
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "服务类型")
+    @TableField(value = "serve_code")
+    private String serveCode;
+
+    @ApiModelProperty(value = "救援金额")
+    @TableField(value = "rescue_sum")
+    private Double rescueSum;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/ser/model/po/ServePrice.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.ser.model.po;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@TableName(value = "ser_serve_price", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ServePrice {
+
+
+    @TableId(value = "id",type= IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "服务名称")
+    @TableField(value = "serve_name")
+    private String serveName;
+
+    @ApiModelProperty(value = "服务金额")
+    @TableField(value = "price")
+    private Double price;
+
+    @ApiModelProperty(value = "服务编号")
+    @TableField(value = "serve_code")
+    private String code;
+
+    @ApiModelProperty(value = "限定距离上限")
+    @TableField(value = "distance_upper_limit")
+    private Double distanceUpperLimit;
+
+    @ApiModelProperty(value = "超出距离计算金额")
+    @TableField(value = "count_price")
+    private Double countPrice;
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "creator")
+    private String creator;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+}

+ 55 - 0
src/main/java/com/ydtech/modules/ser/model/vo/RescueOrderVo.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.ser.model.vo;
+
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+
+@Data
+public class RescueOrderVo extends PageRequest {
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer id;
+
+    @ApiModelProperty(value = "救援起点")
+    private String rescueStarting;
+
+    @ApiModelProperty(value = "救援终点")
+    private String rescuePosition;
+
+    @ApiModelProperty(value = "救援联系人")
+    private String rescueUser;
+
+    @ApiModelProperty(value = "联系人电话")
+    private String phoneNumber;
+
+    @ApiModelProperty(value = "车牌号")
+    private String licencePlate;
+
+    @ApiModelProperty(value = "救援场景")
+    private String rescueScene;
+
+    @ApiModelProperty(value = "订单状态")
+    private String orderState;
+
+    @ApiModelProperty(value = "订单生成时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "服务编号")
+    private String serveCode;
+
+    @ApiModelProperty(value = "救援金额")
+    private Double rescueSum;
+
+    @ApiModelProperty(value = "操作人")
+    private String modifier;
+
+}

+ 89 - 0
src/main/java/com/ydtech/modules/ser/model/vo/SerAnnualAuditOrderQueryVo.java

@@ -0,0 +1,89 @@
+package com.ydtech.modules.ser.model.vo;
+
+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.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName(value = "ser_annual_audit_order")
+public class SerAnnualAuditOrderQueryVo extends PageRequest implements Serializable {
+    /**
+     * 主键  订单号
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车辆信息id
+     */
+    @TableField(value = "car_info_id")
+    @ApiModelProperty(value = "车辆信息id")
+    private String carInfoId;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+
+    /**
+     * 联系人
+     */
+    @TableField(value = "contact_person")
+    @ApiModelProperty(value = "联系人")
+    private String contactPerson;
+
+    /**
+     * 联系人电话
+     */
+    @TableField(value = "mobile")
+    @ApiModelProperty(value = "联系人电话")
+    private String mobile;
+
+    /**
+     * 地址
+     */
+    @TableField(value = "address")
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @TableField(value = "detail_address")
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    /**
+     * 服务价格(不包含检测费用)
+     */
+    @TableField(value = "test_price_not_included")
+    @ApiModelProperty(value = "服务价格(不包含检测费用)")
+    private Double testPriceNotIncluded;
+
+    /**
+     * 服务价格
+     */
+    @TableField(value = "service_price")
+    @ApiModelProperty(value = "服务价格")
+    private Double servicePrice;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+}

+ 12 - 0
src/main/java/com/ydtech/modules/ser/service/SerAnnualAuditOrderService.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+
+public interface SerAnnualAuditOrderService {
+    HttpResult addAnnualAuditOrder(SerAnnualAuditOrder serAnnualAuditOrder);
+
+    IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage(SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo);
+}

+ 12 - 0
src/main/java/com/ydtech/modules/ser/service/SerCarInfoService.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.ser.service;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.SerCarInfo;
+
+public interface SerCarInfoService {
+    HttpResult queryCarInfoByUserId();
+
+    HttpResult addCarInfo(SerCarInfo serCarInfo);
+
+    HttpResult updateCarInfo(SerCarInfo serCarInfo);
+}

+ 16 - 0
src/main/java/com/ydtech/modules/ser/service/SerRescueOrderService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+
+public interface SerRescueOrderService extends IService<RescueOrder> {
+    HttpResult<RescueOrder> countRescueSum(RescueOrder rescueOrder);
+
+    HttpResult<Object> insertRescueOrder(RescueOrder rescueOrder);
+
+    IPage<RescueOrder> rescueOrderPage(RescueOrderVo rescueOrderVo);
+}

+ 16 - 0
src/main/java/com/ydtech/modules/ser/service/SerServePriceService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+
+public interface SerServePriceService extends IService<ServePrice> {
+
+
+    HttpResult<Object> insertServe(ServePrice servePrice);
+
+    HttpResult<Object> updateServe(ServePrice servePrice);
+
+    HttpResult<Object> deleteServe(ServePrice servePrice);
+}

+ 59 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerAnnualAuditOrderServiceImpl.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.ser.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.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.ser.dao.SerAnnualAuditOrderMapper;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+import com.ydtech.modules.ser.service.SerAnnualAuditOrderService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+
+@Service
+public class SerAnnualAuditOrderServiceImpl implements SerAnnualAuditOrderService {
+    @Autowired
+    SerAnnualAuditOrderMapper serAnnualAuditOrderMapper;
+
+    @Override
+    public HttpResult addAnnualAuditOrder(SerAnnualAuditOrder serAnnualAuditOrder) {
+        serAnnualAuditOrder.setId(IdGenerate.nextId());
+        LocalDateTime date = LocalDateTime.now();
+        serAnnualAuditOrder.setCreateTime(date);
+        serAnnualAuditOrderMapper.insert(serAnnualAuditOrder);
+        return HttpResult.ok("订单生成成功", serAnnualAuditOrder);
+    }
+
+    @Override
+    public IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage(SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(serAnnualAuditOrderQueryVo.getPageNum());
+        pageRequest.setPageSize(serAnnualAuditOrderQueryVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<SerAnnualAuditOrder> queryWrapper = new LambdaQueryWrapper<>();
+        //车牌号
+        if (serAnnualAuditOrderQueryVo.getLicenseNo() != null && !"".equals(serAnnualAuditOrderQueryVo.getLicenseNo())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getLicenseNo, serAnnualAuditOrderQueryVo.getLicenseNo());
+        }
+        //联系人
+        if (serAnnualAuditOrderQueryVo.getContactPerson() != null && !"".equals(serAnnualAuditOrderQueryVo.getContactPerson())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getContactPerson, serAnnualAuditOrderQueryVo.getContactPerson());
+        }
+        //联系电话
+        if (serAnnualAuditOrderQueryVo.getMobile() != null && !"".equals(serAnnualAuditOrderQueryVo.getMobile())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getMobile, serAnnualAuditOrderQueryVo.getMobile());
+        }
+        //详细地址
+        if (serAnnualAuditOrderQueryVo.getDetailAddress() != null && !"".equals(serAnnualAuditOrderQueryVo.getDetailAddress())) {
+            queryWrapper.like(SerAnnualAuditOrder::getDetailAddress, serAnnualAuditOrderQueryVo.getDetailAddress());
+        }
+        Page pageData = serAnnualAuditOrderMapper.selectPage(page, queryWrapper);
+
+        return pageData;
+    }
+}

+ 114 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerCarInfoServiceImpl.java

@@ -0,0 +1,114 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.dao.SerCarInfoMapper;
+import com.ydtech.modules.ser.model.SerCarInfo;
+import com.ydtech.modules.ser.service.SerCarInfoService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.time.*;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SerCarInfoServiceImpl implements SerCarInfoService {
+    @Autowired
+    SerCarInfoMapper serCarInfoMapper;
+    @Override
+    public HttpResult queryCarInfoByUserId() {
+        LambdaQueryWrapper<SerCarInfo> queryWrapper = new LambdaQueryWrapper();
+        SysUser user = BaseController.getUser();
+        queryWrapper.eq(SerCarInfo::getUserId,user.getId());
+        List<SerCarInfo> list= serCarInfoMapper.selectList(queryWrapper);
+        return HttpResult.ok(list);
+    }
+
+    @Override
+    public HttpResult addCarInfo(SerCarInfo serCarInfo) {
+        // 设置id、userId、createdTime
+        SysUser user = BaseController.getUser();
+        serCarInfo.setId(IdGenerate.nextId());
+        serCarInfo.setUserId(user.getId());
+        LocalDateTime currentTime = LocalDateTime.now();
+        serCarInfo.setCreateTime(currentTime);
+
+        //查询车辆是否重复
+        QueryWrapper<SerCarInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("licenseno", serCarInfo.getLicenseNo());
+        boolean exist = serCarInfoMapper.exists(queryWrapper);
+        if (exist) {
+            return HttpResult.error("该车已被其他用户添加,请检查");
+        }
+
+        // 校验年检到期时间不可早于注册时间
+        if (serCarInfo.getRegisterTime() == null && serCarInfo.getExpireTime() == null) {
+            return HttpResult.error("注册时间与到期时间不可为空");
+        }
+
+        Instant registerInstant = serCarInfo.getRegisterTime().toInstant();
+        Instant expireInstant = serCarInfo.getExpireTime().toInstant();
+        Instant nowInstant = new Date().toInstant();
+        if (expireInstant.isBefore(registerInstant)) {
+            return HttpResult.error("年检到期时间不可早于注册时间");
+        }
+        // 计算逾期时间 距离时间
+        if (expireInstant.equals(nowInstant)) {
+            serCarInfo.setOverdueTime("0");
+            serCarInfo.setDistanceTime("0");
+        } else if (expireInstant.isBefore(nowInstant)) {
+            Duration duration = Duration.between(expireInstant, nowInstant);
+            serCarInfo.setOverdueTime(String.valueOf(duration.toDays()));
+            serCarInfo.setDistanceTime("0");
+        } else if (nowInstant.isBefore(expireInstant)) {
+            Duration duration = Duration.between(nowInstant, expireInstant);
+            serCarInfo.setOverdueTime("0");
+            serCarInfo.setDistanceTime(String.valueOf(duration.toDays()));
+        }
+        serCarInfoMapper.insert(serCarInfo);
+        return HttpResult.ok("新增车辆信息成功", serCarInfo);
+    }
+
+    @Override
+    public HttpResult updateCarInfo(SerCarInfo serCarInfo) {
+        //查询车辆是否重复
+        QueryWrapper<SerCarInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("licenseno", serCarInfo.getLicenseNo());
+        queryWrapper.ne("userid", BaseController.getUser().getId());
+        boolean exist = serCarInfoMapper.exists(queryWrapper);
+        if (exist) {
+            return HttpResult.error("该车已被其他用户添加,请检查");
+        }
+
+        // 校验年检到期时间不可早于注册时间
+        if (serCarInfo.getRegisterTime() == null && serCarInfo.getExpireTime() == null) {
+            return HttpResult.error("注册时间与到期时间不可为空");
+        }
+
+        Instant registerInstant = serCarInfo.getRegisterTime().toInstant();
+        Instant expireInstant = serCarInfo.getExpireTime().toInstant();
+        Instant nowInstant = new Date().toInstant();
+        if (expireInstant.isBefore(registerInstant)) {
+            return HttpResult.error("年检到期时间不可早于注册时间");
+        }
+        // 计算逾期时间 距离时间
+        if (expireInstant.equals(nowInstant)) {
+            serCarInfo.setOverdueTime("0");
+            serCarInfo.setDistanceTime("0");
+        } else if (expireInstant.isBefore(nowInstant)) {
+            Duration duration = Duration.between(expireInstant, nowInstant);
+            serCarInfo.setOverdueTime(String.valueOf(duration.toDays()));
+            serCarInfo.setDistanceTime("0");
+        } else if (nowInstant.isBefore(expireInstant)) {
+            Duration duration = Duration.between(nowInstant, expireInstant);
+            serCarInfo.setOverdueTime("0");
+            serCarInfo.setDistanceTime(String.valueOf(duration.toDays()));
+        }
+        serCarInfoMapper.updateById(serCarInfo);
+        return HttpResult.ok("编辑成功", serCarInfo);
+    }
+}

+ 115 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerRescueOrderServiceImpl.java

@@ -0,0 +1,115 @@
+package com.ydtech.modules.ser.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.constants.enums.dict.ser.RescueTypeEnum;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.dao.SerRescueOrderMapper;
+import com.ydtech.constants.enums.dict.ser.OderStateEnum;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.po.RescueOrder;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.model.vo.RescueOrderVo;
+import com.ydtech.modules.ser.service.SerRescueOrderService;
+import com.ydtech.modules.ser.service.SerServePriceService;
+import com.ydtech.modules.ser.utils.PositionUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SerRescueOrderServiceImpl extends ServiceImpl<SerRescueOrderMapper, RescueOrder>
+        implements SerRescueOrderService {
+
+
+    @Autowired
+    private SerServePriceService servePriceService;
+
+
+    @Override
+    public HttpResult<RescueOrder> countRescueSum(RescueOrder rescueOrder) {
+        //获取起点终点经纬度
+        double sLongitude = rescueOrder.getStartingLongitude().doubleValue();
+        double sLatitude = rescueOrder.getStartingLatitude().doubleValue();
+        double pLongitude = rescueOrder.getPositionLongitude().doubleValue();
+        double pLatitude = rescueOrder.getPositionLatitude().doubleValue();
+        //计算公里数
+        Double distance4 = PositionUtil.getDistance4(sLongitude, sLatitude, pLongitude, pLatitude);
+        long round = Math.round(distance4);
+        long kilometre = (round / 1000);
+        //获取服务信息
+        LambdaQueryWrapper<ServePrice> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ServePrice::getCode, rescueOrder.getServeCode());
+        ServePrice servePrice = servePriceService.getOne(queryWrapper);
+        //设置救援金额
+        double rescueSum = servePrice.getPrice();
+        //设置超出规定公里数
+        double distanceUpperLimit = servePrice.getDistanceUpperLimit();
+        //设置超出规定计算金额
+        double countPrice = servePrice.getCountPrice();
+        //判断是否超出规定公里数
+        if (kilometre > distanceUpperLimit) {
+            rescueSum += (kilometre - distanceUpperLimit) * countPrice;
+        }
+        rescueOrder.setRescueSum(rescueSum);
+        rescueOrder.setServeCode(servePrice.getCode());
+        return HttpResult.ok(rescueOrder);
+    }
+
+    @Override
+    public HttpResult<Object> insertRescueOrder(RescueOrder rescueOrder) {
+        rescueOrder.setModifier(BaseController.getUser().getName());
+        rescueOrder.setOrderState(OderStateEnum.UNPAID.getDesc());
+        save(rescueOrder);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public IPage<RescueOrder> rescueOrderPage(RescueOrderVo rescueOrderVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(rescueOrderVo.getPageNum());
+        pageRequest.setPageSize(rescueOrderVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<RescueOrder> queryWrapper = new LambdaQueryWrapper<>();
+        //起始点
+        if (rescueOrderVo.getRescueStarting() != null && !"".equals(rescueOrderVo.getRescueStarting())) {
+            queryWrapper.like(RescueOrder::getRescueStarting, rescueOrderVo.getRescueStarting());
+        }
+        //终点
+        if (rescueOrderVo.getRescuePosition() != null && !"".equals(rescueOrderVo.getRescuePosition())) {
+            queryWrapper.like(RescueOrder::getRescuePosition, rescueOrderVo.getRescuePosition());
+        }
+        //救援联系人
+        if (rescueOrderVo.getRescueUser() != null && !"".equals(rescueOrderVo.getRescueUser())) {
+            queryWrapper.like(RescueOrder::getRescueUser, rescueOrderVo.getRescueUser());
+        }
+        //联系人电话
+        if (rescueOrderVo.getPhoneNumber() != null && !"".equals(rescueOrderVo.getPhoneNumber())) {
+            queryWrapper.eq(RescueOrder::getPhoneNumber, rescueOrderVo.getPhoneNumber());
+        }
+        //车牌号
+        if (rescueOrderVo.getLicencePlate() != null && !"".equals(rescueOrderVo.getLicencePlate())) {
+            queryWrapper.eq(RescueOrder::getLicencePlate, rescueOrderVo.getLicencePlate());
+        }
+        //订单状态
+        if (rescueOrderVo.getOrderState() != null && !"".equals(rescueOrderVo.getOrderState())) {
+            OderStateEnum oderStateEnum = OderStateEnum.getOderStateEnum(rescueOrderVo.getOrderState());
+            queryWrapper.eq(RescueOrder::getOrderState, oderStateEnum != null ? oderStateEnum.getDesc() : null);
+        }
+        //订单生成时间
+        if (rescueOrderVo.getCreateTime() != null) {
+            queryWrapper.like(RescueOrder::getCreateTime, rescueOrderVo.getCreateTime());
+        }
+        //服务类型
+        if (rescueOrderVo.getServeCode() != null && !"".equals(rescueOrderVo.getServeCode())) {
+            RescueTypeEnum rescueTypeEnum = RescueTypeEnum.getRescueTypeEnum(rescueOrderVo.getServeCode());
+            queryWrapper.eq(RescueOrder::getServeCode, rescueTypeEnum != null ? rescueTypeEnum.getDesc() : null);
+        }
+
+        Page pageData = baseMapper.selectPage(page, queryWrapper);
+        return pageData;
+    }
+}

+ 34 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerServePriceServiceImpl.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.dao.SerServePriceMapper;
+import com.ydtech.modules.ser.model.po.ServePrice;
+import com.ydtech.modules.ser.service.SerServePriceService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SerServePriceServiceImpl extends ServiceImpl<SerServePriceMapper, ServePrice>
+        implements SerServePriceService {
+
+
+    @Override
+    public HttpResult<Object> insertServe(ServePrice servePrice) {
+        servePrice.setModifier(BaseController.getUser().getName());
+        save(servePrice);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public HttpResult<Object> updateServe(ServePrice servePrice) {
+        updateById(servePrice);
+        return HttpResult.ok();
+    }
+
+    @Override
+    public HttpResult<Object> deleteServe(ServePrice servePrice) {
+        removeById(servePrice);
+        return HttpResult.ok();
+    }
+}

+ 48 - 0
src/main/java/com/ydtech/modules/ser/utils/PositionUtil.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.ser.utils;
+ 
+/**
+ * 计算距离
+ */
+public class PositionUtil {
+ 
+ 
+    /**
+     * 方法四:(高德地图计算方法)
+     *
+     * @param longitude1 第一点的经度
+     * @param latitude1  第一点的纬度
+     * @param longitude2 第二点的经度
+     * @param latitude2  第二点的纬度
+     * @return 返回的距离,单位m
+     */
+    public static Double getDistance4(double longitude1, double latitude1, double longitude2, double latitude2) {
+        if (longitude1 == 0 || latitude1 == 0 || latitude2 == 0 || longitude2 == 0) {
+            return -1.0;
+        }
+        longitude1 *= 0.01745329251994329;
+        latitude1 *= 0.01745329251994329;
+        longitude2 *= 0.01745329251994329;
+        latitude2 *= 0.01745329251994329;
+        double var1 = Math.sin(longitude1);
+        double var2 = Math.sin(latitude1);
+        double var3 = Math.cos(longitude1);
+        double var4 = Math.cos(latitude1);
+        double var5 = Math.sin(longitude2);
+        double var6 = Math.sin(latitude2);
+        double var7 = Math.cos(longitude2);
+        double var8 = Math.cos(latitude2);
+        double[] var10 = new double[3];
+        double[] var20 = new double[3];
+        var10[0] = var4 * var3;
+        var10[1] = var4 * var1;
+        var10[2] = var2;
+        var20[0] = var8 * var7;
+        var20[1] = var8 * var5;
+        var20[2] = var6;
+ 
+        return Math.asin(Math.sqrt((var10[0] - var20[0]) * (var10[0] - var20[0]) + (var10[1] - var20[1]) * (var10[1] - var20[1]) + (var10[2] - var20[2]) * (var10[2] - var20[2])) / 2.0) * 1.27420015798544E7;
+        // 结果四舍五入 保留2位小数
+        //return new BigDecimal(distance).setScale(2, RoundingMode.HALF_UP).doubleValue();
+    }
+ 
+}

+ 58 - 10
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -15,20 +15,68 @@
     </resultMap>
     </resultMap>
 
 
 
 
-
     <select id="getByUserId" resultType="com.ydtech.modules.admin.model.po.SysAmountAuditingEntity">
     <select id="getByUserId" resultType="com.ydtech.modules.admin.model.po.SysAmountAuditingEntity">
         select
         select
-            a. id as  "id",
-            a. bank_number as  "bankNumber",
-            a. amount as  "amount",
-            a. user_id as  "userId",
-            a. auditing_status as  "auditingStatus",
-            a. amount_status as  "amountStatus"
-        from  sys_amount_auditing  a
+        a. id as "id",
+        a. bank_number as "bankNumber",
+        a. amount as "amount",
+        a. user_id as "userId",
+        a. auditing_status as "auditingStatus",
+        a. amount_status as "amountStatus"
+        from sys_amount_auditing a
         <where>
         <where>
-            a.auditing_status  ='2'
+            a.auditing_status ='2'
             <if test="userId !=null and  userId !=''">
             <if test="userId !=null and  userId !=''">
-              and  a.user_id =#{userId}
+                and a.user_id =#{userId}
+            </if>
+        </where>
+
+    </select>
+
+    <select id="queryPageOrder" resultType="com.ydtech.modules.admin.model.po.SysAmountAuditingEntity">
+        select
+        a.id as "id",
+        a.bank_number as "bankNumber",
+        a.amount as "amount",
+        a.user_id as "userId",
+        a.create_time as "createTime",
+        a.auditing_status as "auditingStatus",
+        a.amount_status as "amountStatus",
+        a.auditing_time as "auditingTime",
+        a.auditing_user_id as "auditingUserId",
+        b.user_amount as "userAmount",
+        b.amount as "historyAmount",
+        b.surplus_amount as "surplusAmount",
+        su.name as "userName",
+        su2.name as "auditingUserName",
+        su.dept_id as "deptId",
+        sd.name as "deptName",
+        bc.bank_account as "bankAccount"
+        from sys_amount_auditing a
+        left join sys_user_account_history b on a.id = b.auditiing_id
+        left join sys_user su on su.id =a.user_id
+        left join sys_dept sd on sd.id =su.dept_id
+        left join sys_user_bank_card bc on bc.bank_number =a.bank_number
+        left join sys_user su2 on su2.id = a.auditing_user_id
+        <where>
+            <if test="sysAmountAuditingVo.auditingStatus !=null  and sysAmountAuditingVo.auditingStatus != ''">
+                a.auditing_status=#{sysAmountAuditingVo.auditingStatus}
+            </if>
+            <if test="sysAmountAuditingVo.amountStatus !=null  and sysAmountAuditingVo.amountStatus != ''">
+                and a.amount_status=#{sysAmountAuditingVo.amountStatus}
+            </if>
+
+            <if test="sysAmountAuditingVo.id !=null  and sysAmountAuditingVo.id != ''">
+                and a.id=#{sysAmountAuditingVo.id}
+            </if>
+
+
+            <if test="sysAmountAuditingVo.userId !=null  and sysAmountAuditingVo.userId != ''">
+                and a.user_id=#{sysAmountAuditingVo.userId}
+            </if>
+
+            <if test="sysAmountAuditingVo.startTime !=null and sysAmountAuditingVo.startTime != ''  and  sysAmountAuditingVo.endTime !=null  and sysAmountAuditingVo.endTime!= '' ">
+                and a.create_time BETWEEN #{sysAmountAuditingVo.startTime} AND #{sysAmountAuditingVo.endTime}
             </if>
             </if>
         </where>
         </where>
 
 

+ 23 - 0
src/main/resources/mapper/modules/admin/SysUserBankCardMapper.xml

@@ -9,6 +9,7 @@
             <result property="bankNumber" column="bank_number" jdbcType="VARCHAR"/>
             <result property="bankNumber" column="bank_number" jdbcType="VARCHAR"/>
             <result property="bankAccount" column="bank_account" jdbcType="VARCHAR"/>
             <result property="bankAccount" column="bank_account" jdbcType="VARCHAR"/>
             <result property="userId" column="user_id" jdbcType="VARCHAR"/>
             <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="isDefault" column="is_default" jdbcType="TINYINT"/>
             <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
             <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
     </resultMap>
     </resultMap>
 
 
@@ -25,6 +26,28 @@
                   a.bank_account as "bankAccount",
                   a.bank_account as "bankAccount",
                   a.user_id as "userId"
                   a.user_id as "userId"
             from  sys_user_bank_card a
             from  sys_user_bank_card a
+            <where>
+                <if test="userId !=null and  userId  !=''">
+                    a.user_id =#{userId}
+                </if>
+            </where>
+
+
+    </select>
+    <select id="getUserBankList" resultType="com.ydtech.modules.admin.model.po.SysUserBankCard">
+            select
+                  a.id as "id",
+                  a.bank_number as "bankNumber",
+                  a.bank_account as "bankAccount",
+                  a.is_default as "isDefault",
+                  a.user_id as "userId"
+            from  sys_user_bank_card a
+            <where>
+                <if test="userId !=null and  userId  !=''">
+                    a.user_id =#{userId}
+                </if>
+            </where>
+
 
 
     </select>
     </select>
 </mapper>
 </mapper>

+ 37 - 17
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -6,26 +6,35 @@
 
 
     <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.InsAreaCompany">
     <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.InsAreaCompany">
         <id property="id" column="id" jdbcType="VARCHAR"/>
         <id property="id" column="id" jdbcType="VARCHAR"/>
-        <result property="orderno" column="orderno" jdbcType="VARCHAR"/>
-        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
-        <result property="agreementId" column="agreement_id" jdbcType="VARCHAR"/>
-        <result property="inscompany" column="inscompany" jdbcType="VARCHAR"/>
         <result property="reqtxt" column="reqtxt" javaType="com.alibaba.fastjson.JSONObject"
         <result property="reqtxt" column="reqtxt" javaType="com.alibaba.fastjson.JSONObject"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
         <result property="reptxt" column="reptxt" javaType="com.alibaba.fastjson.JSONObject"
         <result property="reptxt" column="reptxt" javaType="com.alibaba.fastjson.JSONObject"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
-        <result property="jqapplyno" column="jqapplyno" jdbcType="VARCHAR"/>
-        <result property="jqpolicyno" column="jqpolicyno" jdbcType="VARCHAR"/>
-        <result property="syapplyno" column="syapplyno" jdbcType="VARCHAR"/>
-        <result property="sypolicyno" column="sypolicyno" jdbcType="VARCHAR"/>
         <result property="riskinfo" column="riskinfo" javaType="com.alibaba.fastjson.JSONArray"
         <result property="riskinfo" column="riskinfo" javaType="com.alibaba.fastjson.JSONArray"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
         <result property="kindinfo" column="kindinfo" javaType="com.alibaba.fastjson.JSONArray"
         <result property="kindinfo" column="kindinfo" javaType="com.alibaba.fastjson.JSONArray"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="accidentInfo" column="accident_info" javaType="com.alibaba.fastjson.JSONArray"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="taxArrears" column="tax_arrears" javaType="com.alibaba.fastjson.JSONArray"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="crossInsurance" column="cross_insurance" javaType="com.alibaba.fastjson.JSONArray"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="orderno" column="orderno" jdbcType="VARCHAR"/>
+        <result property="agreementId" column="agreement_id" jdbcType="BIGINT"/>
+        <result property="apiType" column="api_type" jdbcType="TINYINT"/>
+        <result property="orderstatus" column="orderstatus" jdbcType="VARCHAR"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="inscompany" column="inscompany" jdbcType="VARCHAR"/>
+        <result property="jqapplyno" column="jqapplyno" jdbcType="VARCHAR"/>
+        <result property="jqpolicyno" column="jqpolicyno" jdbcType="VARCHAR"/>
+        <result property="syapplyno" column="syapplyno" jdbcType="VARCHAR"/>
+        <result property="sypolicyno" column="sypolicyno" jdbcType="VARCHAR"/>
         <result property="jqpremium" column="jqpremium" jdbcType="DECIMAL"/>
         <result property="jqpremium" column="jqpremium" jdbcType="DECIMAL"/>
         <result property="sypremium" column="sypremium" jdbcType="DECIMAL"/>
         <result property="sypremium" column="sypremium" jdbcType="DECIMAL"/>
-        <result property="taxamount" column="taxamount" jdbcType="DECIMAL"/>
+        <result property="jypremium" column="jypremium" jdbcType="DECIMAL"/>
         <result property="sumpremium" column="sumpremium" jdbcType="DECIMAL"/>
         <result property="sumpremium" column="sumpremium" jdbcType="DECIMAL"/>
+        <result property="taxamount" column="taxamount" jdbcType="DECIMAL"/>
         <result property="jqdiscountrate" column="jqdiscountrate" jdbcType="DOUBLE"/>
         <result property="jqdiscountrate" column="jqdiscountrate" jdbcType="DOUBLE"/>
         <result property="sydiscountrate" column="sydiscountrate" jdbcType="DOUBLE"/>
         <result property="sydiscountrate" column="sydiscountrate" jdbcType="DOUBLE"/>
         <result property="feerate" column="feerate" jdbcType="DOUBLE"/>
         <result property="feerate" column="feerate" jdbcType="DOUBLE"/>
@@ -37,14 +46,25 @@
         <result property="jqappoint" column="jqappoint" jdbcType="VARCHAR"/>
         <result property="jqappoint" column="jqappoint" jdbcType="VARCHAR"/>
         <result property="syappoint" column="syappoint" jdbcType="VARCHAR"/>
         <result property="syappoint" column="syappoint" jdbcType="VARCHAR"/>
         <result property="createtime" column="createtime" jdbcType="TIMESTAMP"/>
         <result property="createtime" column="createtime" jdbcType="TIMESTAMP"/>
+        <result property="payDate" column="pay_date" jdbcType="TIMESTAMP"/>
         <result property="paymentLink" column="payment_link" jdbcType="VARCHAR"/>
         <result property="paymentLink" column="payment_link" jdbcType="VARCHAR"/>
+        <result property="insOrderNo" column="ins_order_no" jdbcType="VARCHAR"/>
         <result property="attributionId" column="attribution_id" jdbcType="VARCHAR"/>
         <result property="attributionId" column="attribution_id" jdbcType="VARCHAR"/>
-        <result property="accidentInfo" column="accident_info" javaType="com.alibaba.fastjson.JSONArray"
-                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
-        <result property="taxArrears" column="tax_arrears" javaType="com.alibaba.fastjson.JSONArray"
-                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
-        <result property="crossInsurance" column="cross_insurance" javaType="com.alibaba.fastjson.JSONArray"
-                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
+        <result property="jqStartDate" column="jq_start_date" jdbcType="VARCHAR"/>
+        <result property="jqEndDate" column="jq_end_date" jdbcType="VARCHAR"/>
+        <result property="syStartDate" column="sy_start_date" jdbcType="VARCHAR"/>
+        <result property="syEndDate" column="sy_end_date" jdbcType="VARCHAR"/>
+        <result property="accidentStrInfo" column="accident_str_info" jdbcType="VARCHAR"/>
+        <result property="score" column="score" jdbcType="VARCHAR"/>
+        <result property="jqScore" column="jq_score" jdbcType="VARCHAR"/>
+        <result property="syScore" column="sy_score" jdbcType="VARCHAR"/>
+        <result property="lossRation" column="loss_ration" jdbcType="DOUBLE"/>
+        <result property="jqLossRation" column="jq_loss_ration" jdbcType="DOUBLE"/>
+        <result property="syLossRation" column="sy_loss_ration" jdbcType="DOUBLE"/>
+        <result property="insideOrderStatus" column="inside_order_status" jdbcType="TINYINT"/>
+        <result property="insidePayTime" column="inside_pay_time" jdbcType="TIMESTAMP"/>
+        <result property="signingTime" column="signing_time" jdbcType="TIMESTAMP"/>
+
     </resultMap>
     </resultMap>
 
 
     <resultMap id="InsAreaCompanyQueryDto" type="com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto"
     <resultMap id="InsAreaCompanyQueryDto" type="com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto"
@@ -85,8 +105,8 @@
 
 
 
 
 
 
-    <select id="queryLatestStatus"  resultMap="BaseResultMap">
-        SELECT iac.*
+    <select id="queryLatestStatus"  resultType="java.lang.String">
+        SELECT iac.orderstatus
         FROM ins_area_company as iac
         FROM ins_area_company as iac
                  INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
                  INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
                              FROM ins_area_company
                              FROM ins_area_company

+ 4 - 0
src/main/resources/mapper/modules/ser/SerAnnualAuditOrderMapper.xml

@@ -0,0 +1,4 @@
+<?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.ser.dao.SerAnnualAuditOrderMapper">
+</mapper>

+ 4 - 0
src/main/resources/mapper/modules/ser/SerCarInfoMapper.xml

@@ -0,0 +1,4 @@
+<?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.ser.dao.SerCarInfoMapper">
+</mapper>