wks пре 2 година
родитељ
комит
960ef78ae9
40 измењених фајлова са 2178 додато и 630 уклоњено
  1. 5 2
      src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java
  2. 4 1
      src/main/java/com/ydtech/modules/ins/model/vo/CustomerInfoVo.java
  3. 5 2
      src/main/java/com/ydtech/modules/ins/model/vo/KindInfoVo.java
  4. 4 1
      src/main/java/com/ydtech/modules/ins/model/vo/RiskInfoVo.java
  5. 8 9
      src/main/java/com/ydtech/modules/ins/model/ya/YaQuoteInfoVo.java
  6. 8 9
      src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java
  7. 20 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersCarMapper.java
  8. 18 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersCustomerMapper.java
  9. 18 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersKindMapper.java
  10. 18 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersRiskMapper.java
  11. 18 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersTaxMapper.java
  12. 35 160
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  13. 281 0
      src/main/java/com/ydtech/modules/order/entity/bo/InsOrdersBo.java
  14. 318 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCar.java
  15. 166 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCustomer.java
  16. 91 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersKind.java
  17. 98 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersRisk.java
  18. 133 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersTax.java
  19. 3 2
      src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteInfoVo.java
  20. 23 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersBusinessService.java
  21. 13 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersCarService.java
  22. 13 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersCustomerService.java
  23. 13 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersKindService.java
  24. 13 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersRiskService.java
  25. 24 16
      src/main/java/com/ydtech/modules/order/service/InsOrdersService.java
  26. 13 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersTaxService.java
  27. 136 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersBusinessServiceImpl.java
  28. 22 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCarServiceImpl.java
  29. 22 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCustomerServiceImpl.java
  30. 22 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersKindServiceImpl.java
  31. 22 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersRiskServiceImpl.java
  32. 65 132
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  33. 22 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersTaxServiceImpl.java
  34. 332 284
      src/main/java/com/ydtech/modules/report/service/impl/ReportServiceImpl.java
  35. 0 12
      src/main/java/com/ydtech/utils/InsUtils.java
  36. 68 0
      src/main/resources/mapper/modules/order/InsOrdersCarMapper.xml
  37. 28 0
      src/main/resources/mapper/modules/order/InsOrdersCustomerMapper.xml
  38. 22 0
      src/main/resources/mapper/modules/order/InsOrdersKindMapper.xml
  39. 23 0
      src/main/resources/mapper/modules/order/InsOrdersRiskMapper.xml
  40. 31 0
      src/main/resources/mapper/modules/order/InsOrdersTaxMapper.xml

+ 5 - 2
src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.io.Serializable;
+
 /**
  * @author qinfenglong
  * @version 1.0.0
@@ -14,7 +16,9 @@ import lombok.Data;
  */
 @Data
 @ApiModel(value = "车辆信息")
