diff --git a/jero-boot-incoming-payment/pom.xml b/jero-boot-incoming-payment/pom.xml
index 177bf2af..4e7f8307 100644
--- a/jero-boot-incoming-payment/pom.xml
+++ b/jero-boot-incoming-payment/pom.xml
@@ -67,5 +67,16 @@
sdk
1.0.11
+
+
+ com.itextpdf
+ itextpdf
+ 5.5.13
+
+
+ com.itextpdf
+ itext-asian
+ 5.2.0
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/controller/approvalDocumentNumberController.java b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/controller/approvalDocumentNumberController.java
new file mode 100644
index 00000000..80f3dc3d
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/controller/approvalDocumentNumberController.java
@@ -0,0 +1,291 @@
+package com.jero.approvalDocumentNumber.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.itextpdf.text.pdf.PdfStamper;
+import com.jero.approvalDocumentNumber.entity.ApprovalDocumentNumber;
+import com.jero.approvalDocumentNumber.service.ApprovalDocumentNumberService;
+import com.jero.common.api.vo.Result;
+import com.jero.common.aspect.annotation.AutoLog;
+import com.jero.common.exception.JeroBootException;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.system.service.SystemSendMessageService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * @Description: 批复文号
+ * @Author: jeecg-boot
+ * @Date: 2021-05-12
+ * @Version: V1.0
+ */
+@Api(tags="批复文号")
+@RestController
+@RequestMapping("/approvalDocumentNumber/approvalDocumentNumber")
+@Slf4j
+public class approvalDocumentNumberController extends JeroController {
+ @Autowired
+ private ApprovalDocumentNumberService tbApprovalDocumentNumberService;
+ @Resource
+ private SystemSendMessageService systemSendMessageService;
+ /**
+ * 分页列表查询
+ *
+ * @param approvalDocumentNumber
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @ApiOperation(value="批复文号-分页列表查询", notes="批复文号-分页列表查询")
+ @GetMapping(value = "/list")
+ @RequiresPermissions("approvalDocumentNumber:search")
+ public Result> queryPageList(ApprovalDocumentNumber approvalDocumentNumber,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList;
+ try {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(approvalDocumentNumber, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ pageList = tbApprovalDocumentNumberService.page(page, queryWrapper);
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.SELECT_SUCCESS, pageList);
+ }
+
+ /**
+ * 分页列表查询
+ *
+ * @param approvalDocumentNumber
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @ApiOperation(value="批复文号-分页列表查询", notes="批复文号-分页列表查询")
+ @GetMapping(value = "/listByCompany")
+ public Result> listByCompany(ApprovalDocumentNumber approvalDocumentNumber,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList;
+ try {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(approvalDocumentNumber, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ pageList = tbApprovalDocumentNumberService.page(page, queryWrapper);
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.SELECT_SUCCESS, pageList);
+ }
+
+ /**
+ * 添加
+ * @param approvalDocumentNumber
+ * @return
+ */
+ @AutoLog(value = "批复文号-添加")
+ @ApiOperation(value="批复文号-添加", notes="批复文号-添加")
+ @PostMapping(value = "/add")
+ @RequiresPermissions("approvalDocumentNumber:add")
+ public Result> add(@RequestBody ApprovalDocumentNumber approvalDocumentNumber) {
+ try {
+ if (StringUtils.isBlank(approvalDocumentNumber.getApprovalDocumentNumber())){
+ return Result.error("请输入批复文号");
+ }else if (approvalDocumentNumber.getApprovalDocumentNumber().length()>50){
+ return Result.error("批复文号最大输入长度为50");
+ }
+ String year = approvalDocumentNumber.getDateYear();
+ if (StringUtils.isBlank(year)){
+ return Result.error("请输入时间");
+ }
+
+ Boolean res = tbApprovalDocumentNumberService.checkOnlyDateYear(year);
+ if(res){
+ return Result.error("一年只有一个批复文号");
+ }
+
+ tbApprovalDocumentNumberService.save(approvalDocumentNumber);
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.ADD_SUCCESS);
+ }
+
+ /**
+ * 编辑
+ *
+ * @param approvalDocumentNumber
+ * @return
+ */
+ @AutoLog(value = "批复文号表-编辑")
+ @ApiOperation(value="批复文号表-编辑", notes="批复文号表-编辑")
+ @PutMapping(value = "/edit")
+ @RequiresPermissions("approvalDocumentNumber:edit")
+ public Result> edit(@RequestBody ApprovalDocumentNumber approvalDocumentNumber) {
+ try {
+ ApprovalDocumentNumber newO = tbApprovalDocumentNumberService.getById(approvalDocumentNumber.getId());
+ if (!Objects.equals(newO.getChargeNoticeFileId(),approvalDocumentNumber.getChargeNoticeFileId())) {
+ systemSendMessageService.standardsSend(newO.getDateYear());
+ }
+ tbApprovalDocumentNumberService.updateById(approvalDocumentNumber);
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.EDIT_SUCCESS);
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "批复文号表-通过id删除")
+ @ApiOperation(value="批复文号表-通过id删除", notes="批复文号表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ @RequiresPermissions("approvalDocumentNumber:delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+
+ try {
+ tbApprovalDocumentNumberService.removeById(id);
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.DELETE_SUCCESS);
+ }
+
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "批复文号表-批量删除")
+ @ApiOperation(value="批复文号表-批量删除", notes="批复文号表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ @RequiresPermissions("approvalDocumentNumber:deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.tbApprovalDocumentNumberService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.ok("批量删除成功!");
+ }
+
+ /**
+ * 查询最新的批复文号
+ *
+ * @param
+ * @return
+ */
+ @ApiOperation(value="批复文号表-查询当前年的批复文号", notes="批复文号表-查询当前年的批复文号")
+ @GetMapping(value = "/queryLatest")
+ public Result> queryLatest() {
+
+ ApprovalDocumentNumber approval;
+ try {
+ LambdaQueryWrapper wrapperDet = new LambdaQueryWrapper<>();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+ Date date = new Date();
+
+ wrapperDet.eq(ApprovalDocumentNumber::getDateYear,sdf.format(date));
+ approval = tbApprovalDocumentNumberService.getOne(wrapperDet);
+
+ if (approval == null) {
+ return Result.error("未找到对应数据");
+ }
+ } catch (JeroBootException e) {
+ e.printStackTrace();
+ return Result.error(500, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error(500, Result.SYSTEM_IS_BUSY);
+ }
+ return Result.OK(Result.SELECT_SUCCESS, approval);
+ }
+
+ /**
+ * 会员信息表-下载会员批复文件pdf
+ * @param companyName
+ * @param response
+ * @return
+ */
+ @ApiOperation(value = "会员信息表-下载会员批复文件pdf")
+ @GetMapping(value = "/downloadApprovalPdf")
+ public void downloadApprovalPdf(@RequestParam(name = "companyName", required = true) String companyName,
+ @RequestParam(name = "year", required = true) String year,
+ @RequestParam(name = "EffectiveDate", required = true) String EffectiveDate,
+ HttpServletResponse response) {
+
+ PdfStamper pdfStamper=null;
+ ByteArrayOutputStream bos=null;
+ ServletOutputStream outputStream=null;
+ try {
+ bos = new ByteArrayOutputStream();
+ tbApprovalDocumentNumberService.downloadApprovalPdf(companyName,year,EffectiveDate,pdfStamper,bos);
+ response.setContentType("application/force-download");
+ response.addHeader("Content-Disposition", "attachment;fileName=" + new String("会员批复文件.pdf".getBytes("UTF-8"), "ISO_8859_1"));
+
+ outputStream = response.getOutputStream();
+ outputStream.write(bos.toByteArray());
+ } catch (Exception e) {
+ log.error("报错:",e);
+ } finally {
+ if (bos != null) {
+ try {
+ bos.close();
+ } catch (IOException e) {
+ log.error("报错:",e);
+ }
+ }
+ if (outputStream != null) {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ log.error("报错:",e);
+ }
+ }
+ }
+ }
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/entity/ApprovalDocumentNumber.java b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/entity/ApprovalDocumentNumber.java
new file mode 100644
index 00000000..fce03805
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/entity/ApprovalDocumentNumber.java
@@ -0,0 +1,68 @@
+package com.jero.approvalDocumentNumber.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 批复文号表
+ * @Author: jeecg-boot
+ * @Date: 2021-05-12
+ * @Version: V1.0
+ */
+@Data
+@TableName("tb_approval_document_number")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="tb_approval_document_number对象", description="批复文号表")
+public class ApprovalDocumentNumber implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ID_WORKER_STR)
+ @ApiModelProperty(value = "主键")
+ private String id;
+ /**批复文号 */
+ @Excel(name = "批复文号", width = 15)
+ @ApiModelProperty(value = "批复文号")
+ private String approvalDocumentNumber;
+ /**时间(年)*/
+ @Excel(name = "时间(年)", width = 15)
+ @ApiModelProperty(value = "时间(年)")
+ private String dateYear;
+ /**收费通知单id*/
+ @Excel(name = "收费通知单id", width = 15)
+ @ApiModelProperty(value = "收费通知单id")
+ private String chargeNoticeFileId;
+ /**收费通知单名称*/
+ @Excel(name = "收费通知单名称", width = 15)
+ @ApiModelProperty(value = "收费通知单名称")
+ private String chargeNoticeName;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private Date updateTime;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private Date createTime;
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/ApprovalDocumentNumberMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/ApprovalDocumentNumberMapper.java
new file mode 100644
index 00000000..4512c051
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/ApprovalDocumentNumberMapper.java
@@ -0,0 +1,15 @@
+package com.jero.approvalDocumentNumber.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.approvalDocumentNumber.entity.ApprovalDocumentNumber;
+
+/**
+ * @Description: 批复文号
+ * @Author: jeecg-boot
+ * @Date: 2021-05-12
+ * @Version: V1.0
+ */
+public interface ApprovalDocumentNumberMapper extends BaseMapper {
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/xml/TbApprovalDocumentNumberMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/xml/TbApprovalDocumentNumberMapper.xml
new file mode 100644
index 00000000..6f6fef2d
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/mapper/xml/TbApprovalDocumentNumberMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/service/ApprovalDocumentNumberService.java b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/service/ApprovalDocumentNumberService.java
new file mode 100644
index 00000000..cb2c9fd4
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/approvalDocumentNumber/service/ApprovalDocumentNumberService.java
@@ -0,0 +1,94 @@
+package com.jero.approvalDocumentNumber.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.itextpdf.text.pdf.AcroFields;
+import com.itextpdf.text.pdf.BaseFont;
+import com.itextpdf.text.pdf.PdfReader;
+import com.itextpdf.text.pdf.PdfStamper;
+import com.jero.approvalDocumentNumber.entity.ApprovalDocumentNumber;
+import com.jero.approvalDocumentNumber.mapper.ApprovalDocumentNumberMapper;
+import com.jero.standards.memberinfo.entity.MemberInfo;
+import com.jero.standards.memberinfo.mapper.MemberInfoMapper;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.ByteArrayOutputStream;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+
+/**
+ * @Description: 批复文号
+ * @Author: jeecg-boot
+ * @Date: 2021-05-12
+ * @Version: V1.0
+ */
+@Service
+public class ApprovalDocumentNumberService extends ServiceImpl {
+
+ @Resource
+ ApprovalDocumentNumberMapper approvalMapper;
+ @Resource
+ private MemberInfoMapper memberInfoMapper;
+ ////pdf模板文件路径
+ //@Value("${template.path.pdf}")
+ //private String templatePath;
+ //@Value("${template.path.font}")
+ //private String fontPath;
+
+ /**
+ * 这一年是否已经存在批准文号
+ * @param dateYear
+ * @return
+ */
+ public Boolean checkOnlyDateYear(String dateYear){
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ApprovalDocumentNumber::getDateYear, dateYear);
+ Integer count = approvalMapper.selectCount(wrapper);
+ if (count > 0) {
+ return true;
+ }else{
+ return false;
+ }
+ }
+ public void downloadApprovalPdf(String companyName, String year,
+ String effectiveDate, PdfStamper pdfStamper, ByteArrayOutputStream bos) throws Exception {
+ ClassLoader classLoader = ApprovalDocumentNumberService.class.getClassLoader();
+ String fontPath = classLoader.getResource("template/simfang.ttf").getPath();
+ if (fontPath.startsWith("/")){
+ fontPath = fontPath.substring(1);
+ }
+ String templatePath = classLoader.getResource("template/approvalTemplate.pdf").getPath();
+ if (templatePath.startsWith("/")){
+ templatePath = templatePath.substring(1);
+ }
+ /* 使用中文字体 */
+ BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+
+ //模板路径
+ if (templatePath == null) {
+ log.error("会员批复文件pdf模板为空");
+ return;
+ }
+ PdfReader pdfReader = new PdfReader(templatePath);
+
+ pdfStamper = new PdfStamper(pdfReader, bos);
+
+ AcroFields form = pdfStamper.getAcroFields();
+ form.addSubstitutionFont(baseFont);
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(ApprovalDocumentNumber::getDateYear,year);
+ ApprovalDocumentNumber approval = approvalMapper.selectOne(wrapper);
+ form.setField("companyName", companyName + ":");
+ form.setField("dateYear", year);
+ form.setField("approvalDocumentNumber", approval.getApprovalDocumentNumber());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+ form.setField("createTime", effectiveDate);
+ //设置不可编辑
+ pdfStamper.setFormFlattening(true);
+ pdfStamper.close();
+ pdfReader.close();
+ }
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
index 24311db7..094bae6c 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
@@ -51,7 +51,7 @@
UNION ALL
- select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.liaison_man_id,tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,tmsub.mobile,tmsub.email,'',pic.contract_num,tmsub.company_id,tmsub.payment_method,'','','',tmember.year,'',''
+ select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.liaison_man_id,tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,tmsub.mobile,tmsub.email,tmsub.remark,pic.contract_num,tmsub.company_id,tmsub.payment_method,'',tmsub.charge_notice_no,tmsub.charge_notice_id,tmember.year,'',''
,tmsub.tax_rate,tmsub.tax,tmsub.no_tax_amount,affirm_income
from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
index ba8ccb25..4d6955ef 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
@@ -208,7 +208,9 @@ public class ITbMemberProjectSubitemService extends ServiceImpl queryPageListCompany(Page page, QueryWrapper queryWrapper) {
IPage iPage = baseMapper.queryPageListCompany(page, queryWrapper);
for (TbMemberProjectSubitem record : iPage.getRecords()) {
- Date invalidationDate = record.getInvalidationDate();
- //如果当前日期大于失效日期,返回失效
- if (DateUtil.compare(DateUtil.date(),invalidationDate) > 0){
- record.setEquityStatus(TAKE_EFFECT);
- }else {
- record.setEquityStatus(INVALID);
- }
+ processData(record);
}
return iPage;
}
+
+ /**
+ * 处理数据
+ */
+ private void processData(TbMemberProjectSubitem record){
+ Date invalidationDate = record.getInvalidationDate();
+ //如果当前日期大于失效日期,返回失效
+ if (DateUtil.compare(DateUtil.date(),invalidationDate) > 0){
+ record.setEquityStatus(TAKE_EFFECT);
+ }else {
+ record.setEquityStatus(INVALID);
+ }
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
index 3f531058..9c0d6e68 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
@@ -31,7 +31,11 @@ import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
+import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectFile;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.service.ITbMemberProjectService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.member.service.TbMemberProjectFileService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
@@ -110,6 +114,10 @@ public class PayCommonProjectController extends JeroController fileList = tbMemberProjectFileService.list(queryPayWorkingGroupDistributionRecord);
String fileIds = fileList.stream().map(TbMemberProjectFile::getFileId).collect(Collectors.joining(","));
payCommonProject.setFiles(fileIds);
+ //payCommonProject.setChargeStandard(memberProject.getChargeStandard());
+ //payCommonProject.setChargeNoticeFileId(memberProject.getChargeNoticeFileId());
+ //payCommonProject.setCouncilChargeStandard(memberProject.getCouncilChargeStandard());
+ //payCommonProject.setCouncilChargeNoticeNo(memberProject.getCouncilChargeNoticeNo());
+ //payCommonProject.setCouncilChargeNoticeFileId(memberProject.getCouncilChargeNoticeFileId());
+ TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.queryById(id);
+ payCommonProject.setMemberNo(tbMemberProjectSubitem.getMemberNo());
+ payCommonProject.setMemberNature(tbMemberProjectSubitem.getMemberNature());
+ payCommonProject.setEffectiveDate(tbMemberProjectSubitem.getEffectiveDate());
+ payCommonProject.setInvalidationDate(tbMemberProjectSubitem.getInvalidationDate());
+ payCommonProject.setEquityStatus(tbMemberProjectSubitem.getEquityStatus());
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
index 1f2641f1..8cd64cb1 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
@@ -343,4 +343,46 @@ public class PayCommonProject implements Serializable {
@TableField(exist = false)
private Integer adminAddFlag;
+
+ /**
+ * 收费标准
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "收费标准")
+ private BigDecimal chargeStandard;
+
+ /**
+ * 收费通知文件id
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "收费通知文件id")
+ private String chargeNoticeFileId;
+
+ /**会员编号*/
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会员编号")
+ private String memberNo;
+ /**会员性质*/
+ @TableField(exist = false)
+ @Dict(dicCode = "member_nature")
+ @ApiModelProperty(value = "会员性质(1-副理事单位,2-理事单位,3-会员单位)")
+ private Integer memberNature;
+ /** 生效日期 */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "生效日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ private Date effectiveDate;
+ /**
+ * 失效日期
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "失效日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ private Date invalidationDate;
+
+ @ApiModelProperty(value = "权益状态")
+ @TableField(exist = false)
+ private String equityStatus;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java b/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java
index 5ce3880b..a71c54ec 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/system/controller/SystemSendMessageController.java
@@ -23,6 +23,7 @@ import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysAnnouncementSendService;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysUserService;
+import com.jero.system.service.SystemSendMessageService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -70,7 +71,7 @@ public class SystemSendMessageController {
@Resource
private ISysAnnouncementService sysAnnouncementService;
@Resource
- private SendMessageService sendMessageService;
+ private SystemSendMessageService systemSendMessageService;
/**
* 发送站内消息
@@ -144,26 +145,7 @@ public class SystemSendMessageController {
@ApiOperation(value = "会员系统更新收费通知单发送消息", notes = "会员系统更新收费通知单发送消息")
@GetMapping(value = "/standardsSend")
public Result> add(String year) {
- List listPayContactsManagement = payContactsManagementService.list();
- if (listPayContactsManagement.isEmpty()) {
- return Result.OK();
- }
- String toUser = listPayContactsManagement.stream().map(item -> PasswordUtil.decrypt(item.getPhone())).collect(Collectors.joining(","));
- // 发送消息
- SendMessageDTO sendMessageDTO = new SendMessageDTO();
-
- HashMap map = new HashMap<>();
- map.put("year", year);
- sendMessageDTO.setFromUser("BXGLZ");
- sendMessageDTO.setToUser(toUser);
- sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG23.getCode());
- sendMessageDTO.setTemplateParam(map);
- sendMessageDTO.setBusType("C_OPEN_TYPE23");
- JSONObject jsonObject = new JSONObject();
- //jsonObject.put("id", id);
- sendMessageDTO.setBusId(jsonObject.toJSONString());
- sendMessageService.SendMessageService(sendMessageDTO);
-
+ systemSendMessageService.standardsSend(year);
return Result.OK();
}
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/system/service/SystemSendMessageService.java b/jero-boot-incoming-payment/src/main/java/com/jero/system/service/SystemSendMessageService.java
new file mode 100644
index 00000000..d7847fcd
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/system/service/SystemSendMessageService.java
@@ -0,0 +1,49 @@
+package com.jero.system.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jero.common.dto.SendMessageDTO;
+import com.jero.common.enums.CompanyMessageEnums;
+import com.jero.common.service.SendMessageService;
+import com.jero.common.util.PasswordUtil;
+import com.jero.company.entity.PayContactsManagement;
+import com.jero.company.service.IPayContactsManagementService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author liJiaRao
+ * @date 2024-03-21 17:38
+ */
+@Service
+public class SystemSendMessageService {
+ @Resource
+ private IPayContactsManagementService payContactsManagementService;
+ @Resource
+ private SendMessageService sendMessageService;
+
+ public void standardsSend(String year) {
+ List listPayContactsManagement = payContactsManagementService.list();
+ if (listPayContactsManagement.isEmpty()) {
+ return ;
+ }
+ String toUser = listPayContactsManagement.stream().map(item -> PasswordUtil.decrypt(item.getPhone())).collect(Collectors.joining(","));
+ // 发送消息
+ SendMessageDTO sendMessageDTO = new SendMessageDTO();
+
+ HashMap map = new HashMap<>();
+ map.put("year", year);
+ sendMessageDTO.setFromUser("BXGLZ");
+ sendMessageDTO.setToUser(toUser);
+ sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG23.getCode());
+ sendMessageDTO.setTemplateParam(map);
+ sendMessageDTO.setBusType("C_OPEN_TYPE23");
+ JSONObject jsonObject = new JSONObject();
+ sendMessageDTO.setBusId(jsonObject.toJSONString());
+ sendMessageService.SendMessageService(sendMessageDTO);
+
+ }
+}
diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
index 4ae90e72..c711a938 100644
--- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
+++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
@@ -1,9 +1,15 @@
package com.jero.modules.system.service.impl;
+import java.util.HashMap;
import java.util.List;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
+import com.alibaba.fastjson.JSONObject;
+import com.jero.common.api.vo.Result;
+import com.jero.common.util.PasswordUtil;
+import com.jero.modules.pay.company.entity.PayContactsManagement;
import com.jero.modules.system.entity.SysAnnouncementSend;
import com.jero.modules.system.mapper.SysAnnouncementSendMapper;
import com.jero.modules.system.model.AnnouncementSendModel;
diff --git a/jero-boot-single-startup/src/main/resources/template/approvalTemplate.pdf b/jero-boot-single-startup/src/main/resources/template/approvalTemplate.pdf
new file mode 100644
index 00000000..406e8b94
Binary files /dev/null and b/jero-boot-single-startup/src/main/resources/template/approvalTemplate.pdf differ
diff --git a/jero-boot-single-startup/src/main/resources/template/simfang.ttf b/jero-boot-single-startup/src/main/resources/template/simfang.ttf
new file mode 100644
index 00000000..68334e27
Binary files /dev/null and b/jero-boot-single-startup/src/main/resources/template/simfang.ttf differ
diff --git a/pom.xml b/pom.xml
index c74554cb..74329eb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -308,6 +308,7 @@
eot
ttf
svg
+ pdf