Quellcode durchsuchen

1.結算调整优化 6.0 过滤条件优化

wuhp vor 2 Jahren
Ursprung
Commit
ec2d1ef65c

+ 13 - 0
src/main/java/com/ydtech/modules/fnc/dao/IncomeTaskRelationshipMapper.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fnc.entity.ImportResult;
+import com.ydtech.modules.fnc.entity.IncomeTaskRelationshipEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface IncomeTaskRelationshipMapper extends BaseMapper<IncomeTaskRelationshipEntity> {
+    List<String> getByTaskId(String taskId);
+}

+ 40 - 0
src/main/java/com/ydtech/modules/fnc/entity/IncomeTaskRelationshipEntity.java

@@ -0,0 +1,40 @@
+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.time.LocalDateTime;
+
+import java.io.Serializable;
+
+@Getter
+@Setter
+@TableName("income_task_relationship")
+@ApiModel(value = "IncomeTaskRelationship对象", description = "结算任务表")
+public class IncomeTaskRelationshipEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty("主键")
+    @TableId("id")
+    private String id;
+
+
+    @ApiModelProperty("任务id")
+    @TableField("task_id")
+    private String taskId;
+
+    @ApiModelProperty("结算id")
+    @TableField("income_id")
+    private String incomeId;
+
+
+    @ApiModelProperty("创建时间")
+    @TableField("create_time")
+    private LocalDateTime createTime;
+
+}

+ 13 - 0
src/main/java/com/ydtech/modules/fnc/service/IncomeTaskRelationshipService.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.fnc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.fnc.entity.IncomeTaskRelationshipEntity;
+
+import java.util.List;
+
+public interface IncomeTaskRelationshipService extends IService<IncomeTaskRelationshipEntity> {
+    void saveByIncomeIdList(String taskId, List<String> idList);
+
+    List<String> getByTaskId(String taskId);
+
+}

+ 14 - 4
src/main/java/com/ydtech/modules/fnc/service/impl/ImportAsyncServiceImpl.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
 import com.ydtech.modules.fnc.entity.ImportResult;
 import com.ydtech.modules.fnc.entity.InsPlyIncome;
 import com.ydtech.modules.fnc.service.ImportAsyncService;
+import com.ydtech.modules.fnc.service.IncomeTaskRelationshipService;
 import com.ydtech.modules.fnc.vo.ImportResultVo;
 import com.ydtech.modules.inv.model.dto.*;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
@@ -39,6 +40,8 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
 
     @Autowired
     private InsPlyIncomeMapper insPlyIncomeMapper;
+    @Autowired
+    private IncomeTaskRelationshipService  incomeTaskRelationshipService;
 
     @Autowired
     private InsUploadFilesService insUploadFilesService;
@@ -54,6 +57,7 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
     public void importasync(List<InsBxPlyIncomeExcelDto> dtoList, String isNotCar, String taskId) {
         BigDecimal totalAmount = BigDecimal.ZERO;
         HashMap<String, Object> params = new HashMap<>();
+        List<String> idList= new ArrayList<>();
         List<InsImportResult> insImportResultsExcel = new ArrayList<>();
         String companyId  ="";
         String partnerCompaniesId  ="";
@@ -155,11 +159,10 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     agreementId = insPlyIncome.getAgreementId();  //协议id
                 }
                 if (ObjectUtils.isNotEmpty(insPlyIncome)) {  // 比配上汇总金额 未匹配则返回到数据当中
-
+                    idList.add(insPlyIncome.getId());
                     if (insPlyIncome.getCommissionFeevalue() != null && insPlyIncome.getCommissionFeevalue().compareTo(BigDecimal.ZERO) != 0) {
                         totalAmount = totalAmount.add(insPlyIncome.getCommissionFeevalue());  //添加总手续费
                     }
-                    
                     insPlyIncomeMapper.updateById(insPlyIncome);
                 } else {
                     InsImportResult insImportResult = new InsImportResult();
@@ -196,6 +199,9 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setStatus("complete");
         if(!CollectionUtils.isEmpty(insImportResultsExcel)){
             endTask.setUploadUrl("/upload/excel/" + taskId + "/" + fileName);
+        }else {
+            //则生成 结算任务关系表
+            incomeTaskRelationshipService.saveByIncomeIdList(taskId,idList);
         }
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
@@ -472,6 +478,8 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         BigDecimal totalAmount = BigDecimal.ZERO;
         HashMap<String, Object> params = new HashMap<>();
         List<InsImportResult> insImportResultsExcel = new ArrayList<>();
+        List<String> idList= new ArrayList<>();
+
         String companyId  ="";
         String partnerCompaniesId  ="";
         String agreementId  ="";
@@ -527,6 +535,7 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     agreementId = insPlyIncome.getAgreementId();  //协议id
                 }
                 if (ObjectUtils.isNotEmpty(insPlyIncome)) {  // 比配上汇总金额 未匹配则返回到数据当中
+                    idList.add(insPlyIncome.getId());
                     if (insPlyIncome.getCommissionFeevalue() != null && insPlyIncome.getCommissionFeevalue().compareTo(BigDecimal.ZERO) != 0) {
                         totalAmount = totalAmount.add(insPlyIncome.getCommissionFeevalue());  //添加总手续费
                     }
@@ -566,13 +575,14 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setStatus("complete");
         if(!CollectionUtils.isEmpty(insImportResultsExcel)){
             endTask.setUploadUrl("/upload/excel/" + taskId + "/" + fileName);
+        }else {
+            //则生成 结算任务关系表
+            incomeTaskRelationshipService.saveByIncomeIdList(taskId,idList);
         }
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
         endTask.setPartnerCompaniesId(partnerCompaniesId);
         endTask.setHandStatus("3");
         baseMapper.updateById(endTask);
-
-
     }
 }