-public class CarInfoVo {
+public class CarInfoVo implements Serializable {
+
+    private static final long serialVersionUID = -7834849690509488741L;
 
     @ApiModelProperty(value = "品牌型号")
     private String brandName;
@@ -93,7 +97,6 @@ public class CarInfoVo {
 
     @ApiModelProperty(value = "年款")
     private String caryear;
-
     /**
      * @see com.ydtech.constants.enums.dict.insurance.VehicleType
      */

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

@@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -21,7 +22,9 @@ import java.util.List;
 @NoArgsConstructor
 @AllArgsConstructor
 @ApiModel(value = "人员信息")
-public class CustomerInfoVo {
+public class CustomerInfoVo implements Serializable {
+
+    private static final long serialVersionUID = 3556625499383850578L;
 
     @ApiModelProperty("姓名")
     private String name;

+ 5 - 2
src/main/java/com/ydtech/modules/ins/model/vo/KindInfoVo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.io.Serializable;
 import java.util.Map;
 
 /**
@@ -14,7 +15,9 @@ import java.util.Map;
  */
 @Data
 @ApiModel("商业险")
-public class KindInfoVo {
+public class KindInfoVo implements Serializable {
+
+    private static final long serialVersionUID = 1532163062666108692L;
 
     @ApiModelProperty("保额")
     private double amount;
@@ -48,4 +51,4 @@ public class KindInfoVo {
     private Map<String, String> extendInfos;
 
 
-}
+}

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

@@ -3,6 +3,7 @@ package com.ydtech.modules.ins.model.vo;
 import com.ydtech.validation.annotation.CheckDateTime;
 
 import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
 
 /**
  * @author qinfenglong
@@ -10,7 +11,9 @@ import javax.validation.constraints.NotBlank;
  * @description RiskInfoVo
  * @since 2020/11/26 17:50
  */
-public class RiskInfoVo {
+public class RiskInfoVo implements Serializable {
+    private static final long serialVersionUID = -7718277913799249511L;
+
     private double amount;
     private double premium;
     private String riskCode;

+ 8 - 9
src/main/java/com/ydtech/modules/ins/model/ya/YaQuoteInfoVo.java

@@ -1,11 +1,10 @@
 package com.ydtech.modules.ins.model.ya;
 
-import com.alibaba.fastjson.JSON;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.RiskInfoVo;
-import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -54,13 +53,13 @@ public class YaQuoteInfoVo implements Serializable {
     public YaQuoteInfoVo() {
     }
 
-    public YaQuoteInfoVo(InsOrders insOrders) {
-        this.ownerInfo = JSON.toJavaObject(insOrders.getOwnerinfo(), CustomerInfoVo.class);
-        this.policyHolderInfo = JSON.toJavaObject(insOrders.getApplyinfo(), CustomerInfoVo.class);
-        this.insuredPersonInfo = JSON.toJavaObject(insOrders.getInsureinfo(), CustomerInfoVo.class);
-        this.carInfo = JSON.toJavaObject(insOrders.getCarinfo(), CarInfoVo.class);
-        this.riskList = JSON.parseArray(JSON.toJSONString(insOrders.getRisk()), RiskInfoVo.class);
-        this.kindList = JSON.parseArray(JSON.toJSONString(insOrders.getKing()), KindInfoVo.class);
+    public YaQuoteInfoVo(InsOrdersBo insOrders) {
+        this.ownerInfo = insOrders.getOwnerinfo();
+        this.policyHolderInfo = insOrders.getApplyinfo();
+        this.insuredPersonInfo = insOrders.getInsureinfo();
+        this.carInfo = insOrders.getCarinfo();
+        this.riskList = insOrders.getRisk();
+        this.kindList = insOrders.getKing();
         this.quoteno = insOrders.getQuoteno();
     }
 

+ 8 - 9
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -11,15 +11,19 @@ import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAccidentalDriving;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.InsAccidentalDrivingService;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersBusinessService;
 import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.order.service.impl.InsOrdersCustomerServiceImpl;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.ObjectUtils;
@@ -33,6 +37,7 @@ import java.util.stream.Collectors;
 @Api(tags = "订单")
 @RequestMapping("/insurance/order")
 @RestController
+@RequiredArgsConstructor
 public class InsOrdersController extends BaseController {
 
     @Value("${upload.file.path}")
@@ -46,13 +51,7 @@ public class InsOrdersController extends BaseController {
 
     private final InsAccidentalDrivingService insAccidentalDrivingService;
 
-    public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService,
-                               InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService) {
-        this.insAreaCompanyService = insAreaCompanyService;
-        this.insOrdersService = insOrdersService;
-        this.insOrdersComponents = insOrdersComponents;
-        this.insAccidentalDrivingService = insAccidentalDrivingService;
-    }
+    private final InsOrdersBusinessService insOrdersBusinessService;
 
     @GetMapping("/getAgreementInsCompany")
     @ApiOperation(value = "获取协议报价保险公司")
@@ -66,9 +65,9 @@ public class InsOrdersController extends BaseController {
 
     @PostMapping("/generateOrder")
     @ApiOperation(value = "生成订单")
-    public HttpResult<InsOrders> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
+    public HttpResult<InsOrdersBo> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
         String userId = getUserId();
-        InsOrders insOrders = this.insOrdersService.generateOrder(userId, quoteInfoVo);
+        InsOrdersBo insOrders = this.insOrdersBusinessService.generateOrder(userId, quoteInfoVo);
         return HttpResult.ok("success", insOrders);
     }
 

+ 20 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersCarMapper.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersCar;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_car(大订单(车辆信息表))】的数据库操作Mapper
+* @createDate 2024-03-05 15:06:04
+* @Entity generator.domain.InsOrdersCar
+*/
+public interface InsOrdersCarMapper extends BaseMapper<InsOrdersCar> {
+
+
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersCustomerMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersCustomer;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_customer(大订单(人员信息表))】的数据库操作Mapper
+* @createDate 2024-03-05 15:06:04
+* @Entity generator.domain.InsOrdersCustomer
+*/
+public interface InsOrdersCustomerMapper extends BaseMapper<InsOrdersCustomer> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersKindMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_kind(大订单(商业险险种信息))】的数据库操作Mapper
+* @createDate 2024-03-05 15:06:04
+* @Entity generator.domain.InsOrdersKind
+*/
+public interface InsOrdersKindMapper extends BaseMapper<InsOrdersKind> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersRiskMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_risk(大订单(交强商业信息表))】的数据库操作Mapper
+* @createDate 2024-03-05 15:06:04
+* @Entity generator.domain.InsOrdersRisk
+*/
+public interface InsOrdersRiskMapper extends BaseMapper<InsOrdersRisk> {
+
+}
+
+
+
+

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersTaxMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersTax;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_tax(大订单(车船税信息))】的数据库操作Mapper
+* @createDate 2024-03-05 15:06:04
+* @Entity generator.domain.InsOrdersTax
+*/
+public interface InsOrdersTaxMapper extends BaseMapper<InsOrdersTax> {
+
+}
+
+
+
+

+ 35 - 160
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -1,28 +1,15 @@
 package com.ydtech.modules.order.entity;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ydtech.constants.enums.InsuranceRisk;
-import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
-import com.ydtech.constants.enums.dict.agreement.ProductsType;
-import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.ins.model.vo.KindInfoVo;
-import com.ydtech.modules.ins.model.vo.RiskInfoVo;
-import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import lombok.*;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
-import java.util.List;
 
 /**
  * 保险订单表
@@ -40,7 +27,7 @@ public class InsOrders implements Serializable {
     /**
      * 订单号
      */
-    @TableId(value = "orderno",type = IdType.AUTO)
+    @TableId(value = "orderno", type = IdType.AUTO)
     private String orderno;
 
     /**
@@ -66,20 +53,12 @@ public class InsOrders implements Serializable {
     @TableField(value = "orderstatus")
     private String orderstatus;
 
-    /**
-     * 车辆信息
-     */
-    @TableField(value = "carinfo", typeHandler = FastjsonTypeHandler.class)
-    private JSONObject carinfo;
-
     /**
      * 用户id
      */
     @TableField(value = "userid")
     private String userid;
 
-
-
     /**
      * 代客录单时操作员ID
      */
@@ -104,24 +83,6 @@ public class InsOrders implements Serializable {
     @TableField(value = "deptname")
     private String deptname;
 
-    /**
-     * 车主信息
-     */
-    @TableField(value = "ownerinfo", typeHandler = FastjsonTypeHandler.class)
-    private JSONObject ownerinfo;
-
-    /**
-     * 投保人信息
-     */
-    @TableField(value = "applyinfo", typeHandler = FastjsonTypeHandler.class)
-    private JSONObject applyinfo;
-
-    /**
-     * 被保人信息
-     */
-    @TableField(value = "insureinfo", typeHandler = FastjsonTypeHandler.class)
-    private JSONObject insureinfo;
-
     /**
      * 协议id
      */
@@ -190,137 +151,51 @@ public class InsOrders implements Serializable {
     private String syenddate;
 
     /**
-     * 商业 交强
+     * 车主id
      */
-    @TableField(value = "risk", typeHandler = FastjsonTypeHandler.class)
-    private JSONArray risk;
+    @TableField(value = "owner_id")
+    private String ownerId;
 
     /**
-     * 商业险信息
+     *投保人 id
      */
-    @TableField(value = "king", typeHandler = FastjsonTypeHandler.class)
-    private JSONArray king;
+    @TableField(value = "apply_id")
+    private String applyId;
 
     /**
-     * 车船税信息
+     * 被保人id
      */
-    @TableField(value = "vehicle_and_vessel_tax", typeHandler = FastjsonTypeHandler.class)
-    private JSONObject vehicleAndVesselTax;
+    @TableField(value = "insure_id")
+    private String insureId;
 
-    @TableField(exist = false)
-    private List<InsAreaCompany> insAreaCompanyList; //子级集合
+//    @TableField(exist = false)
+//    private List<InsAreaCompany> insAreaCompanyList; //子级集合
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
-    public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
-        // 2. 组装订单
-        this.setQuoteno(String.valueOf(quoteInfoVo.getQuoteno()));
-        this.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
-        this.setFrameno(quoteInfoVo.getCarInfo().getFrameNo());
-        this.setLicenseno(quoteInfoVo.getCarInfo().getLicenseNo());
-
-        // 2.1 车辆信息
-        this.setCarinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getCarInfo())));
-        this.setUserid(user.getId());
-        this.setUsername(user.getName());
-        this.setDeptid(user.getDeptId());
-        this.setDeptname(dept == null ? "" : dept.getName());
-
-        // 2.2 人员信息
-        this.setOwnerinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getOwnerInfo())));
-        this.setApplyinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getPolicyHolderInfo())));
-        this.setInsureinfo(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getInsuredPersonInfo())));
-        this.setInsuredname(quoteInfoVo.getPolicyHolderInfo().getName());
-
-        List<RiskInfoVo> risks = quoteInfoVo.getRiskList();
-        List<KindInfoVo> kinds = quoteInfoVo.getKindList();
-
-        // 2.3 主险种信息
-        this.insuranceInformation(risks, kinds);
-
-        // 2.3.1 险种信息
-        this.setRisk(JSON.parseArray(JSON.toJSONString(quoteInfoVo.getRiskList())));
-        this.setKing(JSON.parseArray(JSON.toJSONString(quoteInfoVo.getKindList())));
-
-        // 2.4 产品信息
-        this.productInformation(risks, kinds);
-        this.setCreatetime(LocalDateTime.now());
-
-        // 2.5 车船税信息
-        this.setVehicleAndVesselTax(JSON.parseObject(JSON.toJSONString(quoteInfoVo.getVehicleAndVesselTax())));
-    }
-
-    /**
-     * 保险信息
-     *
-     * @param risks 主险种
-     * @param kinds 商业险险种
-     */
-    private void insuranceInformation(List<RiskInfoVo> risks, List<KindInfoVo> kinds) {
-        for (RiskInfoVo riskInfoVo : risks) {
-            if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) { //交强
-                this.setJqstartdate(riskInfoVo.getStartDate());
-                this.setJqenddate(riskInfoVo.getEndDate());
-            }
-            if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) { //商业
-                this.setSystartdate(riskInfoVo.getStartDate());
-                this.setSyenddate(riskInfoVo.getEndDate());
-
-                if (kinds.isEmpty()) {
-                    throw new SystemException("商业险险种未选择,不允许报价");
-                }
-            }
-        }
-    }
-
-    /**
-     * 产品信息
-     *
-     * @param risks 主险种
-     * @param kinds 商业险险种
-     */
-    private void productInformation(List<RiskInfoVo> risks, List<KindInfoVo> kinds) {
-        /**
-         * 投保险种逻辑
-         * 单交-单交强
-         * 单商-单商业(含车损)
-         * 单三-单商业(不含车损)
-         * 交三-交强+商业(不含车损)
-         * 交商-交强+商业(含车损)
-         * 单交:
-         * 单商:034001
-         * 单三:034002
-         * 交三:0330034002
-         * 交商:0330034001
-         *
-         */
-        ProductsType productsType;
-        boolean haveCarDamageKind = false;//是否含车损
-        boolean haveBusiKind = false;//是否含车损外的商业险种
-        for (KindInfoVo kindInfoVo : kinds) {
-            String code = kindInfoVo.getKindCode();
-            // 车损
-            if ("A".equalsIgnoreCase(code)) {
-                haveCarDamageKind = true;
-            }
-            if ("B,D3,D4,".contains(code + ",")) {
-                haveBusiKind = true;
-            }
-        }
-        if (risks.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(risks.get(0).getRiskCode())) {
-            productsType = ProductsType.PT_0330;//单交
-        } else if (risks.size() == 1 && !haveCarDamageKind && haveBusiKind) {
-            productsType = ProductsType.PT_034002;//单三
-        } else if (risks.size() == 1) {
-            productsType = ProductsType.PT_034001;//单商
-        } else if (risks.size() == 2 && !haveCarDamageKind && haveBusiKind) {
-            productsType = ProductsType.PT_0330034002;//交三
-        } else {
-            productsType = ProductsType.PT_0330034001;//交商
-        }
-        this.setProductid(productsType.getCode());
-        this.setProduct(productsType.getDesc());
+    public InsOrders(InsOrdersBo insOrdersBo) {
+        this.orderno = insOrdersBo.getOrderno();
+        this.quoteno = insOrdersBo.getQuoteno();
+        this.companyId = insOrdersBo.getCompanyId();
+        this.insCompany = insOrdersBo.getInsCompany();
+        this.orderstatus = insOrdersBo.getOrderstatus();
+        this.userid = insOrdersBo.getUserid();
+        this.operatorid = insOrdersBo.getOperatorid();
+        this.username = insOrdersBo.getUsername();
+        this.deptid = insOrdersBo.getDeptid();
+        this.deptname = insOrdersBo.getDeptname();
+        this.agreeid = insOrdersBo.getAgreeid();
+        this.productid = insOrdersBo.getProductid();
+        this.product = insOrdersBo.getProduct();
+        this.createtime = insOrdersBo.getCreatetime();
+        this.frameno = insOrdersBo.getFrameno();
+        this.licenseno = insOrdersBo.getLicenseno();
+        this.insuredname = insOrdersBo.getInsuredname();
+        this.jqstartdate = insOrdersBo.getJqstartdate();
+        this.jqenddate = insOrdersBo.getJqenddate();
+        this.systartdate = insOrdersBo.getSystartdate();
+        this.syenddate = insOrdersBo.getSyenddate();
     }
 
 

+ 281 - 0
src/main/java/com/ydtech/modules/order/entity/bo/InsOrdersBo.java

@@ -0,0 +1,281 @@
+package com.ydtech.modules.order.entity.bo;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ydtech.constants.enums.InsuranceRisk;
+import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
+import com.ydtech.constants.enums.dict.agreement.ProductsType;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.ins.model.vo.RiskInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class InsOrdersBo {
+    /**
+     * 订单号
+     */
+    private String orderno;
+
+    /**
+     * 报价单号
+     */
+    private String quoteno;
+
+    /**
+     * 承保 保险公司编号
+     */
+    private String companyId;
+    /**
+     * 承保 保险名称
+     */
+    private String insCompany;
+
+    /**
+     * 报价状态
+     */
+    private String orderstatus;
+
+    /**
+     * 车辆信息
+     */
+    private CarInfoVo carinfo;
+
+    /**
+     * 用户id
+     */
+    private String userid;
+
+    /**
+     * 代客录单时操作员ID
+     */
+    private String operatorid;
+
+    /**
+     * 用户名称
+     */
+    private String username;
+
+    /**
+     * 代理团队id
+     */
+    private String deptid;
+
+    /**
+     * 代理团队名称
+     */
+    private String deptname;
+
+    /**
+     * 车主信息
+     */
+    private CustomerInfoVo ownerinfo;
+
+    /**
+     * 投保人信息
+     */
+    private CustomerInfoVo applyinfo;
+
+    /**
+     * 被保人信息
+     */
+    private CustomerInfoVo insureinfo;
+
+    /**
+     * 协议id
+     */
+    private String agreeid;
+
+    /**
+     * 产品id
+     */
+    private String productid;
+
+    /**
+     * 产品名称
+     */
+    private String product;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createtime;
+
+    /**
+     * 车架号 VIN码
+     */
+    private String frameno;
+
+    /**
+     * 车牌号
+     */
+    private String licenseno;
+
+    /**
+     * 投保人姓名
+     */
+    private String insuredname;
+
+    /**
+     * 交强险开始时间
+     */
+    private String jqstartdate;
+
+    /**
+     * 交强险结束时间
+     */
+    private String jqenddate;
+
+    /**
+     * 商业险开始时间
+     */
+    private String systartdate;
+
+    /**
+     * 商业险结束时间
+     */
+    private String syenddate;
+
+    /**
+     * 商业 交强
+     */
+    private List<RiskInfoVo> risk;
+
+    /**
+     * 商业险信息
+     */
+    private List<KindInfoVo> king;
+
+    /**
+     * 车船税信息
+     */
+    private VehicleAndVesselTax vehicleAndVesselTax;
+
+
+    public InsOrdersBo(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
+        // 2. 组装订单
+        this.setQuoteno(String.valueOf(quoteInfoVo.getQuoteno()));
+        this.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());  // 0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过
+        this.setFrameno(quoteInfoVo.getCarInfo().getFrameNo());
+        this.setLicenseno(quoteInfoVo.getCarInfo().getLicenseNo());
+
+        // 2.1 车辆信息
+        this.setCarinfo(quoteInfoVo.getCarInfo());
+        this.setUserid(user.getId());
+        this.setUsername(user.getName());
+        this.setDeptid(user.getDeptId());
+        this.setDeptname(dept == null ? "" : dept.getName());
+
+        // 2.2 人员信息
+        this.setOwnerinfo(quoteInfoVo.getOwnerInfo());
+        this.setApplyinfo(quoteInfoVo.getPolicyHolderInfo());
+        this.setInsureinfo(quoteInfoVo.getInsuredPersonInfo());
+        this.setInsuredname(quoteInfoVo.getPolicyHolderInfo().getName());
+
+        List<RiskInfoVo> risks = quoteInfoVo.getRiskList();
+        List<KindInfoVo> kinds = quoteInfoVo.getKindList();
+
+        // 2.3 主险种信息
+        this.insuranceInformation(risks, kinds);
+
+        // 2.3.1 险种信息
+        this.setRisk(quoteInfoVo.getRiskList());
+        this.setKing(quoteInfoVo.getKindList());
+
+        // 2.4 产品信息
+        this.productInformation(risks, kinds);
+        this.setCreatetime(LocalDateTime.now());
+
+        // 2.5 车船税信息
+        this.setVehicleAndVesselTax(quoteInfoVo.getVehicleAndVesselTax());
+    }
+
+    /**
+     * 保险信息
+     *
+     * @param risks 主险种
+     * @param kinds 商业险险种
+     */
+    private void insuranceInformation(List<RiskInfoVo> risks, List<KindInfoVo> kinds) {
+        for (RiskInfoVo riskInfoVo : risks) {
+            if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) { //交强
+                this.setJqstartdate(riskInfoVo.getStartDate());
+                this.setJqenddate(riskInfoVo.getEndDate());
+            }
+            if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) { //商业
+                this.setSystartdate(riskInfoVo.getStartDate());
+                this.setSyenddate(riskInfoVo.getEndDate());
+
+                if (kinds.isEmpty()) {
+                    throw new SystemException("商业险险种未选择,不允许报价");
+                }
+            }
+        }
+    }
+
+    /**
+     * 产品信息
+     *
+     * @param risks 主险种
+     * @param kinds 商业险险种
+     */
+    private void productInformation(List<RiskInfoVo> risks, List<KindInfoVo> kinds) {
+        /**
+         * 投保险种逻辑
+         * 单交-单交强
+         * 单商-单商业(含车损)
+         * 单三-单商业(不含车损)
+         * 交三-交强+商业(不含车损)
+         * 交商-交强+商业(含车损)
+         * 单交:
+         * 单商:034001
+         * 单三:034002
+         * 交三:0330034002
+         * 交商:0330034001
+         *
+         */
+        ProductsType productsType;
+        boolean haveCarDamageKind = false;//是否含车损
+        boolean haveBusiKind = false;//是否含车损外的商业险种
+        for (KindInfoVo kindInfoVo : kinds) {
+            String code = kindInfoVo.getKindCode();
+            // 车损
+            if ("A".equalsIgnoreCase(code)) {
+                haveCarDamageKind = true;
+            }
+            if ("B,D3,D4,".contains(code + ",")) {
+                haveBusiKind = true;
+            }
+        }
+        if (risks.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(risks.get(0).getRiskCode())) {
+            productsType = ProductsType.PT_0330;//单交
+        } else if (risks.size() == 1 && !haveCarDamageKind && haveBusiKind) {
+            productsType = ProductsType.PT_034002;//单三
+        } else if (risks.size() == 1) {
+            productsType = ProductsType.PT_034001;//单商
+        } else if (risks.size() == 2 && !haveCarDamageKind && haveBusiKind) {
+            productsType = ProductsType.PT_0330034002;//交三
+        } else {
+            productsType = ProductsType.PT_0330034001;//交商
+        }
+        this.setProductid(productsType.getCode());
+        this.setProduct(productsType.getDesc());
+    }
+
+}
+
+
+

