diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java new file mode 100644 index 00000000..fa6b7014 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java @@ -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 { + + @Resource + private IAnnualMemberProjectService annualMemberProjectService; + + + /** + * 分页列表查询 + */ + @RequiresPermissions("safeguardStardsMember:search") + @ApiOperation(value="年度会员维护-分页列表查询", notes="年度会员维护-分页列表查询") + @GetMapping(value = "/page") + public Result> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page page = new Page<>(pageNo, pageSize); + IPage 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 pageList = annualMemberProjectService.pageList(req, tbMemberProjectSubitem); + List recordList; + // 过滤选中数据 + String selections = req.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + recordList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList()); + } else { + recordList = pageList; + } + List 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, "年度会员维护表"); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java new file mode 100644 index 00000000..c1095cb9 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java @@ -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 pageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List pageList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml new file mode 100644 index 00000000..ace813f7 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java new file mode 100644 index 00000000..19ac4c45 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java @@ -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 pageList(Page page, HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) { + QueryWrapper queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem); + return annualMemberProjectMapper.pageList(page,queryWrapper); + } + + public List pageList(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) { + QueryWrapper queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem); + return annualMemberProjectMapper.pageList(queryWrapper); + } + + private QueryWrapper generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){ + QueryWrapper 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; + } + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/AnnualMemberProjectExcelVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/AnnualMemberProjectExcelVO.java new file mode 100644 index 00000000..098c1283 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/AnnualMemberProjectExcelVO.java @@ -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; + + +}