Explorar o código

Merge branch 'refs/heads/test' into master-20240326

wks %!s(int64=2) %!d(string=hai) anos
pai
achega
ee7e4686de
Modificáronse 21 ficheiros con 587 adicións e 34 borrados
  1. 40 0
      src/main/java/com/ydtech/modules/admin/service/impl/AppReportServiceImpl.java
  2. 7 0
      src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java
  3. 29 0
      src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesSumController.java
  4. 10 0
      src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryFeesSumMapper.java
  5. 8 0
      src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesEntity.java
  6. 80 0
      src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesSumEntity.java
  7. 3 0
      src/main/java/com/ydtech/modules/fnc/service/InsPlyIncomeService.java
  8. 10 0
      src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesSumService.java
  9. 171 23
      src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java
  10. 48 0
      src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesSumServiceImpl.java
  11. 10 3
      src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java
  12. 77 0
      src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesSumVo.java
  13. 4 0
      src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesVo.java
  14. 5 0
      src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java
  15. 2 1
      src/main/java/com/ydtech/modules/order/controller/BoHaiOrderApiController.java
  16. 24 3
      src/main/java/com/ydtech/modules/order/entity/api/bohai/request/QuotationRequest.java
  17. 31 0
      src/main/java/com/ydtech/modules/order/entity/api/bohai/response/QuotationResponse.java
  18. 12 4
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  19. 4 0
      src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml
  20. 9 0
      src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesSumMapper.xml
  21. 3 0
      src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

+ 40 - 0
src/main/java/com/ydtech/modules/admin/service/impl/AppReportServiceImpl.java

@@ -168,6 +168,9 @@ public class AppReportServiceImpl implements AppReportService {
                 list.add(new PremiumReportDto(str, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO));
             }
         }