+ 318 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCar.java

@@ -0,0 +1,318 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 大订单(车辆信息表)
+ *
+ * @TableName ins_orders_car
+ */
+@TableName(value = "ins_orders_car")
+@Data
+public class InsOrdersCar implements Serializable {
+    /**
+     * 订单号
+     */
+    @TableId(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 品牌型号
+     */
+    @TableField(value = "brand_name")
+    private String brandName;
+
+    /**
+     * 车型品牌
+     */
+    @TableField(value = "car_brand")
+    private String carBrand;
+
+    /**
+     * 行业车型名称
+     */
+    @TableField(value = "ci_car_name")
+    private String ciCarName;
+
+    /**
+     * 行业车型编码
+     */
+    @TableField(value = "ci_model_code")
+    private String ciModelCode;
+
+    /**
+     * 整备质量
+     */
+    @TableField(value = "complete_kerb_mass")
+    private String completeKerbMass;
+
+    /**
+     * 发动机号
+     */
+    @TableField(value = "engine_no")
+    private String engineNo;
+
+    /**
+     * 排量
+     */
+    @TableField(value = "exhaust_scale")
+    private String exhaustScale;
+
+    /**
+     * 工厂名称
+     */
+    @TableField(value = "factory")
+    private String factory;
+
+    /**
+     * 工厂编号
+     */
+    @TableField(value = "factoryid")
+    private String factoryid;
+
+    /**
+     * 车架号
+     */
+    @TableField(value = "frame_no")
+    private String frameNo;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "license_no")
+    private String licenseNo;
+
+    /**
+     * 车牌种类
+     */
+    @TableField(value = "license_type_code")
+    private String licenseTypeCode;
+
+    /**
+     * 精友车型编码
+     */
+    @TableField(value = "model_code")
+    private String modelCode;
+
+    /**
+     * 新车购置价
+     */
+    @TableField(value = "purchase_price")
+    private String purchasePrice;
+
+    /**
+     * 座位数
+     */
+    @TableField(value = "seat_count")
+    private String seatCount;
+
+    /**
+     * 车辆类型(轿车类,特种车类)
+     */
+    @TableField(value = "vehicleclass")
+    private String vehicleclass;
+
+    /**
+     * 车架号
+     */
+    @TableField(value = "vin_no")
+    private String vinNo;
+
+    /**
+     * 车型
+     */
+    @TableField(value = "family_name")
+    private String familyName;
+
+    /**
+     * 车型名称
+     */
+    @TableField(value = "modelcname")
+    private String modelcname;
+
+    /**
+     * 能源类型编码
+     */
+    @TableField(value = "powertypecode")
+    private String powertypecode;
+
+    /**
+     * 能源种类
+     */
+    @TableField(value = "energy_type")
+    private String energyType;
+
+    /**
+     * 总质量
+     */
+    @TableField(value = "vehicleweight")
+    private String vehicleweight;
+
+    /**
+     * 核定载质量
+     */
+    @TableField(value = "limit_load")
+    private String limitLoad;
+
+    /**
+     * 年款
+     */
+    @TableField(value = "caryear")
+    private String caryear;
+
+    /**
+     * 车辆种类
+     */
+    @TableField(value = "cimodelclass")
+    private String cimodelclass;
+
+    /**
+     * 燃料类型
+     */
+    @TableField(value = "powertype")
+    private String powertype;
+
+    /**
+     * 排量(和exhaustScale区分开)
+     */
+    @TableField(value = "enginedesc")
+    private String enginedesc;
+
+    /**
+     * 行驶证注册日期
+     */
+    @TableField(value = "register_date")
+    private String registerDate;
+
+    /**
+     * 发证日期
+     */
+    @TableField(value = "issue_date")
+    private String issueDate;
+
+    /**
+     * 是否过户
+     */
+    @TableField(value = "transfer_flag")
+    private boolean transferFlag;
+
+    /**
+     * 是否是二手车
+     */
+    @TableField(value = "used_car")
+    private boolean usedCar;
+
+    /**
+     * 是否脱保
+     */
+    @TableField(value = "out_of_insurance")
+    private boolean outOfInsurance;
+
+    /**
+     * 过户日期
+     */
+    @TableField(value = "transfer_date")
+    private String transferDate;
+
+    /**
+     * 是否贷款车
+     */
+    @TableField(value = "loan_status")
+    private boolean loanStatus;
+
+    /**
+     * 第一受益人(贷款车才有第一受益人)
+     */
+    @TableField(value = "first_bene_man")
+    private String firstBeneMan;
+
+    /**
+     * 是否有车牌号(判断是否是新车)
+     */
+    @TableField(value = "noLicense_flag")
+    private boolean nolicenseFlag;
+
+    /**
+     * 车辆类型
+     */
+    @TableField(value = "cartype")
+    private String cartype;
+
+    /**
+     * 使用性质
+     */
+    @TableField(value = "carnature")
+    private String carnature;
+
+    /**
+     * 车辆用途
+     */
+    @TableField(value = "vehicle_use")
+    private String vehicleUse;
+
+    /**
+     * 所属性质(1个人 2企业 3机关)
+     */
+    @TableField(value = "property")
+    private String property;
+
+    /**
+     * 发动机功率
+     */
+    @TableField(value = "power_scale")
+    private String powerScale;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    public InsOrdersCar(String orderNo, CarInfoVo carinfo) {
+        this.orderNo = orderNo;
+        this.brandName = carinfo.getBrandName();
+        this.carBrand = carinfo.getCarBrand();
+        this.ciCarName = carinfo.getCiCarName();
+        this.ciModelCode = carinfo.getCiModelCode();
+        this.completeKerbMass = carinfo.getCompleteKerbMass();
+        this.engineNo = carinfo.getEngineNo();
+        this.exhaustScale = carinfo.getExhaustScale();
+        this.factory = carinfo.getFactory();
+        this.factoryid = carinfo.getFactoryid();
+        this.frameNo = carinfo.getFrameNo();
+        this.licenseNo = carinfo.getLicenseNo();
+        this.licenseTypeCode = carinfo.getLicenseTypeCode();
+        this.modelCode = carinfo.getModelCode();
+        this.purchasePrice = carinfo.getPurchasePrice();
+        this.seatCount = carinfo.getSeatCount();
+        this.vehicleclass = carinfo.getVehicleclass();
+        this.vinNo = carinfo.getVinNo();
+        this.familyName = carinfo.getFamilyName();
+        this.modelcname = carinfo.getModelcname();
+        this.powertypecode = carinfo.getPowertypecode();
+        this.energyType = carinfo.getEnergyType();
+        this.vehicleweight = carinfo.getVehicleweight();
+        this.limitLoad = carinfo.getLimitLoad();
+        this.caryear = carinfo.getCaryear();
+        this.cimodelclass = carinfo.getCimodelclass();
+        this.powertype = carinfo.getPowertype();
+        this.enginedesc = carinfo.getEnginedesc();
+        this.registerDate = carinfo.getRegisterDate();
+        this.issueDate = carinfo.getIssueDate();
+        this.transferFlag = carinfo.isTransferFlag();
+        this.usedCar = carinfo.isUsedCar();
+        this.outOfInsurance = carinfo.isOutOfInsurance();
+        this.transferDate = carinfo.getTransferDate();
+        this.loanStatus = carinfo.isLoanStatus();
+        this.firstBeneMan = carinfo.getFirstBeneMan();
+        this.nolicenseFlag = carinfo.isNoLicenseFlag();
+        this.cartype = carinfo.getCartype();
+        this.carnature = carinfo.getCarnature();
+        this.vehicleUse = carinfo.getVehicleUse();
+        this.property = carinfo.getProperty();
+        this.powerScale = carinfo.getPowerScale();
+    }
+}