+ 38 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/IncomeTaskRelationshipServiceImpl.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.fnc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.fnc.dao.IncomeTaskRelationshipMapper;
+import com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesMapper;
+import com.ydtech.modules.fnc.entity.IncomeTaskRelationshipEntity;
+import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
+import com.ydtech.modules.fnc.service.IncomeTaskRelationshipService;
+import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+
+@Service
+public class IncomeTaskRelationshipServiceImpl extends ServiceImpl<IncomeTaskRelationshipMapper, IncomeTaskRelationshipEntity> implements IncomeTaskRelationshipService {
+
+    @Override
+    public void saveByIncomeIdList(String taskId, List<String> idList) {
+        if (!CollectionUtils.isEmpty(idList)) {
+            for (String incomeId : idList) {
+                IncomeTaskRelationshipEntity incomeTaskRelationshipEntity = new IncomeTaskRelationshipEntity();
+                incomeTaskRelationshipEntity.setIncomeId(incomeId);
+                incomeTaskRelationshipEntity.setTaskId(taskId);
+                incomeTaskRelationshipEntity.setCreateTime(LocalDateTime.now());
+                baseMapper.insert(incomeTaskRelationshipEntity);
+            }
+        }
+    }
+
+    @Override
+    public List<String> getByTaskId(String taskId) {
+
+        return baseMapper.getByTaskId(taskId);
+    }
+}

+ 17 - 7
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -19,11 +19,8 @@ import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.fnc.entity.*;
 import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
-import com.ydtech.modules.fnc.service.ImportAsyncService;
-import com.ydtech.modules.fnc.service.InsPlyIncomeService;
+import com.ydtech.modules.fnc.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
-import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
 import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
 import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
 import com.ydtech.modules.ins.model.vo.res.*;
@@ -108,6 +105,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
     private EsmInsCompanyService EsmInsCompanyService;
     @Autowired
     private ImportAsyncService  importAsyncService;
+    @Autowired
+    private IncomeTaskRelationshipService  incomeTaskRelationshipService;
 
     @Value("${upload.file.path}")
     private String uploadPath;
@@ -451,7 +450,17 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
             if(StringUtils.isNotEmpty(insPlyIncomeVo.getIds())){
                 params.put("ids",insPlyIncomeVo.getIds().split(","));
             }
-            List<InsPlyIncome> list= this.baseMapper.queryNew(params);
+            if (StringUtils.isNotEmpty(insPlyIncomeVo.getId())) {
+                SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = settlementDocumentaryFeesService.getById(insPlyIncomeVo.getId());
+//                通过任务id查询 明细
+                String taskId = settlementDocumentaryFeesEntity.getTaskId();
+                List<String> incomeIds = incomeTaskRelationshipService.getByTaskId(taskId);
+                if (!CollectionUtils.isEmpty(incomeIds)) {
+                    params.put("incomeIds", incomeIds);
+                    params.remove("handlingFeesStatus");
+                }
+            }
+            List<InsPlyIncome> list = this.baseMapper.queryNew(params);
 
             pageHelper=new PageInfo(list);
             BasePageResult<InsPlyIncome> pageResult=new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
@@ -1531,7 +1540,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         }
 //            分批结算
         SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();
-
+        String id = String.valueOf(new SnowFlakeUtil().nextId());
+        settlementDocumentaryFeesVo.setId(id);
         settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getInvoicId());   //开票号
         settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime());   //结算时间
         settlementDocumentaryFeesVo.setSettlementStatus("2");   //2为结算状态
@@ -1544,7 +1554,7 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());   //进账金额
         settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
         settlementDocumentaryFeesVo.setHandlingFeesStatus("0");
-        settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
+        settlementDocumentaryFeesVo.setParentId(id);
         settlementDocumentaryFeesVo.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
         settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
         settlementDocumentaryFeesVo.setAgreementType("2");  //1平台 2  保险

+ 33 - 0
src/main/resources/mapper/modules/fnc/IncomeTaskRelationshipMapper.xml

@@ -0,0 +1,33 @@
+<?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.IncomeTaskRelationshipMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.fnc.entity.IncomeTaskRelationshipEntity">
+        <id column="id" property="id" />
+        <result column="task_id" property="taskId"/>
+        <result column="income_id" property="incomeId"/>
+        <result column="create_time" property="createTime"/>
+    </resultMap>
+
+
+    <select id="getByTaskId" resultType="java.lang.String">
+                select
+                    a.income_id as "incomeId"
+                from  income_task_relationship a
+
+                <where>
+                    <if test="taskId != null  and  taskId  !=''">
+                        a.task_id =#{taskId}
+                    </if>
+                </where>
+    </select>
+
+
+
+
+
+
+
+
+</mapper>

+ 6 - 0
src/main/resources/mapper/modules/fnc/InsPlyIncomeMapper.xml

@@ -239,6 +239,12 @@
                         #{item}
                     </foreach>
                 </if>
+               <if test="incomeIds != null and incomeIds != '' and incomeIds.size() > 0">
+                    and a.id in
+                    <foreach collection="incomeIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
 
                 <if test="selectIds != null and selectIds != '' and selectIds.size() > 0">
                     and a.id in

+ 2 - 1
src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml

@@ -87,8 +87,9 @@
         a.tax_points AS  "taxPoints",
         a.settlement_amount - COALESCE(b.settlementAmount, 0) AS "invoicCommissionFeevalue",
         a.agreement_type as "agreementType",
+        a.agreement_type as "agreementType",
         a.ids  as "ids",
-        a.invoicing_method AS  "invoicingMethod"
+        a.task_id AS  "taskId"
         FROM
         settlement_documentary_fees a
         left  join  (