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.targetDuty.excepiton.TargetDutyException; import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDutySummaryExcel; import com.gkhy.safePlatform.targetDuty.repository.TargetDutySummaryRepository; import com.gkhy.safePlatform.targetDuty.entity.TargetDutySummary; import com.gkhy.safePlatform.targetDuty.service.CommonService; import com.gkhy.safePlatform.targetDuty.service.TargetDutySummaryService; import com.gkhy.safePlatform.targetDuty.service.baseService.TargetDutySummaryBaseService; import com.gkhy.safePlatform.targetDuty.utils.DateUtils; import com.gkhy.safePlatform.targetDuty.utils.poihelper.ExcelUtil; 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.TargetDutySummaryQueryCriteria; import com.gkhy.safePlatform.targetDuty.model.dto.resp.TargetDutySummaryDto; import com.gkhy.safePlatform.targetDuty.utils.QueryHelpPlus; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.*; /** * (TargetDutySummary)表服务实现类 * * @author xurui * @since 2022-07-21 15:35:14 */ @Service("targetDutySummaryService") public class TargetDutySummaryServiceImpl implements TargetDutySummaryService { @Autowired private TargetDutySummaryBaseService targetDutySummaryBaseService; @Resource private CommonService commonService; @Autowired public HttpServletResponse response; @Override public ResultVO queryAll(PageQuery pageQuery) { Long pageIndex = pageQuery.getPageIndex(); Long pageSize = pageQuery.getPageSize(); IPage page = new Page<>(pageIndex, pageSize); page = targetDutySummaryBaseService.selectPage(page, QueryHelpPlus.getPredicate(TargetDutySummary.class, pageQuery.getSearchParams())); List respList = BeanCopyUtils.copyBeanList(page.getRecords(), TargetDutySummaryDto.class); // --------------------------- 获取部门信息----------------------- //收集所用到的部门ID Set collectDepIdSet = new HashSet(); respList.forEach(f->{ collectDepIdSet.add(f.getDepartmentId()); }); //获取部门名集合 Map depNameMap = commonService.getDepName(collectDepIdSet); respList.forEach(f->{ f.setDepartmentName(depNameMap.get(f.getDepartmentId())); }); return new SearchResultVO<>( true, pageIndex, pageSize,page.getPages(), page.getTotal(), respList, ResultCodes.OK ); } @Override public List queryAll(TargetDutySummaryQueryCriteria criteria) { return targetDutySummaryBaseService.queryAll( criteria); } @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->{ TargetDutySummary info = new TargetDutySummary(); info.setDelFlag(1); info.setId(f); delList.add(info); }); targetDutySummaryBaseService.updateBatchById(delList); } @Override public void exportData(TargetDutySummaryQueryCriteria queryCriteria) throws IOException { Map map = new LinkedHashMap<>(); map.put("1","责任部门"); map.put("2","安全目标指标"); map.put("3","考核指标"); map.put("4","1月"); map.put("5","2月"); map.put("6","3月"); map.put("7","4月"); map.put("8","5月"); map.put("9","6月"); map.put("10","7月"); map.put("11","8月"); map.put("12","9月"); map.put("13","10月"); map.put("14","11月"); map.put("15","12月"); map.put("16","考核结果"); 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), TargetDutySummaryExcel.class); ExcelUtil.exportExcel(map,respList , response.getOutputStream(),DateUtils.PATTERN_STANDARD); response.getOutputStream().close(); } }