+ 166 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCustomer.java

@@ -0,0 +1,166 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.order.entity.InsOrders;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 大订单(人员信息表)
+ *
+ * @TableName ins_orders_customer
+ */
+@TableName(value = "ins_orders_customer")
+@Data
+public class InsOrdersCustomer implements Serializable {
+    /**
+     *
+     */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 姓名
+     */
+    @TableField(value = "name")
+    private String name;
+
+    /**
+     * 身份证号
+     */
+    @TableField(value = "identify_number")
+    private String identifyNumber;
+
+    /**
+     * 身份证类型
+     */
+    @TableField(value = "identify_type")
+    private String identifyType;
+
+    /**
+     * 地址
+     */
+    @TableField(value = "addr")
+    private String addr;
+
+    /**
+     * 年龄
+     */
+    @TableField(value = "age")
+    private String age;
+
+    /**
+     * 性别
+     */
+    @TableField(value = "gender")
+    private String gender;
+
+    /**
+     * 邮箱
+     */
+    @TableField(value = "email")
+    private String email;
+
+    /**
+     * 手机号
+     */
+    @TableField(value = "mobile")
+    private String mobile;
+
+    /**
+     * 有效时间结束
+     */
+    @TableField(value = "identify_valid_end_date")
+    private String identifyValidEndDate;
+
+    /**
+     * 有效时间开始
+     */
+    @TableField(value = "identify_valid_date")
+    private String identifyValidDate;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    public InsOrdersCustomer(CustomerInfoVo customerInfoVo, String id) {
+        this.id = id;
+        this.name = customerInfoVo.getName();
+        this.identifyNumber = customerInfoVo.getIdentifyNumber();
+        this.identifyType = customerInfoVo.getIdentifyType();
+        this.addr = customerInfoVo.getAddr();
+        this.age = customerInfoVo.getAge();
+        this.gender = customerInfoVo.getGender();
+        this.email = customerInfoVo.getEmail();
+        this.mobile = customerInfoVo.getMobile();
+        this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate();
+        this.identifyValidDate = customerInfoVo.getIdentifyValidDate();
+    }
+
+
+    /**
+     * @param ownerInfo  车主信息
+     * @param insureInfo 被保人信息
+     * @param applyInfo  投保人信息
+     * @return 人员信息列表
+     */
+    public static List<InsOrdersCustomer> buildCustomerList(CustomerInfoVo ownerInfo, CustomerInfoVo insureInfo, CustomerInfoVo applyInfo
+            , InsOrders insOrders) {
+        ArrayList<InsOrdersCustomer> insOrdersCustomers = new ArrayList<>();
+
+        // 车主信息
+        String ownerId = "";
+        InsOrdersCustomer owner = new InsOrdersCustomer(ownerInfo, ownerId);
+        insOrdersCustomers.add(owner);
+
+        // 投保人信息
+        String applyId;
+        if (insureInfo.isOwner()) {
+            applyId = owner.getId();
+        } else {
+            applyId = "";
+            InsOrdersCustomer apply = new InsOrdersCustomer(applyInfo, applyId);
+            insOrdersCustomers.add(apply);
+        }
+
+        // 被保人信息
+        String insureId;
+        // 同车主
+        if (insureInfo.isOwner()) {
+            insureId = owner.getId();
+            // 同被保人
+        } else if (insureInfo.isInsuranceHolder()) {
+            insureId = applyId;
+        } else {
+            insureId = "";
+            InsOrdersCustomer insure = new InsOrdersCustomer(insureInfo, insureId);
+            insOrdersCustomers.add(insure);
+        }
+
+        insOrders.setOwnerId(ownerId);
+        insOrders.setInsureId(insureId);
+        insOrders.setApplyId(applyId);
+        return insOrdersCustomers;
+    }
+
+    public CustomerInfoVo toCustomerInfoVo() {
+        CustomerInfoVo customerInfoVo = new CustomerInfoVo();
+        customerInfoVo.setName(this.name);
+        customerInfoVo.setIdentifyNumber(this.identifyNumber);
+        customerInfoVo.setIdentifyType(this.identifyType);
+        customerInfoVo.setAddr(this.addr);
+        customerInfoVo.setAge(this.age);
+        customerInfoVo.setGender(this.gender);
+        customerInfoVo.setEmail(this.email);
+        customerInfoVo.setMobile(this.mobile);
+        customerInfoVo.setIdentifyValidEndDate(this.identifyValidEndDate);
+        customerInfoVo.setIdentifyValidDate(this.identifyValidDate);
+        return customerInfoVo;
+    }
+
+}

