From e1f1b96a37f361e5e39fc80b4315193934545185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 28 Dec 2023 17:27:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=A8=A1=E5=9D=97-=E4=BC=9A?= =?UTF-8?q?=E8=AE=AE=E6=89=93=E5=8C=85=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/PayMeetingSituationMapper.java | 13 +++- .../mapper/xml/PayMeetingSituationMapper.xml | 11 +++- .../service/IPayMeetingSituationService.java | 11 +++- .../impl/PayMeetingSituationServiceImpl.java | 49 ++++++++++++++ .../MeetingPackStatisticsController.java | 65 +++++++++++++++++++ .../entity/MeetingPackStatistics.java | 63 ++++++++++++++++++ .../entity/MeetingPackStatisticsSearch.java | 22 +++++++ 7 files changed, 229 insertions(+), 5 deletions(-) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MeetingPackStatisticsController.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatistics.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java index 94014832..0550cb4f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java @@ -2,13 +2,16 @@ package com.jero.meeting.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.jero.meeting.vo.MeetingSituationContractVO; -import org.apache.ibatis.annotations.Param; import com.jero.meeting.entity.PayMeetingSituation; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.meeting.vo.MeetingSituationContractVO; +import com.jero.statistics.entity.MeetingPackStatistics; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 会议报名信息 @@ -27,4 +30,8 @@ public interface PayMeetingSituationMapper extends BaseMapper queryWrapper); Integer standardsCheckPhone(@Param("meetingId") String meetingId, @Param("phone") String phone); + + IPage getMeetingPackStatistics(Page page,@Param(Constants.WRAPPER) QueryWrapper query); + + List getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper query); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml index 88d22dd9..4d4388a2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml @@ -178,4 +178,13 @@ and pms.check_result = 1 and pms.register_check_result = 1 - \ No newline at end of file + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 61129e67..ea8e96f0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -3,13 +3,16 @@ package com.jero.meeting.service; 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.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingGuestsFile; import com.jero.meeting.entity.PayMeetingSituation; -import com.baomidou.mybatisplus.extension.service.IService; import com.jero.meeting.vo.*; +import com.jero.statistics.entity.MeetingPackStatistics; +import com.jero.statistics.entity.MeetingPackStatisticsSearch; import org.jetbrains.annotations.Nullable; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -102,4 +105,10 @@ public interface IPayMeetingSituationService extends IService guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO); void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO); + + IPage getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch, + Integer pageNo, + Integer pageSize); + + ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index fd4bbea8..53f9561b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -1,4 +1,5 @@ package com.jero.meeting.service.impl; + import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; @@ -72,16 +73,23 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.standards.memberinfo.service.IMemberInfoService; +import com.jero.statistics.entity.MeetingPackStatistics; +import com.jero.statistics.entity.MeetingPackStatisticsSearch; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.ObjRecordUtil; import com.jero.util.module.ObjRecordUtilModule; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -1914,4 +1922,45 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch, + Integer pageNo, + Integer pageSize) { + QueryWrapper query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch); + Page page = new Page<>(pageNo, pageSize); + return payMeetingSituationMapper.getMeetingPackStatistics(page,query); + } + + @Override + public ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch) { + QueryWrapper query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch); + List list = payMeetingSituationMapper.getMeetingPackStatistics(query); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, "会议打包统计"); //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.CLASS, MeetingPackStatistics.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams("会议打包统计", "会议打包统计"); + exportParams.setType(ExcelType.XSSF); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, list); + return mv; + } + + @NotNull + private QueryWrapper getPayMeetingSituationQueryWrapper(MeetingPackStatisticsSearch metingPackStatisticsSearch) { + QueryWrapper query = new QueryWrapper<>(); + if (!StringUtils.isBlank(metingPackStatisticsSearch.getCompanyName())) { + query.lambda().like(PayMeetingSituation::getCompanyName, metingPackStatisticsSearch.getCompanyName()); + } + if (!StringUtils.isBlank(metingPackStatisticsSearch.getPayMode())) { + query.lambda().in(PayMeetingSituation::getPayMode, Arrays.asList(metingPackStatisticsSearch.getPayMode().split(","))); + } + if (!StringUtils.isBlank(metingPackStatisticsSearch.getPaymentYear())) { + query.eq("DATE_FORMAT(p3.payment_date,'%Y')", metingPackStatisticsSearch.getPaymentYear()); + } + return query; + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MeetingPackStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MeetingPackStatisticsController.java new file mode 100644 index 00000000..f6c51a97 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MeetingPackStatisticsController.java @@ -0,0 +1,65 @@ +package com.jero.statistics.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.meeting.service.IPayMeetingService; +import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.payment.service.impl.PayConfirmPaymentRecordService; +import com.jero.statistics.entity.MeetingPackStatisticsSearch; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; + + +/** + * @author zql + * @date 2021/9/20 21:00:00 + */ +@Api(tags = "会议打包统计") +@RestController +@RequestMapping("/statistics/meetingPackStatistics") +@Slf4j +public class MeetingPackStatisticsController { + @Resource + private IPayMeetingSituationService payMeetingSituationService; + @Resource + private IPayMeetingService payMeetingService; + @Resource + private PayConfirmPaymentRecordService payConfirmPaymentRecordService; + + + /** + * 分页列表查询 + * + * @param metingPackStatisticsSearch 会议打包统计 + * @param pageNo 页数 + * @param pageSize 条数 + */ +// @RequiresPermissions("individualPaymentStatistics:search") + @ApiOperation(value = "会议打包统计-分页列表查询", notes = "会议打包统计-分页列表查询") + @GetMapping(value = "/page") + public Result list(MeetingPackStatisticsSearch metingPackStatisticsSearch, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + return Result.OK(payMeetingSituationService.getMeetingPackStatistics(metingPackStatisticsSearch, pageNo, pageSize)); + } + + /** + * 导出 + * + * @param metingPackStatisticsSearch + */ + @AutoLog(value = "会议打包统计-导出统计") + @ApiOperation(value = "会议打包统计-导出统计", notes = "会议打包统计-导出统计") + @GetMapping(value = "/excelMeetingPackStatistics") + public ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch) { + return payMeetingSituationService.excelMeetingPackStatistics(metingPackStatisticsSearch); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatistics.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatistics.java new file mode 100644 index 00000000..8f10cc53 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatistics.java @@ -0,0 +1,63 @@ +package com.jero.statistics.entity; + +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author lqt + * @version 1.0 + * @date 2023/12/27 17:53 + */ +@Data +public class MeetingPackStatistics implements Serializable { + + @ApiModelProperty(value = "参会人id") + private String id; + + @ApiModelProperty(value = "会议id") + private String meetingId; + + @Excel(name = "会议名称", width = 15) + @ApiModelProperty(value = "会议名称") + private String meetingName; + + @Excel(name = "会议类型", width = 15, dicCode = "meeting_type") + @ApiModelProperty(value = "会议类型") + @Dict(dicCode = "meeting_type") + private Integer meetingType; + + @Excel(name = "来款单位", width = 15) + @ApiModelProperty(value = "来款单位") + private String companyName; + + @Excel(name = "参会人员", width = 15) + @ApiModelProperty(value = "参会人员") + private String companyContactName; + + @Excel(name = "年度待确收金额", width = 15) + @ApiModelProperty(value = "应收金额") + private String allMoney; + + @Excel(name = "确认收入金额", width = 15) + @ApiModelProperty(value = "确认金额") + private String confirmAmount; + + @Excel(name = "开票金额", width = 15) + @ApiModelProperty(value = "开票金额") + private String billMoney; + + @Excel(name = "到账金额", width = 15) + @ApiModelProperty(value = "到账金额") + private String comeAllMoney; + + + @ApiModelProperty(value = "确认年份") + private BigDecimal paymentYear; + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java new file mode 100644 index 00000000..fdde5f24 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java @@ -0,0 +1,22 @@ +package com.jero.statistics.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author lqt + * @version 1.0 + * @date 2023/12/27 17:53 + */ +@Data +public class MeetingPackStatisticsSearch implements Serializable { + + @ApiModelProperty(value = "来款单位") + private String companyName; + @ApiModelProperty(value = "确认年份") + private String paymentYear; + @ApiModelProperty(value = "来款方式(默认打包)") + private String payMode; +}