From 2bba254cef72081f4048577f57bd661c4b5b4ed2 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Tue, 16 Jul 2024 17:11:17 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=A4=84=E7=90=86=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/common/system/api/ISysBaseAPI.java | 2 + .../PayPackCompanyProjectServiceImpl.java | 129 +++++++++++++++++- .../system/service/impl/SysBaseApiImpl.java | 17 ++- 3 files changed, 146 insertions(+), 2 deletions(-) diff --git a/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java b/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java index e9552414..16eea97e 100644 --- a/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java +++ b/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java @@ -347,4 +347,6 @@ public interface ISysBaseAPI extends CommonAPI { * @param templateParas 参数 */ void sendMessage(String phone, String sender,String templateId,String signature,String templateParas); + + List getLogByRequestParam(String requestParam); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java index 66358931..587a888c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java @@ -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 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 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 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: + } } } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index 699c700a..372e9375 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -1154,7 +1154,22 @@ public class SysBaseApiImpl implements ISysBaseAPI { huaWeiSmsUtil.sendMessageNotice( phone, sender, templateId, signature, templateParas); } - /** + @Override + public List getLogByRequestParam(String requestParam) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(SysLog::getRequestParam,requestParam); + wrapper.ne(SysLog::getLogContent,"打包项目维护-添加"); + wrapper.ne(SysLog::getLogContent,"收入合同-关联"); + List sysLogs = sysLogMapper.selectList(wrapper); + List 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