add 标协会员项目成员 增删改查,提票

This commit is contained in:
lijiarao
2024-03-06 14:56:41 +08:00
parent 817ea177a4
commit aef509ead0
8 changed files with 299 additions and 35 deletions
@@ -11,15 +11,18 @@ import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService;
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.member.vo.PaymentInfo;
import com.jero.member.vo.TbMemberProjectSubitemEditVO;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -63,6 +66,64 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
return Result.OK(pageList);
}
/**
* 添加
*/
//@RequiresPermissions(":add")
@AutoLog(value = "标协会员项目成员-添加")
@ApiOperation(value = "标协会员项目成员-添加", notes = "标协会员项目成员-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody TbMemberProjectSubitem tbMemberProjectSubitem) {
tbMemberProjectSubitemService.add(tbMemberProjectSubitem);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
//@RequiresPermissions(":add")
@AutoLog(value = "标协会员项目成员-编辑")
@ApiOperation(value = "标协会员项目成员-编辑", notes = "标协会员项目成员-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody TbMemberProjectSubitemEditVO editVO) {
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
BeanUtils.copyProperties(editVO,tbMemberProjectSubitem);
tbMemberProjectSubitemService.editById(tbMemberProjectSubitem);
return Result.OK("编辑成功!");
}
/**
* 删除
*/
//@RequiresPermissions(":add")
@AutoLog(value = "标协会员项目成员-删除")
@ApiOperation(value = "标协会员项目成员-删除", notes = "标协会员项目成员-删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
tbMemberProjectSubitemService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*/
//@RequiresPermissions(":add")
@AutoLog(value = "标协会员项目成员-批量删除")
@ApiOperation(value = "标协会员项目成员-批量删除", notes = "标协会员项目成员-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
tbMemberProjectSubitemService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
@AutoLog(value = "标协会员项目成员-提票")
@ApiOperation(value = "标协会员项目成员-提票")
@GetMapping(value = "/ticketCollection")
public Result<?> ticketCollection(@RequestParam(name = "id") String id) {
tbMemberProjectSubitemService.ticketCollection(id);
return Result.OK("提票成功!");
}
/**
* 导出excel
*/
@@ -69,10 +69,12 @@ public class TbMemberProject implements Serializable {
private String year;
/**负责人id*/
// @Excel(name = "负责人id", width = 15)
@Excel(name = "负责人", width = 15, dictTable = "sys_user",dicText = "realname",dicCode = "id")
@ApiModelProperty(value = "负责人id")
@Dict(dictTable = "sys_user",dicText = "realname",dicCode = "id")
private String directorId;
/**负责人*/
@Excel(name = "负责人", width = 15)
@ApiModelProperty(value = "负责人")
private String directorName;
@@ -21,10 +21,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.*;
/**
* @Description: 标协会员项目成员表
@@ -75,12 +72,13 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "会员编号")
private String memberNo;
/**公司id*/
@ApiModelProperty(value = "公司id")
/**会员单位*/
@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;
/**会员单位*/
@Excel(name = "会员单位", width = 15)
@ApiModelProperty(value = "会员单位")
private String companyName;
@@ -98,31 +96,32 @@ public class TbMemberProjectSubitem implements Serializable {
/**联系人id*/
@ApiModelProperty(value = "联系人id")
@Excel(name = "联系人", width = 15, dictTable = "sys_user",dicText = "realname", dicCode = "id")
@Dict(dictTable = "sys_user",dicText = "realname", dicCode = "id")
private String liaisonManId;
/**联系人*/
@Excel(name = "联系人", width = 15)
@ApiModelProperty(value = "联系人")
private String liaisonMan;
/**邮箱*/
@Excel(name = "邮箱", width = 20,exportConvert = true)
//@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")
//@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 = "注册时间")
@@ -150,31 +149,46 @@ public class TbMemberProjectSubitem implements Serializable {
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal confirmAmount;
/**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15)
private String estimatedArrivalDate;
/**打包*/
@Excel(name = "打包", width = 15,dicCode = "yn")
@ApiModelProperty(value = "打包")
@Dict(dicCode = "yn")
private Integer pack;
/**需要发票*/
@Excel(name = "需要发票", width = 15,dicCode = "invoice_type")
@ApiModelProperty(value = "需要发票")
@Dict(dicCode = "invoice_type")
private Integer invoiceRequirements;
/**到账*/
@Excel(name = "到账", width = 15,dicCode = "account_type")
@ApiModelProperty(value = "到账")
private Integer inAccount;
/**开票*/
@Excel(name = "开票", width = 15,dicCode = "make_invoice_type")
@ApiModelProperty(value = "开票")
private Integer makeInvoice;
@ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2>0 && <总金额(半满标志)))")
private Integer affirmIncome;
/**邮寄*/
@Excel(name = "邮寄", width = 15,dicCode = "mail_type")
@ApiModelProperty(value = "邮寄")
private Integer mail;
/**邮寄*/
@ApiModelProperty(value = "提票")
@Excel(name = "提票", width = 15,dicCode = "yn")
@Dict(dicCode = "yn")
private Integer ticketCollection;
/**来款用途(字典表)*/
@ApiModelProperty(value = "来款用途(字典表)")
private String chargeUse;
@@ -262,10 +276,6 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "联行号")
private String linkBankNumber;
@ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2>0 && <总金额(半满标志)))")
private Integer affirmIncome;
/**确认金额税额*/
@ApiModelProperty(value = "确认金额税额")
@DecimalMax(value = "9999999999.99",message = "确认金额税额")
@@ -339,6 +349,10 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "管理员创建标识")
private Integer adminAddFlag;
/**合同编号*/
@ApiModelProperty(value = "合同编号")
private String contractNum;
/**收费通知号*/
@ApiModelProperty(value = "收费通知号")
private String chargeNoticeNo;
@@ -76,4 +76,6 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear);
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper);
void ticketCollection(String id);
}
@@ -54,14 +54,34 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
*/
@Override
public void add(TbMemberProject tbMemberProject) {
save(tbMemberProject);
}
//一年只能有一个项目
String year = tbMemberProject.getYear();
check(year, null);
save(tbMemberProject);
}
/**
* 一年只能有一个项目
*/
private void check(String year, String id) {
LambdaQueryWrapper<TbMemberProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProject::getYear, year);
wrapper.ne(id != null, TbMemberProject::getId, id);
int count = count(wrapper);
if (count > 0) {
throw new JeroBootException("已经存在" + year + "年标协会员项目");
}
}
/**
* 更新
*/
@Override
public void editById(TbMemberProject tbMemberProject) {
//一年只能有一个项目
String year = tbMemberProject.getYear();
String id = tbMemberProject.getId();
check(year, id);
saveOrUpdate(tbMemberProject);
}
@@ -5,6 +5,7 @@ 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.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser;
import com.jero.contract.entity.PayIncomeContractAssociated;
@@ -22,12 +23,15 @@ import com.jero.payment.entity.PayConfirmPaymentRecord;
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.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.shiro.SecurityUtils;
import org.hibernate.type.YesNoType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -35,6 +39,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import static freemarker.template.utility.NullArgumentException.check;
/**
* @Description: 标协会员项目成员表
* @Author: jero-boot
@@ -75,9 +81,34 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
*/
@Override
public void add(TbMemberProjectSubitem tbMemberProjectSubitem) {
//实收金额
tbMemberProjectSubitem.setPaidAmount(BigDecimal.ZERO);
//到账
tbMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
//开票
tbMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
//邮寄
tbMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
//提票
tbMemberProjectSubitem.setTicketCollection(PayProjectCommon.NO);
check(tbMemberProjectSubitem);
save(tbMemberProjectSubitem);
}
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("会员单位已经存在");
}
}
/**
* 更新
*/
@@ -169,4 +200,12 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
}
return baseMapper.pageList(page,queryWrapper);
}
@Override
public void ticketCollection(String id) {
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
updateWrapper.set(TbMemberProjectSubitem::getTicketCollection, PayProjectCommon.YES);
this.update(updateWrapper);
}
}
@@ -0,0 +1,128 @@
package com.jero.member.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import com.jero.common.util.PasswordUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 标协会员项目成员表
* @Author: jero-boot
* @Date: 2021-09-01
* @Version: V1.0
*/
@Data
public class TbMemberProjectSubitemEditVO implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**项目id*/
@ApiModelProperty(value = "项目id")
private String projectId;
/**会员编号*/
@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;
/**会员性质(1-副理事单位,2-理事单位,3-会员单位)*/
@Excel(name = "会员性质(1-副理事单位,2-理事单位,3-会员单位)", width = 15,dicCode = "member_nature")
@Dict(dicCode = "member_nature")
@ApiModelProperty(value = "会员性质(1-副理事单位,2-理事单位,3-会员单位)")
private Integer memberNature;
/**联系人id*/
@ApiModelProperty(value = "联系人id")
@Excel(name = "联系人", width = 15, dictTable = "sys_user",dicText = "realname", dicCode = "id")
@Dict(dictTable = "sys_user",dicText = "realname", dicCode = "id")
private String liaisonManId;
@ApiModelProperty(value = "邮寄联系人id")
private String postContactId;
/**
* 待确收金额
*/
@Excel(name = "待确收金额", width = 15)
@ApiModelProperty(value = "待确收金额")
@NotNull(message = "待确收金额不能为空")
@DecimalMax(value = "9999999999.99", message = "待确收金额格式错误")
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;
/**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15)
private String 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 = "合同编号")
@Size(max = 50,message = "合同编号长度不能大于50个字符")
private String contractNum;
/**收费通知号*/
@ApiModelProperty(value = "收费通知号")
private String chargeNoticeNo;
/**收费通知文件id*/
@ApiModelProperty(value = "收费通知文件id")
private String chargeNoticeId;
@ApiModelProperty(value = "备注")
private String remark;
}
@@ -1184,7 +1184,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
payCommonProject.setChargeCompanyTemporaryName(oConvertUtils.replaceAllPercent(payCommonProject.getChargeCompanyTemporaryName()));
}
List<PayCommonProjectOutput> pageList=payPaymentRecordMapper.mainListExportXls(payCommonProject, projectType,paymentDate,paidInvoicStatus);
pageList.forEach(p-> {
List<PayCommonProjectOutput> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList());
} else {
exportList = pageList;
}
exportList.forEach(p-> {
if (!Objects.isNull(p.getChargeUse())) {
p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use", String.valueOf(p.getChargeUse())));
}
@@ -1199,18 +1209,6 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
}
});
List<PayCommonProjectOutput> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList());
} else {
exportList = pageList;
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下