package com.gkhy.safePlatform.targetDuty.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.commons.utils.PageUtils; import com.gkhy.safePlatform.targetDuty.excepiton.TargetDutyException; import com.gkhy.safePlatform.targetDuty.model.dto.req.RewardPunishmentStandardImportExcel; import com.gkhy.safePlatform.targetDuty.model.dto.resp.RewardPunishmentStandardExcel; import com.gkhy.safePlatform.targetDuty.repository.RewardPunishmentStandardRepository; import com.gkhy.safePlatform.targetDuty.entity.RewardPunishmentStandard; import com.gkhy.safePlatform.targetDuty.service.RewardPunishmentStandardService; import com.gkhy.safePlatform.targetDuty.service.baseService.RewardPunishmentStandardBaseService; import com.gkhy.safePlatform.targetDuty.utils.DateUtils; import com.gkhy.safePlatform.targetDuty.utils.poihelper.ExcelLogs; import com.gkhy.safePlatform.targetDuty.utils.poihelper.ExcelUtil; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.targetDuty.model.dto.req.RewardPunishmentStandardQueryCriteria; import com.gkhy.safePlatform.targetDuty.model.dto.resp.RewardPunishmentStandardDto; import com.gkhy.safePlatform.targetDuty.utils.QueryHelpPlus; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.*; /** * (RewardPunishmentStandard)表服务实现类 * * @author xurui * @since 2022-07-21 10:20:10 */ @Service("rewardPunishmentStandardService") public class RewardPunishmentStandardServiceImpl implements RewardPunishmentStandardService { @Autowired private RewardPunishmentStandardBaseService rewardPunishmentStandardBaseService; @Autowired public HttpServletResponse response; @Override public ResultVO queryAll(PageQuery pageQuery) { PageUtils.checkCheck(pageQuery); Long pageIndex = pageQuery.getPageIndex(); Long pageSize = pageQuery.getPageSize(); IPage page = new Page<>(pageIndex, pageSize); page = rewardPunishmentStandardBaseService.selectPage(page, QueryHelpPlus.getPredicate(RewardPunishmentStandard.class, pageQuery.getSearchParams())); List respList = BeanCopyUtils.copyBeanList(page.getRecords(), RewardPunishmentStandardDto.class); return new SearchResultVO<>( true, pageIndex, pageSize,page.getPages(), page.getTotal(), respList, ResultCodes.OK ); } @Override public List queryAll(RewardPunishmentStandardQueryCriteria criteria) { return rewardPunishmentStandardBaseService.queryAll(criteria); } @Override public void importData(MultipartFile file) throws IOException { String contentType = file.getContentType(); if(!"application/vnd.ms-excel".equals(contentType) && !"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(contentType)) { throw new TargetDutyException("上传的excel格式错误"); } Collection importExcel = ExcelUtil.importExcel(RewardPunishmentStandardImportExcel.class, file.getInputStream(), "yyyy-MM-dd HH:mm:ss", new ExcelLogs() , 0); if (CollectionUtils.isEmpty(importExcel)) { return ; } List respList = BeanCopyUtils.copyBeanList((List)importExcel, RewardPunishmentStandard.class); rewardPunishmentStandardBaseService.saveBatch(respList); } @Override public void delete(Long[] ids) { if(ids == null){ throw new TargetDutyException(ResultCodes.CLIENT_PARAM_ILLEGAL); } List idList = Arrays.asList(ids); List delList = new ArrayList<>(); idList.forEach(f->{ RewardPunishmentStandard info = new RewardPunishmentStandard(); info.setDelFlag(1); info.setId(f); delList.add(info); }); rewardPunishmentStandardBaseService.updateBatchById(delList); } @Override public void exportTemplate() throws IOException { Map map = new LinkedHashMap<>(); map.put("1","奖惩名称"); map.put("2","奖惩类型 1:奖励 2:惩罚"); map.put("3","奖惩内容"); map.put("4","依据"); map.put("5","备注"); String fileName = URLEncoder.encode("奖惩标准设定数据导入模板.xls", "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); ExcelUtil.exportExcel(map,new ArrayList<>() , response.getOutputStream()); response.getOutputStream().close(); } @Override public void exportData(RewardPunishmentStandardQueryCriteria queryCriteria) throws IOException { Map map = new LinkedHashMap<>(); map.put("1","奖惩名称"); map.put("2","奖惩类型"); map.put("3","奖惩内容"); map.put("4","依据"); map.put("5","备注"); String key = DateUtils.date2String(new Date(), DateUtils.PATTERN_ALLTIME_NOSIGN) ; String fileName = URLEncoder.encode("奖惩标准设定"+key+".xls", "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); List respList = BeanCopyUtils.copyBeanList(this.queryAll(queryCriteria), RewardPunishmentStandardExcel.class); ExcelUtil.exportExcel(map,respList , response.getOutputStream(),DateUtils.PATTERN_STANDARD); response.getOutputStream().close(); } }