فهرست منبع

车船税 纳税类型 信息录入

wks 2 سال پیش
والد
کامیت
d6c91c26b3

+ 32 - 0
src/main/java/com/ydtech/constants/enums/dict/tax/RelifReason.java

@@ -0,0 +1,32 @@
+package com.ydtech.constants.enums.dict.tax;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "relifReason", desc = "减免税原因代码")
+public enum RelifReason implements IBaseEnum {
+
+    RR_C("C", "具备减免税证明", 1, 0),
+    RR_F("F", "拖拉机", 2, 0),
+    RR_A("A", "军队、武警专用车", 3, 0),
+    RR_P("P", "警车", 4, 0),
+    RR_D("D", "外国使领馆、国际组织及其人员", 5, 0),
+    RR_O("O", "其他", 6, 0),
+    RR_E("E", "能源减免", 7, 0);
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+}

+ 28 - 0
src/main/java/com/ydtech/constants/enums/dict/tax/TaxRelifFlag.java

@@ -0,0 +1,28 @@
+package com.ydtech.constants.enums.dict.tax;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "taxRelifFlag", desc = "车船税标志")
+public enum TaxRelifFlag implements IBaseEnum {
+
+    TRF_01("1", "正常交税", 0, 0),
+    TRF_02("2", "免税", 1, 0),
+    TRF_03("3", "减税", 2, 0),
+    TRF_04("4", "完税", 3, 0);
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+}

+ 31 - 0
src/main/java/com/ydtech/constants/enums/dict/tax/TaxpayerIdentifier.java

@@ -0,0 +1,31 @@
+package com.ydtech.constants.enums.dict.tax;
+
+
+import com.ydtech.aop.request.DictEnum;
+import com.ydtech.constants.enums.dict.IBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "taxpayerIdentifier", desc = "纳税人证件类型")
+public enum TaxpayerIdentifier implements IBaseEnum {
+
+    TI_11("11", "工商注册号码", 0, 1),
+    TI_99("99", "其他", 0, 1),
+    TI_01("01", "居民身份证", 0, 1),
+    TI_02("02", "护照", 0, 1),
+    TI_03("03", "军人证", 0, 1),
+    TI_10("10", "组织机构代码", 0, 1);
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+
+}

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

