y 2 жил өмнө
parent
commit
1d5a913699

+ 9 - 0
src/main/java/com/ydtech/modules/inv/controller/InvSourceController.java

@@ -1,6 +1,10 @@
 package com.ydtech.modules.inv.controller;
 
+import cn.hutool.core.date.DateTime;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.inv.model.po.InvSource;
 import com.ydtech.modules.inv.service.InvReceivableService;
 import com.ydtech.modules.inv.service.InvSourceService;
 import io.swagger.annotations.Api;
@@ -11,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Arrays;
+import java.util.Date;
 
 /**
  * @author jianlong
@@ -53,10 +58,14 @@ public class InvSourceController {
 
     @GetMapping("excel")
     public HttpResult readExcel(@RequestParam("file") String file ) {
+
         String[] pathSegments = file.split("/");
         int index = findIndex(pathSegments,"upload");
         String[] subarray = Arrays.copyOfRange(pathSegments, index+1, pathSegments.length);
         String filename = concatenateWithSlash(subarray);
+
+
+
         HttpResult httpResult = invSourceService.readExcel(filename);
         invReceivableService.syncStatus();
         return httpResult;

+ 20 - 0
src/main/java/com/ydtech/modules/inv/model/po/InvSource.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.inv.model.po;
 
+import cn.hutool.core.date.DateTime;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.HeadFontStyle;
@@ -342,6 +343,23 @@ public class InvSource implements Serializable {
     @ExcelProperty("保司结算状态")
     private String insuranceClearingState;
 
+    /**
+     * 导入日期
+     */
+    @TableField(value = "revenue_time")
+    @ApiModelProperty("导入日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ExcelProperty("导入日期")
+    private String revenueTime;
+
+    /**
+     * 导入人名字
+     */
+    @TableField(value = "revenue_name")
+    @ApiModelProperty("导入人名字")
+    @ExcelProperty("导入人名字")
+    private String revenueName;
+
     @TableField(exist = false)
     private String[] ids;
 
@@ -399,4 +417,6 @@ public class InvSource implements Serializable {
             this.setSubsidyRatio(new BigDecimal(0));
         }
     }
+
+
 }

+ 24 - 0
src/main/java/com/ydtech/modules/inv/model/vo/InvSourceQueryVo.java

@@ -1,11 +1,14 @@
 package com.ydtech.modules.inv.model.vo;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ydtech.core.page.PageRequest;
