add:标协会员-年度会员维护的查询和导出接口

This commit is contained in:
sunzheng
2024-07-05 18:16:56 +08:00
parent f50eb80d6f
commit a969d6a498
5 changed files with 245 additions and 0 deletions
@@ -0,0 +1,84 @@
package com.jero.member.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.oConvertUtils;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.IAnnualMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.member.vo.AnnualMemberProjectExcelVO;
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.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;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
/**
* 年度会员维护
*/
@Api(tags="年度会员维护")
@RestController
@RequestMapping("/member/annulMemberProject")
@Slf4j
public class AnnualMemberProjectController extends JeroController<TbMemberProjectSubitem, ITbMemberProjectSubitemService> {
@Resource
private IAnnualMemberProjectService annualMemberProjectService;
/**
* 分页列表查询
*/
@RequiresPermissions("safeguardStardsMember:search")
@ApiOperation(value="年度会员维护-分页列表查询", notes="年度会员维护-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<TbMemberProjectSubitem>> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
IPage<TbMemberProjectSubitem> pageList = annualMemberProjectService.pageList(page, req, tbMemberProjectSubitem);
return Result.OK(pageList);
}
/**
* 导出excel
*/
@ApiOperation(value = "导出")
@RequiresPermissions("safeguardStardsMember:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest req, TbMemberProjectSubitem tbMemberProjectSubitem) {
List<TbMemberProjectSubitem> pageList = annualMemberProjectService.pageList(req, tbMemberProjectSubitem);
List<TbMemberProjectSubitem> recordList;
// 过滤选中数据
String selections = req.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
recordList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
recordList = pageList;
}
List<AnnualMemberProjectExcelVO> exportList = new ArrayList<>();
for (TbMemberProjectSubitem item : recordList) {
AnnualMemberProjectExcelVO annualMemberProjectExcelVO = new AnnualMemberProjectExcelVO();
annualMemberProjectExcelVO.setMemberNo(item.getMemberNo());
annualMemberProjectExcelVO.setMemberStatus(item.getMemberStatus());
annualMemberProjectExcelVO.setLiaisonManId(item.getLiaisonManId());
annualMemberProjectExcelVO.setCompanyName(item.getCompanyName());
annualMemberProjectExcelVO.setInvalidationDateStr(item.getInvalidationDateStr());
annualMemberProjectExcelVO.setEffectiveDateStr(item.getEffectiveDateStr());
exportList.add(annualMemberProjectExcelVO);
}
return super.exportListXls(exportList, AnnualMemberProjectExcelVO.class, "年度会员维护表");
}
}
@@ -0,0 +1,20 @@
package com.jero.member.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.member.entity.TbMemberProjectSubitem;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 年度会员维护
*/
public interface AnnualMemberProjectMapper {
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
List<TbMemberProjectSubitem> pageList(@Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
}
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.member.mapper.AnnualMemberProjectMapper">
<resultMap id="AnnualMemberProjectResultMap" type="com.jero.member.entity.TbMemberProjectSubitem">
<id column="id" property="id" />
<result column="id" property="id" />
<result column="company_name" property="companyName" />
<result column="member_no" property="memberNo" />
<result column="member_status" property="memberStatus" />
<result column="liaison_man_id" property="liaisonManId" />
<result column="effective_date" property="effectiveDateStr" />
<result column="invalidation_date" property="invalidationDateStr" />
</resultMap>
<select id="pageList" resultMap="AnnualMemberProjectResultMap">
select
vmps.*
from v_member_project_subitem vmps
${ew.customSqlSegment}
</select>
</mapper>
@@ -0,0 +1,66 @@
package com.jero.member.service;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
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.common.service.RolePermissionService;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.AnnualMemberProjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 年度会员维护
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class IAnnualMemberProjectService {
@Resource
private AnnualMemberProjectMapper annualMemberProjectMapper;
@Resource
private RolePermissionService rolePermissionService;
public IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
QueryWrapper<TbMemberProjectSubitem> queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
return annualMemberProjectMapper.pageList(page,queryWrapper);
}
public List<TbMemberProjectSubitem> pageList(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
QueryWrapper<TbMemberProjectSubitem> queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
return annualMemberProjectMapper.pageList(queryWrapper);
}
private QueryWrapper<TbMemberProjectSubitem> generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, request.getParameterMap());
String invalidationDateStr = tbMemberProjectSubitem.getInvalidationDateStr();
String effectiveDateStr = tbMemberProjectSubitem.getEffectiveDateStr();
if (StringUtils.isNotBlank(invalidationDateStr)){
DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN);
queryWrapper.eq("year(invalidation_date)",invalidationDate.year());
queryWrapper.eq("month(invalidation_date)",invalidationDate.month()+1);
}
if (StringUtils.isNotBlank(effectiveDateStr)){
DateTime effectiveDate = DateUtil.parse(effectiveDateStr, DatePattern.NORM_MONTH_PATTERN);
queryWrapper.eq("year(effective_date)",effectiveDate.year());
queryWrapper.eq("month(effective_date)",effectiveDate.month()+1);
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
queryWrapper.eq("tmp.director_id",sysUser.getId());
}
return queryWrapper;
}
}
@@ -0,0 +1,50 @@
package com.jero.member.vo;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
public class AnnualMemberProjectExcelVO {
/**id*/
@ApiModelProperty(value = "id")
private String id;
/**会员单位*/
@ApiModelProperty(value = "会员单位")
@Excel(name = "会员单位", width = 20)
private String companyName;
/**会员编号*/
@Excel(name = "会员编号", width = 20)
@ApiModelProperty(value = "会员编号")
private String memberNo;
/**会员状态*/
@Excel(name = "会员状态", width = 15, dicCode = "member_status")
@ApiModelProperty(value = "会员状态")
@Dict(dicCode = "member_status")
private Integer memberStatus;
/**会员联系人*/
@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 = "生效日期")
@Excel(name = "会员单位", width = 20)
private String effectiveDateStr;
/**
* 失效日期
*/
@ApiModelProperty(value = "失效日期")
@Excel(name = "失效日期", width = 20)
private String invalidationDateStr;
}