Procházet zdrojové kódy

Merge branch 'master' into wrq_dev

wangrq před 3 měsíci
rodič
revize
fd59f35e1b

+ 4 - 3
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -454,9 +454,10 @@ public class QuoteVerificationAspect {
         BigDecimal keepPointRateCal  = BigDecimalUtil.subtract(BigDecimalUtil.add(BigDecimalUtil.divide(inletPercent,taxFactor),addThrowPercent),exportPercent)
                 .setScale(5,RoundingMode.HALF_EVEN);
         keepPointRate.accept(insFeeOrders, keepPointRateCal);
-        // 设置留点比例和留点费用
-        BigDecimal keepPointAmount  = BigDecimalUtil.subtract(BigDecimalUtil.add(receivable,addAmount),payable)
-                .setScale(5,RoundingMode.HALF_EVEN);
+        // 设置留点比例和留点费用, 费用这块, 留点金额按照 保费* 留点比例计算得到的吧。然后,直接保留5位,多出来的直接截断 2026年7月3日11:47:08
+//        BigDecimal keepPointAmount  = BigDecimalUtil.subtract(BigDecimalUtil.add(receivable,addAmount),payable)
+//                .setScale(5,RoundingMode.HALF_EVEN);
+        BigDecimal keepPointAmount = BigDecimalUtil.multiply(premium,keepPointRateCal).setScale(5,RoundingMode.DOWN);
         keepPointPremium.accept(insFeeOrders,keepPointAmount);
     }
 

+ 7 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java

@@ -212,10 +212,13 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
 //        log.info("分销总费用:distributionFee=【{}】",distributionFee);
 //        BigDecimal keepPoint = BigDecimalUtil.subtract(BigDecimalUtil.add(inlet,addThrow),BigDecimalUtil.add(export, distributionFee));
 //        log.info("留点费用:inlet=[{}],addThrow=[{}],export=[{}], distributionFee=[{}]mkeepPoint=[{}]", inlet, addThrow, export, distributionFee, keepPoint);