+ 91 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersKind.java

@@ -0,0 +1,91 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 大订单(商业险险种信息)
+ *
+ * @TableName ins_orders_kind
+ */
+@TableName(value = "ins_orders_kind")
+@Data
+public class InsOrdersKind implements Serializable {
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 保额
+     */
+    @TableField(value = "amount")
+    private String amount;
+
+    /**
+     * 单位保额
+     */
+    @TableField(value = "unit_amount")
+    private String unitAmount;
+
+    /**
+     * 险种编码
+     */
+    @TableField(value = "kind_code")
+    private String kindCode;
+
+    /**
+     * 险种名称
+     */
+    @TableField(value = "kind_name")
+    private String kindName;
+
+    /**
+     * 附加绝对免赔率
+     */
+    @TableField(value = "deductible_rate")
+    private String deductibleRate;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    public InsOrdersKind(KindInfoVo kindInfoVo, String orderNo) {
+        this.orderNo = orderNo;
+        this.amount = String.valueOf(kindInfoVo.getAmount());
+        this.unitAmount = String.valueOf(kindInfoVo.getUnitAmount());
+        this.kindCode = kindInfoVo.getKindCode();
+        this.kindName = kindInfoVo.getKindName();
+        this.deductibleRate = kindInfoVo.getDeductibleRate();
+    }
+
+    public static List<InsOrdersKind> buildKindList(String orderNo, List<KindInfoVo> risk) {
+        return risk.stream().map(x -> new InsOrdersKind(x, orderNo)).collect(Collectors.toList());
+    }
+
+    public KindInfoVo toKindInfoVo() {
+        KindInfoVo kindInfoVo = new KindInfoVo();
+        kindInfoVo.setAmount(Double.parseDouble(this.amount));
+        kindInfoVo.setUnitAmount(Double.parseDouble(this.unitAmount));
+        kindInfoVo.setKindCode(this.kindCode);
+        kindInfoVo.setKindName(this.kindName);
+        kindInfoVo.setDeductibleRate(this.deductibleRate);
+        return kindInfoVo;
+    }
+
+
+}

+ 98 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersRisk.java

@@ -0,0 +1,98 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.ins.model.vo.RiskInfoVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 大订单(交强商业信息表)
+ *
+ * @TableName ins_orders_risk
+ */
+@TableName(value = "ins_orders_risk")
+@Data
+public class InsOrdersRisk implements Serializable {
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 保额
+     */
+    @TableField(value = "amount")
+    private String amount;
+
+    /**
+     * 保费
+     */
+    @TableField(value = "premium")
+    private String premium;
+
+    /**
+     * 起保日期
+     */
+    @TableField(value = "start_date")
+    private String startDate;
+
+    /**
+     * 终保日期
+     */
+    @TableField(value = "end_date")
+    private String endDate;
+
+    /**
+     * 险种编号
+     */
+    @TableField(value = "risk_code")
+    private String riskCode;
+
+    /**
+     * 是否即使起保 1:是即使  空为否
+     */
+    @TableField(value = "instant_flag")
+    private String instantFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+    public InsOrdersRisk(RiskInfoVo riskInfoVo, String orderNo) {
+        this.orderNo = orderNo;
+        this.amount = String.valueOf(riskInfoVo.getAmount());
+        this.premium = String.valueOf(riskInfoVo.getPremium());
+        this.startDate = riskInfoVo.getStartDate();
+        this.endDate = riskInfoVo.getEndDate();
+        this.riskCode = riskInfoVo.getRiskCode();
+        this.instantFlag = riskInfoVo.getInstantFlag();
+    }
+
+    public static List<InsOrdersRisk> buildRiskList(String orderNo, List<RiskInfoVo> risk) {
+        return risk.stream().map(x -> new InsOrdersRisk(x, orderNo)).collect(Collectors.toList());
+    }
+
+    public RiskInfoVo toRiskInfoVo() {
+        RiskInfoVo riskInfoVo = new RiskInfoVo();
+        riskInfoVo.setAmount(Double.parseDouble(this.amount));
+        riskInfoVo.setPremium(Double.parseDouble(this.premium));
+        riskInfoVo.setStartDate(this.startDate);
+        riskInfoVo.setEndDate(this.endDate);
+        riskInfoVo.setRiskCode(this.riskCode);
+        riskInfoVo.setInstantFlag(this.instantFlag);
+        return riskInfoVo;
+    }
+}

+ 133 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersTax.java