+import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.thymeleaf.util.DateUtils;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -290,6 +293,27 @@ public class InvSourceQueryVo extends PageRequest implements Serializable {
     @ApiModelProperty("保司结算状态")
     private String insuranceClearingState;
 
+    /**
+     * 导入日期
+     */
+    @TableField(value = "revenue_time")
+    @ApiModelProperty("导入日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String revenueTime;
+    private String revenueTimeStartTime;
+    private String revenueTimeEndTime;
+
+    /**
+     * 导入人名字
+     */
+    @TableField(value = "revenue_name")
+    @ApiModelProperty("导入人名字")
+    private String revenueName;
+
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
+
+
+
 }

+ 4 - 0
src/main/java/com/ydtech/modules/inv/model/vo/ReceivableAndSettlementQueryVo.java

@@ -46,4 +46,8 @@ public class ReceivableAndSettlementQueryVo extends PageRequest {
     private String clearingState; // 结算状态
     @ApiModelProperty(value = "保司结算状态")
     private String insuranceClearingState;
+    @ApiModelProperty(value = "应收导入开始时间")
+    private String revenueTimeStartTime; // 应收导入开始时间
+    @ApiModelProperty(value = "应收导入结束时间")
+    private String revenueTimeEndTime; // 应收导入结束时间
 }

+ 4 - 0
src/main/java/com/ydtech/modules/inv/model/vo/ReceivableAndSettlementVo.java

@@ -192,4 +192,8 @@ public class ReceivableAndSettlementVo {
     @ApiModelProperty(value = "保司结算状态")
     @ExcelProperty(value = "保司结算状态")
     private String insuranceClearingState;
+
+    @ApiModelProperty(value = "应收导入时间")
+    @ExcelProperty(value = "应收导入时间")
+    private String revenueTime;
 }

+ 13 - 6
src/main/java/com/ydtech/modules/inv/service/impl/InvReceivableServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.inv.service.impl;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,10 +22,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -362,8 +360,11 @@ public class InvReceivableServiceImpl implements InvReceivableService {
             invSourceQueryVo.setClearingTimeStartTime(split1[0]);
             invSourceQueryVo.setClearingTimeEndTime(split1[1]);
         }
-
-
+        if (invSourceQueryVo.getRevenueTime() != null && !"".equals(invSourceQueryVo.getRevenueTime())) {
+            String[] split1 = invSourceQueryVo.getRevenueTime().split(",");
+            invSourceQueryVo.setRevenueTimeStartTime(split1[0]);
+            invSourceQueryVo.setRevenueTimeEndTime(split1[1]);
+        }
         Page<InvSource> pageData = invSourceMapper.getRecivablePage(page, invSourceQueryVo);
         List<InvSource> records = pageData.getRecords();
         records.forEach(x -> {
@@ -553,6 +554,12 @@ public class InvReceivableServiceImpl implements InvReceivableService {
         Page page = new Page();
         page.setCurrent(receivableAndSettlementQueryVo.getPageNum());
         page.setSize(receivableAndSettlementQueryVo.getPageSize());
+        InvSourceQueryVo invSourceQueryVo = new InvSourceQueryVo();
+        if (invSourceQueryVo.getRevenueTime() != null && !"".equals(invSourceQueryVo.getRevenueTime())) {
+            String[] split1 = invSourceQueryVo.getRevenueTime().split(",");
+            invSourceQueryVo.setRevenueTimeStartTime(split1[0]);
+            invSourceQueryVo.setRevenueTimeEndTime(split1[1]);
+        }
         Page<ReceivableAndSettlementVo> receivableAndSettlementPage = invReceivableMapper.getReceivableAndSettlementPage(page,
                 receivableAndSettlementQueryVo);
         return receivableAndSettlementPage;

+ 16 - 1
src/main/java/com/ydtech/modules/inv/service/impl/InvSourceServiceImpl.java

@@ -1,10 +1,13 @@
 package com.ydtech.modules.inv.service.impl;
 
+import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.inv.dao.InvSourceMapper;
 import com.ydtech.modules.inv.model.excel.InvSourceExcel;
 import com.ydtech.modules.inv.model.po.InvSource;
@@ -33,8 +36,18 @@ public class InvSourceServiceImpl extends ServiceImpl<InvSourceMapper, InvSource
 
     @Override
     public HttpResult readExcel(String file) {
+
+
         List<InvSourceExcel> invSourceExcels = EasyExcelUtils.readInvSourceExcel(uploadFilePath + file, InvSourceExcel.class);
         List<InvSource> invSources = JSON.parseArray(JSONArray.toJSONString(invSourceExcels), InvSource.class);
+
+        SysUser user = BaseController.getUser();
+        InvSource invSource = new InvSource();
+        invSource.setRevenueName(String.valueOf(user));
+
+        DateTime dateTime = new DateTime();
+        invSource.setRevenueTime(String.valueOf(dateTime));
+
         boolean result = invSourceService.saveOrUpdateBatchWithConditions(invSources);
         return result ? HttpResult.ok("导入成功") : HttpResult.error("导入失败");
     }
@@ -57,7 +70,9 @@ public class InvSourceServiceImpl extends ServiceImpl<InvSourceMapper, InvSource
                     .eq(InvSource::getLicenseno, invSource.getLicenseno())
                     .eq(InvSource::getJqPolicyId, invSource.getJqPolicyId())
                     .eq(InvSource::getSyPolicyId, invSource.getSyPolicyId())
-                    .eq(InvSource::getNonCarPolicyId, invSource.getNonCarPolicyId()));
+                    .eq(InvSource::getNonCarPolicyId, invSource.getNonCarPolicyId())
+                    .eq(InvSource::getRevenueTime,invSource.getRevenueTime()));
+
             if (one != null) {
                 invSource.setId(one.getId());
                 baseMapper.updateById(invSource);

+ 5 - 0
src/main/resources/mapper/modules/inv/InvReceivableMapper.xml

@@ -229,6 +229,7 @@
         a.max_sy_receivable_ratio,
         a.max_non_car_receivable_ratio,
         a.max_receivable,
+        a.revenue_time,
         (a.receivable + if(a.subsidy_amount is null, 0, a.subsidy_amount) )                                                          AS total_receivable_amount,
         if(a.settlement_amount is null, 0, a.settlement_amount) as settlement_amount,
         ( CASE a.clearing_state WHEN 1 THEN '已结算' WHEN 0 THEN '未结算' WHEN 2 THEN '孤儿单' END ) AS clearing_state,
@@ -281,6 +282,7 @@
         ivs.max_sy_receivable_ratio,
         ivs.max_non_car_receivable_ratio,
         ivs.max_receivable,
+        ivs.revenue_time,
         (ivs.receivable + iss.subsidy_amount) as total_receivable_amount,
         iss.settlement_amount,
         CASE
@@ -347,6 +349,9 @@
         <if test="param.nonCarPolicyId != null and param.nonCarPolicyId != ''">
             and a.non_car_policy_id = #{param.nonCarPolicyId}
         </if>
+        <if test="param.revenueTimeStartTime != null and param.revenueTimeStartTime != ''">
+            and a.revenue_time between #{param.revenueTimeStartTime} and #{param.revenueTimeEndTime}
+        </if>
 
     </select>
 

+ 8 - 0
src/main/resources/mapper/modules/inv/InvSourceMapper.xml

@@ -127,6 +127,8 @@
         max_sy_receivable_ratio,
         max_non_car_receivable_ratio,
         max_receivable,
+        revenue_time,
+        revenue_name,
         CASE WHEN DATEDIFF(NOW(), signing_time) > 90 THEN 2 ELSE inv_source.clearing_state END as clearing_state,
         insurance_clearing_state
         from inv_source
@@ -171,6 +173,12 @@
         <if test="param.insuredName != null and param.insuredName != ''">
             and a.insured_name = #{insuredName}
         </if>
+        <if test="param.revenueTimeStartTime != null and param.revenueTimeStartTime != ''">
+            and a.revenue_time between #{param.revenueTimeStartTime} and #{param.revenueTimeEndTime}
+        </if>
+        <if test="param.revenueName != null and param.revenueName != ''">
+            and a.revenue_name = #{revenueName}
+        </if>
     </select>