소스 검색

1.结算bug调整

wuhp 2 년 전
부모
커밋
3922fe0620

+ 1 - 1
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -2740,7 +2740,7 @@ insFeeOrderNew.getNoExportOtherCostsProportion(),
      BigDecimal otherCostsProportion, BigDecimal taxRate) {
         FeeOrderNewVo.EntranceFee entranceFee = new FeeOrderNewVo.EntranceFee();
         entranceFee.setPremium(premium);
-        premium = premium.divide(taxRate, 5, RoundingMode.HALF_UP);
+        premium = premium.divide(taxRate, 5, BigDecimal.ROUND_DOWN);
         //手续费
         entranceFee.setSuperviseCostsPremiums(premium.multiply(superviseCostsProportion.divide(new BigDecimal(100))).setScale(5,
 BigDecimal.ROUND_DOWN));

+ 11 - 7
src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.inv.model.dto.InsBxNoPlyIncomeExcelDto;
 import com.ydtech.modules.inv.model.dto.InsBxOtherExcelDto;
 import com.ydtech.modules.inv.model.dto.InsBxPlyIncomeExcelDto;
 import com.ydtech.modules.inv.model.dto.InsNoBxOtherExcelDto;
+import com.ydtech.modules.inv.utils.EasyExcelUtils;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.utils.SnowFlakeUtil;
 import com.ydtech.utils.StringUtils;
@@ -26,6 +27,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.io.InputStream;
 import java.time.Period;
 import java.util.HashMap;
 import java.util.List;
@@ -201,18 +203,19 @@ public class InsPlyIncomeController extends BaseController {
             @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
     })
     public HttpResult<String> bxImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