@@ -0,0 +1,133 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 大订单(车船税信息)
+ *
+ * @TableName ins_orders_tax
+ */
+@TableName(value = "ins_orders_tax")
+@Data
+public class InsOrdersTax implements Serializable {
+    /**
+     * 订单号
+     */
+    @TableId(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 减免税凭证号 减免税时必传
+     */
+    @TableField(value = "extend_char2")
+    private String extendChar2;
+
+    /**
+     * 减免比例  减税时必传
+     */
+    @TableField(value = "tax_relief")
+    private String taxRelief;
+
+    /**
+     * 减免税原因代码  减免税时必传
+     */
+    @TableField(value = "relif_reason")
+    private String relifReason;
+
+    /**
+     * 开具税务机关代码 减免完税时必传
+     */
+    @TableField(value = "tax_com_code")
+    private String taxComCode;
+
+    /**
+     * 开具凭证的税务机关名称 减免完税时必传
+     */
+    @TableField(value = "tax_com_name")
+    private String taxComName;
+
+    /**
+     * 完税凭证填发日期 完税时必传
+     */
+    @TableField(value = "tax_document_date")
+    private String taxDocumentDate;
+
+    /**
+     * 开具完税凭证地区代码 完税时必传
+     */
+    @TableField(value = "tax_paid_area_code")
+    private String taxPaidAreaCode;
+
+    /**
+     * 完税凭证号 完税时必传
+     */
+    @TableField(value = "paid_free_certificate")
+    private String paidFreeCertificate;
+
+    /**
+     * 纳税人名称 正常缴税时必传
+     */
+    @TableField(value = "taxpayer_name")
+    private String taxpayerName;
+
+    /**
+     * 纳税人证件类型 正常缴税时必传
+     */
+    @TableField(value = "taxpayer_identifier")
+    private String taxpayerIdentifier;
+
+    /**
+     * 纳税人证件号码 正常缴税时必传
+     */
+    @TableField(value = "identify_number")
+    private String identifyNumber;
+
+    /**
+     * 车船税标志 1-正常交税; 2-免税; 3-减税; 4-完税
+     */
+    @TableField(value = "tax_relif_flag")
+    private String taxRelifFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+    public InsOrdersTax(String orderNo, VehicleAndVesselTax vehicleAndVesselTax) {
+        this.orderNo = orderNo;
+        this.extendChar2 = vehicleAndVesselTax.getExtendChar2();
+        this.taxRelief = vehicleAndVesselTax.getTaxRelief();
+        this.relifReason = vehicleAndVesselTax.getRelifReason();
+        this.taxComCode = vehicleAndVesselTax.getTaxComCode();
+        this.taxComName = vehicleAndVesselTax.getTaxComName();
+        this.taxDocumentDate = vehicleAndVesselTax.getTaxDocumentDate();
+        this.taxPaidAreaCode = vehicleAndVesselTax.getTaxPaidAreaCode();
+        this.paidFreeCertificate = vehicleAndVesselTax.getPaidFreeCertificate();
+        this.taxpayerName = vehicleAndVesselTax.getTaxpayerName();
+        this.taxpayerIdentifier = vehicleAndVesselTax.getTaxpayerIdentifier();
+        this.identifyNumber = vehicleAndVesselTax.getIdentifyNumber();
+        this.taxRelifFlag = vehicleAndVesselTax.getTaxRelifFlag();
+    }
+
+    public VehicleAndVesselTax toVehicleAndVesselTax() {
+        VehicleAndVesselTax vehicleAndVesselTax = new VehicleAndVesselTax();
+        vehicleAndVesselTax.setExtendChar2(this.extendChar2);
+        vehicleAndVesselTax.setTaxRelief(this.taxRelief);
+        vehicleAndVesselTax.setRelifReason(this.relifReason);
+        vehicleAndVesselTax.setTaxComCode(this.taxComCode);
+        vehicleAndVesselTax.setTaxComName(this.taxComName);
+        vehicleAndVesselTax.setTaxDocumentDate(this.taxDocumentDate);
+        vehicleAndVesselTax.setTaxPaidAreaCode(this.taxPaidAreaCode);
+        vehicleAndVesselTax.setPaidFreeCertificate(this.paidFreeCertificate);
+        vehicleAndVesselTax.setTaxpayerName(this.taxpayerName);
+        vehicleAndVesselTax.setTaxpayerIdentifier(this.taxpayerIdentifier);
+        vehicleAndVesselTax.setIdentifyNumber(this.identifyNumber);
+        vehicleAndVesselTax.setTaxRelifFlag(this.taxRelifFlag);
+        return vehicleAndVesselTax;
+    }
+}

+ 3 - 2
src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteInfoVo.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.entity.vo;
 
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -27,10 +28,10 @@ public class BaseQuoteInfoVo extends YaQuoteInfoVo {
     public BaseQuoteInfoVo() {
     }
 
-    public BaseQuoteInfoVo(InsOrders insOrders) {
+    public BaseQuoteInfoVo(InsOrdersBo insOrders) {
         super(insOrders);
         this.orderNo = insOrders.getOrderno();
-        this.vehicleAndVesselTax = insOrders.getVehicleAndVesselTax().toJavaObject(VehicleAndVesselTax.class);
+        this.vehicleAndVesselTax = insOrders.getVehicleAndVesselTax();
     }
 
 }

+ 23 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersBusinessService.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.order.service;
+
+
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+
+/**
+ * @version
+ * @description: 订单业务
+ * @author: wenks
+ * @date: 2024/3/5 16:13
+ **/
+public interface InsOrdersBusinessService {
+
+    /**
+     * 生成订单
+     *
+     * @param quoteInfoVo 报价信息
+     * @return 订单信息
+     */
+    InsOrdersBo generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo);
+
+}

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

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersCar;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_car(大订单(车辆信息表))】的数据库操作Service
+* @createDate 2024-03-05 15:06:04
+*/
+public interface InsOrdersCarService extends IService<InsOrdersCar> {
+
+}

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

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersCustomer;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_customer(大订单(人员信息表))】的数据库操作Service
+* @createDate 2024-03-05 15:06:04
+*/
+public interface InsOrdersCustomerService extends IService<InsOrdersCustomer> {
+
+}

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

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_kind(大订单(商业险险种信息))】的数据库操作Service
+* @createDate 2024-03-05 15:06:04
+*/
+public interface InsOrdersKindService extends IService<InsOrdersKind> {
+
+}

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

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_risk(大订单(交强商业信息表))】的数据库操作Service
+* @createDate 2024-03-05 15:06:04
+*/
+public interface InsOrdersRiskService extends IService<InsOrdersRisk> {
+
+}

+ 24 - 16
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -7,12 +7,11 @@ import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -53,16 +52,9 @@ public interface InsOrdersService extends IService<InsOrders> {
      */
     InsOrders existOrder(String orderNo);
 
-    /**
-     * 生成订单
-     *
-     * @param quoteInfoVo 报价信息
-     * @return 订单信息
-     */
-    InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo);
-
 
     BasePageResult<InsOrders> newQueryPageOrder(OrderQueryVo orderQueryVo);
+
     /**
      * 查询订单接口
      *
@@ -85,7 +77,7 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @param companyId
      * @return
      */
-    HttpResult<OrderVo> getByCompanyId(String companyId,String userId);
+    HttpResult<OrderVo> getByCompanyId(String companyId, String userId);
 
     /**
      * 查询订单和子订单
@@ -112,25 +104,41 @@ public interface InsOrdersService extends IService<InsOrders> {
     List<InsAreaCompanyQueryDto> querySuborder(String orderNo);
 
     /**
-     *
      * @param insOrders 订单数据
      * @return true->成功 false->失败
      */
-    boolean saveAndTrajectories(InsOrders insOrders);
-
+    boolean saveAndTrajectories(InsOrdersBo insOrders);
 
     /**
      * 分页查询保单报表信息
+     *
      * @param policyInsuranceReportReqVo
      * @param userId
      * @return
      */
-    BasePageResult<PolicyInsuranceReportResVo> getPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo,String userId);
+    BasePageResult<PolicyInsuranceReportResVo> getPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo,
+                                                                        String userId);
 
     /**
      * 导出保单报表信息
+     *
      * @param policyInsuranceReportReqVo
      * @return
      */
-    HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo,String userId);
+    HttpResult<String> exportPolicyInsuranceReport(PolicyInsuranceReportReqVo policyInsuranceReportReqVo, String userId);
+
+    /**
+     * 修改订单信息
+     *
+     * @param insOrdersBo 订单业务实体
+     */
+    void updateInsOrders(InsOrdersBo insOrdersBo);
+
+    /**
+     * 查询业务实体
+     *
+     * @param orderNo 订单号
+     * @return 订单业务实体
+     */
+    InsOrdersBo queryInsOrders(String orderNo);
 }

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

@@ -0,0 +1,13 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersTax;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_tax(大订单(车船税信息))】的数据库操作Service
+* @createDate 2024-03-05 15:06:04
+*/
+public interface InsOrdersTaxService extends IService<InsOrdersTax> {
+
+}

+ 136 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersBusinessServiceImpl.java

@@ -0,0 +1,136 @@
+package com.ydtech.modules.order.service.impl;
+
+
+import com.alibaba.fastjson.JSON;
+import com.ydtech.components.OrderComponents;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.SysUserRole;
+import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserRoleService;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
+import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.service.InsOrdersBusinessService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.utils.SnowFlakeUtil;
+import com.ydtech.utils.idgen.IdGenerate;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.concurrent.TimeUnit;
+
+import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
+import static com.ydtech.modules.order.constants.OrderCacheConstant.QUOTE_RULES_KEY_TIME;
+
+
+/**
+ * @description: 订单业务实现
+ * @author: wenks
+ * @date: 2024/3/5 16:15
+ **/
+
+@Service
+@RequiredArgsConstructor
+public class InsOrdersBusinessServiceImpl implements InsOrdersBusinessService {
+
+    private final SysUserRoleService sysUserRoleService;
+
+    private final SysUserService sysUserService;
+
+    private final SysDeptService sysDeptService;
+
+    private final OrderComponents orderComponents;
+
+    private final StringRedisTemplate redisTemplate;
+
+    private final InsOrdersService insOrdersService;
+
+    /**
+     * @param userId      当前登录人id
+     * @param quoteInfoVo 报价信息
+     * @return
+     */
+    @Override
+    public InsOrdersBo 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 构造订单
+        InsOrdersBo insOrdersBo = new InsOrdersBo(user, dept, quoteInfoVo);
+        if (daikeFlag) {//当时代客录单业务时,才需要赋值该字段
+            insOrdersBo.setOperatorid(userId);//赋值代客录单操作人为登录人
+        }
+        if (isCdy) {//赋值出单员  操作人为登录人
+            insOrdersBo.setOperatorid(userId);
+        }
+
+        InsOrdersBo insOrders1 = insOrdersService.queryInsOrders(quoteInfoVo.getOrderNo());
+        //需要赋值代录单人ID
+
+        if (ObjectUtils.isEmpty(insOrders1)) {
+            insOrders1 = insOrdersBo;
+        }
+
+        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();
+            insOrdersBo.setOrderno(orderno);
+            // 将报价号返回
+            long l = new SnowFlakeUtil().nextId();
+            insOrdersBo.setQuoteno(String.valueOf(l));
+            boolean save = insOrdersService.saveAndTrajectories(insOrdersBo);
+            if (!save) {
+                throw new SystemException("订单生成失败");
+            }
+
+        } else {
+            // 修改订单
+            insOrdersBo.setOrderno(quoteInfoVo.getOrderNo());
+            insOrdersService.updateInsOrders(insOrdersBo);
+        }
+        // 4 将报价信息存入redis 中
+        String s = JSON.toJSONString(quoteInfoVo);
+        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrdersBo.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 + insOrdersBo.getOrderno(), rules, QUOTE_RULES_KEY_TIME, TimeUnit.HOURS);
+        return insOrdersBo;
+    }
+}

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

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.po.InsOrdersCar;
+import com.ydtech.modules.order.dao.InsOrdersCarMapper;
+import com.ydtech.modules.order.service.InsOrdersCarService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_car(大订单(车辆信息表))】的数据库操作Service实现
+* @createDate 2024-03-05 15:06:04
+*/
+@Service
+public class InsOrdersCarServiceImpl extends ServiceImpl<InsOrdersCarMapper, InsOrdersCar>
+    implements InsOrdersCarService{
+
+}
+
+
+
+

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

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.po.InsOrdersCustomer;
+import com.ydtech.modules.order.dao.InsOrdersCustomerMapper;
+import com.ydtech.modules.order.service.InsOrdersCustomerService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_customer(大订单(人员信息表))】的数据库操作Service实现
+* @createDate 2024-03-05 15:06:04
+*/
+@Service
+public class InsOrdersCustomerServiceImpl extends ServiceImpl<InsOrdersCustomerMapper, InsOrdersCustomer>
+    implements InsOrdersCustomerService{
+
+}
+
+
+
+

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

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+import com.ydtech.modules.order.dao.InsOrdersKindMapper;
+import com.ydtech.modules.order.service.InsOrdersKindService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_kind(大订单(商业险险种信息))】的数据库操作Service实现
+* @createDate 2024-03-05 15:06:04
+*/
+@Service
+public class InsOrdersKindServiceImpl extends ServiceImpl<InsOrdersKindMapper, InsOrdersKind>
+    implements InsOrdersKindService{
+
+}
+
+
+
+

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

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
+import com.ydtech.modules.order.dao.InsOrdersRiskMapper;
+import com.ydtech.modules.order.service.InsOrdersRiskService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_risk(大订单(交强商业信息表))】的数据库操作Service实现
+* @createDate 2024-03-05 15:06:04
+*/
+@Service
+public class InsOrdersRiskServiceImpl extends ServiceImpl<InsOrdersRiskMapper, InsOrdersRisk>
+    implements InsOrdersRiskService{
+
+}
+
+
+
+

