Kaynağa Gözat

应付账款 审核订单后进入业务员钱包的金额与出口金额不一致

通过日志,定位到,该订单审核通过之后,又进行了费用调整
lipf 2 ay önce
ebeveyn
işleme
7db1c22f08

+ 2 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -186,7 +186,7 @@ public class InsFeeAuditController {
      */
     @OrderOperationLog(
             module = "订单审核",
-            subModule = "我的审核",
+            subModule = "费用调整",
             optType = QuoteNumberConstant.QuoteOptType.OPT_TYPE_15,
             description = "费用调整",
             orderSpEl = "#param",
@@ -195,6 +195,7 @@ public class InsFeeAuditController {
     @PostMapping("/saveCostInfo")
     @Operation(summary = "保存调整的费用")
     public HttpResult<String> saveCostInfo(@RequestBody PtlAgreementCostRatioVo param){
+        log.info("保存调整的费用.param =[{}]", JSONUtil.toJsonStr(param));
         return insFeeAuditService.saveCostInfo(param);
     }
 

+ 2 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java

@@ -221,7 +221,8 @@ public class InsOrdersController extends BaseController {
     @Operation(summary = "费用调整并计算保存")
     @PostMapping("/adjustmentCostAndSave")
     public HttpResult<InsFeeOrders> adjustmentCostAndSave(@RequestBody PtlAgreementCostRatioVo ptlAgreementCostRatioVo) throws ReflectiveOperationException {
-        return HttpResult.ok(insFeeOrdersService.calcCosts(ptlAgreementCostRatioVo));
+        log.info("费用调整并计算保存。ptlAgreementCostRatioVo=[{}]",JSONUtil.toJsonStr(ptlAgreementCostRatioVo));
+        return insFeeOrdersService.calcCosts(ptlAgreementCostRatioVo);
     }
 
     @GetMapping("/changePerson")

+ 8 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java

@@ -26,6 +26,14 @@ public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
     Page<FeeAuditVo> queryPage(Page page, @Param("param") FeeAuditParam param);
 
     List<FeeAuditVo> queryList(Page page, @Param("param") FeeAuditParam param);
+
+    /**
+     * 根据订单号查询订单的审核记录
+     *
+     * @author lipf
+     * @date 2026/7/16 14:33
+     */
+    InsFeeAudit selectFeeAuditByOrderNo(@Param("orderNo") String orderNo);
 }
 
 

+ 2 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeOrdersService.java

@@ -11,7 +11,8 @@ import java.math.BigDecimal;
 import java.util.List;
 
 public interface InsFeeOrdersService extends IService<InsFeeOrders> {
-    InsFeeOrders calcCosts(PtlAgreementCostRatioVo ptlAgreementCostRatioVo) throws ReflectiveOperationException;
+
+    HttpResult<InsFeeOrders> calcCosts(PtlAgreementCostRatioVo ptlAgreementCostRatioVo) throws ReflectiveOperationException;
 
     List<InsFeeOrders> getInsFeeOrdersList(InsFeeOrdersParam param);
 

+ 6 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -933,7 +933,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     public HttpResult<String> saveCostInfo(PtlAgreementCostRatioVo param) {
         String systemCode = baseController.getSystemCode();
         String userName = baseController.getUserName();
-        log.info("保存调整后的费用:systemCode=[{}], userName=[{}],param=[{}]", systemCode, userName, JSONUtil.toJsonStr(param));
+        log.info("保存调整后的费用比例:systemCode=[{}], userName=[{}],param=[{}]", systemCode, userName, JSONUtil.toJsonStr(param));
         // add by lipf, 2026年6月22日10:15:51 已经审核通过的订单不能在让调整费用,否则会造成费用不一致。 会影响很多地方. 实际业务场景存在审核通过后,调整费用的情况
 //        String orderNo = param.getOrderNo();
 //        HttpResult<String> validateRes = this.validateOrderCheck(orderNo);
@@ -941,7 +941,11 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 //            return validateRes;
 //        }
         try {
-            feeOrdersService.calcCosts(param);
+            HttpResult<InsFeeOrders> result = feeOrdersService.calcCosts(param);
+            if(result.isFail()){
+                log.error("计算费用比例异常.result=[{}]", JSONUtil.toJsonStr(result));
+                return HttpResult.error(result.getMsg());
+            }
         } catch (ReflectiveOperationException e) {
             log.error("调整订单费用时,计算异常",e);
             throw new SystemException("费用计算异常:"+ e.getMessage());

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

@@ -9,6 +9,7 @@ import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.CostCalculateRespVO;
 import com.jzg.commons.entity.dto.InsFeeOrdersParam;
+import com.jzg.commons.entity.orders.po.InsFeeAudit;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.commons.entity.po.InsFeeOrders;
@@ -19,6 +20,7 @@ import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.BigDecimalUtil;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.commons.client.OrgClient;
+import com.jzg.quotation.summary.mapper.InsFeeAuditMapper;
 import com.jzg.quotation.summary.mapper.InsFeeOrdersMapper;
 import com.jzg.quotation.summary.service.InsFeeOrdersService;
 import com.jzg.quotation.summary.service.InsOrdersCostsService;
@@ -26,12 +28,14 @@ import com.jzg.quotation.summary.service.InsOrdersService;
 import jakarta.annotation.Resource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author quchen
@@ -56,6 +60,8 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
 
     @Resource
     private InsFeeOrdersMapper insFeeOrdersMapper;
+    @Autowired
+    private InsFeeAuditMapper insFeeAuditMapper;
 
 
     /**
@@ -83,13 +89,24 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
      * @date 2026/6/24 9:46
      */
     @Override
-    public InsFeeOrders calcCosts(PtlAgreementCostRatioVo ptlAgreementCostRatioVo) {
+    public HttpResult<InsFeeOrders> calcCosts(PtlAgreementCostRatioVo ptlAgreementCostRatioVo) {
         log.info("调整费用。不同费用的比例信息是:[{}]", JSONUtil.toJsonStr(ptlAgreementCostRatioVo));
+        InsFeeAudit insFeeAudit = insFeeAuditMapper.selectFeeAuditByOrderNo(ptlAgreementCostRatioVo.getOrderNo());
+        if(insFeeAudit == null){
+            String msg = String.format("根据订单号[%s]未找到费用审核记录",ptlAgreementCostRatioVo.getOrderNo());
+            log.error("根据订单号[{}]未找到费用审核记录",ptlAgreementCostRatioVo.getOrderNo());
+            return HttpResult.error(msg);
+        }
+        if("1".equals(Objects.toString(insFeeAudit.getAuditStatus(),"")) ){
+            String msg =String.format("订单号为[%s]的订单已经审核通过,无法进行费用调整", ptlAgreementCostRatioVo.getOrderNo());
+            log.error(msg);
+            return HttpResult.error(msg);
+        }
         InsFeeOrders insFeeOrders = getInsFeeOrders(ptlAgreementCostRatioVo);
         log.info("调整后费用.参数[{}]真实结果是[{}]", JSONUtil.toJsonStr(ptlAgreementCostRatioVo), JSONUtil.toJsonStr(insFeeOrders));
         // 保存比例
         this.updateById(insFeeOrders);
-        return insFeeOrders;
+        return HttpResult.ok(insFeeOrders);
     }
 
     /**

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -467,7 +467,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
      */
     @Override
     public InsOrdersVo selectById(Long id) {
-        log.info("根据id查询订单信息。订单的序号(不是订单号)id=[{}]", id);
+        log.info("根据id查询订单信息。订单的序号(订单号)id=[{}]", id);
         // 1. 查询订单信息
         InsOrdersVo insOrdersVo = insOrdersMapper.getById(id);
         if (insOrdersVo == null) {

+ 6 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml

@@ -25,6 +25,12 @@
         is_delete,create_time,create_by,
         update_time,update_by,is_problem
     </sql>
+
+    <!-- 根据订单号查询订单的审核记录 lipf 2026年7月16日14:33:10 -->
+    <select id="selectFeeAuditByOrderNo" resultMap="BaseResultMap">
+        select * from ins_fee_audit ifa where ifa.order_no = #{orderNo}
+    </select>
+
     <select id="queryPage" resultType="com.jzg.commons.entity.orders.vo.FeeAuditVo">
         SELECT
         qsu.username ,    -- 业务员登录账号

+ 1 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -86,6 +86,7 @@ public class ReceivableController {
     @PostMapping("getCommissionReceivableList")
     @Operation(summary = "获取私有协议手续费列表")
     public HttpResult<InsPlyIncomeVO> getCommissionReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
+        log.info("获取私有协议手续费列表:receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
         if (StrUtil.isBlank(receivableQueryVo.getQueryType())){
             receivableQueryVo.setQueryType("2");
         }

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

@@ -268,7 +268,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             return HttpResult.error("请勾选未结算的订单数据");
         }
         List<InsPlyIncome> insPlyIncomes = baseMapper.queryIncomeByIds(invoicingVo);
-        List<ContractVO> contractVOS = insPlyIncomes.stream().map(action -> new ContractVO(action.getContactPerson(), action.getContactPersonPhone())).distinct().toList();
+        List<ContractVO> contractVOS = insPlyIncomes.stream().map(action -> new ContractVO(action.getContactPerson(),null)).distinct().toList();
         log.info("根据订单编号查询得到的对接人信息[{}]个", CollUtil.size(contractVOS));
         return HttpResult.ok(contractVOS);
     }
@@ -426,9 +426,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                         return true;
                     }
                     if("等于".equals(type)){
-                        return search.equals(insPlyIncome.getContactPersonPhone());
+                        return search.equals(insPlyIncome.getContactPerson());
                     }else if("不等于".equals(type)){
-                        return !search.equals(insPlyIncome.getContactPersonPhone());
+                        return !search.equals(insPlyIncome.getContactPerson());
                     }
                     return true;
                 };
@@ -4586,7 +4586,11 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     remainSettlementAmount = BigDecimal.ZERO;
                 }
                 action.setRemainSettlementAmount(remainSettlementAmount);
-                action.setCompanyAllName(allCompanyHierarchyPaths.get(Objects.toString(action.getCompanyId(),"")));
+                String companyAllName = allCompanyHierarchyPaths.get(Objects.toString(action.getCompanyId(), ""));
+                if(StrUtil.isEmpty(companyAllName)){
+                    log.error("根据保险公司序号[{}]没有找到保险公司",action.getCompanyId());
+                }
+                action.setCompanyAllName(companyAllName);
                 action.setSettlementStatus(settlementStatusName);
 
                 // 回款差额