-        // modify by lipf 财务要求,计算留点的时候,出口费用,按照两位进行截断
-        BigDecimal exportContainDistribute = premium.multiply(exportRatioContainDistribution).setScale(2, RoundingMode.DOWN);
-        BigDecimal keepPoint = BigDecimalUtil.subtract(BigDecimalUtil.add(inlet,addThrow),exportContainDistribute);
-        log.info("计算留点:inlet=[{}],addThrow=[{}].exportContainDistribute=[{}]", inlet, addThrow, exportContainDistribute);
+        // modify by lipf 财务要求,计算留点的时候,出口费用,按照两位进行截断,
+//        BigDecimal exportContainDistribute = premium.multiply(exportRatioContainDistribution).setScale(2, RoundingMode.DOWN);
+//        BigDecimal keepPoint = BigDecimalUtil.subtract(BigDecimalUtil.add(inlet,addThrow),exportContainDistribute);
+
+        // 设置留点比例和留点费用, 费用这块, 留点金额按照 保费* 留点比例计算得到的吧。然后,直接保留5位,多出来的直接截断 2026年7月3日11:47:08
+        BigDecimal keepPoint = BigDecimalUtil.multiply(premium,keepPointRatio).setScale(5,RoundingMode.DOWN);
+        log.info("计算留点:inlet=[{}],addThrow=[{}].exportContainDistribute=[{}]", inlet, addThrow, keepPointRatio);
 
         // 赋值到实体(自动匹配 jq / sy / jy)
         if ("jq".equals(type)) {

+ 31 - 21
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -25,7 +25,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -95,8 +94,11 @@ public class ReceivableController {
         receivableQueryVo.setSystemCode(baseController.getSystemCode());
         HttpResult<Page<InsPlyIncome>> ok = HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         Page<InsPlyIncome> data = ok.getData();
-        List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        InsPlyIncomeVO insPlyIncomeVO = receivableService.getReceivablePageIds(receivableQueryVo);
+        insPlyIncomeVO.setInsPlyIncomePage(data);
+        // return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        return HttpResult.ok(insPlyIncomeVO);
+
     }
 
     @PostMapping("getCommissionReceivableTotalAmount")
@@ -173,8 +175,10 @@ public class ReceivableController {
         receivableQueryVo.setSystemCode(baseController.getSystemCode());
         HttpResult<Page<InsPlyIncome>> ok = HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         Page<InsPlyIncome> data = ok.getData();
-        List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        InsPlyIncomeVO vo = receivableService.getReceivablePageIds(receivableQueryVo);
+        vo.setInsPlyIncomePage(data);
+        return HttpResult.ok(vo);
+        //return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
     }
 
     @PostMapping("getOtherReceivableTotalAmount")
@@ -205,8 +209,10 @@ public class ReceivableController {
         receivableQueryVo.setSystemCode(baseController.getSystemCode());
         HttpResult<Page<InsPlyIncome>> ok = HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         Page<InsPlyIncome> data = ok.getData();
-        List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        InsPlyIncomeVO vo = receivableService.getReceivablePageIds(receivableQueryVo);
+        vo.setInsPlyIncomePage(data);
+        // return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        return HttpResult.ok(vo);
     }
 
     @PostMapping("getJyOtherReceivableList")
@@ -217,8 +223,10 @@ public class ReceivableController {
         receivableQueryVo.setSystemCode(baseController.getSystemCode());
         HttpResult<Page<InsPlyIncome>> ok = HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         Page<InsPlyIncome> data = ok.getData();
-        List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        InsPlyIncomeVO vo = receivableService.getReceivablePageIds(receivableQueryVo);
+        vo.setInsPlyIncomePage(data);
+        // return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        return HttpResult.ok(vo);
     }
 
     @PostMapping("commissionInvoicing")
@@ -441,20 +449,22 @@ public class ReceivableController {
         }
         receivableQueryVo.setSystemCode(baseController.getSystemCode());
         Page<InsPlyIncome> data = receivableService.getPlatFormReceivableList(receivableQueryVo);
-        List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
+        InsPlyIncomeVO vo = receivableService.getReceivablePageIds(receivableQueryVo);
         //满足条件的的总的应收
-        BigDecimal totalReceivablePremium = BigDecimal.ZERO;
-        try{
-            List<String> orderNos = receivablePageIds.stream().map(InsPlyIncomeOrder::getOrderNo).distinct().toList();
-            if(CollUtil.isNotEmpty(orderNos)){
-                totalReceivablePremium = receivableService.queryAllTotalReceivablePremium(orderNos);
-            }
-            totalReceivablePremium = totalReceivablePremium.setScale(5, RoundingMode.HALF_DOWN);
-        }catch (Exception e){
-            log.error("统计总的应收异常",e);
-        }
+//        BigDecimal totalReceivablePremium = BigDecimal.ZERO;
+//        try{
+//            List<String> orderNos = receivablePageIds.stream().map(InsPlyIncomeOrder::getOrderNo).distinct().toList();
+//            if(CollUtil.isNotEmpty(orderNos)){
+//                totalReceivablePremium = receivableService.queryAllTotalReceivablePremium(orderNos);
+//            }
+//            totalReceivablePremium = totalReceivablePremium.setScale(5, RoundingMode.HALF_DOWN);
+//        }catch (Exception e){
+//            log.error("统计总的应收异常",e);
+//        }
         // receivablePageIds.stream().map(InsPlyIncomeOrder::getTotalReceivablePremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds, Objects.toString(totalReceivablePremium,"汇总金额异常")));
+        //return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds, Objects.toString(totalReceivablePremium,"汇总金额异常")));
+        vo.setInsPlyIncomePage(data);
+        return HttpResult.ok(vo);
     }
 
     @PostMapping("/getPlatFormReceivableTotalAmount")

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/ReceivableService.java