@@ -34,6 +34,7 @@ import java.util.List;
 @AllArgsConstructor
 @NoArgsConstructor
 public class InsOrders implements Serializable {
+
     /**
      * 订单号
      */
@@ -166,17 +167,25 @@ public class InsOrders implements Serializable {
      */
     @TableField(value = "syenddate")
     private String syenddate;
+
     /**
      * 商业 交强
      */
     @TableField(value = "risk", typeHandler = FastjsonTypeHandler.class)
     private JSONArray risk;
+
     /**
      * 商业险信息
      */
     @TableField(value = "king", typeHandler = FastjsonTypeHandler.class)
     private JSONArray king;
 
+    /**
+     * 车船税信息
+     */
+    @TableField(value = "vehicle_and_vessel_tax", typeHandler = FastjsonTypeHandler.class)
+    private JSONObject vehicleAndVesselTax;
+
     @TableField(exist = false)
     private List<InsAreaCompany> insAreaCompanyList; //子级集合
 

+ 116 - 8
src/main/java/com/ydtech/modules/order/entity/api/zj/request/CalculatePremiumRequest.java

@@ -19,12 +19,14 @@ import com.ydtech.modules.order.entity.api.zj.response.ModelQueryResponse;
 import com.ydtech.modules.order.entity.api.zm.constants.TimeConstants;
 import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
 import com.ydtech.modules.order.entity.vo.zj.ZjQuoteAccidentVo;
 import com.ydtech.modules.order.utils.InsuranceTimeProcessing;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.Getter;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
@@ -128,7 +130,7 @@ public class CalculatePremiumRequest implements Serializable {
         this.orderOrigin = zjConfigureParameters.getAppKey();
         this.proposalAreaCode = zjConfigureParameters.getProposalAreaCode();
         this.proposalCityCode = zjConfigureParameters.getProposalCityCode();
-        this.taxRelifInfo = new TaxRelifInfoDTO();
+        this.taxRelifInfo = new TaxRelifInfoDTO(quoteInfoVo.getVehicleAndVesselTax());
     }
 
     public void modificationOfVehicleType(ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO) {
@@ -400,22 +402,128 @@ public class CalculatePremiumRequest implements Serializable {
     @NoArgsConstructor
     @Data
     public static class TaxRelifInfoDTO implements Serializable {
+
         private static final long serialVersionUID = 3760117003983918836L;
+
+        /**
+         * 减免税凭证号 减免税时必传
+         */
+        @JsonProperty("extendChar2")
+        private String extendChar2;
+
+        /**
+         * 减免税方案代码 减免税时必传 (P 比例减免;E 免税)
+         */
+        @JsonProperty("freeRateText")
+        private String freeRateText;
+        /**
+         * 减免比例  减免税时必传
+         */
+        @JsonProperty("taxRelief")
+        private String taxRelief;
+        /**
+         * 减免税原因代码  减免税时必传
+         */
+        @JsonProperty("relifReason")
+        private String relifReason;
+        /**
+         * 开具税务机关代码 减免完税时必传
+         */
+        @JsonProperty("taxComCode")
+        private String taxComCode;
+        /**
+         * 开具凭证的税务机关名称 减免完税时必传
+         */
+        @JsonProperty("taxComName")
+        private String taxComName;
+        /**
+         * 完税凭证填发日期 完税时必传
+         */
+        @JsonProperty("taxDocumentDate")
+        private String taxDocumentDate;
+        /**
+         * 开具完税凭证地区代码 完税时必传
+         */
+        @JsonProperty("taxPaidAreaCode")
+        private String taxPaidAreaCode;
+        /**
+         * 完税凭证号 完税时必传
+         */
+        @JsonProperty("paidFreeCertificate")
+        private String paidFreeCertificate;
+        /**
+         * 纳税人名称 完税时必传
+         */
+        @JsonProperty("taxpayerName")
+        private String taxpayerName;
+        /**
+         * 纳税人证件类型 完税时必传
+         */
+        @JsonProperty("taxpayerIdentifier")
+        private String taxpayerIdentifier;
+        /**
+         * 纳税人证件号码 完税时必传
+         */
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
         /**
          * 车船税标志
          * 1-正常交税;
          * 2-免税;
          * 3-减税;
          * 4-完税
-         * (北京地区:
-         * 01-已完税;
-         * 02-免税;
-         * 03-未缴税;
-         * 04-已申报未入库;
-         * 05-不在征收范围)
          */
         @JsonProperty("taxRelifFlag")
-        private String taxRelifFlag = "1";
+        private String taxRelifFlag;
+
+        // 免税
+        private static final String TAX_EXEMPTION = "2";
+        // 减税
+        private static final String TAX_REDUCTION = "3";
+
+        public TaxRelifInfoDTO(VehicleAndVesselTax vehicleAndVesselTax) {
+            String flag = vehicleAndVesselTax.getTaxRelifFlag();
+            switch (flag) {
+                case TAX_EXEMPTION:
+                    this.freeRateText = FreeRateText.FRT_E.getCode();
+                    this.taxRelief = "1";
+                    break;
+                case TAX_REDUCTION:
+                    this.freeRateText = FreeRateText.FRT_P.getCode();
+                    this.taxRelief = vehicleAndVesselTax.getTaxRelief();
+                    break;
+                default:
+                    break;
+            }
+            this.extendChar2 = vehicleAndVesselTax.getExtendChar2();
+
+            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 = flag;
+        }
+
+        @Getter
+        @AllArgsConstructor
+        public enum FreeRateText {
+
+            FRT_P("P", "比例减免"),
+            FRT_E("E", "免税");
+
+            // 编号
+            private final String code;
+            // 说明
+            private final String desc;
+
+        }
+
     }
 
     /**

+ 6 - 3
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 io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -14,17 +15,19 @@ public class BaseQuoteInfoVo extends YaQuoteInfoVo {
 
     private static final long serialVersionUID = -4489767537219232665L;
 
+    @ApiModelProperty("订单号")
     private String orderNo;
 
+    @ApiModelProperty("车船税信息")
+    private VehicleAndVesselTax vehicleAndVesselTax;
+
     public BaseQuoteInfoVo() {
     }
 
     public BaseQuoteInfoVo(InsOrders insOrders) {
         super(insOrders);
         this.orderNo = insOrders.getOrderno();
+        this.vehicleAndVesselTax = insOrders.getVehicleAndVesselTax().toJavaObject(VehicleAndVesselTax.class);
     }
 
-    //    @NotBlank(message = "保险公司编号不能为空")
-//    private String insCompanyId;
-
 }

+ 51 - 0
src/main/java/com/ydtech/modules/order/entity/vo/VehicleAndVesselTax.java

@@ -0,0 +1,51 @@
+package com.ydtech.modules.order.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("车船税信息")
+@Data
+public class VehicleAndVesselTax implements Serializable {
+
+    private static final long serialVersionUID = 2478041289352466587L;
+
+    @ApiModelProperty("减免税凭证号 减免税时必传")
+    private String extendChar2;
+
+    @ApiModelProperty("减免比例  减税时必传")
+    private String taxRelief;
+
+    @ApiModelProperty("减免税原因代码  减免税时必传")
+    private String relifReason;
+
+    @ApiModelProperty("开具税务机关代码 减免完税时必传")
+    private String taxComCode;
+
+    @ApiModelProperty("开具凭证的税务机关名称 减免完税时必传")
+    private String taxComName;
+
+    @ApiModelProperty("完税凭证填发日期 完税时必传")
+    private String taxDocumentDate;
+
+    @ApiModelProperty("开具完税凭证地区代码 完税时必传")
+    private String taxPaidAreaCode;
+
+    @ApiModelProperty("完税凭证号 完税时必传")
+    private String paidFreeCertificate;
+
+    @ApiModelProperty("纳税人名称 正常缴税时必传")
+    private String taxpayerName;
+
+    @ApiModelProperty("纳税人证件类型 正常缴税时必传")
+    private String taxpayerIdentifier;
+
+    @ApiModelProperty("纳税人证件号码 正常缴税时必传")
+    private String identifyNumber;
+
+    @ApiModelProperty("车船税标志 1-正常交税; 2-免税; 3-减税; 4-完税")
+    private String taxRelifFlag;
+
+}

+ 9 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -1,8 +1,8 @@
 package com.ydtech.modules.order.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.ydtech.constants.enums.InsOrderStatus;
+import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.vo.*;
@@ -13,7 +13,6 @@ import com.ydtech.modules.order.entity.crawler.constants.CrawlerVerifyPaymentCon
 import com.ydtech.modules.order.entity.crawler.request.*;
 import com.ydtech.modules.order.entity.crawler.response.*;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
-import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
@@ -190,9 +189,16 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             kind = new QuoteKindRespVo();
             kind.setKindCode(kindInfoVo.getKindCode());
             kind.setKindName(kindInfoVo.getKindName());
-            kind.setAmount(kindInfoVo.getAmount());
+
             kind.setCoveragePremium(map.get(kindInfoVo.getKindCode()));
             kind.setUnitAmount(kindInfoVo.getUnitAmount());
+
+            if (InsurKind.A.getCode().equals(kindInfoVo.getKindCode())) {
+                kind.setAmount(map.get("A_amount"));
+            } else {
+                kind.setAmount(kindInfoVo.getAmount());
+            }
+
             if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
                 kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
             }

+ 0 - 2
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementProductCostsService.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.protocol.entity.dto.PltAgreementSchemeSaveDto;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.List;
 
 /**