+ 65 - 132
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ydtech.components.OrderComponents;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.insurance.NatureOfVehicleUse;
@@ -16,22 +15,16 @@ import com.ydtech.constants.sys.SystemConstant;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.RoleConstants;
-import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
-import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
-import com.ydtech.modules.ins.dao.InsFileMapper;
 import com.ydtech.modules.ins.model.InsOrdersExcel;
 import com.ydtech.modules.ins.model.InsOrdersExcelVo;
-import com.ydtech.modules.ins.model.vo.CarInfoVo;
-import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
-import com.ydtech.modules.ins.model.vo.QuoteKindRespVo;
+import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
 import com.ydtech.modules.ins.model.ya.ResponseDataC2;
@@ -43,23 +36,21 @@ import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrdersTrack;
-import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
+import com.ydtech.modules.order.entity.po.*;
+import com.ydtech.modules.order.entity.vo.OrderVo;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.entity.vo.ya.YaExtendInfoDto;
-import com.ydtech.modules.order.service.InsAreaCompanyService;
-import com.ydtech.modules.order.service.InsOrdersService;
-import com.ydtech.modules.order.service.InsOrdersTrackService;
+import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
-import com.ydtech.utils.SnowFlakeUtil;
-import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -67,11 +58,8 @@ import org.springframework.util.ObjectUtils;
 import javax.validation.constraints.NotBlank;
 import java.io.File;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
-import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
-
 /**
  * @author wenkaisen
  * @description 针对表【ins_orders(保险订单表)】的数据库操作Service实现
@@ -80,18 +68,10 @@ import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
 @Service
 public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders> implements InsOrdersService {
 
-    private final OrderComponents orderComponents;
-
     private final SysUserService sysUserService;
 
     private final SysUserRoleService sysUserRoleService;
 
-    private final EsmUserReferrerService esmUserReferrerService;
-
-    private final SysDeptService sysDeptService;
-
-    private final StringRedisTemplate redisTemplate;
-
     private final InsAreaCompanyService insAreaCompanyService;
 
     private final InsFeeAuditService insFeeAuditService;
@@ -102,30 +82,23 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsOrdersTrackService insOrdersTrackService;
 
-    private final InsFileMapper insFileMapper;
-
     @Value("${upload.file.path}")
     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,
+                                SysUserRoleService sysUserRoleService,
+                                @Lazy InsAreaCompanyService insAreaCompanyService,
+                                PtlAgreementService ptlAgreementService,
+                                @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
+                                InsFeeAuditService insFeeAuditService,
+                                InsOrdersTrackService insOrdersTrackService) {
         this.sysUserService = sysUserService;
         this.sysUserRoleService = sysUserRoleService;
-        this.esmUserReferrerService = esmUserReferrerService;
-        this.sysDeptService = sysDeptService;
-        this.redisTemplate = redisTemplate;
         this.insAreaCompanyService = insAreaCompanyService;
         this.ptlAgreementService = ptlAgreementService;
         this.feeRuleSchemeService = feeRuleSchemeService;
         this.insFeeAuditService = insFeeAuditService;
         this.insOrdersTrackService = insOrdersTrackService;
-        this.insFileMapper = insFileMapper;
     }
 
 
@@ -196,89 +169,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, 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;
-    }
 
     /**
      * 新的查询分页接口
@@ -477,12 +367,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
         }
         File folder = new File(uploadFilePath);
-        if (folder.exists()){
+        if (folder.exists()) {
             return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
-        }else {
-            if (folder.mkdirs()){
+        } else {
+            if (folder.mkdirs()) {
                 return HttpResult.ok("", EasyExcelUtils.downExcel(uploadFilePath, InsOrdersExcel.class, insOrdersExcels));
-            }else {
+            } else {
                 throw new SystemException("文件导出失败");
             }
         }
@@ -566,7 +456,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         InsOrders insOrders = getById(orderNo);
         List<InsAreaCompany> insAreaCompanyList =
                 insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).orderByDesc(InsAreaCompany::getCreatetime).list();
-        insOrders.setInsAreaCompanyList(insAreaCompanyList);
+//        insOrders.setInsAreaCompanyList(insAreaCompanyList);
         InsOrdersEditingVo insOrdersEditingVo = new InsOrdersEditingVo();
 
         BeanUtils.copyProperties(insOrders, insOrdersEditingVo);
@@ -621,16 +511,59 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return HttpResult.ok("", s);
     }
 
+    @Autowired
+    private InsOrdersCarService insOrdersCarService;
+
+    @Autowired
+    private InsOrdersCustomerService insOrdersCustomerService;
+
+    @Autowired
+    private InsOrdersKindService insOrdersKindService;
+
+    @Autowired
+    private InsOrdersRiskService insOrdersRiskService;
+
+    @Autowired
+    private InsOrdersTaxService InsOrdersTaxService;
 
     @Override
     @Transactional
-    public boolean saveAndTrajectories(InsOrders insOrders) {
-        this.baseMapper.insert(insOrders);
+    public boolean saveAndTrajectories(InsOrdersBo insOrdersBo) {
+        // 订单信息
+        InsOrders insOrders = new InsOrders(insOrdersBo);
+        final String orderNo = insOrders.getOrderno();
+        // 1 车辆信息
+        CarInfoVo carinfo = insOrdersBo.getCarinfo();
+        InsOrdersCar insOrdersCar = new InsOrdersCar(orderNo, carinfo);
+        boolean carSave = insOrdersCarService.save(insOrdersCar);
+        // 2 人员信息
+        // 车主信息
+        CustomerInfoVo ownerInfo = insOrdersBo.getOwnerinfo();
+        // 被保人信息
+        CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
+        // 投保人信息
+        CustomerInfoVo applyInfo = insOrdersBo.getApplyinfo();
+        List<InsOrdersCustomer> insOrdersCustomerList = InsOrdersCustomer.buildCustomerList(ownerInfo, insureInfo, applyInfo, insOrders);
+        insOrdersCustomerService.saveBatch(insOrdersCustomerList);
+
+        // 3 车船税信息
+        VehicleAndVesselTax vehicleAndVesselTax = insOrdersBo.getVehicleAndVesselTax();
+        InsOrdersTax insOrdersTax = new InsOrdersTax(orderNo, vehicleAndVesselTax);
+        boolean taxSave = InsOrdersTaxService.save(insOrdersTax);
+        // 4 交强商业信息表
+        List<KindInfoVo> kind = insOrdersBo.getKing();
+        List<InsOrdersKind> kindList = InsOrdersKind.buildKindList(orderNo, kind);
+        boolean kindSave = insOrdersKindService.saveBatch(kindList);
+        // 5 商业险险种信息
+        List<RiskInfoVo> risk = insOrdersBo.getRisk();
+        List<InsOrdersRisk> riskList = InsOrdersRisk.buildRiskList(orderNo, risk);
+        boolean riskSave = insOrdersRiskService.saveBatch(riskList);
         SaSession saSession = StpUtil.getSessionByLoginId(StpUtil.getLoginId());
         SysUser sysUser = (SysUser) saSession.get(SaSession.USER);
         final InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insOrders, sysUser.getId(), sysUser.getName());
-        insOrdersTrackService.save(insOrdersTrack);
-        return true;
+        boolean trackSave = insOrdersTrackService.save(insOrdersTrack);
+        int insert = this.baseMapper.insert(insOrders);
+        return insert > 0 && carSave && taxSave && kindSave && riskSave && trackSave;
     }
 
 }

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

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.po.InsOrdersTax;
+import com.ydtech.modules.order.dao.InsOrdersTaxMapper;
+import com.ydtech.modules.order.service.InsOrdersTaxService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_tax(大订单(车船税信息))】的数据库操作Service实现
+* @createDate 2024-03-05 15:06:04
+*/
+@Service
+public class InsOrdersTaxServiceImpl extends ServiceImpl<InsOrdersTaxMapper, InsOrdersTax>
+    implements InsOrdersTaxService{
+
+}
+
+
+
+

