Bläddra i källkod

修改bug:
bug表924,私有应收 跟单开票,填写对账金额之后,未开票金额还是0,开票之后才会出现数据(车险和非车险都是)

jiakai 1 månad sedan
förälder
incheckning
52105c6370

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

@@ -15,6 +15,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.InvoiceTypeEnum;
@@ -3871,23 +3872,48 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
 
             // 收集disableFlag=0(未对账/未开票)的应收订单ID,已对账的数据跳过不修改
             List<String> updateIncomeIds = incomeList.stream()
-                    .filter(income -> "0".equals(income.getDisableFlag()))
                     .map(InsPlyIncome::getId)
                     .collect(Collectors.toList());
+            List<InsPlyIncome> insPlyIncomeList = incomeList.stream()
+                    .filter(income -> "0".equals(income.getDisableFlag()))
+                    .collect(Collectors.toList());
 
-            if (CollUtil.isNotEmpty(updateIncomeIds)) {
+            if (CollUtil.isNotEmpty(insPlyIncomeList)) {
                 // ins_ply_income根据incomeIds修改companyId和partnerCompanyId
                 // 注意:companyName为@TableField(exist=false)非数据库字段,不需要更新
-                LambdaUpdateWrapper<InsPlyIncome> incomeUpdateWrapper = new LambdaUpdateWrapper<>();
-                incomeUpdateWrapper.set(InsPlyIncome::getCompanyId, newCompanyId)
-                        .set(InsPlyIncome::getPartnerCompanyId, newPartnerCompanyId)
-                        .in(InsPlyIncome::getId, updateIncomeIds);
-                baseMapper.update(null, incomeUpdateWrapper);
-                log.info("修改ins_ply_income保司信息完成,未对账数据条数: {}", updateIncomeIds.size());
+                for (InsPlyIncome insPlyIncome : insPlyIncomeList) {
+                    LocalDateTime signingTime = insPlyIncome.getSigningTime();
+                    if (signingTime == null || insPlyIncome.getCompanyId() == null
+                            || insPlyIncome.getPartnerCompanyId() == null){
+                        log.warn("当前投保收入数据字段为空,跳过更新:{}",insPlyIncome);
+                        continue;
+                    }
+
+                    LambdaUpdateWrapper<InsFeeFollowOrderReconciliation> updateWrapper = Wrappers.lambdaUpdate();
+                    updateWrapper
+                            .eq(InsFeeFollowOrderReconciliation::getSystemCode, systemCode)
+                            .eq(InsFeeFollowOrderReconciliation::getYear, signingTime.getYear())
+                            .eq(InsFeeFollowOrderReconciliation::getMonth, signingTime.getMonthValue())
+                            .eq(InsFeeFollowOrderReconciliation::getCompanyId, insPlyIncome.getCompanyId())
+                            .eq(InsFeeFollowOrderReconciliation::getPartnerCompanyId, insPlyIncome.getPartnerCompanyId())
+                            .set(InsFeeFollowOrderReconciliation::getCompanyId, newCompanyId)
+                            .set(InsFeeFollowOrderReconciliation::getPartnerCompanyId, newPartnerCompanyId);
+                    int rows = insFeeFollowOrderReconciliationMapper.update(null, updateWrapper);
+                    log.info("本次更新对账记录条数:{}",rows);
+                }
+
             } else {
                 log.info("没有未对账的应收订单需要修改保司信息");
             }
 
+            // 修改ins_ply_income表
+            LambdaUpdateWrapper<InsPlyIncome> incomeUpdateWrapper = new LambdaUpdateWrapper<>();
+            incomeUpdateWrapper.set(InsPlyIncome::getCompanyId, newCompanyId)
+                    .set(InsPlyIncome::getPartnerCompanyId, newPartnerCompanyId)
+                    .in(InsPlyIncome::getId, updateIncomeIds);
+            baseMapper.update(null, incomeUpdateWrapper);
+            log.info("修改ins_ply_income保司信息完成,未对账数据条数: {}", updateIncomeIds.size());
+
             // 2. 修改ins_orders和ins_order_adjust表(通过feignClient调用quotation-summary服务)
             HttpResult<String> updateCompanyRes = insOrdersClient.updateCompanyBatch(batchModifyVo);
             log.info("修改ins_orders和ins_order_adjust保司信息的结果:updateCompanyRes=[{}]", JSONUtil.toJsonStr(updateCompanyRes));