|
|
@@ -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;
|
|
|
@@ -157,6 +158,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
private static final String PT_INVOICING_COMMISSION_LOCK = "PT_INVOICING_COMMISSION_LOCK:";
|
|
|
// 平台非车险结算锁
|
|
|
private static final String PT_INVOICING_OTHER_LOCK = "PT_INVOICING_OTHER_LOCK:";
|
|
|
+ @Autowired
|
|
|
+ private InsPlyIncomeMapper insPlyIncomeMapper;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -1050,6 +1053,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
* 优化:嵌套anyMatch改为HashMapID映射匹配,O(n²) -> O(n)
|
|
|
*/
|
|
|
private List<InsPlyIncomeDto> filterIncomeByInvoiceAndSettleCondition(List<InsPlyIncomeDto> incomeList, SettlementReportQueryVo queryVo) {
|
|
|
+ log.info("对查询条件进行转义:queryVo=[{}]", JSONUtil.toJsonStr(queryVo));
|
|
|
String status = queryVo.getStatus();
|
|
|
String invoiceStartTime = queryVo.getInvoiceStartTime();
|
|
|
String invoiceEndTime = queryVo.getInvoiceEndTime();
|
|
|
@@ -3852,6 +3856,69 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
log.info("batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
|
|
|
HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
|
|
|
log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
|
|
|
+
|
|
|
+ // 如果companyIds不为空,则执行保司信息修改逻辑
|
|
|
+ // 涉及表:ins_ply_income(未对账的才改)、ins_orders、ins_order_adjust
|
|
|
+ if (CollUtil.isNotEmpty(batchModifyVo.getCompanyIds())) {
|
|
|
+ List<String> companyIds = batchModifyVo.getCompanyIds();
|
|
|
+ // 获取新的保司ID(companyIds第一个元素)和合作保险公司ID(companyIds第二个元素,若不存在则使用保司ID)
|
|
|
+ String newCompanyId = CollUtil.getFirst(companyIds);
|
|
|
+ String newPartnerCompanyId = CollUtil.size(companyIds) > 1 ? CollUtil.getLast(companyIds) : newCompanyId;
|
|
|
+
|
|
|
+ // 1. 修改ins_ply_income表(仅修改未对账的数据)
|
|
|
+ // 调用setDisableFlagForOtherReceivable设置disableFlag:1-已对账(已开票),0-未对账(未开票)
|
|
|
+ String systemCode = baseController.getSystemCode();
|
|
|
+ this.setDisableFlagForOtherReceivable(incomeList, systemCode);
|
|
|
+
|
|
|
+ // 收集disableFlag=0(未对账/未开票)的应收订单ID,已对账的数据跳过不修改
|
|
|
+ List<String> updateIncomeIds = incomeList.stream()
|
|
|
+ .map(InsPlyIncome::getId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<InsPlyIncome> insPlyIncomeList = incomeList.stream()
|
|
|
+ .filter(income -> "0".equals(income.getDisableFlag()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(insPlyIncomeList)) {
|
|
|
+ // ins_ply_income根据incomeIds修改companyId和partnerCompanyId
|
|
|
+ // 注意:companyName为@TableField(exist=false)非数据库字段,不需要更新
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -4562,6 +4629,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
vo.setReconciliationAmount(insFeeFollowOrderReconciliation.getReconciliationAmount());
|
|
|
vo.setFalselyIncreasedDifference(insFeeFollowOrderReconciliation.getFalselyIncreasedDifference());
|
|
|
vo.setFalselyIncreasedReason(insFeeFollowOrderReconciliation.getFalselyIncreasedReason());
|
|
|
+ vo.setUninvoiced(insFeeFollowOrderReconciliation.getReconciliationAmount());
|
|
|
}else{
|
|
|
// 数据库无记录,使用默认值或DTO里的值
|
|
|
vo.setReconciliationAmount(null);
|
|
|
@@ -4708,6 +4776,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
Page<InsPlyIncome> page = baseMapper.getReceivablePage(receivableQueryVo.getPage(), receivableQueryVo);
|
|
|
List<InsPlyIncome> records = page.getRecords();
|
|
|
records = this.fillOtherInfo(records,null);
|
|
|
+ // 过滤业务来源
|
|
|
+ records = records.stream().filter(income -> StrUtil.isBlank(receivableQueryVo.getTypeAttr()) || receivableQueryVo.getTypeAttr().equals(income.getTypeAttr())).collect(Collectors.toList());
|
|
|
page.setRecords(records);
|
|
|
return page;
|
|
|
}
|
|
|
@@ -5593,6 +5663,12 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
log.info("保险公司结算报表查询-区分租户并且按照日期进行过滤:systemCode=[{}],queryVo=[{}]", systemCode, JSONUtil.toJsonStr(queryVo));
|
|
|
// 1. 先将有数据的保险公司进行汇总
|
|
|
// 累计应收金额, 应收手续费(手续费)
|
|
|
+ if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
|
|
|
+ HttpResult<List<String>> subCompanyIdRes = esmInsCompanyClient.queryOwnAndSubCompandyIds(queryVo.getCompanyId());
|
|
|
+ queryVo.setCompanyIdList(subCompanyIdRes.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
List<CompanySuperviseSettlementReportDto> allCompaniesIncomeDatas = baseMapper.queryCumulativeAccountsReceivable(systemCode, queryVo);
|
|
|
|
|
|
// allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream().filter(action->{
|
|
|
@@ -5662,11 +5738,10 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
return HttpResult.ok(msg, Collections.emptyList());
|
|
|
}
|
|
|
// add by lipf, 前端保险公司的查询条件未生效,进行bug修复
|
|
|
- // TODO 这里需要都支持
|
|
|
- if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
|
|
|
- allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream()
|
|
|
- .filter(action-> queryVo.getCompanyId().equals(action.getPartnerCompanyId())).toList();
|
|
|
- }
|
|
|
+// if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
|
|
|
+// allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream()
|
|
|
+// .filter(action-> queryVo.getCompanyId().equals(action.getPartnerCompanyId())).toList();
|
|
|
+// }
|
|
|
// 2. 汇总后,计算得到已开票,未开票,已结算,未结算的数据
|
|
|
allCompaniesIncomeDatas = this.calStatisAmount(allCompaniesIncomeDatas, queryVo, systemCode);
|
|
|
// 保留已开票的数据
|
|
|
@@ -5748,8 +5823,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 已开票(跟单费)
|
|
|
|
|
|
List<String> invoiceTypes = List.of("1","3");
|
|
|
-
|
|
|
-
|
|
|
if("10".equals(queryVo.getAccountsReceivable())){
|
|
|
invoiceTypes = List.of("1");
|
|
|
}else if("20".equals(queryVo.getAccountsReceivable())){
|