From 1e4206ecb73c1eb5951c0431866b7d162b4147a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 29 Dec 2023 14:01:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E7=AE=A1=E7=90=86-=E5=88=B0?= =?UTF-8?q?=E8=B4=A6=E5=BC=80=E7=A5=A8=20=E4=BF=AE=E6=94=B9=E5=BC=80?= =?UTF-8?q?=E7=A5=A8=E3=80=81=E7=A1=AE=E8=AE=A4=E6=94=B6=E5=85=A5=E7=9A=84?= =?UTF-8?q?=E5=BC=B9=E6=A1=86=E4=B8=AD=E5=A2=9E=E5=8A=A0=E6=92=A4=E9=94=80?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mail/service/IPayMailBillService.java | 3 +- .../service/impl/PayMailBillServiceImpl.java | 194 ++++++++++++++++-- .../mapper/xml/PayMeetingSituationMapper.xml | 3 +- .../service/IPayMeetingSituationService.java | 8 +- .../impl/PayMeetingSituationServiceImpl.java | 20 +- .../PayConfirmPaymentRecordController.java | 4 +- .../PayPaymentRecordController.java | 5 +- .../impl/PayConfirmPaymentRecordService.java | 134 +++++++++++- 8 files changed, 332 insertions(+), 39 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java index 9ea280f4..26e925a2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.company.entity.PayContactsManagement; import com.jero.mail.entity.PayMailBill; -import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.vo.PayMailBillVO; import com.jero.member.enums.StandardsTypeEnum; @@ -100,6 +99,6 @@ public interface IPayMailBillService extends IService { IPage contactsSearchPageList(Page page, String userId, QueryWrapper queryWrapper); - void backInvoice(PayMailBillProject payMailBillProject); + void backInvoice(String id); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index e6daa07b..f2b70e32 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -25,6 +25,7 @@ import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.config.StaticConfig; import com.jero.contract.common.PayIncomeContractCommon; +import com.jero.mail.commont.constant; import com.jero.mail.entity.BillingInfo; import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBillProject; @@ -38,12 +39,11 @@ import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.mapper.PayMeetingMapper; import com.jero.meeting.mapper.PayMeetingSituationMapper; import com.jero.meeting.service.IPayMeetingService; +import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.member.entity.*; import com.jero.member.enums.StandardsTypeEnum; import com.jero.member.mapper.*; -import com.jero.member.service.IPayMemberProjectService; -import com.jero.member.service.ITbCertificatePaymentService; -import com.jero.member.service.ITbMemberProjectService; +import com.jero.member.service.*; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.payment.service.IPayPaymentRecordService; @@ -53,14 +53,18 @@ import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayWorkingGroupMapper; +import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper; +import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; +import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; @@ -140,6 +144,22 @@ public class PayMailBillServiceImpl extends ServiceImpl selectMailBillVO(String projectId) { if (StringUtils.isBlank(projectId)) { @@ -602,15 +622,15 @@ public class PayMailBillServiceImpl extends ServiceImpl queryPayMailBill = new LambdaQueryWrapper<>(); + queryPayMailBill.eq(PayMailBill::getProjectId,payMailBill.getProjectId()); + long l = count(queryPayMailBill); + if(l == 0){ + // 删除邮寄票据关联项目表 + payMailBillProjectService.removeById(payMailBill.getProjectId()); + } + } + + public void updateProjectInfo(String id){ + //变更5种项目的邮寄状态 + LambdaQueryWrapper queryPayMailBillProject = new LambdaQueryWrapper<>(); + queryPayMailBillProject.eq(PayMailBillProject::getBillId,id); + List list1 = payMailBillProjectService.list(queryPayMailBillProject); + for(PayMailBillProject one:list1) { + if (ObjectUtils.isNotEmpty(one)) { + LambdaQueryWrapper queryPayMailBillProjectTwo = new LambdaQueryWrapper<>(); + queryPayMailBillProjectTwo.eq(PayMailBillProject::getProjectId, one.getProjectId()); + List listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProjectTwo); + + // 开票金额 + BigDecimal invoice = new BigDecimal("0.00"); + // 开票次数 + int c = listPayMailBillProject.size(); + // 邮寄次数 + int y = 0; + if (!CollectionUtils.isEmpty(listPayMailBillProject)) { + BigDecimal b = listPayMailBillProject.stream().map(PayMailBillProject::getInvoiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + invoice = invoice.add(b); + List list = listPayMailBillProject.stream().map(PayMailBillProject::getBillId).collect(Collectors.toList()); + LambdaQueryWrapper queryPayMailBill = new LambdaQueryWrapper<>(); + queryPayMailBill.in(PayMailBill::getId, list); + queryPayMailBill.eq(PayMailBill::getPostStatus, ProjectCommon.POST_STATUS1); + List listPayMailBill = payMailBillService.list(queryPayMailBill); + y = listPayMailBill.size(); + } + //获取项目待确收金额 + BigDecimal receivableAmount; + + List listId = new ArrayList<>(); + //判断变更那个项目的邮寄状态 + if (GlobalConstants.ONE.equals(one.getProjectType())) { + PayCommonProject payCommonProjectOld = payCommonProjectService.getById(one.getProjectId()); + if (Objects.isNull(payCommonProjectOld)) { + throw new JeroBootException("项目不存在!"); + } + PayContactsManagementTemporary payCommonProjectTemporary = payContactsManagementTemporaryService.getById(payCommonProjectOld.getContactsTemporaryId()); + if (!Objects.isNull(payCommonProjectTemporary)) { + listId.add(payCommonProjectTemporary); + } + + receivableAmount = payCommonProjectOld.getReceivableAmount(); + PayCommonProject payCommonProject = new PayCommonProject(); + if (receivableAmount.compareTo(invoice) == 0 && c == y) { + payCommonProject.setId(one.getProjectId()); + payCommonProject.setMail(constant.ONE); + payCommonProjectService.updateById(payCommonProject); + } else if (y <= c && y > 0) { + payCommonProject.setId(one.getProjectId()); + payCommonProject.setMail(constant.TWO); + payCommonProjectService.updateById(payCommonProject); + } + } else if (GlobalConstants.TWO.equals(one.getProjectType())) { + PayWorkingGroupSubItem payWorkingGroupSubItemOld = payWorkingGroupSubItemService.getById(one.getProjectId()); + if (Objects.isNull(payWorkingGroupSubItemOld)) { + throw new JeroBootException("项目不存在!"); + } + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupSubItemOld.getWorkingGroupId()); + if (Objects.isNull(payWorkingGroup)) { + throw new JeroBootException("工作组不存在!"); + } + List subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(one.getProjectId()); + for (PayWorkingGroupSubItemContacts subItemContact : subItemContacts) { + PayContactsManagementTemporary payWorkingTemporary = payContactsManagementTemporaryService.getById(subItemContact.getContactsTemporaryId()); + if (!Objects.isNull(payWorkingTemporary)) { + listId.add(payWorkingTemporary); + } + } + + + receivableAmount = payWorkingGroupSubItemOld.getReceivableAmount(); + PayWorkingGroupSubItem payWorkingGroupSubItem = new PayWorkingGroupSubItem(); + if (receivableAmount.compareTo(invoice) == 0 && c == y) { + payWorkingGroupSubItem.setId(one.getProjectId()); + payWorkingGroupSubItem.setMail(constant.ONE); + payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem); + } else if (y <= c && y > 0) { + payWorkingGroupSubItem.setId(one.getProjectId()); + payWorkingGroupSubItem.setMail(constant.TWO); + payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem); + } + } else if (GlobalConstants.THREE.equals(one.getProjectType())) { + PayMeetingSituation meetingPayContactsManagementOld = payMeetingSituationService.getById(one.getProjectId()); + if (Objects.isNull(meetingPayContactsManagementOld)) { + throw new JeroBootException("项目不存在!"); + } + PayMeeting payMeeting = payMeetingService.getById(meetingPayContactsManagementOld.getMeetingId()); + if (Objects.isNull(payMeeting)) { + throw new JeroBootException("会议不存在!"); + } + PayContactsManagement meetingPayContactsManagement = payContactsManagementService.getById(meetingPayContactsManagementOld.getContractId()); + if (!Objects.isNull(meetingPayContactsManagement)) { + String str = JSON.toJSONString(meetingPayContactsManagement); + PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str, PayContactsManagementTemporary.class); + listId.add(meetingTemporary); + } + + receivableAmount = meetingPayContactsManagementOld.getAmountReceivable(); + PayMeetingSituation payMeetingSituation = new PayMeetingSituation(); + if (receivableAmount.compareTo(invoice) == 0 && c == y) { + payMeetingSituation.setId(one.getProjectId()); + payMeetingSituation.setMail(constant.ONE); + payMeetingSituationService.updateById(payMeetingSituation); + } else if (y <= c && y > 0) { + payMeetingSituation.setId(one.getProjectId()); + payMeetingSituation.setMail(constant.TWO); + payMeetingSituationService.updateById(payMeetingSituation); + } + } else if (GlobalConstants.FORE.equals(one.getProjectType())) { + PayMemberProjectSubitem payMemberProjectSubitemOld = payMemberProjectSubitemService.getById(one.getProjectId()); + if (Objects.isNull(payMemberProjectSubitemOld)) { + throw new JeroBootException("项目不存在!"); + } + PayMemberProject payMemberProject = memberProjectService.getById(payMemberProjectSubitemOld.getProjectId()); + if (Objects.isNull(payMemberProject)) { + throw new JeroBootException("会员项目不存在!"); + } + PayContactsManagementTemporary memberTemporary = payContactsManagementTemporaryService.getById(payMemberProjectSubitemOld.getCompanyContactTemporaryId()); + if (!Objects.isNull(memberTemporary)) { + listId.add(memberTemporary); + } + + receivableAmount = payMemberProjectSubitemOld.getAmountReceivable(); + PayMemberProjectSubitem payMemberProjectSubitem = new PayMemberProjectSubitem(); + if (receivableAmount.compareTo(invoice) == 0 && c == y) { + payMemberProjectSubitem.setId(one.getProjectId()); + payMemberProjectSubitem.setMail(constant.ONE); + payMemberProjectSubitemService.updateById(payMemberProjectSubitem); + } else if (y <= c && y > 0) { + payMemberProjectSubitem.setId(one.getProjectId()); + payMemberProjectSubitem.setMail(constant.TWO); + payMemberProjectSubitemService.updateById(payMemberProjectSubitem); + } + } + } + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml index 4d4388a2..10dd04be 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml @@ -180,8 +180,7 @@