diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCouncilSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCouncilSubitemController.java index ef636c0f..e02ec1c9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCouncilSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCouncilSubitemController.java @@ -23,9 +23,8 @@ import com.jero.data.entity.*; import com.jero.data.service.IPayCaseCouncilService; import com.jero.data.service.IPayCaseCouncilSubitemService; import com.jero.mail.commont.constant; -import com.jero.meeting.entity.PayMeetingRemindRecord; import com.jero.meeting.service.IPayMeetingRemindRecordService; -import com.jero.project.common.PayProjectCommon; +import com.jero.member.service.ITbMemberProjectService; import com.jero.util.AmountUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,7 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; - import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; @@ -67,6 +65,8 @@ public class PayCaseCouncilSubitemController extends JeroController importToMemberProjectSubitem(@RequestBody JSONObject jsonObject) { + payCaseCouncilSubitemService.importToMemberProjectSubitem(jsonObject); + return Result.OK("导入成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java index 88b1e5c3..7525e141 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java @@ -1,11 +1,11 @@ package com.jero.data.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.data.entity.*; import com.baomidou.mybatisplus.extension.service.IService; - import java.util.ArrayList; import java.util.List; @@ -27,4 +27,5 @@ public interface IPayCaseCouncilSubitemService extends IService listTwo(QueryWrapper queryWrapper, String meetingId); + void importToMemberProjectSubitem(JSONObject jsonObject); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java index 0fca1f9c..681c55be 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java @@ -1,18 +1,38 @@ package com.jero.data.service.impl; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.common.ProjectCommon; +import com.jero.common.enums.PaymentStatusEnum; +import com.jero.common.exception.JeroBootException; +import com.jero.company.entity.PayCompanyManagement; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayCompanyManagementService; +import com.jero.company.service.IPayContactsManagementService; +import com.jero.config.StaticConfig; import com.jero.data.entity.*; import com.jero.data.mapper.PayCaseCouncilSubitemMapper; import com.jero.data.service.IPayCaseCouncilSubitemService; +import com.jero.member.entity.TbMemberProject; +import com.jero.member.entity.TbMemberProjectSubitem; +import com.jero.member.enums.MemberStatusEnum; +import com.jero.member.service.ITbMemberProjectService; +import com.jero.member.service.ITbMemberProjectSubitemService; +import com.jero.project.common.PayProjectCommon; import org.springframework.stereotype.Service; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @Description: pay_case_council_subitem @@ -25,6 +45,17 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl listThree(Page page, String contactsNames, String companyNames, String councilNames, String userId) { return payCaseCouncilSubitemMapper.listThree(page,contactsNames,companyNames,councilNames,userId); @@ -50,5 +81,104 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(PayCaseCouncilSubitem::getCouncilId,councilId); + List councilSubitemList = payCaseCouncilSubitemService.list(lambdaUpdateWrapper); + if (councilSubitemList.isEmpty()) { + throw new JeroBootException("该理事会下无成员"); + } + // 根据标协会员项目id查询对应的标协会员项目 + TbMemberProject tbMemberProject = tbMemberProjectService.getById(projectId); + if (Objects.isNull(tbMemberProject)) { + throw new JeroBootException("该标协会员项目不存在"); + } + List tbMemberProjectSubitems = new ArrayList<>(); + BigDecimal councilChargeStandard = tbMemberProject.getCouncilChargeStandard(); + String councilChargeNoticeNo = tbMemberProject.getCouncilChargeNoticeNo(); + String chargeNoticeFileId = tbMemberProject.getCouncilChargeNoticeFileId(); + // 将所有企业成员添加到标协会成员表中 + for (PayCaseCouncilSubitem payCaseCouncilSubitem : councilSubitemList) { + String companyId = payCaseCouncilSubitem.getCompanyId(); + PayCompanyManagement companyManagement = companyManagementService.getById(companyId); + if (companyManagement == null){ + throw new JeroBootException(payCaseCouncilSubitem.getCompanyName() + "单位不存在"); + } + String liaisonManId = payCaseCouncilSubitem.getContactsId(); + PayContactsManagement liaisonMan = payContactsManagementService.checkByCompanyIdAndId(liaisonManId, companyId); + if (liaisonMan == null){ + throw new JeroBootException(payCaseCouncilSubitem.getContactsName() + "企业联系人不存在"); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId); + wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId); + int count = memberProjectSubitemService.count(wrapper); + if (count > 0) { + throw new JeroBootException(payCaseCouncilSubitem.getCompanyName() + "会员单位已经存在"); + } + TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem(); + tbMemberProjectSubitem.setProjectId(projectId); + tbMemberProjectSubitem.setCompanyId(companyId); + tbMemberProjectSubitem.setCompanyName(payCaseCouncilSubitem.getCompanyName()); + tbMemberProjectSubitem.setLiaisonManId(liaisonManId); + tbMemberProjectSubitem.setPostContactId(liaisonManId); + tbMemberProjectSubitem.setEstimatedArrivalDate(DateUtil.date()); + tbMemberProjectSubitem.setMemberNature(ProjectCommon.MEMBER_NATURE2); + tbMemberProjectSubitem.setPaymentMethod(PayProjectCommon.CHARGE_WAY3); + tbMemberProjectSubitem.setInvoiceRequirements(ProjectCommon.NEED_INVOICE2); + if (!Objects.isNull(councilChargeStandard)) { + tbMemberProjectSubitem.setAmountReceivable(councilChargeStandard); + }else { + tbMemberProjectSubitem.setAmountReceivable(BigDecimal.ZERO); + } + if (StringUtils.isNotBlank(councilChargeNoticeNo)) { + tbMemberProjectSubitem.setChargeNoticeNo(councilChargeNoticeNo); + } + if (StringUtils.isNotBlank(chargeNoticeFileId)) { + tbMemberProjectSubitem.setChargeNoticeId(chargeNoticeFileId); + } + tbMemberProjectSubitem.setTaxRate(StaticConfig.TAX_RATE); + BigDecimal noTaxAmount = tbMemberProjectSubitem.getAmountReceivable().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP); + BigDecimal tax = tbMemberProjectSubitem.getAmountReceivable().subtract(noTaxAmount); + tbMemberProjectSubitem.setNoTaxAmount(noTaxAmount); + tbMemberProjectSubitem.setTax(tax); + setDefaultCreateValue(tbMemberProjectSubitem); + //赋值会员编号 + TbMemberProjectSubitem takeEffectInfo = memberProjectSubitemService.getTakeEffectInfo(companyId); + if (takeEffectInfo!=null){ + tbMemberProjectSubitem.setMemberNo(takeEffectInfo.getMemberNo()); + } + tbMemberProjectSubitems.add(tbMemberProjectSubitem); + } + memberProjectSubitemService.saveBatch(tbMemberProjectSubitems); + } + /** + * 创建时默认值 + */ + private void setDefaultCreateValue(TbMemberProjectSubitem tbMemberProjectSubitem) { + //实收金额 + tbMemberProjectSubitem.setPaidAmount(BigDecimal.ZERO); + //到账 + tbMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0); + //开票 + tbMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0); + //邮寄 + tbMemberProjectSubitem.setMail(PayProjectCommon.MAIL0); + //打包 + tbMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0); + //提票 + tbMemberProjectSubitem.setTicketCollection(PayProjectCommon.NO); + //会员状态 + tbMemberProjectSubitem.setMemberStatus(MemberStatusEnum.UNPAID_FEES.getValue()); + //缴费状态 + tbMemberProjectSubitem.setPaymentStatus(PaymentStatusEnum.TO_BE_UPLOADED.getCode()); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java index a7238494..b94840cc 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java @@ -1,26 +1,16 @@ package com.jero.meeting.controller; - import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; -import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; -import com.jero.drafting.entity.PayDraftingGroup; -import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingHotelRecommend; import com.jero.meeting.service.IPayMeetingHotelRecommendService; import com.jero.meeting.vo.excel.PayMeetingHotelRecommendExcel; -import com.jero.member.entity.TbMemberProjectSubitem; -import com.jero.member.service.ITbMemberProjectSubitemService; -import com.jero.member.vo.TbMemberProjectSubitemExcel; -import com.jero.member.vo.TbMemberProjectSubitemExcelImport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; - import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List;