Parcourir la source

任务池订单添加查询报价时间、已核保时间、缴费时间、更新时间、签单时间、更新状态(手动更新、自动更新)、是否外部订单

hxl13994548489 il y a 1 an
Parent
commit
0ccdc1d1e4

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

@@ -15,6 +15,7 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -519,6 +520,23 @@ public class InsAreaCompany implements Serializable {
     @TableField(value = "del_flag")
     private String delFlag;
 
+    //add by  hxl  添加时间相关
+    /**
+     * 核保时间
+     */
+    @TableField(value = "underwriting_time")
+    private Date underwritingTime;
+    /**
+     * 更新状态  1 手动更新   2. 自动更新
+     */
+    @TableField(value = "update_status")
+    private String updateStatus;
+    /**
+     * 更新时间
+     */
+    @TableField(value = "update_status_time")
+    private Date updateStatusTime;
+
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
         this.id = IdGenerate.nextId();
         this.orderno = quoteRespVo.getOrderno();

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

@@ -371,7 +371,17 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private String areaInfo;
 
+    @ApiModelProperty("核保时间")
+    @TableField(exist = false)
+    private String underwritingTime;
+
+    @ApiModelProperty("更新状态")
+    @TableField(exist = false)
+    private String updateStatus;
 
+    @ApiModelProperty("更新时间")
+    @TableField(exist = false)
+    private String updateStatusTime;
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单
         this.setQuoteno(String.valueOf(quoteInfoVo.getQuoteno()));

+ 18 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java

@@ -173,6 +173,24 @@ public class OrderQueryVo {
     @ApiModelProperty("审核人")
     private String checkUser;
 
+    @ApiModelProperty("核保开始时间")
+    private String auditStartDateStr;
+
+    @ApiModelProperty("核保结束时间")
+    private String auditEndDateStr;
+
+
+    @ApiModelProperty("更新开始时间")
+    private String updateStartDateStr;
+
+    @ApiModelProperty("更新结束时间")
+    private String updateEndDateStr;
+
+    @ApiModelProperty("更新状态")
+    private String updateStatus;
+
+
+
     public LocalDate getEndDatePlusOneDay() {
         if(ObjectUtils.isEmpty(endDate)){
             return endDate;

+ 31 - 6
src/main/java/com/ydtech/modules/order/service/impl/InsSubOrderUpdateDetailServiceImpl.java

@@ -1,14 +1,13 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.modules.base.controller.BaseController;
-import com.ydtech.modules.ins.model.InsTaskHistory;
-import com.ydtech.modules.ins.service.InsTaskHistoryService;
-import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.dao.InsSubOrderUpdateDetailMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrdersTrack;
 import com.ydtech.modules.order.entity.po.InsSubOrderUpdateDetail;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersTrackService;
 import com.ydtech.modules.order.service.InsSubOrderUpdateDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,6 +16,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author Administrator
@@ -27,6 +27,9 @@ import java.util.Date;
 public class InsSubOrderUpdateDetailServiceImpl extends ServiceImpl<InsSubOrderUpdateDetailMapper, InsSubOrderUpdateDetail>
         implements InsSubOrderUpdateDetailService {
 
+    @Autowired
+    private InsAreaCompanyService insAreaCompanyService;
+
     @Autowired
     private InsOrdersTrackService insOrdersTrackService;
 
@@ -76,15 +79,37 @@ public class InsSubOrderUpdateDetailServiceImpl extends ServiceImpl<InsSubOrderU
             }else if("2".equals(updateMethod)){
                 updateMethodRemark="自动更新为";
             }
+            Date date = new Date();
             updateRemark =new BaseController().getUser().getName()+"将子订单"+subOrder.getId()+"的"+oldRemark+updateMethodRemark+newRemark;
-            InsSubOrderUpdateDetail  detail =new InsSubOrderUpdateDetail(subOrder.getId(), subOrder.getOrderno(), updateMethod, new Date(), new BaseController().getUser().getId(), new BaseController().getUser().getName(), updateRemark,updateType, oldStatus, newStatus);
-            this.save(detail);
+            InsSubOrderUpdateDetail  detail =new InsSubOrderUpdateDetail(subOrder.getId(), subOrder.getOrderno(), updateMethod, date, new BaseController().getUser().getId(), new BaseController().getUser().getName(), updateRemark,updateType, oldStatus, newStatus);
+            //保证承保数据只有一条
+            if(InsOrderStatusEnum.WAIT_PAY.getCode().equals(oldStatus) &&  InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(newStatus)){
+                LambdaQueryWrapper<InsSubOrderUpdateDetail> lqw = new LambdaQueryWrapper<>();
+                lqw.eq(InsSubOrderUpdateDetail::getSubOrderNo, subOrder.getId());
+                lqw.eq(InsSubOrderUpdateDetail::getUpdateAfterStatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
+                List<InsSubOrderUpdateDetail> list = this.list(lqw);
+                if(list==null || list.size()==0) {
+                    this.save(detail);
+                }
+            }else{
+                this.save(detail);
+            }
+            InsAreaCompany old = insAreaCompanyService.getById(subOrder.getId());
+            //如果是状态为核保待缴费插入轨迹表
+            if(InsOrderStatusEnum.WAIT_AUDIT.getCode().equals(oldStatus) &&  InsOrderStatusEnum.WAIT_PAY.getCode().equals(newStatus)){
+                //更新核保时间
+                old.setUnderwritingTime(date);
+                insAreaCompanyService.updateById(old);
+            }
             //如果是状态为核保待缴费插入轨迹表
             if(InsOrderStatusEnum.WAIT_PAY.getCode().equals(oldStatus) &&  InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(newStatus)){
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 //插入轨迹表
                 InsOrdersTrack insOrdersTrack = new InsOrdersTrack(subOrder.getId(), subOrder.getCompanyId(), subOrder.getInscompany(), subOrder.getOrderno(), newStatus, new BaseController().getUser().getId(), new BaseController().getUser().getName(),updateRemark);
                 insOrdersTrackService.save(insOrdersTrack);
+                //更新状态   更新时间
+                old.setUpdateStatusTime(date);
+                old.setUpdateStatus(updateMethod);
+                insAreaCompanyService.updateById(old);
             }
 
         }

+ 38 - 2
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -54,6 +54,11 @@
         <result property="leaderId" column="leader_id" jdbcType="VARCHAR"/>
         <result property="underwritingStatus" column="underwritingStatus" jdbcType="INTEGER"/>
         <result property="entryStatus" column="entryStatus" jdbcType="VARCHAR"/>
+        <result property="underwritingTime" column="underwritingTime" jdbcType="TIMESTAMP"/>
+        <result property="payDate" column="payDate" jdbcType="TIMESTAMP"/>
+        <result property="updateStatus" column="updateStatus" jdbcType="VARCHAR"/>
+        <result property="updateStatusTime" column="updateStatusTime" jdbcType="TIMESTAMP"/>
+        <result property="signingTime" column="signingTime" jdbcType="TIMESTAMP"/>
     </resultMap>
     <resultMap id="OrderResultMap" type="com.ydtech.modules.order.entity.vo.OrderVo">
         <id property="orderno" column="orderno" jdbcType="VARCHAR"/>
@@ -936,7 +941,12 @@
         WHEN '3' THEN '电销'
         ELSE '' END
         AS managementSource,
-        io.entry_status  as entryStatus
+        io.entry_status  as entryStatus,
+        iac.underwriting_time as underwritingTime,
+        iac.pay_date  as payDate,
+        iac.update_status AS updateStatus,
+        iac.update_status_time AS updateStatusTime,
+        iac.signing_time as signingTime
         from
             ins_area_company iac
         left JOIN
@@ -952,7 +962,7 @@
         LEFT JOIN sys_area d2 ON d2.area_code = pdept.city
         LEFT JOIN sys_area d3 ON d3.area_code = pdept.area
         LEFT JOIN
-                sys_user u on io.userid = u.id
+        sys_user u on io.userid = u.id
         <where>
             <if test="agentUserIds != null and agentUserIds.size>0" >
                 AND (
@@ -1078,6 +1088,19 @@
             <if test="orderQueryVo.entryStatus != null and orderQueryVo.entryStatus != ''">
                 and io.entry_status = #{orderQueryVo.entryStatus }
             </if>
+            <if test="orderQueryVo.payStartDateStr != null and orderQueryVo.payEndDateStr != null">
+                and  DATE_FORMAT(iac.pay_date, '%Y-%m-%d') between #{orderQueryVo.payStartDateStr} AND #{orderQueryVo.payEndDateStr}
+            </if>
+
+            <if test="orderQueryVo.auditStartDateStr != null and orderQueryVo.auditEndDateStr != null">
+                and  DATE_FORMAT(iac.underwriting_time, '%Y-%m-%d') between #{orderQueryVo.auditStartDateStr} AND #{orderQueryVo.auditEndDateStr}
+            </if>
+            <if test="orderQueryVo.updateStartDateStr != null and orderQueryVo.updateEndDateStr != null">
+                and  DATE_FORMAT( iac.update_status_time, '%Y-%m-%d') between #{orderQueryVo.updateStartDateStr} AND #{orderQueryVo.updateEndDateStr}
+            </if>
+            <if test="orderQueryVo.updateStatus != null and orderQueryVo.updateStatus != null">
+                and  iac.update_status =  #{orderQueryVo.updateStatus}
+            </if>
         </where>
         order by io.createtime desc
     </select>
@@ -1219,6 +1242,19 @@
             <if test="orderQueryVo.entryStatus != null and orderQueryVo.entryStatus != ''">
                 and io.entry_status = #{orderQueryVo.entryStatus }
             </if>
+            <if test="orderQueryVo.payStartDateStr != null and orderQueryVo.payEndDateStr != null">
+                and  DATE_FORMAT(iac.pay_date, '%Y-%m-%d') between #{orderQueryVo.payStartDateStr} AND #{orderQueryVo.payEndDateStr}
+            </if>
+
+            <if test="orderQueryVo.auditStartDateStr != null and orderQueryVo.auditEndDateStr != null">
+                and  DATE_FORMAT(iac.underwriting_time, '%Y-%m-%d') between #{orderQueryVo.auditStartDateStr} AND #{orderQueryVo.auditEndDateStr}
+            </if>
+            <if test="orderQueryVo.updateStartDateStr != null and orderQueryVo.updateEndDateStr != null">
+                and  DATE_FORMAT( iac.update_status_time, '%Y-%m-%d') between #{orderQueryVo.updateStartDateStr} AND #{orderQueryVo.updateEndDateStr}
+            </if>
+            <if test="orderQueryVo.updateStatus != null and orderQueryVo.updateStatus != null">
+                and  iac.update_status =  #{orderQueryVo.updateStatus}
+            </if>
         </where>
         ) as s
     </select>