yangzian 3 年 前
コミット
bcd9bed60f
19 ファイル変更398 行追加131 行削除
  1. 12 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java
  2. 5 9
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/controller/SettlementController.java
  3. 2 6
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/controller/SettlementFileController.java
  4. 27 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/entity/pojo/CtopCwjsSlettementReport.java
  5. 28 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/CwjsProfitMapper.java
  6. 6 6
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/ReportSettlementMapper.java
  7. 2 4
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/SettlementFileInfoMapper.java
  8. 3 3
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/SettlementInfoMapper.java
  9. 27 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/CwjsProfitMapper.xml
  10. 59 24
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/ReportSettlementMapper.xml
  11. 3 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/SettlementFileInfoMapper.xml
  12. 1 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/SettlementInfoMapper.xml
  13. 8 3
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/IReportSettlementService.java
  14. 3 5
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/ISettlementFileInfoService.java
  15. 4 5
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/ISettlementInfoService.java
  16. 119 26
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/ReportSettlementServiceImpl.java
  17. 6 21
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/SettlementFileInfoServiceImpl.java
  18. 10 14
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/SettlementInfoServiceImpl.java
  19. 73 4
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/utils/SettlementUtil.java

+ 12 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java

@@ -149,6 +149,18 @@ public class CwjsPolicyInfoController {
 			 CwjsCompanyApprovalUser nextApprovalUser = companyApprovalUserMapper.queryByCompanySubjectIdAndLevel(companySubjectId, cwjsCompanyApprovalUser.getLevel() + 1);
 			 if(!Check.isNull(cwjsCompanyApprovalUser) && Check.isNull(nextApprovalUser)){//没有下一个审核人员,是终审
 				cwjsPolicyInfoEntity.setApprovedStatus(3);
+
+				 /**
+				  * 终审通过后 添加 起始时间
+				  */
+
+
+
+
+
+
+
+
 			}else{	//不是终审
 				cwjsPolicyInfoEntity.setApprovedStatus(2);
 				cwjsPolicyInfoEntity.setApprovedProgress(nextApprovalUser.getApprovalUserId());	//设置一下个人为审核人员

+ 5 - 9
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/controller/SettlementController.java

@@ -1,14 +1,10 @@
 package org.jeecg.ctop.finance.settlement.controller;
 
-import cn.com.ctop.common.module.service.impl.SysUserServiceImpl;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.checkerframework.checker.units.qual.A;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyInfoMapper;
 import org.jeecg.ctop.finance.policy.service.impl.CwjsPolicyInfoServiceImpl;
-import org.jeecg.ctop.finance.policy.utils.Check;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
 
 
 import org.jeecg.ctop.finance.settlement.service.ISettlementInfoService;
@@ -46,9 +42,9 @@ public class SettlementController {
 
     @ApiOperation(value="财务结算-账户列表查询", notes="财务结算-账户列表查询")
     @GetMapping(value = "/getSettlementList")
-    public Result getSettlementList(ctopCwjsSettlementInfo settlementInfo,
-                                                                      @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-                                                                      @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
+    public Result getSettlementList(CtopCwjsSettlementInfo settlementInfo,
+                                    @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                    @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
         //查询用户角色
         String roleCode = sysRoleService.getRoleCodeByUserId(settlementInfo.getCreateUserId());
         //普通用户
@@ -83,7 +79,7 @@ public class SettlementController {
 
     @ApiOperation(value="财务结算-上传账户", notes="财务结算-上传账户")
     @PostMapping("/settlementAccountImport")
-    public Result settlementAccountImport(ctopCwjsSettlementInfo settlementInfo,@RequestParam("file") MultipartFile files) {
+    public Result settlementAccountImport(CtopCwjsSettlementInfo settlementInfo, @RequestParam("file") MultipartFile files) {
         if (files.isEmpty()){
             return Result.errorMsg("附件不能为空!");
         }

+ 2 - 6
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/controller/SettlementFileController.java

@@ -5,19 +5,15 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.ctop.finance.policy.utils.Check;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementFileInfo;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementFileInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 import org.jeecg.ctop.finance.settlement.service.ISettlementFileInfoService;
-import org.jeecg.ctop.finance.settlement.service.ISettlementInfoService;
 import org.jeecg.modules.ctop.service.IMaterialReportOverViewService;
 import org.jeecg.modules.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -97,7 +93,7 @@ public class SettlementFileController {
 
     @ApiOperation(value="结算单-账户截图上传", notes="结算单-账户截图上传")
     @PostMapping(value = "/insertAccountImages")
-    public Result insertAccountImages(@RequestBody ctopCwjsSettlementFileInfo settlementFileInfo) {
+    public Result insertAccountImages(@RequestBody CtopCwjsSettlementFileInfo settlementFileInfo) {
         if (Check.isNull(settlementFileInfo.getSettlementList())){
             return Result.errorMsg("账户截图不能为空!");
         }

+ 27 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/entity/pojo/CtopCwjsSlettementReport.java

@@ -0,0 +1,27 @@
+package org.jeecg.ctop.finance.settlement.entity.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 财务结算 计算利润表
+ * zian Y
+ **/
+
+@Data
+public class CtopCwjsSlettementReport implements Serializable {
+
+    private Long id;
+    private Integer policyId;
+    private String advertiserName;
+    private String productName;
+    private String policyDate;
+    private Integer mediaType;
+    private String createUserId;
+}

+ 28 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/CwjsProfitMapper.java

@@ -0,0 +1,28 @@
+package org.jeecg.ctop.finance.settlement.mapper;
+
+import io.lettuce.core.dynamic.annotation.Param;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSlettementReport;
+import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
+import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportBytedanceVo;
+import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportKuaiShouVo;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ *
+ * @description:
+ *
+ * @return:
+ * @author: zianY
+ */
+public interface CwjsProfitMapper {
+
+
+    void replaceCwjsSlettementProfit(List<CtopCwjsSlettementReport> list);
+
+
+
+
+}

+ 6 - 6
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/ReportSettlementMapper.java

@@ -1,8 +1,6 @@
 package org.jeecg.ctop.finance.settlement.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import io.lettuce.core.dynamic.annotation.Param;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportBytedanceVo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportKuaiShouVo;
@@ -47,7 +45,7 @@ public interface ReportSettlementMapper {
      * @param accountId
      * @return
      */
-   List<String> getAccountImagesBytedance(String accountId);
+   List<String> getAccountImagesBytedance(@Param("accountId") String accountId,@Param("uploadYears")String uploadYears);
 
 
     /**
@@ -64,11 +62,13 @@ public interface ReportSettlementMapper {
     List<Map<String,Object>> getProfitKuaiShou(String uploadYears);
 
     /**
-     * 查询 头条利润表  销售人员姓名 以及 返点类型和比列
-     * @param productId
+     * 查询 头条利润表  返点类型和比列
+     * @param
      * @return
      */
-    Map<String,Object> getProfitBytedanceSale(String productId);
+    List<Map<String,Object>> getProfitBytedance(@Param("productName") String productName,@Param("mediaType") String mediaType,@Param("startTime")String startTime,@Param("endTime")String endTime);
+
+    Map<String,Object> getProfitBytedanceSale(String accountId);
 
     Map<String,Object> getProfitBytedanceOperate(String accountId);
 

+ 2 - 4
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/SettlementFileInfoMapper.java

@@ -1,9 +1,7 @@
 package org.jeecg.ctop.finance.settlement.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import io.lettuce.core.dynamic.annotation.Param;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementFileInfo;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementFileInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 
 import java.util.List;
@@ -18,7 +16,7 @@ import java.util.Map;
  * @author: zianY
  * @time: 2021/7/28 17:07
  */
-public interface SettlementFileInfoMapper extends BaseMapper<ctopCwjsSettlementFileInfo> {
+public interface SettlementFileInfoMapper extends BaseMapper<CtopCwjsSettlementFileInfo> {
 
     /**
      *查询 财务结算-结算单列表

+ 3 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/SettlementInfoMapper.java

@@ -2,7 +2,7 @@ package org.jeecg.ctop.finance.settlement.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import io.lettuce.core.dynamic.annotation.Param;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
 
 import java.util.List;
 import java.util.Map;
@@ -17,14 +17,14 @@ import java.util.Set;
  * @author: zianY
  * @time: 2021/7/28 17:07
  */
-public interface SettlementInfoMapper extends BaseMapper<ctopCwjsSettlementInfo> {
+public interface SettlementInfoMapper extends BaseMapper<CtopCwjsSettlementInfo> {
 
     /**
      *查询 财务结算-账户列表
      * @param settlementInfo
      * @return
      */
-    List<ctopCwjsSettlementInfo> getSettlementList(ctopCwjsSettlementInfo settlementInfo);
+    List<CtopCwjsSettlementInfo> getSettlementList(CtopCwjsSettlementInfo settlementInfo);
 
     /**
      *修改财务结算账户状态

+ 27 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/CwjsProfitMapper.xml

@@ -0,0 +1,27 @@
+<?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="org.jeecg.ctop.finance.settlement.mapper.CwjsProfitMapper">
+
+
+    <insert id="replaceCwjsSlettementProfit">
+            replace into ctop_cwjs_slettement_report(
+            advertiser_name,
+            product_name,
+            policy_date,
+            create_user_id,
+            media_type,
+            policy_id
+            )
+            values
+            <foreach collection="list" item="l" separator=",">
+                (#{l.advertiserName},
+                #{l.productName},
+                #{l.policyDate},
+                #{l.createUserId},
+                #{l.mediaType},
+                #{l.policyId})
+            </foreach>
+    </insert>
+
+
+</mapper>

+ 59 - 24
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/ReportSettlementMapper.xml

@@ -44,6 +44,7 @@
         ctop_cwjs_settlement_file_info
         where del_flag = 0
         AND account_id = #{accountId}
+        AND upload_years = #{uploadYears}
 
     </select>
 
@@ -77,21 +78,25 @@
     <!-- 查询 头条利润表 总花费-->
     <select id="getProfitBytedanceCost" resultType="java.util.LinkedHashMap">
         SELECT
-            d.advertiser_id AS accountId,
-            SUM( d.cost ) AS cost,
-            SUM( d.cash_cost ) AS cashCost,
-            SUM( d.reward_cost ) rewardCost,
-            cwjs.product_id as productId,
-            p.product_name AS productName
+        d.advertiser_id AS accountId,
+        SUM( d.cost ) AS cost,
+        SUM( d.cash_cost ) AS cashCost,
+        SUM( d.reward_cost ) rewardCost,
+        pd.id as productId,
+        pd.product_name AS productName
         FROM
-            ctop_account_transaction_day d
-                LEFT JOIN ctop_cwjs_settlement_info cwjs ON d.advertiser_id = cwjs.account_id
-                LEFT JOIN ctop_product p ON cwjs.product_id = p.id
-        WHERE
-            cwjs.del_flag = 0
-        <if test="uploadYears !=null and uploadYears != ''">
-            AND DATE_FORMAT(d.date,'%Y-%m') = #{uploadYears}
-        </if>
+        ctop_account_transaction_day d
+        LEFT JOIN ctop_user_allocation u ON d.advertiser_id = u.account_id
+        LEFT JOIN ctop_project p ON u.project_id = p.id
+        LEFT JOIN ctop_product pd on pd.id = p.product_id
+        <where>
+            <if test="startTime !=null and startTime != ''">
+                AND d.date &gt;= #{startTime}
+            </if>
+            <if test="endTime !=null and endTime != ''">
+                AND d.date &lt;= #{endTime}
+            </if>
+        </where>
         GROUP BY
             d.advertiser_id;
 
@@ -99,28 +104,54 @@
 
 
 
-    <!-- 查询 头条利润表  销售人员姓名 以及 返点类型和比列-->
-    <select id="getProfitBytedanceSale" resultType="java.util.LinkedHashMap">
+    <!-- 查询 头条利润表  返点类型和比列-->
+    <select id="getProfitBytedance" resultType="java.util.LinkedHashMap">
+
         SELECT
         pp.create_user_id,
-        su.realname AS saleName,
         cp.rebate_type AS rebateType,
         cp.rebate_rate AS rebateRate,
         cp.approved_status AS approvedStatus,
         cp.policy_start_date as policyStartDate,
-        DATE_FORMAT(cp.policy_start_date,'%Y-%m') as policyStart,
         cp.policy_end_date as policyEndDate,
-        DATE_FORMAT(cp.policy_end_date,'%Y-%m') as policyEnd
+        cp.create_time as createTime
         FROM
         ctop_cwjs_policy_product pp
-        LEFT JOIN sys_user su ON pp.create_user_id = su.id
         LEFT JOIN ctop_cwjs_policy_info cp ON cp.id = pp.policy_id
         WHERE
         pp.del_flag = 0
         AND cp.del_flag = 0
-        <if test="productId !=null and productId != ''">
-            AND pp.id = #{productId}
+        and cp.approved_status = 3
+        <if test="mediaType !=null and mediaType != ''">
+            AND cp.media_type = #{mediaType}
+        </if>
+        <if test="productName !=null and productName != ''">
+            AND pp.policy_product_name = #{productName}
         </if>
+        <if test="startTime !=null and startTime != ''">
+            AND  cp.policy_start_date &gt;= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            AND cp.policy_end_date &lt;= #{endTime}
+        </if>
+
+
+
+
+    </select>
+
+
+    <!-- 查询 头条利润表  销售人员姓名 -->
+    <select id="getProfitBytedanceSale" resultType="java.util.LinkedHashMap">
+
+        SELECT f.create_user_id,u.realname as saleName
+        from ctop_cwjs_settlement_info f
+        LEFT  JOIN sys_user u on u.id = f.create_user_id
+        where f.del_flag = 0
+        <if test="accountId !=null and accountId != ''">
+            AND f.account_id = #{accountId}
+        </if>
+        limit 1
 
 
     </select>
@@ -161,9 +192,13 @@
                 LEFT JOIN ctop_product p ON cwjs.product_id = p.id
         WHERE
             cwjs.del_flag = 0
-        <if test="uploadYears !=null and uploadYears != ''">
-          and DATE_FORMAT(d.date,'%Y-%m') = #{uploadYears}
+        <if test="startTime !=null and startTime != ''">
+            AND d.date &gt;= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            AND d.date &lt;= #{endTime}
         </if>
+
         GROUP BY
             d.account_id;
     </select>

+ 3 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/SettlementFileInfoMapper.xml

@@ -207,6 +207,9 @@
                         <if test="mediaId !=null and mediaId != ''">
                             AND media_id = #{mediaId}
                         </if>
+                           <if test="uploadYears !=null and uploadYears != ''">
+                            AND upload_years = #{uploadYears}
+                        </if>
                      ) t2
     </select>
 

+ 1 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/SettlementInfoMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="org.jeecg.ctop.finance.settlement.mapper.SettlementInfoMapper">
 
     <!-- 查询 财务结算-账户列表-->
-    <select id="getSettlementList" resultType="org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo">
+    <select id="getSettlementList" resultType="org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo">
         SELECT * from (
         SELECT
             id,

+ 8 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/IReportSettlementService.java

@@ -1,11 +1,9 @@
 package org.jeecg.ctop.finance.settlement.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementReportBytedanceVo;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -30,4 +28,11 @@ public interface IReportSettlementService {
 
     Result sendMessageToOperate(String userId);
 
+
+
+
+
+    void cwjsPRofit(CwjsPolicyInfo cwjsPolicyInfo);
+
+
 }

+ 3 - 5
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/ISettlementFileInfoService.java

@@ -3,21 +3,19 @@ package org.jeecg.ctop.finance.settlement.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.pagehelper.PageInfo;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementFileInfo;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementFileInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 
-import java.util.List;
 import java.util.Map;
 
-public interface ISettlementFileInfoService extends IService<ctopCwjsSettlementFileInfo> {
+public interface ISettlementFileInfoService extends IService<CtopCwjsSettlementFileInfo> {
 
     Result<PageInfo<Map<String,String>>> getSettlementSheetList(SettlementFileParamsVo paramsVo, Integer pageNo, Integer pageSize);
 
 
     Result deleteSettlementFile(SettlementFileParamsVo paramsVo);
 
-    Result insertAccountImages(ctopCwjsSettlementFileInfo settlementFileInfo);
+    Result insertAccountImages(CtopCwjsSettlementFileInfo settlementFileInfo);
 
     Result getAccountNumAndImgNum(SettlementFileParamsVo paramsVo);
 

+ 4 - 5
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/ISettlementInfoService.java

@@ -2,23 +2,22 @@ package org.jeecg.ctop.finance.settlement.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-public interface ISettlementInfoService extends IService<ctopCwjsSettlementInfo> {
+public interface ISettlementInfoService extends IService<CtopCwjsSettlementInfo> {
 
-    Result getSettlementList(ctopCwjsSettlementInfo settlementInfo, Integer pageNo, Integer pageSize);
+    Result getSettlementList(CtopCwjsSettlementInfo settlementInfo, Integer pageNo, Integer pageSize);
 
     Result updSettlementStatusById(Long id,Integer status);
 
     Result deleteSettlementById(Long id);
 
-    Result settlementAccountImport(ctopCwjsSettlementInfo settlementInfo,MultipartFile file);
+    Result settlementAccountImport(CtopCwjsSettlementInfo settlementInfo, MultipartFile file);
 
 
     List<Map<String,Object>> getUserByIds(Set userIds);

+ 119 - 26
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/ReportSettlementServiceImpl.java

@@ -14,12 +14,18 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
+import org.jeecg.ctop.finance.policy.entity.CwjsPolicyProduct;
+import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyProductMapper;
 import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSlettementReport;
 import org.jeecg.ctop.finance.settlement.entity.vo.*;
+import org.jeecg.ctop.finance.settlement.mapper.CwjsProfitMapper;
 import org.jeecg.ctop.finance.settlement.mapper.ReportSettlementMapper;
 import org.jeecg.ctop.finance.settlement.service.IReportSettlementService;
 import org.jeecg.ctop.finance.utils.SettlementUtil;
 import org.jeecg.ctop.finance.utils.createExcelByTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -48,6 +54,9 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
     @Resource
     private MailLogMapper mailLogMapper;
 
+    @Resource
+    private CwjsProfitMapper cwjsProfitMapper;
+
 
     @Override
     public List<SettlementReportBytedanceVo> getAccountTransactionDayBytedance() {
@@ -193,7 +202,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
                 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
 
                 //查询 图片 url
-                List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId);
+                List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId,paramsVo.getUploadYears());
 
                 if (!Check.isNull(imageUrlList)){
                     for (int j = 0; j < imageUrlList.size(); j++) {
@@ -202,8 +211,9 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
                         InputStream is = createExcelByTemplate.getInputStreamByUrl(imagePath);
                         BufferedImage bufferImg = ImageIO.read(is);
                         ImageIO.write(bufferImg, imagePath.substring(imagePath.lastIndexOf(".") + 1), byteArrayOut);
+                        int startIndex = settlementList.size() +6;
                         //anchor主要用于设置图片的属性
-                        HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 2, settlementList.size() + 6 +(j*40), (short) 10, 90*(j+1));
+                        HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 2, startIndex+(5*j)+50*j, (short) 10, startIndex+(5*j)+50*(j+1));
                         //HSSFClientAnchor anchor2 = new HSSFClientAnchor(0, 0, 255, 255, (short) 5, settlementList.size() + 40, (short) 10, 40 * 2);
                         anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
                         //插入图片
@@ -214,7 +224,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
             }
 
             if(accountIdList.size() == num){
-                return Result.errorMsg("暂无数据。");
+                return Result.errorMsg("暂无账户流水数据。");
             }
 
             response.setCharacterEncoding("UTF-8");
@@ -222,7 +232,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
             response.setHeader("Pragma", "no-cache");
             response.setHeader("Cache-Control", "no-cache");
             response.setDateHeader("Expires", 0);
-            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"头条结算单.xlsx", "UTF-8"));
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"-头条结算单.xlsx", "UTF-8"));
             OutputStream output = response.getOutputStream();
             BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
             wb.write(bufferedOutPut);
@@ -378,7 +388,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
                 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
 
                 //查询 图片 url
-                List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId);
+                List<String> imageUrlList = reportSettlementMapper.getAccountImagesBytedance(accountId,paramsVo.getUploadYears());
 
                 if (!Check.isNull(imageUrlList)){
                     for (int j = 0; j < imageUrlList.size(); j++) {
@@ -409,7 +419,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
             response.setHeader("Pragma", "no-cache");
             response.setHeader("Cache-Control", "no-cache");
             response.setDateHeader("Expires", 0);
-            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"快手结算单.xlsx", "UTF-8"));
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(paramsVo.getUploadYears()+"-快手结算单.xlsx", "UTF-8"));
             OutputStream output = response.getOutputStream();
             BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
             wb.write(bufferedOutPut);
@@ -451,19 +461,31 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
                 vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
                 vo.setRewardCost(map.getOrDefault("rewardCost","")+"");//赠款消耗
                 vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
-                //查询 头条利润表  销售人员姓名 以及 返点类型和比列
-                Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
-                if (!Check.isNull(slaeMap)){
-                    vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
+
+                //查询销售
+                Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("accountId")+"");
+                vo.setSaleName(Check.isNull(slaeMap) ? "" : slaeMap.getOrDefault("saleName","")+"");//销售
+                //查询 头条利润表  返点类型和比列
+                List<Map<String,Object>> rateMap = reportSettlementMapper.getProfitBytedance(map.get("productName")+"","1",paramsVo.getStartTime(),paramsVo.getEndTime());
+
+
+
+
+
+
+
+
+                /*
+                if (!Check.isNull(rateMap)){
                     // 当前查询时间 与 销售政策 开始 截至时间 是否匹配
-                    if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
+                    if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),rateMap.get("policyStart")+"",rateMap.get("policyEnd")+"")){
                         //销售政策状态 为 通过 显示 返点类型 和 返点比列
-                        if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
-                            vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
-                            vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
+                        if (StringUtils.equals(rateMap.getOrDefault("approvedStatus","")+"","3")){
+                            vo.setRebateType(rateMap.getOrDefault("rebateType","")+"");//返点类型
+                            vo.setRebateRate(rateMap.getOrDefault("rebateRate","")+"");//返点比列
                         }
                     }
-                }
+                }*/
 
                 Map<String,Object> operateMap = reportSettlementMapper.getProfitBytedanceOperate(map.get("accountId")+"");
                 if (!Check.isNull(operateMap)){
@@ -479,7 +501,7 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
             try {
                 response.setCharacterEncoding("UTF-8");
                 response.setHeader("content-Type", "application/vnd.ms-excel");
-                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("头条利润单.xls", "UTF-8"));
+                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("头条利润单.xlsx", "UTF-8"));
                 workbook.write(response.getOutputStream());
             } catch (IOException e) {
                 throw new RuntimeException(e);
@@ -519,19 +541,24 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
                 vo.setCost(map.getOrDefault("cost","")+"");//总消耗
                 vo.setCashCost(map.getOrDefault("cashCost","")+"");//现金消耗
                 vo.setProductName(map.getOrDefault("productName","")+"");//产品名称
+
+                //查询销售
+                Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("accountId")+"");
+                vo.setSaleName(Check.isNull(slaeMap) ? "" : slaeMap.getOrDefault("saleName","")+"");//销售
+
                 //查询  销售人员姓名 以及 返点类型和比列
-                Map<String,Object> slaeMap = reportSettlementMapper.getProfitBytedanceSale(map.get("productId")+"");
-                if (!Check.isNull(slaeMap)){
-                    vo.setSaleName(slaeMap.getOrDefault("saleName","")+"");//销售
+                List<Map<String,Object>> rateMap = reportSettlementMapper.getProfitBytedance(map.get("productId")+"","2",paramsVo.getStartTime(),paramsVo.getEndTime());
+               /* if (!Check.isNull(slaeMap)){
+
                     // 当前查询时间 与 销售政策 开始 截至时间 是否匹配
-                    if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),slaeMap.get("policyStart")+"",slaeMap.get("policyEnd")+"")){
+                    if (SettlementUtil.isEffectiveDate(paramsVo.getUploadYears(),rateMap.get("policyStart")+"",rateMap.get("policyEnd")+"")){
                         //销售政策状态 为 通过 显示 返点类型 和 返点比列
-                        if (StringUtils.equals(slaeMap.getOrDefault("approvedStatus","")+"","3")){
-                            vo.setRebateType(slaeMap.getOrDefault("rebateType","")+"");//返点类型
-                            vo.setRebateRate(slaeMap.getOrDefault("rebateRate","")+"");//返点比列
+                        if (StringUtils.equals(rateMap.getOrDefault("approvedStatus","")+"","3")){
+                            vo.setRebateType(rateMap.getOrDefault("rebateType","")+"");//返点类型
+                            vo.setRebateRate(rateMap.getOrDefault("rebateRate","")+"");//返点比列
                         }
                     }
-                }
+                }*/
 
                 Map<String,Object> operateMap = reportSettlementMapper.getProfitKuaiShouOperate(map.get("accountId")+"");
                 if (!Check.isNull(operateMap)){
@@ -603,11 +630,77 @@ public class ReportSettlementServiceImpl implements IReportSettlementService {
     }
 
 
+
+    @Resource
+    private CwjsPolicyProductMapper cwjsPolicyProductMapper;
+
+
+    @Override
+    public void cwjsPRofit(CwjsPolicyInfo cwjsPolicyInfo) {
+
+        // 获取两个日期之间 所有的 时间 年-月-日
+        List<String> betweenDaysList = SettlementUtil.getAllDatesOfTwoTimes(cwjsPolicyInfo.getPolicyStartDate(),cwjsPolicyInfo.getPolicyEndDate());
+        //查看 政策下的产品
+        List<CwjsPolicyProduct> productList = cwjsPolicyProductMapper.queryProductsByPolicyId(cwjsPolicyInfo.getId());
+        if (!Check.isNull(productList)){
+            if (!Check.isNull(betweenDaysList)){
+                List<CtopCwjsSlettementReport> reportList = new ArrayList<>();
+                for (CwjsPolicyProduct product : productList) {
+                    for (String day : betweenDaysList) {
+                        CtopCwjsSlettementReport report = new CtopCwjsSlettementReport();
+                        report.setPolicyId(cwjsPolicyInfo.getId());
+                        report.setAdvertiserName(cwjsPolicyInfo.getAdvertiserName());
+                        report.setProductName(product.getPolicyProductName());
+                        report.setMediaType(cwjsPolicyInfo.getMediaType());
+                        report.setCreateUserId(cwjsPolicyInfo.getCreateUserId());
+                        report.setPolicyDate(day);
+                        reportList.add(report);
+                    }
+                }
+                cwjsProfitMapper.replaceCwjsSlettementProfit(reportList);
+            }
+        }
+
+
+
+
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
     public static void main(String[] args) {
-        String a =  "woshiwoshi{1}woshi{2}111{3}===";
+       /* String a =  "woshiwoshi{1}woshi{2}111{3}===";
         String b = MessageFormat.format(a,"测试","我","你","结束");
         System.out.println(a);
-        System.out.println(b);
+        System.out.println(b);*/
+
+
+        List list = new ArrayList();
+
+        list.add("2021-07-01");
+        list.add("2021-07-05");
+        list.add("2021-07-10");
+        list.add("2021-07-15");
+
+
+        List<Object> times = SettlementUtil.sortlistTest(list);
+
+
+
+
+        System.out.println(times);
+
+
     }
 
 }

+ 6 - 21
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/SettlementFileInfoServiceImpl.java

@@ -1,45 +1,30 @@
 package org.jeecg.ctop.finance.settlement.service.serviceImpl;
 
-import cn.afterturn.easypoi.excel.ExcelImportUtil;
-import cn.afterturn.easypoi.excel.entity.ImportParams;
-import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
-import cn.hutool.core.bean.copier.CopyOptions;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
-import org.antlr.v4.runtime.misc.Array2DHashSet;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.ctop.finance.policy.utils.Check;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementFileInfo;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
-import org.jeecg.ctop.finance.settlement.entity.vo.AccountImportVo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementFileInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.SettlementFileParamsVo;
 import org.jeecg.ctop.finance.settlement.mapper.SettlementFileInfoMapper;
 import org.jeecg.ctop.finance.settlement.mapper.SettlementInfoMapper;
 import org.jeecg.ctop.finance.settlement.service.ISettlementFileInfoService;
-import org.jeecg.ctop.finance.settlement.service.ISettlementInfoService;
 import org.jeecg.ctop.finance.utils.SettlementUtil;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.mapping.AccessOptions;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.stream.Collectors;
 
 
 @Slf4j
 @Service
-public class SettlementFileInfoServiceImpl extends ServiceImpl<SettlementFileInfoMapper, ctopCwjsSettlementFileInfo> implements ISettlementFileInfoService {
+public class SettlementFileInfoServiceImpl extends ServiceImpl<SettlementFileInfoMapper, CtopCwjsSettlementFileInfo> implements ISettlementFileInfoService {
 
     @Resource
     private SettlementFileInfoMapper settlementFileInfoMapper;
@@ -130,7 +115,7 @@ public class SettlementFileInfoServiceImpl extends ServiceImpl<SettlementFileInf
         List<Map<String,String>> list = settlementFileInfoMapper.getSettlementSheetList(paramsVo);
         for (Map<String, String> map : list) {
             //图片数量
-            QueryWrapper<ctopCwjsSettlementFileInfo> settlementFileInfoQw = new QueryWrapper<>();
+            QueryWrapper<CtopCwjsSettlementFileInfo> settlementFileInfoQw = new QueryWrapper<>();
             //广告主id
             settlementFileInfoQw.eq("advertiser_id",map.get("advertiserId"));
             //产品id
@@ -143,7 +128,7 @@ public class SettlementFileInfoServiceImpl extends ServiceImpl<SettlementFileInf
             settlementFileInfoQw.eq("create_user_id",map.get("operateUserId"));
             //(0,正常,1已删除)
             settlementFileInfoQw.eq("del_flag",0);
-            List<ctopCwjsSettlementFileInfo> settlementFileList =  settlementFileInfoMapper.selectList(settlementFileInfoQw);
+            List<CtopCwjsSettlementFileInfo> settlementFileList =  settlementFileInfoMapper.selectList(settlementFileInfoQw);
             map.put("imgNum",Check.isNull(settlementFileList) ? "0" : String.valueOf(settlementFileList.size()));
 
         }
@@ -177,9 +162,9 @@ public class SettlementFileInfoServiceImpl extends ServiceImpl<SettlementFileInf
      */
     @Override
     @Transactional
-    public Result insertAccountImages(ctopCwjsSettlementFileInfo settlementFileInfo) {
+    public Result insertAccountImages(CtopCwjsSettlementFileInfo settlementFileInfo) {
 
-        for (ctopCwjsSettlementFileInfo settlement : settlementFileInfo.getSettlementList()) {
+        for (CtopCwjsSettlementFileInfo settlement : settlementFileInfo.getSettlementList()) {
 
             settlement.setAccountId(SettlementUtil.subAccountName(settlement.getFileName()));
 

+ 10 - 14
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/service/serviceImpl/SettlementInfoServiceImpl.java

@@ -8,20 +8,16 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.ctop.finance.settlement.entity.pojo.ctopCwjsSettlementInfo;
+import org.jeecg.ctop.finance.settlement.entity.pojo.CtopCwjsSettlementInfo;
 import org.jeecg.ctop.finance.settlement.entity.vo.AccountImportVo;
 import org.jeecg.ctop.finance.settlement.mapper.SettlementInfoMapper;
 import org.jeecg.ctop.finance.settlement.service.ISettlementInfoService;
-import org.jeecg.ctop.finance.utils.SettlementUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -29,7 +25,7 @@ import java.util.Set;
 
 @Slf4j
 @Service
-public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper, ctopCwjsSettlementInfo> implements ISettlementInfoService {
+public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper, CtopCwjsSettlementInfo> implements ISettlementInfoService {
 
     @Resource
     private SettlementInfoMapper settlementInfoMapper;
@@ -46,10 +42,10 @@ public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper,
      * @author: zianY
      */
     @Override
-    public Result getSettlementList(ctopCwjsSettlementInfo settlementInfo, Integer pageNo, Integer pageSize) {
+    public Result getSettlementList(CtopCwjsSettlementInfo settlementInfo, Integer pageNo, Integer pageSize) {
         PageHelper.startPage(pageNo, pageSize);
-        List<ctopCwjsSettlementInfo> list = settlementInfoMapper.getSettlementList(settlementInfo);
-        PageInfo<ctopCwjsSettlementInfo> pageInfo = new PageInfo<>(list);
+        List<CtopCwjsSettlementInfo> list = settlementInfoMapper.getSettlementList(settlementInfo);
+        PageInfo<CtopCwjsSettlementInfo> pageInfo = new PageInfo<>(list);
         return Result.successMsg("财务结算-账户列表查询成功。", pageInfo);
     }
 
@@ -63,7 +59,7 @@ public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper,
     @Override
     public Result updSettlementStatusById(Long id, Integer status) {
         settlementInfoMapper.updSettlementStatusById(id,status);
-        return Result.successMsg("财务结算-修改账户状态成功。.", null);
+        return Result.successMsg("财务结算-修改账户状态成功。", null);
     }
 
     /**
@@ -92,11 +88,11 @@ public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper,
      * @time: 2021/7/30 16:26
      */
     @Override
-    public Result settlementAccountImport(ctopCwjsSettlementInfo settlementInfo, MultipartFile file) {
+    public Result settlementAccountImport(CtopCwjsSettlementInfo settlementInfo, MultipartFile file) {
 
             try {
-                LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-                settlementInfo.setCreateUserId(user.getId());
+                //LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+                //settlementInfo.setCreateUserId(user.getId());
                 //settlementInfo.setCreateUserId("b161b7d9793942f980dbfe8c931cd1b0");
                 ImportParams importParams = new ImportParams();
                 //表格标题行数
@@ -126,7 +122,7 @@ public class SettlementInfoServiceImpl extends ServiceImpl<SettlementInfoMapper,
                 e.printStackTrace();
                 return Result.error("账户数据上传失败,请使用正确的模板导入!");
             }
-            return Result.successMsg("账户数据上传成功",null);
+            return Result.successMsg("账户数据上传成功",null);
         }
 
 

+ 73 - 4
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/utils/SettlementUtil.java

@@ -9,10 +9,9 @@ import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * zian Y
@@ -162,4 +161,74 @@ public class SettlementUtil {
 
 
 
+
+    public static long DateCompare(String s1, String s2) {
+        try {
+
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            Date d1 = simpleDateFormat.parse(s1);
+            Date d2 = simpleDateFormat.parse(s2);
+           // LocalDateTime d1 = LocalDateTime.parse(s1, DateTimeFormatter.ISO_LOCAL_DATE);
+            //LocalDateTime d2 = LocalDateTime.parse(s2, DateTimeFormatter.ISO_LOCAL_DATE);
+            //排序规则
+            return ((d1.getTime()) - (d2.getTime()));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public static List<String> sortlistTest(List<String> list){
+        //去重
+        List<String> newlist = new ArrayList<String>();
+        for(int i=0; i<list.size(); i++){
+            if(!newlist.contains(list.get(i))){
+                newlist.add(list.get(i));
+            }
+        }
+        String tmp;
+        for(int i=1; i<newlist.size(); i++){
+            tmp = newlist.get(i);
+            int j=i-1;
+            for(; j>=0&&(DateCompare(tmp, newlist.get(j))<0); j--){
+                newlist.set(j+1, newlist.get(j));
+            }
+            newlist.set(j+1, tmp);
+        }
+        return newlist;
+    }
+
+
+
+    /**
+     * 获取 两个日期之间的所有 日期
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    public static List<String> getAllDatesOfTwoTimes(String startDate, String endDate) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        List<String> dateList = new ArrayList<String>();
+        try{
+            Date dateOne = sdf.parse(startDate);
+            Date dateTwo = sdf.parse(endDate);
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(dateOne);
+
+            dateList.add(startDate);
+            while(calendar.getTime().before(dateTwo)){ //倒序时间,顺序after改before其他相应的改动。
+                calendar.add(Calendar.DAY_OF_MONTH, 1);
+                dateList.add(sdf.format(calendar.getTime()));
+            }
+        } catch(Exception e){
+            e.printStackTrace();
+        }
+        return dateList;
+    }
+
+
+
+
+
 }