Browse Source

订单状态修改

wks 1 year ago
parent
commit
e9ed56b1f3

+ 19 - 44
src/main/java/com/ydtech/modules/ins/model/vo/RiskInfoVo.java

@@ -1,8 +1,13 @@
 package com.ydtech.modules.ins.model.vo;
 
 import com.ydtech.validation.annotation.CheckDateTime;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 
 /**
  * @author qinfenglong
@@ -10,6 +15,7 @@ import javax.validation.constraints.NotBlank;
  * @description RiskInfoVo
  * @since 2020/11/26 17:50
  */
+@Data
 public class RiskInfoVo {
     private double amount;
     private double premium;
@@ -26,51 +32,20 @@ public class RiskInfoVo {
     //注释添加 是否即使起保 1:是即使  空为否   lig 2023-10-07
     private String instantFlag;
 
-    public double getAmount() {
-        return amount;
-    }
-
-    public void setAmount(double amount) {
-        this.amount = amount;
-    }
-
-    public double getPremium() {
-        return premium;
-    }
-
-    public void setPremium(double premium) {
-        this.premium = premium;
-    }
-
-    public String getRiskCode() {
-        return riskCode;
-    }
-
-    public void setRiskCode(String riskCode) {
-        this.riskCode = riskCode;
-    }
-
-    public String getStartDate() {
-        return startDate;
-    }
-
-    public void setStartDate(String startDate) {
-        this.startDate = startDate;
-    }
+    @ApiModelProperty("到期天数")
+    private String expirationDay;
 
-    public String getEndDate() {
-        return endDate;
+    public void expirationTime() {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime dateTime = LocalDateTime.parse(endDate, formatter);
+        LocalDateTime now = LocalDateTime.now();
+        int i = now.compareTo(dateTime);
+        if (i > 0) {
+            long days = Duration.between(now, dateTime).toDays();
+            this.expirationDay = String.valueOf(days);
+        }else {
+            this.expirationDay = null;
+        }
     }
 
-    public void setEndDate(String endDate) {
-        this.endDate = endDate;
-    }
-
-    public String getInstantFlag() {
-        return instantFlag;
-    }
-
-    public void setInstantFlag(String instantFlag) {
-        this.instantFlag = instantFlag;
-    }
 }

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

@@ -12,6 +12,7 @@ import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserIsDial;
 import com.ydtech.modules.admin.service.SysUserIsDialService;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.fee.service.CostsCalcService;
 import com.ydtech.modules.ins.model.InsOrdersExcelVo;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
 import com.ydtech.modules.order.components.InsOrdersComponents;
@@ -22,11 +23,14 @@ import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.modules.scheme.service.PtlSchemeRulesService;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
@@ -39,6 +43,7 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -61,6 +66,10 @@ public class InsOrdersController extends BaseController {
 
     private final InsAreaCompanyPositionService insAreaCompanyPositionService;
 
+    private final InsFeeOrderNewService insFeeOrderNewService;
+
+    private final CostsCalcService costsCalcService;
+
     @Value("${upload.file.path}")
     private String uploadPath;
 
@@ -70,7 +79,7 @@ public class InsOrdersController extends BaseController {
     public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService,
                                InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService,
                                SysUserIsDialService sysUserIsDialService, BatchOrderService batchOrderService,
-                               InsAreaCompanyPositionService insAreaCompanyPositionService) {
+                               InsAreaCompanyPositionService insAreaCompanyPositionService, InsFeeOrderNewService insFeeOrderNewService, CostsCalcService costsCalcService) {
         this.insAreaCompanyService = insAreaCompanyService;
         this.insOrdersService = insOrdersService;
         this.insOrdersComponents = insOrdersComponents;
@@ -78,6 +87,8 @@ public class InsOrdersController extends BaseController {
         this.sysUserIsDialService = sysUserIsDialService;
         this.batchOrderService = batchOrderService;
         this.insAreaCompanyPositionService = insAreaCompanyPositionService;
+        this.insFeeOrderNewService = insFeeOrderNewService;
+        this.costsCalcService = costsCalcService;
     }
 
     @GetMapping("/getAgreementInsCompany")
@@ -166,12 +177,30 @@ public class InsOrdersController extends BaseController {
                 .orderByDesc(InsAreaCompany::getCreatetime)
                 .list();
 
+        List<String> insAreaCompanyIdList = insAreaCompanies.stream().map(InsAreaCompany::getId).collect(Collectors.toList());
+
+        List<InsFeeOrderNew> list = insFeeOrderNewService.lambdaQuery().in(InsFeeOrderNew::getInsOrderNo, insAreaCompanyIdList).list();
+        Map<String, InsFeeOrderNew> insFeeOrderNewMap = list.stream().collect(Collectors.toMap(InsFeeOrderNew::getInsOrderNo, x -> x));
+
         List<InsAreaCompanyHistoryVo> collect = insAreaCompanies.stream().map(a -> {
             InsAreaCompanyHistoryVo insAreaCompanyHistoryVo = new InsAreaCompanyHistoryVo();
             BeanUtils.copyProperties(a, insAreaCompanyHistoryVo);
             insAreaCompanyHistoryVo.setLicenseno(insOrders.getLicenseno());
             insAreaCompanyHistoryVo.setUserName(insOrders.getUsername());
             insAreaCompanyHistoryVo.setUserId(insOrders.getUserid());
+            InsFeeOrderNew insFeeOrderNew = insFeeOrderNewMap.get(a.getId());
+            SubOrderExportFeeVo subOrderExportFeeVo = costsCalcService.getExportFee(insFeeOrderNew);
+            insAreaCompanyHistoryVo.setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
+            insAreaCompanyHistoryVo.setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
+            insAreaCompanyHistoryVo.setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
+            insAreaCompanyHistoryVo.setJqExportRadio(subOrderExportFeeVo.getJqExportRadio());
+            insAreaCompanyHistoryVo.setSyExportRadio(subOrderExportFeeVo.getSyExportRadio());
+            insAreaCompanyHistoryVo.setNoExportRadio(subOrderExportFeeVo.getNoExportRadio());
+            insAreaCompanyHistoryVo.setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
+                    .add(subOrderExportFeeVo.getSyExportCosts())
+                    .add(subOrderExportFeeVo.getNoExportCosts()));
+            // 设置评分信息
+            insAreaCompanyHistoryVo.setRatingInformation();
             return insAreaCompanyHistoryVo;
         }).collect(Collectors.toList());
 
@@ -495,5 +524,11 @@ public class InsOrdersController extends BaseController {
         return HttpResult.ok(licenseList);
     }
 
+    @PostMapping("/queryInsuredInOrder")
+    @ApiOperation(value = "查询订单中的被保人")
+    public HttpResult<List<String>> queryInsuredInOrder(@RequestBody QueryLicenseInOrderVo queryInsuredInOrderVo){
+        List<String> insured =  insOrdersService.queryInsuredInOrder(queryInsuredInOrderVo);
+        return HttpResult.ok(insured);
+    }
 
 }

+ 10 - 2
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -138,8 +138,16 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
 
     /**
      * 查询某个时间段的车牌号
-     * @param queryLicenseInOrderVo
-     * @return
+     * @param queryLicenseInOrderVo 查询车牌实体
+     * @return 车牌号列表
      */
     List<String> queryLicense(@Param("queryLicenseInOrderVo") QueryLicenseInOrderVo queryLicenseInOrderVo, @Param("userId") String userId);
+
+    /**
+     * 查询某个时间段的被保人
+     * @param queryInsuredInOrderVo 查询被保人实体
+     * @param userId 用户id
+     * @return 被保人列表
+     */
+    List<String> queryInsured(@Param("queryInsuredInOrderVo") QueryLicenseInOrderVo queryInsuredInOrderVo, String userId);
 }

+ 69 - 0
src/main/java/com/ydtech/modules/order/entity/vo/InsAreaCompanyHistoryVo.java

@@ -1,11 +1,14 @@
 package com.ydtech.modules.order.entity.vo;
 
 import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+
 @EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
 @Data
@@ -16,4 +19,70 @@ public class InsAreaCompanyHistoryVo extends InsAreaCompany {
     @ApiModelProperty("车牌号")
     private String licenseno;
 
+    /**
+     * 出口返点信息   后置处理器处理
+     */
+    @ApiModelProperty("交强出口费用")
+    private BigDecimal jqExportFee;
+
+    @ApiModelProperty("商业出口费用")
+    private BigDecimal syExportFee;
+
+    @ApiModelProperty("非车出口费用")
+    private BigDecimal noExportFee;
+
+    @ApiModelProperty("交强出口比例")
+    private BigDecimal jqExportRadio;
+
+    @ApiModelProperty("商业出口比例")
+    private BigDecimal syExportRadio;
+
+    @ApiModelProperty("非车出口比例")
+    private BigDecimal noExportRadio;
+
+    @ApiModelProperty("总计出口费用")
+    private BigDecimal sumExportFee;
+
+    /**
+     * 评分类型数据
+     */
+    @ApiModelProperty("评分")
+    private String iLogPreUdwMess;
+
+    @ApiModelProperty("交强类型评分")
+    private String jqScore;
+
+    @ApiModelProperty("商业类型评分")
+    private String syScore;
+
+    @ApiModelProperty("总赔付率")
+    private double lossRation;
+
+    @ApiModelProperty("交强赔付率")
+    private double jqLossRation;
+
+    @ApiModelProperty("商业赔付率")
+    private double syLossRation;
+
+    @ApiModelProperty("总折扣率")
+    private double totalAdjustRate;
+
+    @ApiModelProperty("是否真单交")
+    private String iszdj;
+
+    public void setRatingInformation(){
+        // 评分
+        this.iLogPreUdwMess = this.getScore();
+        this.jqScore = this.getJqScore();
+        this.syScore = this.getSyScore();
+        // 赔付率
+        this.lossRation = this.getLossRation();
+        this.jqLossRation = this.getJqLossRation();
+        this.syLossRation = this.getSyLossRation();
+        // 折扣率
+        this.totalAdjustRate = this.getTotalAdjustRate();
+        this.iszdj = this.getIsDjq();
+    }
+
+
 }

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -265,4 +265,12 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @return 车牌列表
      */
     List<String> queryLicenseInOrder(QueryLicenseInOrderVo queryLicenseInOrderVo);
+
+    /**
+     * 查询订单中的被保人
+     * @param queryInsuredInOrderVo 查询实体
+     * @return 被保人列表
+     */
+    List<String> queryInsuredInOrder(QueryLicenseInOrderVo queryInsuredInOrderVo);
+
 }

+ 19 - 6
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -40,10 +40,7 @@ import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 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.RiskInfoVo;
+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;
@@ -57,6 +54,7 @@ import com.ydtech.modules.order.entity.dto.InquiryDetalsQueryDto;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.dto.TelemarketingAuditOrderDTO;
 import com.ydtech.modules.order.entity.vo.*;
+import com.ydtech.modules.order.entity.vo.OrderVo;
 import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
 import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo;
 import com.ydtech.modules.order.entity.vo.guoren.GuorenAccidentalDrivingVo;
@@ -472,6 +470,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, adminFalg, isCdy, deptId,isDxFlag);
         Long total = baseMapper.queryPageOrderCount(orderQueryVo, adminFalg, isCdy, deptId,isDxFlag);
         orderVoPage.setTotal(total);
