add:理事会新增导入到标协会员

This commit is contained in:
sunzheng
2024-07-12 14:32:33 +08:00
parent 89cca9684b
commit ea8e2d70b3
4 changed files with 149 additions and 17 deletions
@@ -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<PayCaseCounc
private IPayContactsManagementService payContactsManagementService;
@Resource
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
/**
* 理事会成员表
@@ -320,5 +320,16 @@ public class PayCaseCouncilSubitemController extends JeroController<PayCaseCounc
return AmountUtil.exportListXls(list, ChooseExcelCouncil.class,"理事会表导出");
}
/**
* 导入到标协会员
*/
@Transactional
// @RequiresPermissions("")
@AutoLog(value = "理事会成员表-导入到标协会员")
@ApiOperation(value="理事会成员表-导入到标协会员", notes="理事会成员表-导入到标协会员")
@PostMapping(value = "/import")
public Result<?> importToMemberProjectSubitem(@RequestBody JSONObject jsonObject) {
payCaseCouncilSubitemService.importToMemberProjectSubitem(jsonObject);
return Result.OK("导入成功!");
}
}
@@ -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<PayCaseCouncilSu
List<subCouncil> listTwo(QueryWrapper<subCouncil> queryWrapper, String meetingId);
void importToMemberProjectSubitem(JSONObject jsonObject);
}
@@ -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<PayCaseCouncil
@Resource
private PayCaseCouncilSubitemMapper payCaseCouncilSubitemMapper;
@Resource
private IPayCaseCouncilSubitemService payCaseCouncilSubitemService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectSubitemService memberProjectSubitemService;
@Override
public IPage<councilList> listThree(Page<councilList> 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<PayCaseCouncil
return payCaseCouncilSubitemMapper.listTwo(queryWrapper,meetingId);
}
@Override
public void importToMemberProjectSubitem(JSONObject jsonObject) {
String councilId = jsonObject.getString("id");
String projectId = jsonObject.getString("projectId");
if (StringUtils.isBlank(councilId) || StringUtils.isBlank(projectId)) {
throw new JeroBootException("参数错误");
}
// 根据理事会id查询属于它的所有企业
LambdaUpdateWrapper<PayCaseCouncilSubitem> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(PayCaseCouncilSubitem::getCouncilId,councilId);
List<PayCaseCouncilSubitem> councilSubitemList = payCaseCouncilSubitemService.list(lambdaUpdateWrapper);
if (councilSubitemList.isEmpty()) {
throw new JeroBootException("该理事会下无成员");
}
// 根据标协会员项目id查询对应的标协会员项目
TbMemberProject tbMemberProject = tbMemberProjectService.getById(projectId);
if (Objects.isNull(tbMemberProject)) {
throw new JeroBootException("该标协会员项目不存在");
}
List<TbMemberProjectSubitem> 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<TbMemberProjectSubitem> 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());
}
}
@@ -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;