+        //去除时间前面的数据
+        //短日期
+        dateStrs = getShortStrs(dateStrs, dateStr);
         return new PremiumReportAllDto(dateStr,jqPremium,syPremium,sumPremium,dateStrs,jqPremiumList,syPremiumList,sumPremiumList);
     }
     /**
@@ -201,9 +204,43 @@ public class AppReportServiceImpl implements AppReportService {
                 list.add(new EmployeeIncreaseReportDto(str,0));
             }
         }
+        //短日期
+        dateStrs = getShortStrs(dateStrs, dateStr);
         return new EmployeeIncreaseReportAllDto(dateStr,employeeIncreaseCount,dateStrs,employeeIncreaseList);
     }
 
+    private static List<String> getShortStrs(List<String> dateStrs, String dateStr) {
+        List<String> shortStrs=new ArrayList<>();
+        //去除时间前面的数据
+        for(String str: dateStrs) {
+            str = getStrBySize(str, dateStr);
+           shortStrs.add(str);
+        }
+        return shortStrs;
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/17 20:03
+     *  @Description:
+     */
+    public static String   getStrBySize(String str, String dateStr){
+        String[] strs = dateStr.split("-");
+        int size=strs.length;
+        //月
+        if(size==2){
+            str = str.split("-")[1]+"-"+str.split("-")[2];
+
+        }else if(size==3){
+            //日
+            str = str.split(" ")[1];
+        }else{
+            //年
+            str = str.split("-")[1];
+        }
+        return str;
+    }
     /**
      *  @version
      *  @author: hxl
@@ -247,6 +284,9 @@ public class AppReportServiceImpl implements AppReportService {
                 list.add(new RevenueReportDto(str,BigDecimal.ZERO,BigDecimal.ZERO,BigDecimal.ZERO));
             }
         }
+        //去除时间前面的数据
+        //短日期
+        dateStrs = getShortStrs(dateStrs, dateStr);
         return new RevenueReportAllDto(dateStr,haldingAmount,documentaryAmount,promotionAmount,dateStrs,haldingAmountList,documentaryAmountList,promotionAmountList);
     }
     /**

+ 7 - 0
src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java

@@ -149,6 +149,13 @@ public class InsPlyIncomeController extends BaseController {
 
         return insPlyIncomeService.batchBalance(insPlyIncomeVo);
     }
+    @PutMapping("/batchSumBalance")
+    @ApiModelProperty(value = "批次批量結算")
+    public HttpResult<Object> batchSumBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
+
+        return insPlyIncomeService.batchSumBalance(insPlyIncomeVo);
+    }
+
 
     @PutMapping("/batchPinBalance")
     @ApiModelProperty(value = "平台批量结算")

+ 29 - 0
src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesSumController.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.fnc.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesSumService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesSumVo;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@Api(tags = "开票批次表结算")
+@RequestMapping("/fnc/SettlementSumFees")
+public class SettlementDocumentaryFeesSumController {
+    @Autowired
+    private SettlementDocumentaryFeesSumService settlementDocumentaryFeesSumService;
+
+
+    @PutMapping("/voidInvoicing")
+    @ApiModelProperty(value = "作废开票")
+    public HttpResult<Object> voidInvoicing(@RequestBody SettlementDocumentaryFeesSumVo settlementDocumentaryFeesSumVo) {
+        HttpResult<Object>  result= settlementDocumentaryFeesSumService.voidInvoicing(settlementDocumentaryFeesSumVo);
+        return HttpResult.ok(result);
+    }
+}

+ 10 - 0
src/main/java/com/ydtech/modules/fnc/dao/SettlementDocumentaryFeesSumMapper.java

@@ -0,0 +1,10 @@
+package com.ydtech.modules.fnc.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesSumEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SettlementDocumentaryFeesSumMapper extends BaseMapper<SettlementDocumentaryFeesSumEntity> {
+}

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

@@ -153,6 +153,14 @@ public class SettlementDocumentaryFeesEntity implements Serializable {
     @TableField("completion_status")
     private String completionStatus;
 
+    @ApiModelProperty("开票号")
+    @TableField("invoice_id")
+    private String invoicId;
+
+    @ApiModelProperty("批次开票关联id")
+    @TableField("settlement_sum_id")
+    private String settlementSumId;
+
 
     @ApiModelProperty("图片路径")
     @TableField(exist = false)

+ 80 - 0
src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesSumEntity.java

@@ -0,0 +1,80 @@
+package com.ydtech.modules.fnc.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@Getter
+@Setter
+@TableName("settlement_documentary_fees_sum")
+@ApiModel(value = "settlementDocumentaryFeesSum", description = "开票批次表")
+public class SettlementDocumentaryFeesSumEntity   implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键")
+    @TableId("id")
+    private String id;
+
+    @ApiModelProperty("结算总金额")
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    private Date createTime;
+
+    @ApiModelProperty("保险id")
+    @TableField("company_id")
+    private String companyId;
+
+    @ApiModelProperty("是否是开票 结算")
+    @TableField("settlement_status")
+    private String settlementStatus;
+
+
+    @ApiModelProperty("用户")
+    @TableField("user_id")
+    private String userId;
+
+
+    @ApiModelProperty("开票方式")
+    @TableField("invoicing_method")
+    private String invoicingMethod;
+
+
+    @ApiModelProperty("开票号")
+    @TableField("invoice_id")
+    private String invoicId;
+
+    @ApiModelProperty("是否是非车")
+    @TableField("is_not_car")
+    private String isNotCar;
+
+    @ApiModelProperty("合作公司id")
+    @TableField("partner_companies_id")
+    private String partnerCompaniesId;
+
+
+    @ApiModelProperty("已开票已结算")
+    @TableField("invoiced_settled_amount")
+    private BigDecimal invoicedSettledAmount;
+
+    @ApiModelProperty("已开票未结算")
+    @TableField("Invoiced_not_settled_amount")
+    private BigDecimal InvoicedNotSettledAmount;
+
+    @ApiModelProperty("结清状态")
+    @TableField("completion_status")
+    private String completionStatus;
+}

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

@@ -139,4 +139,7 @@ public interface InsPlyIncomeService extends IService<InsPlyIncome> {
     void batchUpdateVoucher(InsPlyIncomeVo insPlyIncomeVo);
 
     HttpResult<Object> reconciliation(InsPlyIncomeVo insPlyIncomeVo);
+
+    HttpResult<Object> batchSumBalance(InsPlyIncomeVo insPlyIncomeVo);
+
 }

+ 10 - 0
src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesSumService.java

@@ -0,0 +1,10 @@
+package com.ydtech.modules.fnc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesSumEntity;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesSumVo;
+
+public interface SettlementDocumentaryFeesSumService extends IService<SettlementDocumentaryFeesSumEntity> {
+    HttpResult<Object> voidInvoicing(SettlementDocumentaryFeesSumVo settlementDocumentaryFeesSumVo);
+}

+ 171 - 23
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -28,6 +28,7 @@ import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
 import com.ydtech.modules.ins.model.vo.res.*;
 import com.ydtech.modules.inv.model.dto.*;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
+import com.ydtech.modules.inv.utils.LocalDateTimeUtils;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.dajia.response.NVHLODR1001Response;
@@ -69,7 +70,9 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -106,6 +109,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
     private ImportAsyncService importAsyncService;
     @Autowired
     private IncomeTaskRelationshipService incomeTaskRelationshipService;
+    @Autowired
+    private  SettlementDocumentaryFeesSumService settlementDocumentaryFeesSumService;
 
     @Value("${upload.file.path}")
     private String uploadPath;
@@ -1254,7 +1259,7 @@ handlingProportion,
             BigDecimal noNoTaxPremium = insPlyIncomeVo.getNoPremium();// 非车手续费  按照思路  非车不含税保费* 非车手续费比例  =非车手续费
             if (jqNoTaxPremium != null && insPlyIncomeVo.getJqSuperviseCostsProportion() != null && insPlyIncomeVo.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
 
-                insPlyIncome.setJqSuperviseCostsPremiums(getBigDecimal(syNoTaxPremium, insPlyIncomeVo.getJqSuperviseCostsProportion()));
+                insPlyIncome.setJqSuperviseCostsPremiums(getBigDecimal(jqNoTaxPremium, insPlyIncomeVo.getJqSuperviseCostsProportion()));
                 insPlyIncome.setJqSuperviseCostsProportion(insPlyIncomeVo.getJqSuperviseCostsProportion());
 
             }
@@ -1354,16 +1359,49 @@ handlingProportion,
         Long id = new SnowFlakeUtil().nextId();
         InsPlyIncome insPlyIncome = new InsPlyIncome();
         insPlyIncomeVo.setOrderno(id.toString());
+        String signdateStr = insPlyIncomeVo.getSignDate();
+        LocalDateTime localDateTime = this.LocalDatePareLocalDateTime(signdateStr);
+        insPlyIncomeVo.setSignDate(null);
         BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
         insPlyIncome.setUserId(BaseController.getUser().getId());
         insPlyIncome.setDocumentaryFeesStatus("0");
         insPlyIncome.setHandlingFeesStatus("0");
         insPlyIncome.setIsNotCar(insPlyIncomeVo.getIsNotCar());   // 是否是非车
         insPlyIncome.setIsNotDocumentary(insPlyIncomeVo.getIsNotDocumentary());  //是否是跟单
+        insPlyIncome.setSignDate(localDateTime);
+        insPlyIncome.setDeptId(BaseController.getUser().getDeptId());
+
+        insPlyIncome.setCreateTime(LocalDate.now());
+        insPlyIncome.setOtherFeerate(this.calculateTotal(insPlyIncomeVo.getJqOtherCostsProportion(),insPlyIncomeVo.getSyOtherCostsProportion(),insPlyIncomeVo.getNoOtherCostsProportion()));
+        insPlyIncome.setCommissionFeerate(this.calculateTotal(insPlyIncomeVo.getJqSuperviseCostsProportion(),insPlyIncomeVo.getSySuperviseCostsProportion(),insPlyIncomeVo.getNoSuperviseCostsProportion()));
 
+        if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getJqSuperviseCostsProportion() != null && insPlyIncome.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setJqSuperviseCostsPremiums(getBigDecimal(insPlyIncome.getJqPremium(), insPlyIncomeVo.getJqSuperviseCostsProportion()));
+        }
+        if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getSySuperviseCostsProportion() != null && insPlyIncome.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setSySuperviseCostsPremiums(getBigDecimal(insPlyIncome.getSyPremium(), insPlyIncomeVo.getSySuperviseCostsProportion()));
+        }
+        if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getNoSuperviseCostsProportion() != null && insPlyIncome.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setNoSuperviseCostsPremiums(getBigDecimal(insPlyIncome.getNoPremium(), insPlyIncomeVo.getNoSuperviseCostsProportion()));
+        }
+        if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getJqOtherCostsProportion() != null && insPlyIncome.getJqOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setJqOtherCostsPremium(getBigDecimal(insPlyIncome.getJqPremium(), insPlyIncomeVo.getJqOtherCostsProportion()));
+        }
+        if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getSyOtherCostsProportion() != null && insPlyIncome.getSyOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setSyOtherCostsPremium(getBigDecimal(insPlyIncome.getSyPremium(), insPlyIncomeVo.getSyOtherCostsProportion()));
+        }
+        if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getNoOtherCostsProportion() != null && insPlyIncome.getNoOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
+            insPlyIncome.setNoOtherCostsPremium(getBigDecimal(insPlyIncome.getNoPremium(), insPlyIncomeVo.getNoOtherCostsProportion()));
+        }
+        insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(),insPlyIncome.getOtherFeevalue(),null));
+
+        String partnerCompaniesId = insPlyIncome.getPartnerCompaniesId();
+        insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
+        EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
+        String name = esmInsCompany.getNamesimple();   //合作名称
+        insPlyIncome.setPartnerCompaniesName(name);
         HashMap<String, Object> params = new HashMap<>();
-        params.put("companyId", insPlyIncomeVo.getCompanyId());
-        params.put("partnerCompaniesId", insPlyIncomeVo.getPartnerCompaniesId());
+        params.put("agreeId",insPlyIncomeVo.getAgreeId());
 
         PtlAgreement ptlAgreement = ptlAgreementService.selectAgreeId(params);
         if (ObjectUtils.isEmpty(ptlAgreement)) {
@@ -1375,28 +1413,20 @@ handlingProportion,
         insPlyIncomeVo.setCrudStatus("1");
         this.saveLog(insPlyIncomeVo);   //添加日志
 
-//        HashMap<String, Object> params = new HashMap<>();
-//
-//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())){
-//            params.put("isNotCar",insPlyIncomeVo.getIsNotCar());
-//        }
-//        params.put("isOther","1");
-//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getYear())){
-//            params.put("year",insPlyIncomeVo.getYear());
-//        }
-//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyId())){
-//            params.put("companyId",insPlyIncomeVo.getCompanyId());
-//        }
-//
-//        List<InsPlyIncome> list= this.baseMapper.NonSettlementQuery(params);
-//        if(!CollectionUtils.isEmpty(list)){
-//            for (InsPlyIncome item :list){
-//                return HttpResult.ok(item.getIds());
-//            }
-//        }
         return HttpResult.ok();
     }
 
+    private LocalDateTime LocalDatePareLocalDateTime(String signdateStr) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+        // 将字符串解析为LocalDate
+        LocalDate signdate = LocalDate.parse(signdateStr, formatter);
+        // 创建一个 LocalTime 对象表示中午12点
+        LocalTime noon = LocalTime.of(12, 0);
+        // 使用 LocalDate 和 LocalTime 来创建 LocalDateTime
+        return  LocalDateTime.of(signdate, noon);
+    }
+
     /**
      *   删除id  已开票或者已结算都不可以进行 删除
      *    因为跟单没有关联表 也无法关联到开票表所以只能按照 条件去查询判断 保司机构 id
@@ -1519,7 +1549,7 @@ handlingProportion,
 
         String id = insPlyIncomeVo.getId();   //  开票id
         SettlementDocumentaryFeesEntity settlementDocumentaryFeesServiceById = settlementDocumentaryFeesService.getById(id);  //
-        BigDecimal allAmount = settlementDocumentaryFeesServiceById.getTotalAmount();
+        BigDecimal allAmount = settlementDocumentaryFeesServiceById.getSettlementAmount();
 
 
         HashMap<String, Object> params = new HashMap<>();
@@ -1565,6 +1595,88 @@ handlingProportion,
         return HttpResult.ok();
     }
 
+    @Override
+    public HttpResult<Object> batchSumBalance(InsPlyIncomeVo insPlyIncomeVo) {
+
+        List<InsPlyIncomeVo> multipleSelection = insPlyIncomeVo.getMultipleSelection();
+        HashMap<String, Object> params = new HashMap<>();
+        BigDecimal settleMentAmount = BigDecimal.ZERO;
+        BigDecimal settleNotMentAmount = BigDecimal.ZERO;
+        for (InsPlyIncomeVo item :  multipleSelection){
+            SettlementDocumentaryFeesEntity settlementDocumentaryFeesVo = new SettlementDocumentaryFeesEntity();
+            if(item.getSettlementAmount()  ==null  ||  item .getSettlementAmount().compareTo(BigDecimal.ZERO) <0){
+                throw new SystemException("请输入正确金额");
+            }
+            String id = item.getId();
+            SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = settlementDocumentaryFeesService.getBaseMapper().selectById(id);   // 开票
+            BigDecimal invoicedNotSettledAmount = settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount();//未结算金额
+            if(item.getSettlementAmount().compareTo(invoicedNotSettledAmount) >0){
+                throw new SystemException("结算金额大于未结算金额");
+            }
+            if(item.getSettlementAmount().compareTo(BigDecimal.ZERO) >0){
+                settlementDocumentaryFeesVo.setInvoiceId(settlementDocumentaryFeesEntity.getInvoicId());   //开票号
+                settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime());   //结算时间
+                settlementDocumentaryFeesVo.setSettlementStatus("2");   //2为结算状态
+                settlementDocumentaryFeesVo.setCompanyId(settlementDocumentaryFeesEntity.getCompanyId());  // 保险公司id
+                settlementDocumentaryFeesVo.setPartnerCompaniesId(settlementDocumentaryFeesEntity.getPartnerCompaniesId());  //合作公司id
+                settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount()));  //未结算金额
+                settlementDocumentaryFeesVo.setIsNotCar(settlementDocumentaryFeesEntity.getIsNotCar()); // 是否是非车
+                settlementDocumentaryFeesVo.setInvoicingMethod(settlementDocumentaryFeesEntity.getInvoicingMethod());  //开票方式
+                settlementDocumentaryFeesVo.setTaxPoints(settlementDocumentaryFeesEntity.getTaxPoints());  //税点
+                settlementDocumentaryFeesVo.setSettlementImageId(settlementDocumentaryFeesEntity.getSettlementImageId());
+                if ("0".equals(insPlyIncomeVo.getInvoicingMethod())) {
+                    settlementDocumentaryFeesVo.setExpendAmount(settlementDocumentaryFeesEntity.getSettlementAmount().multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
+                } else {
+                    settlementDocumentaryFeesVo.setExpendAmount(settlementDocumentaryFeesEntity.getSettlementAmount());   //进账金额
+                }
+                settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());   //进账金额
+                settlementDocumentaryFeesVo.setHandlingFeesStatus(settlementDocumentaryFeesEntity.getHandlingFeesStatus());
+                settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
+                settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
+                settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
+                settlementDocumentaryFeesVo.setAgreementType("2");  //1平台 2  保险
+
+                //       生成跟单费结算记录
+                SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
+                settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount());  // 结算金额
+                settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
+                settlementDocumentaryLogEntity.setAmountType("2");  //跟单费结算
+                settlementDocumentaryLogEntity.setCreateTime(new Date());
+                settlementDocumentaryFeesVo.setSettlementSumId(insPlyIncomeVo.getSettlementSumId());
+                settlementDocumentaryFeesService.getBaseMapper().insert(settlementDocumentaryFeesVo);
+                settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
+                //修改开票金额
+
+                BigDecimal add = settlementDocumentaryFeesEntity.getInvoicedSettledAmount().add(insPlyIncomeVo.getSettlementAmount());
+                settlementDocumentaryFeesEntity.setInvoicedSettledAmount(add);
+
+                BigDecimal subtract = settlementDocumentaryFeesEntity.getTotalAmount().subtract(add);
+                settlementDocumentaryFeesEntity.setInvoicedNotSettledAmount(subtract);
+
+                if (subtract.compareTo(BigDecimal.ZERO) == 0) {
+                    settlementDocumentaryFeesEntity.setCompletionStatus("2");
+                } else if (subtract.compareTo(BigDecimal.ZERO) != 0) {
+                    settlementDocumentaryFeesEntity.setCompletionStatus("1");
+                }
+                settlementDocumentaryFeesService.updateById(settlementDocumentaryFeesEntity);
+                settleMentAmount = settleMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedSettledAmount());
+                settleNotMentAmount = settleNotMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount());
+            }
+//             更新金额
+
+
+            SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = settlementDocumentaryFeesSumService.getById(insPlyIncomeVo.getSettlementSumId());
+            settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(settleMentAmount);
+            settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(settleNotMentAmount);
+            if (settleNotMentAmount.compareTo(BigDecimal.ZERO) == 0) {
+                settlementDocumentaryFeesSumEntity.setCompletionStatus("2");
+            } else if (settleNotMentAmount.compareTo(BigDecimal.ZERO) != 0) {
+                settlementDocumentaryFeesSumEntity.setCompletionStatus("1");
+            }
+            settlementDocumentaryFeesSumService.updateById(settlementDocumentaryFeesSumEntity);
+        }
+        return null;
+    }
     /**
      * @param insPlyIncomeVo
      * @return
@@ -1947,9 +2059,39 @@ handlingProportion,
         } else {
             settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getSettlementAmount());
         }
+//        跟单生成批次表
+        SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
+        settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
         return settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
     }
 
+    private SettlementDocumentaryFeesSumEntity saveSumSettlement(InsPlyIncomeVo insPlyIncomeVo) {
+        String handlingFeesStatus = insPlyIncomeVo.getHandlingFeesStatus();
+        SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = new SettlementDocumentaryFeesSumEntity();
+        BigDecimal totalAmount = BigDecimal.ZERO;
+        if("1".equals(handlingFeesStatus)){
+            List<InsPlyIncomeVo> nowInsPlyIncomeVo = insPlyIncomeVo.getMultipleSelection();
+            for (InsPlyIncomeVo  item:  nowInsPlyIncomeVo ){
+                totalAmount =  totalAmount.add(item.getSettlementAmount()) ;
+            }
+            settlementDocumentaryFeesSumEntity.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
+            settlementDocumentaryFeesSumEntity.setCompanyId(insPlyIncomeVo.getCompanyId());
+            settlementDocumentaryFeesSumEntity.setCreateTime(new Date());
+            settlementDocumentaryFeesSumEntity.setInvoicId(insPlyIncomeVo.getInvoicId());
+            settlementDocumentaryFeesSumEntity.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod());
+            settlementDocumentaryFeesSumEntity.setIsNotCar(insPlyIncomeVo.getIsNotCar());
+            settlementDocumentaryFeesSumEntity.setSettlementStatus("1");
+            settlementDocumentaryFeesSumEntity.setUserId(BaseController.getUser().getId());
+            settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(BigDecimal.ZERO);
+            settlementDocumentaryFeesSumEntity.setCompletionStatus("0");
+            settlementDocumentaryFeesSumEntity.setTotalAmount(totalAmount);// 开票总额
+            settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(totalAmount);
+            settlementDocumentaryFeesSumService.getBaseMapper().insert(settlementDocumentaryFeesSumEntity);
+            return settlementDocumentaryFeesSumEntity;
+        }
+        return settlementDocumentaryFeesSumEntity;
+    }
+
     @Override
     public HttpResult pinHandlingexcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
         HashMap<String, Object> params = new HashMap<>();
@@ -2230,11 +2372,14 @@ handlingProportion,
     }
 
     @Override
+    @Transactional
     public HttpResult<Object> singleInvoic(InsPlyIncomeVo insPlyIncomeVo) {
 
         //  通过ids 查出跟单非结算单
         SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();  // 生成跟单费结算表
         if (!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())) {
+            SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
+
             for (InsPlyIncomeVo insPlyIncomeVo1 : insPlyIncomeVo.getMultipleSelection()) {
 
                 insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
@@ -2297,6 +2442,7 @@ handlingProportion,
                     BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
                     settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
                 }
+                settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
                 settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
             }
         }
@@ -2492,4 +2638,6 @@ handlingProportion,
         return HttpResult.ok();
     }
 
+
+
 }

+ 48 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesSumServiceImpl.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.fnc.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
+import com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesSumMapper;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesSumEntity;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesSumService;
+import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesSumVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SettlementDocumentaryFeesSumServiceImpl extends ServiceImpl<SettlementDocumentaryFeesSumMapper, SettlementDocumentaryFeesSumEntity> implements SettlementDocumentaryFeesSumService {
+    @Autowired
+    private SettlementDocumentaryFeesService settlementDocumentaryFeesService;
+
+    @Override
+    @Transactional
+    public HttpResult<Object> voidInvoicing(SettlementDocumentaryFeesSumVo settlementDocumentaryFeesSumVo) {
+        String id = settlementDocumentaryFeesSumVo.getId();
+        SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = baseMapper.selectById(id);
+        settlementDocumentaryFeesSumEntity.getCompletionStatus();
+        if (!"0".equals(settlementDocumentaryFeesSumEntity.getCompletionStatus())) {
+            throw new SystemException("已结算不能进行作废");
+        }
+        settlementDocumentaryFeesSumEntity.setSettlementStatus("3");  // 作废
+        baseMapper.updateById(settlementDocumentaryFeesSumEntity);
+
+
+        LambdaQueryWrapper<SettlementDocumentaryFeesEntity> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SettlementDocumentaryFeesEntity::getSettlementSumId, id);
+        List<SettlementDocumentaryFeesEntity> settlementDocumentaryFeesEntities = settlementDocumentaryFeesService.getBaseMapper().selectList(queryWrapper);
+        for (SettlementDocumentaryFeesEntity item : settlementDocumentaryFeesEntities) {
+            item.setSettlementStatus("3");
+            settlementDocumentaryFeesService.updateById(item);
+        }
+        return HttpResult.ok();
+    }
+}

+ 10 - 3
src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java

@@ -50,9 +50,8 @@ public class InsPlyIncomeVo implements Serializable {
     private LocalDate endDate;
 
 
-//    @ApiModelProperty(value = "签单日期")
-//    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-//    private LocalDate signdate;
+    @ApiModelProperty(value = "签单日期")
+    private String signDate;
 
     @ApiModelProperty(value = "创建日期")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss ", timezone = "GMT+8")
@@ -254,6 +253,9 @@ public class InsPlyIncomeVo implements Serializable {
     @ApiModelProperty("非车跟单比例")
     private BigDecimal noOtherCostsProportion;
 
+    @ApiModelProperty("车船税")
+    private BigDecimal taxamount;
+
 
     @ApiModelProperty("被保人名称")
     private String insuredName;
@@ -354,6 +356,11 @@ public class InsPlyIncomeVo implements Serializable {
 
     @ApiModelProperty(value = "年度结束")
     private String yearEnd;
+    @ApiModelProperty(value = "协议id")
+    private String agreeId;
+
+    @ApiModelProperty("批次开票关联id")
+    private String settlementSumId;
 
 
 

+ 77 - 0
src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesSumVo.java

@@ -0,0 +1,77 @@
+package com.ydtech.modules.fnc.vo;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("开票批次表")
+public class SettlementDocumentaryFeesSumVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("id")
+    private String id;
+
+
+    @ApiModelProperty("结算总金额")
+    private BigDecimal totalAmount;
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    @ApiModelProperty("保险id")
+    private String companyId;
+
+    @ApiModelProperty("是否是开票 结算")
+    private String settlementStatus;
+
+
+    @ApiModelProperty("用户")
+    private String userId;
+
+
+    @ApiModelProperty("开票方式")
+    private String invoicingMethod;
+
+
+    @ApiModelProperty("开票号")
+    private String invoicId;
+
+    @ApiModelProperty("是否是非车")
+    private String isNotCar;
+
+    @ApiModelProperty("合作公司id")
+    private String partnerCompaniesId;
+
+
+    @ApiModelProperty("已开票已结算")
+    private BigDecimal invoicedSettledAmount;
+
+    @ApiModelProperty("已开票未结算")
+    private BigDecimal InvoicedNotSettledAmount;
+
+    @ApiModelProperty("结清状态")
+    private String completionStatus;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize=20;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum=1;
+
+}

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

@@ -129,4 +129,8 @@ public class SettlementDocumentaryFeesVo implements Serializable {
 
     @ApiModelProperty("结清状态")
     private String completionStatus;
+
+    @ApiModelProperty("批次开票关联id")
+    private String settlementSumId;
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -169,6 +169,11 @@ public class QuoteRespVo {
     @ApiModelProperty("商业出险次数")
     private String syClaims;
 
+    @ApiModelProperty("期望折扣")
+    private String expectedDiscount;
+
+    @ApiModelProperty("初始建议折扣")
+    private String initialProposalDiscount;
 
     public void setJqClaims(String jqClaims) {
         this.jqClaims = StringUtils.isEmpty(jqClaims) ? null : jqClaims;

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

@@ -70,7 +70,8 @@ public class BoHaiOrderApiController {
     @PostMapping(value = "/submitImage")
     @ApiOperation(value = "提交影像信息")
     public HttpResult<Object> submitImage(@RequestSingleParam(value = "companyId") String companyId) throws Exception {
-        return this.boHaiOrderApiService.submitImage(companyId);
+//        return this.boHaiOrderApiService.submitImage(companyId);
+        return HttpResult.ok();
     }
 
     @AuditVerification("核保")

+ 24 - 3
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/QuotationRequest.java

@@ -59,14 +59,15 @@ public class QuotationRequest extends BoHaiBaseRequest {
                             String currentValue,
                             String orderNO,
                             CarInfoVo carInfo,
-                            List<BoHaiQuoteAccidentVo> accidentVo) {
+                            List<BoHaiQuoteAccidentVo> accidentVo,
+                            String discount) {
         this.setBaseParam(parameters, orderNO);
         this.argueSolution = "1";
         for (RiskInfoVo riskInfoVo : riskList) {
             if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                 this.trafficPolicy = new TrafficPolicyDTO(riskInfoVo);
             } else if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
-                this.businessPolicy = new BusinessPolicyDTO(riskInfoVo, kindList, currentValue, carInfo);
+                this.businessPolicy = new BusinessPolicyDTO(riskInfoVo, kindList, currentValue, carInfo, discount);
             }
         }
         this.unAutos = accidentVo.stream().map(UnAutoDTO::new).collect(Collectors.toList());
@@ -150,10 +151,30 @@ public class QuotationRequest extends BoHaiBaseRequest {
         @JsonProperty("endDate")
         private String endDate;
 
-        public BusinessPolicyDTO(RiskInfoVo riskInfoVo, List<KindInfoVo> kindList, String currentValue, CarInfoVo carInfo) {
+        @JsonProperty("floatingRateOption")
+        private FloatingRateOptionDTO floatingRateOption;
+
+
+        public BusinessPolicyDTO(RiskInfoVo riskInfoVo, List<KindInfoVo> kindList, String currentValue, CarInfoVo carInfo, String floatingRate) {
             this.startDate = riskInfoVo.getStartDate();
             this.endDate = riskInfoVo.getEndDate();
             this.coverages = CoveragesDTO.toCoveragesDTOList(kindList, currentValue, carInfo);
+            this.floatingRateOption = new FloatingRateOptionDTO(floatingRate);
+        }
+
+
+        @NoArgsConstructor
+        @Data
+        public static class FloatingRateOptionDTO implements Serializable {
+
+            private static final long serialVersionUID = 7069606640083303229L;
+
+            @JsonProperty("floatingRate")
+            private String floatingRate;
+
+            public FloatingRateOptionDTO(String floatingRate) {
+                this.floatingRate = floatingRate;
+            }
         }
 
         @NoArgsConstructor

+ 31 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/QuotationResponse.java

@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
@@ -180,6 +181,36 @@ public class QuotationResponse extends BoHaiBaseResponse {
             @JsonProperty("errorMsg")
             private String errorMsg;
 
+            @JsonProperty("floatingRateOption")
+            private FloatingRateOptionDTO floatingRateOption;
+
+
+            @NoArgsConstructor
+            @Data
+            public static class FloatingRateOptionDTO implements Serializable {
+
+                private static final long serialVersionUID = -4148788116305981598L;
+
+                @JsonProperty("maxFloatingRate")
+                private String maxFloatingRate;
+
+                @JsonProperty("minFloatingRate")
+                private String minFloatingRate;
+
+                @JsonProperty("floatingRate")
+                private String floatingRate;
+
+                @JsonProperty("nonClaimDiscountRate")
+                private String nonClaimDiscountRate	;
+
+                @JsonProperty("trafficTransgressRate")
+                private String trafficTransgressRate;
+
+                @JsonProperty("adjustFactor")
+                private String adjustFactor;
+            }
+
+
             @NoArgsConstructor
             @Data
             public static class CoveragesDTO implements Serializable {

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

@@ -42,6 +42,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -140,8 +141,10 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         // 车辆实际价值
         String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
         // 4. 报价接口
+        String discount = quoteVo.getDiscount();
+
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
-                currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
+                currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo(), discount);
         QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
         //商业险重复投保  重复投保保单信息 :保单号:314042303060007485车牌号:晋A881SR车架号:LMGAC1381K1535834发动机号:F699317保险公司代码:YAIC签单日期:20230414起保日期:202305030000
         // 终保日期:202405030000险别:机动车第三者责任保险,附加医保外用药责任险(机动车第三者责任保险)
@@ -208,7 +211,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
      */
     private QuotationResponse getQuotationResponseNew(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo,
                                                       BoHaiConfigureParameters parameters, String orderNo, CarInfoVo carInfo,
-                                                      String currentValue, QuotationResponse response) throws Exception {
+                                                      String currentValue, QuotationResponse response, String discount) throws Exception {
         VehicleCheckCodeRequest vehicleCheckCodeRequest = new VehicleCheckCodeRequest(parameters, orderNo, carInfo.getVinNo(),
                 carInfo.getEngineNo(), carInfo.getLicenseNo());
         VehicleCheckCodeResponse vehicleCheckCodeResponse = boHaiRequestApiComponent.getVehicleCheckCode(vehicleCheckCodeRequest,
@@ -217,7 +220,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             String checkCode = vehicleCheckCodeResponse.getData().getCheckCode();
             //重新报价
             QuotationRequest quotationRequestNew = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
-                    currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
+                    currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo(), discount);
             List<QuotationRequest.CheckInfoDTO> checkInfoList = new ArrayList<QuotationRequest.CheckInfoDTO>();
             QuotationRequest.CheckInfoDTO checkInfo = new QuotationRequest.CheckInfoDTO("2", checkCode, "N");
             checkInfoList.add(checkInfo);
@@ -608,7 +611,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 kindList1.add(kind);
             }
         }