Разлика између датотеке није приказан због своје велике величине
+ 332 - 284
src/main/java/com/ydtech/modules/report/service/impl/ReportServiceImpl.java


Разлика између датотеке није приказан због своје велике величине
+ 0 - 12
src/main/java/com/ydtech/utils/InsUtils.java


+ 68 - 0
src/main/resources/mapper/modules/order/InsOrdersCarMapper.xml

@@ -0,0 +1,68 @@
+<?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.order.dao.InsOrdersCarMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersCar">
+            <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+            <result property="brandName" column="brand_name" jdbcType="VARCHAR"/>
+            <result property="carBrand" column="car_brand" jdbcType="VARCHAR"/>
+            <result property="ciCarName" column="ci_car_name" jdbcType="VARCHAR"/>
+            <result property="ciModelCode" column="ci_model_code" jdbcType="VARCHAR"/>
+            <result property="completeKerbMass" column="complete_kerb_mass" jdbcType="VARCHAR"/>
+            <result property="engineNo" column="engine_no" jdbcType="VARCHAR"/>
+            <result property="exhaustScale" column="exhaust_scale" jdbcType="VARCHAR"/>
+            <result property="factory" column="factory" jdbcType="VARCHAR"/>
+            <result property="factoryid" column="factoryid" jdbcType="VARCHAR"/>
+            <result property="frameNo" column="frame_no" jdbcType="VARCHAR"/>
+            <result property="licenseNo" column="license_no" jdbcType="VARCHAR"/>
+            <result property="licenseTypeCode" column="license_type_code" jdbcType="VARCHAR"/>
+            <result property="modelCode" column="model_code" jdbcType="VARCHAR"/>
+            <result property="purchasePrice" column="purchase_price" jdbcType="VARCHAR"/>
+            <result property="seatCount" column="seat_count" jdbcType="VARCHAR"/>
+            <result property="vehicleclass" column="vehicleclass" jdbcType="VARCHAR"/>
+            <result property="vinNo" column="vin_no" jdbcType="VARCHAR"/>
+            <result property="familyName" column="family_name" jdbcType="VARCHAR"/>
+            <result property="modelcname" column="modelcname" jdbcType="VARCHAR"/>
+            <result property="powertypecode" column="powertypecode" jdbcType="VARCHAR"/>
+            <result property="energyType" column="energy_type" jdbcType="VARCHAR"/>
+            <result property="vehicleweight" column="vehicleweight" jdbcType="VARCHAR"/>
+            <result property="limitLoad" column="limit_load" jdbcType="VARCHAR"/>
+            <result property="caryear" column="caryear" jdbcType="VARCHAR"/>
+            <result property="cimodelclass" column="cimodelclass" jdbcType="VARCHAR"/>
+            <result property="powertype" column="powertype" jdbcType="VARCHAR"/>
+            <result property="enginedesc" column="enginedesc" jdbcType="VARCHAR"/>
+            <result property="registerDate" column="register_date" jdbcType="VARCHAR"/>
+            <result property="issueDate" column="issue_date" jdbcType="VARCHAR"/>
+            <result property="transferFlag" column="transfer_flag" jdbcType="TINYINT"/>
+            <result property="usedCar" column="used_car" jdbcType="TINYINT"/>
+            <result property="outOfInsurance" column="out_of_insurance" jdbcType="TINYINT"/>
+            <result property="transferDate" column="transfer_date" jdbcType="VARCHAR"/>
+            <result property="loanStatus" column="loan_status" jdbcType="TINYINT"/>
+            <result property="firstBeneMan" column="first_bene_man" jdbcType="VARCHAR"/>
+            <result property="nolicenseFlag" column="noLicense_flag" jdbcType="TINYINT"/>
+            <result property="cartype" column="cartype" jdbcType="VARCHAR"/>
+            <result property="carnature" column="carnature" jdbcType="VARCHAR"/>
+            <result property="vehicleUse" column="vehicle_use" jdbcType="VARCHAR"/>
+            <result property="property" column="property" jdbcType="VARCHAR"/>
+            <result property="powerScale" column="power_scale" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        order_no,brand_name,car_brand,
+        ci_car_name,ci_model_code,complete_kerb_mass,
+        engine_no,exhaust_scale,factory,
+        factoryid,frame_no,license_no,
+        license_type_code,model_code,purchase_price,
+        seat_count,vehicleclass,vin_no,
+        family_name,modelcname,powertypecode,
+        energy_type,vehicleweight,limit_load,
+        caryear,cimodelclass,powertype,
+        enginedesc,register_date,issue_date,
+        transfer_flag,used_car,out_of_insurance,
+        transfer_date,loan_status,first_bene_man,
+        noLicense_flag,cartype,carnature,
+        vehicle_use,property,power_scale
+    </sql>
+</mapper>

+ 28 - 0
src/main/resources/mapper/modules/order/InsOrdersCustomerMapper.xml

@@ -0,0 +1,28 @@
+<?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.order.dao.InsOrdersCustomerMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersCustomer">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
+            <result property="identifyType" column="identify_type" jdbcType="VARCHAR"/>
+            <result property="addr" column="addr" jdbcType="VARCHAR"/>
+            <result property="age" column="age" jdbcType="VARCHAR"/>
+            <result property="gender" column="gender" jdbcType="VARCHAR"/>
+            <result property="email" column="email" jdbcType="VARCHAR"/>
+            <result property="mobile" column="mobile" jdbcType="VARCHAR"/>
+            <result property="identifyValidEndDate" column="identify_valid_end_date" jdbcType="VARCHAR"/>
+            <result property="identifyValidDate" column="identify_valid_date" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,identify_number,
+        identify_type,addr,age,
+        gender,email,mobile,
+        identify_valid_end_date,identify_valid_date,type
+    </sql>
+</mapper>

+ 22 - 0
src/main/resources/mapper/modules/order/InsOrdersKindMapper.xml

@@ -0,0 +1,22 @@
+<?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.order.dao.InsOrdersKindMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersKind">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+            <result property="amount" column="amount" jdbcType="VARCHAR"/>
+            <result property="unitAmount" column="unit_amount" jdbcType="VARCHAR"/>
+            <result property="kindCode" column="kind_code" jdbcType="VARCHAR"/>
+            <result property="kindName" column="kind_name" jdbcType="VARCHAR"/>
+            <result property="deductibleRate" column="deductible_rate" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,order_no,amount,
+        unit_amount,kind_code,kind_name,
+        deductible_rate
+    </sql>
+</mapper>

+ 23 - 0
src/main/resources/mapper/modules/order/InsOrdersRiskMapper.xml

@@ -0,0 +1,23 @@
+<?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.order.dao.InsOrdersRiskMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersRisk">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+            <result property="amount" column="amount" jdbcType="VARCHAR"/>
+            <result property="premium" column="premium" jdbcType="VARCHAR"/>
+            <result property="startDate" column="start_date" jdbcType="VARCHAR"/>
+            <result property="endDate" column="end_date" jdbcType="VARCHAR"/>
+            <result property="riskCode" column="risk_code" jdbcType="VARCHAR"/>
+            <result property="instantFlag" column="instant_flag" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,order_no,amount,
+        premium,start_date,end_date,
+        risk_code,instant_flag
+    </sql>
+</mapper>

+ 31 - 0
src/main/resources/mapper/modules/order/InsOrdersTaxMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.order.dao.InsOrdersTaxMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersTax">
+        <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="extendChar2" column="extend_char2" jdbcType="VARCHAR"/>
+        <result property="taxRelief" column="tax_relief" jdbcType="VARCHAR"/>
+        <result property="relifReason" column="relif_reason" jdbcType="VARCHAR"/>
+        <result property="taxComCode" column="tax_com_code" jdbcType="VARCHAR"/>
+        <result property="taxComName" column="tax_com_name" jdbcType="VARCHAR"/>
+        <result property="taxDocumentDate" column="tax_document_date" jdbcType="VARCHAR"/>
+        <result property="taxPaidAreaCode" column="tax_paid_area_code" jdbcType="VARCHAR"/>
+        <result property="paidFreeCertificate" column="paid_free_certificate" jdbcType="VARCHAR"/>
+        <result property="taxpayerName" column="taxpayer_name" jdbcType="VARCHAR"/>
+        <result property="taxpayerIdentifier" column="taxpayer_identifier" jdbcType="VARCHAR"/>
+        <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
+        <result property="taxRelifFlag" column="tax_relif_flag" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        order_no,extend_char2,tax_relief,
+        relif_reason,tax_com_code,tax_com_name,
+        tax_document_date,tax_paid_area_code,paid_free_certificate,
+        taxpayer_name,taxpayer_identifier,identify_number,
+        tax_relif_flag
+    </sql>
+
+</mapper>

Неке датотеке нису приказане због велике количине промена