add 处理历史数据接口

This commit is contained in:
lijiarao
2024-07-16 17:11:17 +08:00
parent 1f85dec5a8
commit 2bba254cef
3 changed files with 146 additions and 2 deletions
@@ -347,4 +347,6 @@ public interface ISysBaseAPI extends CommonAPI {
* @param templateParas 参数
*/
void sendMessage(String phone, String sender,String templateId,String signature,String templateParas);
List<JSONObject> getLogByRequestParam(String requestParam);
}
@@ -10,17 +10,21 @@ import com.jero.common.mapper.ProjectDetailMapper;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.service.ProjectPackService;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon;
@@ -45,6 +49,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -85,6 +90,10 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayMemberProjectService payMemberProjectService;
@Override
@@ -387,8 +396,126 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
List<PayPackCompanyProject> list = this.list(wrapper1);
for (PayPackCompanyProject project : list) {
//setAmountReceivableZero(project.getProjectId(),project.getProjectType()+"");
String projectId = project.getProjectId();
Integer projectType = project.getProjectType();
switch (projectType.toString()){
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject old = payCommonProjectMapper.selectById(projectId);
if (old == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old.getReceivableAmount())){
continue;
}
PayCommonProject payCommonProject = null;
//普通项目管理-添加
List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
if (jsonObjects.isEmpty()){
continue;
}
for (JSONObject jsonObject : jsonObjects) {
String logContent = jsonObject.getString("logContent");
if ("普通项目管理-添加".equals(logContent)){
String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1,requestParam.length()-1);
payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
}
}
if (payCommonProject == null) {
continue;
}
PayCommonProject project1 = new PayCommonProject();
project1.setId(projectId);
project1.setReceivableAmount(payCommonProject.getReceivableAmount());
project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
project1.setTax(payCommonProject.getTax());
payCommonProjectMapper.updateById(project1);
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
//工作组成员-修改 工作组成员-添加
PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
if (old1 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())){
continue;
}
PayWorkingGroupSubItem payWorking = null;
List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
if (jsonObjects1.isEmpty()){
continue;
}
for (JSONObject jsonObject : jsonObjects1) {
String logContent = jsonObject.getString("logContent");
if ("工作组成员-添加".equals(logContent)||"工作组成员-修改".equals(logContent)||"企业端-工作组成员-修改".equals(logContent)){
String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1,requestParam.length()-1);
PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
BigDecimal receivableAmount = obj.getReceivableAmount();
if (new BigDecimal("0.00").equals(receivableAmount)){
continue;
}else {
payWorking = obj;
}
}
}
if (payWorking == null) {
continue;
}
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId);
project2.setReceivableAmount(payWorking.getReceivableAmount());
project2.setNoTaxAmount(payWorking.getNoTaxAmount());
project2.setTax(payWorking.getTax());
payWorkingGroupSubItemMapper.updateById(project2);
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
if (old2 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())){
continue;
}
String memberProjectId = old2.getProjectId();
PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
PayMemberProjectSubitem member = new PayMemberProjectSubitem();
member.setId(projectId);
member.setAmountReceivable(memberProject.getChargeStandard());
BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
member.setNoTaxAmount(noTaxAmount);
member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
payMemberProjectSubitemMapper.updateById(member);
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
if (old3 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())){
continue;
}
TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
Integer memberNature = old3.getMemberNature();
BigDecimal amountReceivable = null;
if (memberNature.equals(1)){
amountReceivable = new BigDecimal("5000");
}else {
amountReceivable = new BigDecimal("2000");
}
tbMember.setAmountReceivable(amountReceivable);
BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
tbMember.setNoTaxAmount(noTaxAmount1);
tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
tbMemberProjectSubitemMapper.updateById(tbMember);
break;
default:
}
}
}
@@ -1154,7 +1154,22 @@ public class SysBaseApiImpl implements ISysBaseAPI {
huaWeiSmsUtil.sendMessageNotice( phone, sender, templateId, signature, templateParas);
}
/**
@Override
public List<JSONObject> getLogByRequestParam(String requestParam) {
LambdaQueryWrapper<SysLog> wrapper = new LambdaQueryWrapper<>();
wrapper.like(SysLog::getRequestParam,requestParam);
wrapper.ne(SysLog::getLogContent,"打包项目维护-添加");
wrapper.ne(SysLog::getLogContent,"收入合同-关联");
List<SysLog> sysLogs = sysLogMapper.selectList(wrapper);
List<JSONObject> jsonObjects = new ArrayList<>();
for (SysLog sysLog : sysLogs) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(sysLog));
jsonObjects.add(jsonObject);
}
return jsonObjects;
}
/**
* 根据部门id查询部门所有的父级(不包含自己)
* @author 马志朝
* @date 2021/3/24 8:50