-
         quoteRespVo.setKindList(kindList1);
 
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
@@ -617,6 +619,12 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         if (!ObjectUtils.isEmpty(unAutoPremium)) {
             jyPremium = StringUtils.isEmpty(unAutoPremium.getPremium()) ? 0 : Double.parseDouble(unAutoPremium.getPremium());
         }
+
+        // 保费浮动项信息
+        QuotationResponse.DataDTO.BusinessPolicyDTO.FloatingRateOptionDTO floatingRateOption = response.getData().getBusinessPolicy().getFloatingRateOption();
+        quoteRespVo.setExpectedDiscount(floatingRateOption.getAdjustFactor());
+        quoteRespVo.setInitialProposalDiscount(floatingRateOption.getNonClaimDiscountRate());
+
         //  报价险种放入保费
         List<QuoteRiskRespVo> riskList1 = QuoteRiskRespVo.toQuoteRiskRespVoList(riskList, jqPremium, syPremium);
 

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

@@ -61,6 +61,7 @@
             a.invoiced_settled_amount as "invoicedSettledAmount",
             a.Invoiced_not_settled_amount as "InvoicedNotSettledAmount",
             a.completion_status as "completionStatus",
+            a.settlement_sum_id as "settlementSumId",
             upf.url as "imageUrl",
             a.unsettled_amount as "unsettledAmount"
             from  settlement_documentary_fees  a
@@ -88,6 +89,9 @@
             <if test="completionStatus !=null  and  completionStatus  !=''">
                 and a.completion_status =#{completionStatus}
             </if>
+            <if test="settlementSumId !=null  and  settlementSumId  !=''">
+                and a.settlement_sum_id =#{settlementSumId}
+            </if>
         </where>
         ORDER  BY  a.create_time desc
     </select>

+ 9 - 0
src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesSumMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesSumMapper">
+
+
+
+
+
+</mapper>

+ 3 - 0
src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

@@ -132,6 +132,9 @@
             <if test="partnerCompaniesId  !=null  and   partnerCompaniesId  !=''" >
                   and   a.partner_companies_id =#{partnerCompaniesId}
             </if>
+          <if test="agreeId  !=null  and   agreeId  !=''" >
+                  and   a.id =#{agreeId}
+            </if>
         </where>
         limit  1
     </select>