add 标协会员成员导出模板,导入

This commit is contained in:
lijiarao
2024-03-26 15:45:48 +08:00
parent e9bbb9e5ea
commit 0660fee765
7 changed files with 427 additions and 97 deletions
@@ -81,4 +81,8 @@ public interface IPayContactsManagementService extends IService<PayContactsManag
void changePasswordWithToken(CompanyLoginVO companyLoginVO);
PayContactsManagement getManagementByCompanyId(String companyId);
PayContactsManagement checkByCompanyIdAndId(String id, String companyId);
PayContactsManagement checkByCompanyIdAndName(String name, String companyId);
}
@@ -442,4 +442,21 @@ public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsMan
PayContactsManagement payContactsManagement = baseMapper.selectOne(query);
return payContactsManagement;
}
@Override
public PayContactsManagement checkByCompanyIdAndId(String id,String companyId) {
LambdaQueryWrapper<PayContactsManagement> query = new LambdaQueryWrapper<>();
query.eq(PayContactsManagement::getCompanyId,companyId);
query.eq(PayContactsManagement::getId,id);
PayContactsManagement payContactsManagement = baseMapper.selectOne(query);
return payContactsManagement;
}
@Override
public PayContactsManagement checkByCompanyIdAndName(String name, String companyId) {
LambdaQueryWrapper<PayContactsManagement> query = new LambdaQueryWrapper<>();
query.eq(PayContactsManagement::getCompanyId,companyId);
query.eq(PayContactsManagement::getName,name);
PayContactsManagement payContactsManagement = baseMapper.selectOne(query);
return payContactsManagement;
}
}
@@ -2,6 +2,7 @@ package com.jero.member.controller;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -216,6 +217,24 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
return Result.OK(projectSubitem);
}
/**
* 导入excel
*/
@RequiresPermissions("safeguardStardsMember:export")
@GetMapping(value = "/importXls")
public Result<Object> importXls(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
String projectId = tbMemberProjectSubitem.getProjectId();
List<Object> excelData = super.getExcelData(request, TbMemberProjectSubitemExcel.class);
for (Object obj : excelData) {
TbMemberProjectSubitemExcel subitemExcel = (TbMemberProjectSubitemExcel) obj;
TbMemberProjectSubitem subitem = new TbMemberProjectSubitem();
BeanUtils.copyProperties(subitemExcel,subitem);
subitem.setProjectId(projectId);
tbMemberProjectSubitemService.addExcel(subitem);
}
return Result.OK();
}
/**
* 导出excel
*/
@@ -223,9 +242,28 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, request.getParameterMap());
Page<TbMemberProjectSubitem> page = new Page<>(-1, -1);
IPage<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(page, queryWrapper);
return super.exportListXls(pageList.getRecords(), TbMemberProjectSubitem.class, "标协会员项目成员表");
List<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(queryWrapper);
List<TbMemberProjectSubitem> exportList;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
return super.exportListXls(exportList, TbMemberProjectSubitem.class, "标协会员项目成员表");
}
/**
* 导出excel模板
*/
@RequiresPermissions("safeguardStardsMember:export")
@GetMapping(value = "/exportTemplate")
public ModelAndView exportTemplate() {
return super.exportTemplate(TbMemberProjectSubitemExcel.class, "标协会员项目成员表");
}
}
@@ -37,96 +37,102 @@ import javax.validation.constraints.*;
public class TbMemberProjectSubitem implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**创建人*/
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
private Date createTime;
/**更新人*/
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
private Date updateTime;
/**项目id*/
@Excel(name = "项目名称", width = 15 ,dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
/**项目id*/
@Excel(name = "项目名称", width = 15 ,dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
@Dict(dictTable = "tb_member_project", dicText = "project_name", dicCode = "id")
@ApiModelProperty(value = "项目id")
private String projectId;
/**会员编号*/
@Excel(name = "会员编号", width = 20)
/**会员编号*/
@Excel(name = "会员编号", width = 20)
@ApiModelProperty(value = "会员编号")
private String memberNo;
/**会员单位*/
/**会员单位*/
@ApiModelProperty(value = "会员单位")
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
@Dict(dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
private String companyId;
/**会员单位*/
/**会员单位*/
@ApiModelProperty(value = "会员单位")
private String companyName;
/**会员性质(1-副理事单位,2-理事单位,3-会员单位)*/
@Excel(name = "会员性质(1-副理事单位,2-理事单位,3-会员单位)", width = 15,dicCode = "member_nature")
@Excel(name = "会员性质", width = 15,dicCode = "member_nature")
@Dict(dicCode = "member_nature")
@ApiModelProperty(value = "会员性质(1-副理事单位,2-理事单位,3-会员单位)")
private Integer memberNature;
/**会员类型*/
@Excel(name = "会员类型", width = 15,dicCode = "member_type")
/**会员类型*/
@ApiModelProperty(value = "会员类型")
@Dict(dicCode = "member_type")
private Integer memberType;
/**会员联系人*/
@ApiModelProperty(value = "会员联系人")
@Excel(name = "会员联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
@ApiModelProperty(value = "企业联系人")
@Excel(name = "企业联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
@Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String liaisonManId;
/**联系人*/
/**联系人*/
@ApiModelProperty(value = "联系人")
private String liaisonMan;
/**邮箱*/
//@Excel(name = "邮箱", width = 20,exportConvert = true)
@ApiModelProperty(value = "邮寄企业id")
private String postCompanyId;
@ApiModelProperty(value = "邮寄联系人id")
@Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String postContactId;
/**邮箱*/
//@Excel(name = "邮箱", width = 20,exportConvert = true)
@ApiModelProperty(value = "邮箱")
private String email;
/**手机*/
//@Excel(name = "手机", width = 15,exportConvert = true)
/**手机*/
//@Excel(name = "手机", width = 15,exportConvert = true)
@ApiModelProperty(value = "手机")
private String mobile;
/**会员状态*/
//@Excel(name = "会员状态", width = 15, dicCode = "member_status")
/**会员状态*/
//@Excel(name = "会员状态", width = 15, dicCode = "member_status")
@ApiModelProperty(value = "会员状态")
@Dict(dicCode = "member_status")
private Integer memberStatus;
/**注册时间*/
//@Excel(name = "注册时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
/**注册时间*/
//@Excel(name = "注册时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "注册时间")
private java.util.Date registerTime;
private Date registerTime;
/**
* 待确收金额
@@ -138,10 +144,26 @@ public class TbMemberProjectSubitem implements Serializable {
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal amountReceivable;
/**税率*/
@ApiModelProperty(value = "税率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@Dict(dicCode = "rate")
private BigDecimal taxRate;
/**税额*/
@ApiModelProperty(value = "税额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal tax;
/**未税金额*/
@ApiModelProperty(value = "未税金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal noTaxAmount;
/**
* 实收金额
*/
@Excel(name = "实收金额", width = 15)
//@Excel(name = "实收金额", width = 15)
@ApiModelProperty(value = "实收金额")
@DecimalMax(value = "9999999999.99", message = "实收金额格式错误")
private BigDecimal paidAmount;
@@ -155,39 +177,39 @@ public class TbMemberProjectSubitem implements Serializable {
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15)
@Excel(name = "预估到账日期", width = 15, format = "yyyy-MM-dd")
private Date estimatedArrivalDate;
/**打包*/
@Excel(name = "打包", width = 15,dicCode = "yn")
@ApiModelProperty(value = "打包")
@Dict(dicCode = "yn")
private Integer pack;
/**需要发票*/
@Excel(name = "需要发票", width = 15,dicCode = "invoice_type")
/**需要发票*/
@Excel(name = "需要发票", width = 15,dicCode = "invoice_type")
@ApiModelProperty(value = "需要发票")
@Dict(dicCode = "invoice_type")
private Integer invoiceRequirements;
/**到账*/
/**打包*/
//@Excel(name = "打包", width = 15,dicCode = "yn")
@ApiModelProperty(value = "打包")
@Dict(dicCode = "yn")
private Integer pack;
/**到账*/
@ApiModelProperty(value = "到账")
private Integer inAccount;
/**开票*/
/**开票*/
@ApiModelProperty(value = "开票")
private Integer makeInvoice;
@ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2>0 && <总金额(半满标志)))")
private Integer affirmIncome;
/**邮寄*/
/**邮寄*/
@ApiModelProperty(value = "邮寄")
private Integer mail;
/**邮寄*/
/**提票"*/
@ApiModelProperty(value = "提票")
@Excel(name = "提票", width = 15,dicCode = "yn")
//@Excel(name = "提票", width = 15,dicCode = "yn")
@Dict(dicCode = "yn")
private Integer ticketCollection;
@@ -196,7 +218,7 @@ public class TbMemberProjectSubitem implements Serializable {
private String chargeUse;
/**缴费方式*/
@Excel(name = "缴费方式", width = 15,dicCode = "meeting_pay_type")
@Excel(name = "来款方式", width = 15,dicCode = "meeting_pay_type")
@Dict(dicCode = "meeting_pay_type")
private Integer paymentMethod;
@@ -205,7 +227,7 @@ public class TbMemberProjectSubitem implements Serializable {
private String tbPaymentId;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
//@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@@ -250,7 +272,6 @@ public class TbMemberProjectSubitem implements Serializable {
private Integer projectType;
/**缴费记录*/
@Excel(name = "缴费记录", width = 15)
@ApiModelProperty(value = "缴费记录")
private String paymentRecord;
@@ -325,44 +346,26 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "其他缴费金额")
private BigDecimal otherPaymentAmount;
/**税率*/
@ApiModelProperty(value = "税率")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@Dict(dicCode = "rate")
private BigDecimal taxRate;
/**税额*/
@ApiModelProperty(value = "税额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal tax;
/**未税金额*/
@ApiModelProperty(value = "未税金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal noTaxAmount;
@ApiModelProperty(value = "邮寄企业id")
private String postCompanyId;
@ApiModelProperty(value = "邮寄联系人id")
private String postContactId;
/**
* 管理员创建标识
*/
@ApiModelProperty(value = "管理员创建标识")
private Integer adminAddFlag;
/**合同编号*/
@ApiModelProperty(value = "合同编号")
private String contractNum;
/**收费通知号*/
@Excel(name = "收费通知号", width = 15)
@ApiModelProperty(value = "收费通知号")
private String chargeNoticeNo;
/**收费通知文件id*/
@ApiModelProperty(value = "收费通知文件id")
private String chargeNoticeId;
/**合同编号*/
@Excel(name = "合同编号", width = 15)
@ApiModelProperty(value = "合同编号")
private String contractNum;
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remark;
@@ -37,6 +37,8 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
List<TbMemberProjectSubitem> pageList( @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
List<TbMemberProjectSubitem> getAllTakeEffectByCompanyId(@Param("companyId") String companyId);
/**
@@ -19,7 +19,10 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
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.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
@@ -42,10 +45,12 @@ import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.statistics.entity.MemberLineChartMap;
import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -82,7 +87,7 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
@Autowired
private IPayCompanyManagementService companyManagementService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
@@ -106,15 +111,151 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
public void add(TbMemberProjectSubitem tbMemberProjectSubitem) {
setDefaultCreateValue(tbMemberProjectSubitem);
check(tbMemberProjectSubitem);
String companyId = tbMemberProjectSubitem.getCompanyId();
PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
if (companyManagement == null){
throw new JeroBootException("单位不存在");
}
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
PayContactsManagement liaisonMan = payContactsManagementService.checkByCompanyIdAndId(liaisonManId, companyId);
if (liaisonMan == null){
throw new JeroBootException("企业联系人不存在");
}
String postContactId = tbMemberProjectSubitem.getPostContactId();
PayContactsManagement postContact = payContactsManagementService.checkByCompanyIdAndId(postContactId, companyId);
if (postContact == null){
throw new JeroBootException("邮寄联系人不存在");
}
String projectId = tbMemberProjectSubitem.getProjectId();
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
//wrapper.ne()
int count = this.count(wrapper);
if (count > 0) {
throw new JeroBootException("会员单位已经存在");
}
if (Objects.isNull(tbMemberProjectSubitem.getAmountReceivable())) {
throw new JeroBootException("待确收金额不能为空");
}
if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2)) {
if (StringUtils.isBlank(tbMemberProjectSubitem.getContractNum())) {
throw new JeroBootException("合同号不能为空");
}
}
if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY3)) {
if (Objects.isNull(tbMemberProjectSubitem.getChargeNoticeNo())) {
throw new JeroBootException("收费通知号不能为空");
}
}
//赋值会员编号
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
if (takeEffectInfo!=null){
tbMemberProjectSubitem.setMemberNo(takeEffectInfo.getMemberNo());
}
save(tbMemberProjectSubitem);
// 来款方式为合同,校验合同编号
if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2)) {
PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(tbMemberProjectSubitem.getContractNum(), tbMemberProjectSubitem.getCompanyId(), tbMemberProjectSubitem.getId());
if (!Objects.isNull(payIncomeContract)) {
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContract, tbMemberProjectSubitem.getId(), Integer.parseInt(PayProjectCommon.PROJECT_TYPE5));
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if (Objects.equals(payIncomeContract.getPack(), PayProjectCommon.PACKAGING1)) {
payPackCompanyProjectService.setPack(tbMemberProjectSubitem.getCompanyId(), liaisonManId, payIncomeContract.getPackYear(), tbMemberProjectSubitem.getId(), PayProjectCommon.PROJECT_TYPE5, payIncomeContract.getPack());
LambdaUpdateWrapper<TbMemberProjectSubitem> update = new LambdaUpdateWrapper<>();
update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId());
update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1);
tbMemberProjectSubitemService.update(update);
}
}
}
}
public void addExcel(TbMemberProjectSubitem tbMemberProjectSubitem) {
setDefaultCreateValue(tbMemberProjectSubitem);
String companyId = tbMemberProjectSubitem.getCompanyId();
PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
if (companyManagement == null){
throw new JeroBootException("单位不存在");
}
tbMemberProjectSubitem.setCompanyName(companyManagement.getCompanyName());
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
PayContactsManagement liaisonMan = payContactsManagementService.checkByCompanyIdAndName(liaisonManId, companyId);
if (liaisonMan == null){
throw new JeroBootException("企业联系人不存在");
}else {
tbMemberProjectSubitem.setLiaisonManId(liaisonMan.getId());
}
String postContactId = tbMemberProjectSubitem.getPostContactId();
PayContactsManagement postContact = payContactsManagementService.checkByCompanyIdAndName(postContactId, companyId);
if (postContact == null){
throw new JeroBootException("邮寄联系人不存在");
}else {
tbMemberProjectSubitem.setPostContactId(postContact.getId());
}
String projectId = tbMemberProjectSubitem.getProjectId();
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
//wrapper.ne()
int count = this.count(wrapper);
if (count > 0) {
throw new JeroBootException("会员单位已经存在");
}
if (Objects.isNull(tbMemberProjectSubitem.getAmountReceivable())) {
throw new JeroBootException("待确收金额不能为空");
}
Integer paymentMethod = tbMemberProjectSubitem.getPaymentMethod();
if (paymentMethod == null){
throw new JeroBootException("来款方式不能为空");
}
if (Objects.equals(paymentMethod, PayProjectCommon.CHARGE_WAY2)) {
if (StringUtils.isBlank(tbMemberProjectSubitem.getContractNum())) {
throw new JeroBootException("合同号不能为空");
}
}
if (Objects.equals(paymentMethod, PayProjectCommon.CHARGE_WAY3)) {
if (Objects.isNull(tbMemberProjectSubitem.getChargeNoticeNo())) {
throw new JeroBootException("收费通知号不能为空");
}
}
//赋值会员编号
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
if (takeEffectInfo!=null){
tbMemberProjectSubitem.setMemberNo(takeEffectInfo.getMemberNo());
}
save(tbMemberProjectSubitem);
// 来款方式为合同,校验合同编号
if (Objects.equals(paymentMethod, PayProjectCommon.CHARGE_WAY2)) {
PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(tbMemberProjectSubitem.getContractNum(), tbMemberProjectSubitem.getCompanyId(), tbMemberProjectSubitem.getId());
if (!Objects.isNull(payIncomeContract)) {
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContract, tbMemberProjectSubitem.getId(), Integer.parseInt(PayProjectCommon.PROJECT_TYPE5));
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if (Objects.equals(payIncomeContract.getPack(), PayProjectCommon.PACKAGING1)) {
payPackCompanyProjectService.setPack(tbMemberProjectSubitem.getCompanyId(), liaisonManId, payIncomeContract.getPackYear(), tbMemberProjectSubitem.getId(), PayProjectCommon.PROJECT_TYPE5, payIncomeContract.getPack());
LambdaUpdateWrapper<TbMemberProjectSubitem> update = new LambdaUpdateWrapper<>();
update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId());
update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1);
tbMemberProjectSubitemService.update(update);
}
}
}
}
/**
* 创建时默认值
*/
@@ -137,25 +278,49 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
tbMemberProjectSubitem.setPaymentStatus(PaymentStatusEnum.TO_BE_UPLOADED.getCode());
}
public void check(TbMemberProjectSubitem tbMemberProjectSubitem){
String companyId = tbMemberProjectSubitem.getCompanyId();
String projectId = tbMemberProjectSubitem.getProjectId();
//String id = tbMemberProjectSubitem.getId();
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
//wrapper.ne()
int count = this.count(wrapper);
if (count > 0) {
throw new JeroBootException("会员单位已经存在");
}
}
/**
* 更新
*/
public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) {
saveOrUpdate(tbMemberProjectSubitem);
String subitemId = tbMemberProjectSubitem.getId();
TbMemberProjectSubitem subitemOld = getById(subitemId);
String companyId = tbMemberProjectSubitem.getCompanyId();
String companyIdOld = subitemOld.getCompanyId();
if (!Objects.equals(companyId,companyIdOld)){
throw new JeroBootException("会员单位不可变更");
}
// 校验项目是否已关联合同
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(subitemId);
if (!Objects.isNull(payIncomeContract)) {
if (!Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), subitemOld.getPaymentMethod())) {
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
}
if (Objects.equals(subitemOld.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2) && !Objects.equals(subitemOld.getContractNum(), tbMemberProjectSubitem.getContractNum())) {
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
}
} else {
PayIncomeContract payIncomeContractAdd = null;
// 来款方式为合同,校验合同编号
if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2)) {
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(tbMemberProjectSubitem.getContractNum(), companyId, subitemId);
}
if (!Objects.isNull(payIncomeContractAdd)) {
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd, subitemId, Integer.parseInt(PayProjectCommon.PROJECT_TYPE5));
Integer pack = payIncomeContractAdd.getPack();
if (Objects.equals(pack, PayProjectCommon.PACKAGING1)) {
tbMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING1);
}
} else {
tbMemberProjectSubitem.setPack(subitemOld.getPack());
}
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if (!Objects.isNull(payIncomeContractAdd) && Objects.equals(payIncomeContractAdd.getPack(), PayProjectCommon.PACKAGING1)) {
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
payPackCompanyProjectService.setPack(companyId, liaisonManId, payIncomeContractAdd.getPackYear(), subitemId, PayProjectCommon.PROJECT_TYPE5, payIncomeContractAdd.getPack());
}
}
updateById(tbMemberProjectSubitem);
}
/**
@@ -237,6 +402,14 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
return baseMapper.pageList(page,queryWrapper);
}
public List<TbMemberProjectSubitem> pageList(QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
queryWrapper.eq("tmp.director_id",sysUser.getId());
}
return baseMapper.pageList(queryWrapper);
}
public void ticketCollection(String id) {
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
@@ -347,8 +520,14 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
private void copyOperation(String projectId, String id) {
TbMemberProjectSubitem memberProjectSubitem = this.getById(id);
//查询目标项目是否有当前企业
memberProjectSubitem.setProjectId(projectId);
this.check(memberProjectSubitem);
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, memberProjectSubitem.getCompanyId());
//wrapper.ne()
int count = this.count(wrapper);
if (count > 0) {
throw new JeroBootException("会员单位已经存在");
}
//复制成员信息生成新成员
TbMemberProjectSubitem newMemberProjectSubitem = setCopyValue(memberProjectSubitem);
this.setDefaultCreateValue(newMemberProjectSubitem);
@@ -0,0 +1,87 @@
package com.jero.member.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 标协会员项目成员表
* @Author: jero-boot
* @Date: 2021-09-01
* @Version: V1.0
*/
@Data
public class TbMemberProjectSubitemExcel {
/**会员单位*/
@ApiModelProperty(value = "会员单位")
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
@Dict(dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
private String companyId;
/**会员性质(1-副理事单位,2-理事单位,3-会员单位)*/
@Excel(name = "会员性质", width = 15,dicCode = "member_nature")
@Dict(dicCode = "member_nature")
@ApiModelProperty(value = "会员性质(1-副理事单位,2-理事单位,3-会员单位)")
private Integer memberNature;
/**会员联系人*/
@ApiModelProperty(value = "企业联系人")
@Excel(name = "企业联系人", width = 15)
@Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String liaisonManId;
@ApiModelProperty(value = "邮寄联系人id")
@Excel(name = "邮寄联系人", width = 15)
private String postContactId;
/**
* 待确收金额
*/
@Excel(name = "待确收金额", width = 15)
@ApiModelProperty(value = "待确收金额")
@NotNull(message = "待确收金额不能为空")
@DecimalMax(value = "9999999999.99", message = "待确收金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal amountReceivable;
/**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15, format = "yyyy-MM-dd")
private Date estimatedArrivalDate;
/**需要发票*/
@Excel(name = "需要发票", width = 15,dicCode = "invoice_type")
@ApiModelProperty(value = "需要发票")
@Dict(dicCode = "invoice_type")
private Integer invoiceRequirements;
/**缴费方式*/
@Excel(name = "来款方式", width = 15,dicCode = "meeting_pay_type")
@Dict(dicCode = "meeting_pay_type")
private Integer paymentMethod;
/**收费通知号*/
@Excel(name = "收费通知号", width = 15)
@ApiModelProperty(value = "收费通知号")
private String chargeNoticeNo;
/**合同编号*/
@Excel(name = "合同编号", width = 15)
@ApiModelProperty(value = "合同编号")
private String contractNum;
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remark;
}