@@ -67,7 +67,7 @@ public interface ReceivableService extends IService<InsPlyIncome> {
      * @author lipf
      * @date 2026/5/23 9:40
      */
-    List<InsPlyIncomeOrder> getReceivablePageIds(ReceivableQueryVo receivableQueryVo);
+    InsPlyIncomeVO getReceivablePageIds(ReceivableQueryVo receivableQueryVo);
 
     List<InsPlyIncome> getReceivableList(ReceivableQueryVo receivableQueryVo);
     /**

+ 19 - 4
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -284,6 +284,17 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         log.info("获取私有协议手续费应收列表。receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
         Page<InsPlyIncome> page = baseMapper.getReceivablePage(receivableQueryVo.getPage(), receivableQueryVo);
         List<InsPlyIncome> records = page.getRecords();
+        records = records.stream().filter(action->{
+            // add by lipf 2026年7月3日09:55:17 只有私有的非车,才需要走下面的逻辑。 将非车保费为0的记录不显示
+            if(StrUtil.isEmpty(receivableQueryVo.getQueryType()) || !"3".equals(receivableQueryVo.getQueryType())){
+                return true;
+            }
+            if(StrUtil.isEmpty(action.getJyPremium())){
+                return false;
+            }
+            BigDecimal JyPremium = new BigDecimal(action.getJyPremium());
+            return BigDecimal.ZERO.compareTo(JyPremium) != 0;
+        }).toList();
         records = this.fillOtherInfo(records,receivableQueryVo.getInvoiceType());
         page.setRecords(records);
         return page;
@@ -300,19 +311,23 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
      *
      * @param receivableQueryVo 前端传过来的查询条件,包含订单号、保险公司ID、结算状态、时间范围等筛选条件
      * @return List<InsPlyIncomeOrder> 返回应收订单ID和订单号的列表,每个对象包含:
-     *         - id: 应收订单记录ID
-     *         - orderNo: 订单号
+     * - id: 应收订单记录ID
+     * - orderNo: 订单号
      */
     @Override
-    public List<InsPlyIncomeOrder> getReceivablePageIds(ReceivableQueryVo receivableQueryVo) {
+    public InsPlyIncomeVO getReceivablePageIds(ReceivableQueryVo receivableQueryVo) {
         log.info("获取私有协议手续费应收列表的id集合。receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
         // 设置page的searhCount 为false,则不会查询总数,会直接查询具体的值
         Page<InsPlyIncome> page1 = new Page<>(1, Integer.MAX_VALUE, false);
         Page<InsPlyIncome> page = baseMapper.getReceivablePage(page1, receivableQueryVo);
         List<InsPlyIncomeOrder> res = page.getRecords().stream()
                 .map(action -> new InsPlyIncomeOrder(action.getId(), action.getOrderNo())).toList();
+        BigDecimal totalAmount = page.getRecords().stream()
+                .map(action -> new BigDecimal(Objects.toString(action.getJyReceivablePremium(), "0"))).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        InsPlyIncomeVO vo = new InsPlyIncomeVO(null, res,Objects.toString(totalAmount,"0"));
         log.info("获取私有/平台协议手续费应收列表的id集合。receivableQueryVo=[{}]. ids.size=[{}]", JSONUtil.toJsonStr(receivableQueryVo), CollUtil.size(res));
-        return res;
+        return vo;
     }
 
     /**

+ 5 - 2
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -338,8 +338,8 @@
         </if>
         <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
             AND ipi.jy_premium != 0
-            AND ipi.jy_supervise_settlement = 0
-            AND ipi.jy_other_settlement = 0
+<!--            AND ipi.jy_supervise_settlement = 0-->
+<!--            AND ipi.jy_other_settlement = 0-->
         </if>
         <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
             AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
@@ -1488,6 +1488,9 @@
             <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
                 AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
             </if>
+            <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
+                AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
+            </if>
             <if test="invoiceRecordQueryVo.invoiceParty != null and invoiceRecordQueryVo.invoiceParty != ''">
                 AND ipii.invoice_party = #{invoiceRecordQueryVo.invoiceParty}
             </if>