+        List<InsBxPlyIncomeExcelDto> dtoList = null;
         try {
-            List<InsBxPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
-            if (CollectionUtils.isEmpty(dtoList)) {
+            dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        if (CollectionUtils.isEmpty(dtoList)) {
                 return HttpResult.error("导入数据为空");
             }
-            String taskId = String.valueOf(new SnowFlakeUtil().nextId());
+        String taskId = String.valueOf(new SnowFlakeUtil().nextId());
                 importAsyncService.importasync(dtoList, isNotCar, taskId);
-            return HttpResult.ok(taskId);
+        return HttpResult.ok(taskId);
 
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
     }
 
     @PostMapping("/bxImportNoData")
@@ -435,6 +438,7 @@ public class InsPlyIncomeController extends BaseController {
         return HttpResult.ok(insPlyIncomeService.platformSettlementRecord(insPlyIncomeVo));
     }
 
+
     /**
      * @param insPlyIncomeVo
      * @Description:  平台新增

+ 2 - 5
src/main/java/com/ydtech/modules/fnc/entity/InsPlyIncome.java

@@ -1,16 +1,13 @@
 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 java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.Optional;
+import java.time.LocalTime;
 
-import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
@@ -141,7 +138,7 @@ public class InsPlyIncome implements Serializable {
 
     @ApiModelProperty("结算日期")
     @TableField("settlement_time")
-    private LocalDate settlementTime;
+    private LocalDateTime settlementTime;
 
     @ApiModelProperty("修改日期")
     @TableField("update_time")

+ 41 - 9
src/main/java/com/ydtech/modules/fnc/service/impl/ImportAsyncServiceImpl.java

@@ -36,6 +36,7 @@ import java.nio.file.Paths;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 
 @Service
@@ -73,10 +74,11 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         ImportResult importResult = new ImportResult();
         importResult.setId(taskId);
         importResult.setStatus("ready");
+        importResult.setHandStatus("0");
         importResult.setCreateTime(LocalDateTime.now());
         importResult.setCreatedAt(LocalDateTime.now());
         baseMapper.insert(importResult);
-
+        HashSet<String> hashSet = new HashSet<>();
         if (!CollectionUtils.isEmpty(dtoList)) {
             for (InsBxPlyIncomeExcelDto excelItem : dtoList) {
                 InsImportResult insImportResult = new InsImportResult();
@@ -166,6 +168,14 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     insImportResult.setSyPolicyno(excelItem.getSyPolicyno());
                     insImportResult.setReason(reason);
                     insImportResultsExcel.add(insImportResult);
+                }else {
+                    if(StringUtils.isNotEmpty(insPlyIncome.getPartnerCompaniesId())){
+                        hashSet.add(insPlyIncome.getPartnerCompaniesId());
+                    }
+                    if(hashSet.size()>1){
+                        insImportResult.setReason("表里有不同保司机构");
+                        insImportResultsExcel.add(insImportResult);
+                    }
                 }
             }
         }
@@ -193,7 +203,6 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
         endTask.setPartnerCompaniesId(partnerCompaniesId);
-        endTask.setHandStatus("0");
         baseMapper.updateById(endTask);
     }
 
@@ -240,9 +249,11 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         ImportResult importResult = new ImportResult();
         importResult.setId(taskId);
         importResult.setStatus("ready");
+        importResult.setHandStatus("2");
         importResult.setCreateTime(LocalDateTime.now());
         importResult.setCreatedAt(LocalDateTime.now());
         baseMapper.insert(importResult);
+        HashSet<String> hashSet = new HashSet<>();
 
         if (!CollectionUtils.isEmpty(dtoList)) {
             for (InsBxOtherExcelDto excelItem : dtoList) {
@@ -315,8 +326,14 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     if (StringUtils.isNotEmpty(excelItem.getSyPolicyno())) {
                         insImportResult.setSyPolicyno(excelItem.getSyPolicyno());
                     }
-                    insImportResult.setReason(reason);
-                    insImportResultsExcel.add(insImportResult);
+                }else {
+                    if(StringUtils.isNotEmpty(insPlyIncome.getPartnerCompaniesId())){
+                        hashSet.add(insPlyIncome.getPartnerCompaniesId());
+                    }
+                    if(hashSet.size()>1){
+                        insImportResult.setReason("表里有不同保司机构");
+                        insImportResultsExcel.add(insImportResult);
+                    }
                 }
             }
         }
@@ -345,7 +362,6 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
         endTask.setPartnerCompaniesId(partnerCompaniesId);
-        endTask.setHandStatus("2");
         baseMapper.updateById(endTask);
     }
 
@@ -367,10 +383,12 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         ImportResult importResult = new ImportResult();
         importResult.setId(taskId);
         importResult.setStatus("ready");
+        importResult.setHandStatus("3");
         importResult.setCreateTime(LocalDateTime.now());
         importResult.setCreatedAt(LocalDateTime.now());
         baseMapper.insert(importResult);
 
+        HashSet<String> hashSet = new HashSet<>();
         if (!CollectionUtils.isEmpty(dtoList)) {
             for (InsNoBxOtherExcelDto excelItem : dtoList) {
                 InsImportResult insImportResult = new InsImportResult();
@@ -423,7 +441,14 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     if (StringUtils.isNotEmpty(excelItem.getNoPolicyno())) {
                         insImportResult.setPolicyno(excelItem.getNoPolicyno());
                     }
-                    insImportResultsExcel.add(insImportResult);
+                }else {
+                    if(StringUtils.isNotEmpty(insPlyIncome.getPartnerCompaniesId())){
+                        hashSet.add(insPlyIncome.getPartnerCompaniesId());
+                    }
+                    if(hashSet.size()>1){
+                        insImportResult.setReason("表里有不同保司机构");
+                        insImportResultsExcel.add(insImportResult);
+                    }
                 }
             }
         }
@@ -452,7 +477,6 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
         endTask.setPartnerCompaniesId(partnerCompaniesId);
-        endTask.setHandStatus("3");
         baseMapper.updateById(endTask);
 
     }
@@ -475,9 +499,11 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         ImportResult importResult = new ImportResult();
         importResult.setId(taskId);
         importResult.setStatus("ready");
+        importResult.setHandStatus("1");
         importResult.setCreateTime(LocalDateTime.now());
         importResult.setCreatedAt(LocalDateTime.now());
         baseMapper.insert(importResult);
+        HashSet<String> hashSet = new HashSet<>();
 
         if (!CollectionUtils.isEmpty(dtoList)) {
             for (InsBxNoPlyIncomeExcelDto excelItem : dtoList) {
@@ -529,8 +555,15 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
                     if (StringUtils.isNotEmpty(excelItem.getNoPolicyno())) {
                         insImportResult.setPolicyno(excelItem.getNoPolicyno());
                     }
-                    insImportResultsExcel.add(insImportResult);
 
+                }else {
+                    if(StringUtils.isNotEmpty(insPlyIncome.getPartnerCompaniesId())){
+                        hashSet.add(insPlyIncome.getPartnerCompaniesId());
+                    }
+                    if(hashSet.size()>1){
+                        insImportResult.setReason("表里有不同保司机构");
+                        insImportResultsExcel.add(insImportResult);
+                    }
                 }
             }
         }
@@ -559,7 +592,6 @@ public class ImportAsyncServiceImpl extends ServiceImpl<ImportAsyncMapper, Impor
         endTask.setCompanyId(companyId);
         endTask.setAgreementId(agreementId);
         endTask.setPartnerCompaniesId(partnerCompaniesId);
-        endTask.setHandStatus("1");
         baseMapper.updateById(endTask);
     }
 

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

@@ -554,13 +554,13 @@ handlingProportion,
     @Override
     @Transactional
     public HttpResult<Object> batchPinBalance(InsPlyIncomeVo insPlyIncomeVo) {
-
+        LocalDateTime now = LocalDateTime.now();
         if (!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())) {
             List<String> selectIds = insPlyIncomeVo.getSelectIds();
             for (String id : selectIds) {
                 InsPlyIncome insPlyIncome = new InsPlyIncome();
                 insPlyIncome.setHandlingFeesStatus("1");
-                insPlyIncome.setSettlementTime(LocalDate.now());
+                insPlyIncome.setSettlementTime(now);
                 insPlyIncome.setSettlementUserId(BaseController.getUser().getId());
                 insPlyIncome.setId(id);
                 baseMapper.updateById(insPlyIncome);
@@ -1363,14 +1363,14 @@ handlingProportion,
     /**
      * 计算 金额
      *
-     * @param jqNoTaxPremium
+     * @param taxPremium
      * @param proportion
      * @return
      */
-    private static BigDecimal getBigDecimal(BigDecimal jqNoTaxPremium, BigDecimal proportion) {
+    private static BigDecimal getBigDecimal(BigDecimal taxPremium, BigDecimal proportion) {
         BigDecimal divisor = new BigDecimal("1.06"); // 示例除数
         // 先进行除法,保留5位小数,不进行四舍五入(使用RoundingMode.DOWN)
-        BigDecimal dividedAmount = jqNoTaxPremium.divide(divisor, 5, RoundingMode.HALF_UP);
+        BigDecimal dividedAmount = taxPremium.divide(divisor, 5, BigDecimal.ROUND_DOWN);
         // 将比例除以100,假设proportion是一个百分比值
         // 然后进行乘法,并进行舍入到5位小数
         BigDecimal result = dividedAmount.multiply( proportion.divide(new BigDecimal(100))).setScale(5, BigDecimal.ROUND_DOWN);
@@ -1858,7 +1858,7 @@ handlingProportion,
                             return HttpResult.error("该单据已经开票 ");
                         } else {
                             item.setTaskId(importResult.getId());
-                            item.setSettlementTime(LocalDate.now());
+                            item.setSettlementTime(LocalDateTime.now());
                             baseMapper.updateById(item);
                         }
                     }

+ 2 - 1
src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.fnc.vo;
 
+import com.alibaba.excel.annotation.format.DateTimeFormat;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -58,7 +59,7 @@ public class InsPlyIncomeVo implements Serializable {
     private LocalDate createTime;
 
     @ApiModelProperty(value = "结算日期")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(value = "yyyy-MM-dd'T'HH:mm:ss")
     private LocalDate settlementTime;
 
 

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

@@ -1729,7 +1729,7 @@
     <select id="platformSettlementRecord" resultType="com.ydtech.modules.fnc.dto.PlatformSettlementRecordDto">
         SELECT
             DATE_FORMAT(a.settlement_time, '%Y-%m-%d %H:%i:%s') as "settlementTime",
-            ( a.commission_feevalue + a.other_feevalue) AS "settlementAmount"
+            sum(a.commission_feevalue + a.other_feevalue) AS "settlementAmount"
         FROM
             ins_ply_income a
             LEFT  JOIN  ptl_agreement  pa  on  a.agreement_id  = pa.id
@@ -1741,8 +1741,8 @@
             <if test="handlingFeesStatus !=null  and  handlingFeesStatus  !=''">
                 and a.handling_fees_status =#{handlingFeesStatus}
             </if>
-
         </where>
+        group  by  a.settlement_time
     </select>
 
 </mapper>