update 处理历史数据接口 多线程

This commit is contained in:
lijiarao
2024-07-18 09:39:36 +08:00
parent 8b745c1c55
commit f389d18a3f
@@ -1,5 +1,6 @@
package com.jero.pack.service.impl; package com.jero.pack.service.impl;
import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,6 +54,8 @@ import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -399,36 +402,36 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList); wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
List<PayPackCompanyProject> list = this.list(wrapper1); List<PayPackCompanyProject> list = this.list(wrapper1);
ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
for (PayPackCompanyProject project : list) { for (PayPackCompanyProject project : list) {
String projectId = project.getProjectId(); fixedThreadPool.submit(() -> {
Integer projectType = project.getProjectType(); String projectId = project.getProjectId();
String projectType = project.getProjectType().toString();
switch (projectType.toString()){
// 普通项目 // 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1: if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
PayCommonProject old = payCommonProjectMapper.selectById(projectId); PayCommonProject old = payCommonProjectMapper.selectById(projectId);
if (old == null) { if (old == null) {
throw new JeroBootException("项目不存在"); throw new JeroBootException("项目不存在");
} }
if (!new BigDecimal("0.00").equals(old.getReceivableAmount())){ if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
continue; return;
} }
PayCommonProject payCommonProject = null; PayCommonProject payCommonProject = null;
//普通项目管理-添加 //普通项目管理-添加
List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId); List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
if (jsonObjects.isEmpty()){ if (jsonObjects.isEmpty()) {
continue; return;
} }
for (JSONObject jsonObject : jsonObjects) { for (JSONObject jsonObject : jsonObjects) {
String logContent = jsonObject.getString("logContent"); String logContent = jsonObject.getString("logContent");
if ("普通项目管理-添加".equals(logContent)){ if ("普通项目管理-添加".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam"); String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1,requestParam.length()-1); requestParam = requestParam.substring(1, requestParam.length() - 1);
payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class); payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
} }
} }
if (payCommonProject == null) { if (payCommonProject == null) {
continue; return;
} }
PayCommonProject project1 = new PayCommonProject(); PayCommonProject project1 = new PayCommonProject();
project1.setId(projectId); project1.setId(projectId);
@@ -436,35 +439,34 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
project1.setNoTaxAmount(payCommonProject.getNoTaxAmount()); project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
project1.setTax(payCommonProject.getTax()); project1.setTax(payCommonProject.getTax());
payCommonProjectMapper.updateById(project1); payCommonProjectMapper.updateById(project1);
break; }else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
// 工作组项目 // 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
//工作组成员-修改 工作组成员-添加 //工作组成员-修改 工作组成员-添加
PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId); PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
if (old1 == null) { if (old1 == null) {
throw new JeroBootException("项目不存在"); throw new JeroBootException("项目不存在");
} }
if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())){ if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
continue; return;
} }
String workingGroupId = old1.getWorkingGroupId(); String workingGroupId = old1.getWorkingGroupId();
PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId); PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
BigDecimal yearChargeA = payWorkingGroup.getYearChargeA(); BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)){ if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
yearChargeA = new BigDecimal("0.00"); yearChargeA = new BigDecimal("0.00");
} }
PayWorkingGroupSubItem payWorking = null; PayWorkingGroupSubItem payWorking = null;
List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId); List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
for (JSONObject jsonObject : jsonObjects1) { for (JSONObject jsonObject : jsonObjects1) {
String logContent = jsonObject.getString("logContent"); String logContent = jsonObject.getString("logContent");
if ("工作组成员-添加".equals(logContent)||"工作组成员-修改".equals(logContent)||"企业端-工作组成员-修改".equals(logContent)){ if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam"); String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1,requestParam.length()-1); requestParam = requestParam.substring(1, requestParam.length() - 1);
PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class); PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
BigDecimal receivableAmount = obj.getReceivableAmount(); BigDecimal receivableAmount = obj.getReceivableAmount();
if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null){ if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
continue; return;
}else { } else {
payWorking = obj; payWorking = obj;
} }
} }
@@ -479,7 +481,7 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
project2.setNoTaxAmount(noTaxAmount); project2.setNoTaxAmount(noTaxAmount);
project2.setTax(yearChargeA.subtract(noTaxAmount)); project2.setTax(yearChargeA.subtract(noTaxAmount));
payWorkingGroupSubItemMapper.updateById(project2); payWorkingGroupSubItemMapper.updateById(project2);
}else { } else {
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem(); PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId); project2.setId(projectId);
project2.setReceivableAmount(payWorking.getReceivableAmount()); project2.setReceivableAmount(payWorking.getReceivableAmount());
@@ -487,15 +489,14 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
project2.setTax(payWorking.getTax()); project2.setTax(payWorking.getTax());
payWorkingGroupSubItemMapper.updateById(project2); payWorkingGroupSubItemMapper.updateById(project2);
} }
break; }else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
//会员项目 //会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId); PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
if (old2 == null) { if (old2 == null) {
throw new JeroBootException("项目不存在"); throw new JeroBootException("项目不存在");
} }
if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())){ if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
continue; return;
} }
String memberProjectId = old2.getProjectId(); String memberProjectId = old2.getProjectId();
PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId); PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
@@ -506,22 +507,21 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
member.setNoTaxAmount(noTaxAmount); member.setNoTaxAmount(noTaxAmount);
member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount)); member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
payMemberProjectSubitemMapper.updateById(member); payMemberProjectSubitemMapper.updateById(member);
break; }else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
//标协会员 //标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId); TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
if (old3 == null) { if (old3 == null) {
throw new JeroBootException("项目不存在"); throw new JeroBootException("项目不存在");
} }
if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())){ if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
continue; return;
} }
TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem(); TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
Integer memberNature = old3.getMemberNature(); Integer memberNature = old3.getMemberNature();
BigDecimal amountReceivable = null; BigDecimal amountReceivable = null;
if (memberNature.equals(1)){ if (memberNature.equals(1)) {
amountReceivable = new BigDecimal("5000"); amountReceivable = new BigDecimal("5000");
}else { } else {
amountReceivable = new BigDecimal("2000"); amountReceivable = new BigDecimal("2000");
} }
tbMember.setId(projectId); tbMember.setId(projectId);
@@ -530,10 +530,15 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
tbMember.setNoTaxAmount(noTaxAmount1); tbMember.setNoTaxAmount(noTaxAmount1);
tbMember.setTax(amountReceivable.subtract(noTaxAmount1)); tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
tbMemberProjectSubitemMapper.updateById(tbMember); tbMemberProjectSubitemMapper.updateById(tbMember);
break; }
default: });
}
} }
//if (!fixedThreadPool.isShutdown()) {
// fixedThreadPool.shutdown();
//}
//try {
// fixedThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
//} catch (InterruptedException e) {
//}
} }
} }