| | |
| | | package com.panzhihua.sangeshenbian.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.idev.excel.FastExcel; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; |
| | | import com.panzhihua.sangeshenbian.model.entity.PartyMember; |
| | | import com.panzhihua.sangeshenbian.dao.PartyMemberMapper; |
| | | import com.panzhihua.sangeshenbian.model.excel.PartyMemberExcel; |
| | | import com.panzhihua.sangeshenbian.model.excel.PartyMemberTemplate; |
| | | import com.panzhihua.sangeshenbian.service.IPartyMemberService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.panzhihua.sangeshenbian.warpper.PartyMemberDTO; |
| | | import com.panzhihua.sangeshenbian.warpper.PartyMemberQuery; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.net.URLEncoder; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @since 2025-03-13 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor(onConstructor_ = {@Lazy}) |
| | | public class PartyMemberServiceImpl extends ServiceImpl<PartyMemberMapper, PartyMember> implements IPartyMemberService { |
| | | private final HttpServletResponse response; |
| | | /** |
| | | * 党员分页查询列表 |
| | | * |
| | | * @param query |
| | | * @param loginUserInfo |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Page<PartyMember> pageList(PartyMemberQuery query, SystemUserVo loginUserInfo) { |
| | | return baseMapper.pageList(new Page<>(query.getPageNum(), query.getPageSize()),query,loginUserInfo); |
| | | } |
| | | /** |
| | | * 添加党员 |
| | | * @param dto |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void save(PartyMemberDTO dto, SystemUserVo loginUserInfo) { |
| | | PartyMember partyMember = BeanUtil.copyProperties(dto, PartyMember.class); |
| | | String idNumber = dto.getIdNumber(); |
| | | partyMember.setGender(getGender(idNumber)); |
| | | if (Objects.isNull(dto.getId())) { |
| | | //添加 |
| | | partyMember.setCreateBy(Long.parseLong(loginUserInfo.getId().toString())); |
| | | save(partyMember); |
| | | } else { |
| | | partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString())); |
| | | updateById(partyMember); |
| | | } |
| | | } |
| | | /** |
| | | * 冻结/解冻 |
| | | * @param id |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void freeze(Long id, SystemUserVo loginUserInfo) { |
| | | PartyMember partyMember = getById(id); |
| | | partyMember.setFreezeStatus(partyMember.getFreezeStatus() == 1 ? 0 : 1); |
| | | partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString())); |
| | | updateById(partyMember); |
| | | } |
| | | |
| | | @Override |
| | | public void download() throws IOException { |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName = URLEncoder.encode("党员导入模板", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | FastExcel.write(response.getOutputStream(), PartyMemberTemplate.class) |
| | | .sheet("党员导入模板") |
| | | .doWrite(Collections.emptyList()); |
| | | } |
| | | |
| | | /** |
| | | * 导出 |
| | | * @param query |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void export(PartyMemberQuery query, SystemUserVo loginUserInfo) throws IOException { |
| | | List<PartyMember> list = baseMapper.queryList(query,loginUserInfo); |
| | | List<PartyMemberExcel> partyMemberExcels = BeanUtil.copyToList(list, PartyMemberExcel.class); |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName = URLEncoder.encode("党员数据", "UTF-8").replaceAll("\\+", "%20"); |
| | | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); |
| | | FastExcel.write(response.getOutputStream(), PartyMemberExcel.class) |
| | | .sheet("党员数据") |
| | | .doWrite(partyMemberExcels); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void importExcel(SystemUserVo loginUserInfo) { |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 审核 |
| | | * |
| | | * @param dto |
| | | * @param loginUserInfo |
| | | */ |
| | | @Override |
| | | public void audit(PartyMemberDTO dto, SystemUserVo loginUserInfo) { |
| | | PartyMember partyMember = BeanUtil.copyProperties(dto, PartyMember.class); |
| | | partyMember.setUpdateBy(Long.parseLong(loginUserInfo.getId().toString())); |
| | | updateById(partyMember); |
| | | } |
| | | |
| | | /** |
| | | * 根据身份证号获取性别 |
| | | * @param idNumber |
| | | * @return |
| | | */ |
| | | public static Integer getGender(String idNumber) { |
| | | char genderChar = idNumber.charAt(16); |
| | | int genderDigit = Character.getNumericValue(genderChar); |
| | | return (genderDigit % 2 == 0) ? 0 : 1; |
| | | } |
| | | |
| | | } |