+
+        List<InsOrders> records = orderVoPage.getRecords();
+        records.forEach(x->{
+            JSONArray risk = x.getRisk();
+            List<RiskInfoVo> javaList = risk.toJavaList(RiskInfoVo.class);
+            javaList.forEach(RiskInfoVo::expirationTime);
+            JSONArray objects = JSON.parseArray(JSON.toJSONString(javaList));
+            x.setRisk(objects);
+        });
+
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
                 orderVoPage.getPages()
                 , orderVoPage.getRecords());
@@ -1980,8 +1988,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     public List<String> queryLicenseInOrder(QueryLicenseInOrderVo queryLicenseInOrderVo) {
         String userId = BaseController.getUserId();
-        List<String> license = baseMapper.queryLicense(queryLicenseInOrderVo, userId);
-        return license;
+        return baseMapper.queryLicense(queryLicenseInOrderVo, userId);
+    }
+
+    @Override
+    public List<String> queryInsuredInOrder(QueryLicenseInOrderVo queryInsuredInOrderVo) {
+        String userId = BaseController.getUserId();
+        return baseMapper.queryInsured(queryInsuredInOrderVo, userId);
     }
 
     /**

+ 10 - 0
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -1733,4 +1733,14 @@
         </if>
     </select>
 
+    <select id="queryInsured" resultType="java.lang.String">
+        SELECT DISTINCT JSON_EXTRACT(insureinfo, '$.name')
+        from ins_orders
+        WHERE userid = #{userId}
+        <if test="queryInsuredInOrderVo.startDate != null and queryInsuredInOrderVo.startDate != '' and queryInsuredInOrderVo.endDate != null and queryInsuredInOrderVo.endDate != ''">
+            AND createtime BETWEEN #{queryInsuredInOrderVo.startDate} AND
+            #{queryInsuredInOrderVo.endDate}
+        </if>
+    </select>
+
 </mapper>