update 处理历史数据接口 多线程
This commit is contained in:
+45
-40
@@ -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) {
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user