| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.dao.ChkSafeSpvsEnforceLawStatDao;
- import cn.com.goldenwater.dcproj.model.ChkSafeSpvsEnforceLawStat;
- import cn.com.goldenwater.dcproj.param.ChkSafeSpvsEnforceLawStatParam;
- import cn.com.goldenwater.dcproj.service.ChkSafeSpvsEnforceLawStatService;
- import cn.com.goldenwater.id.util.UuidUtil;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.ss.usermodel.WorkbookFactory;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.servlet.http.HttpServletResponse;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * 成都市水务安全生产'护安'监管执法专项行动统计汇总Service业务层处理
- *
- * @author ruoyi
- * @date 2023-02-22
- */
- @Service
- @Transactional
- public class ChkSafeSpvsEnforceLawStatServiceImpl extends AbstractCrudService<ChkSafeSpvsEnforceLawStat, ChkSafeSpvsEnforceLawStatParam> implements ChkSafeSpvsEnforceLawStatService
- {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private ChkSafeSpvsEnforceLawStatDao chkSafeSpvsEnforceLawStatDao;
- @Value("${export.templatePath}")
- private String templatePath;
- /**
- * 导出模板名称
- * 监管执法专项行动 统计汇总表
- */
- private String templateName = "chkSafeSpvsEnforceLawStatExport.xls";
- public ChkSafeSpvsEnforceLawStatServiceImpl(ChkSafeSpvsEnforceLawStatDao chkSafeSpvsEnforceLawStatDao) {
- super(chkSafeSpvsEnforceLawStatDao);
- this.chkSafeSpvsEnforceLawStatDao = chkSafeSpvsEnforceLawStatDao;
- }
- /**
- * 增加成都市水务安全生产'护安'监管执法专项行动统计汇总
- *
- * @return 成都市水务安全生产'护安'监管执法专项行动统计汇总
- */
- @Override
- public int insert(ChkSafeSpvsEnforceLawStat chkSafeSpvsEnforceLawStat) {
- logger.debug("ChkSafeSpvsEnforceLawStat 新增");
- String uuid = UuidUtil.uuid(); // 生成uuid
- chkSafeSpvsEnforceLawStat.setId(uuid);
- chkSafeSpvsEnforceLawStat.setIntm(new Date());
- chkSafeSpvsEnforceLawStat.setUptm(chkSafeSpvsEnforceLawStat.getIntm());
- chkSafeSpvsEnforceLawStat.setDataStat("0");
- //填报状态 1新增 2上报
- chkSafeSpvsEnforceLawStat.setFillRepoStat("1");
- chkSafeSpvsEnforceLawStat.setChkSubmitDttm(chkSafeSpvsEnforceLawStat.getIntm());
- return this.chkSafeSpvsEnforceLawStatDao.insert(chkSafeSpvsEnforceLawStat);
- }
- /**
- * 批量添加
- * @param chkSafeSpvsEnforceLawStatList
- * @return
- */
- @Override
- public int insertBatchFile(List<ChkSafeSpvsEnforceLawStat> chkSafeSpvsEnforceLawStatList){
- return this.chkSafeSpvsEnforceLawStatDao.insertBatchFile(chkSafeSpvsEnforceLawStatList);
- }
- /**
- * 更新 成都市水务安全生产'护安'监管执法专项行动统计汇总
- * 主键更新
- * @param chkSafeSpvsEnforceLawStat 成都市水务安全生产'护安'监管执法专项行动统计汇总
- * @return 成都市水务安全生产'护安'监管执法专项行动统计汇总
- */
- @Override
- public int update(ChkSafeSpvsEnforceLawStat chkSafeSpvsEnforceLawStat) {
- logger.debug("ChkSafeSpvsEnforceLawStat 更新");
- chkSafeSpvsEnforceLawStat.setUptm(new Date());
- return this.chkSafeSpvsEnforceLawStatDao.update(chkSafeSpvsEnforceLawStat);
- }
- /**
- * 主键删除 成都市水务安全生产'护安'监管执法专项行动统计汇总
- *
- * @param id 成都市水务安全生产'护安'监管执法专项行动统计汇总主键
- * @return 成都市水务安全生产'护安'监管执法专项行动统计汇总
- */
- @Override
- public int delete(String id) {
- logger.debug("ChkSafeSpvsEnforceLawStat 删除");
- return this.chkSafeSpvsEnforceLawStatDao.delete(id);
- }
- /**
- * 导出 成都市水务安全生产'护安'监管执法专项行动统计汇总
- *
- * @param chkSafeSpvsEnforceLawStatParam 筛选查询参数
- * @param response
- */
- @Override
- public void export(ChkSafeSpvsEnforceLawStatParam chkSafeSpvsEnforceLawStatParam, HttpServletResponse response) {
- logger.debug("ChkSafeSpvsEnforceLawStat 导出");
- List<ChkSafeSpvsEnforceLawStat> subTypeList = this.chkSafeSpvsEnforceLawStatDao.querySubTypeTotal(chkSafeSpvsEnforceLawStatParam);
- List<ChkSafeSpvsEnforceLawStat> projTypeList = this.chkSafeSpvsEnforceLawStatDao.queryProjTypeTotal(chkSafeSpvsEnforceLawStatParam);
- List<ChkSafeSpvsEnforceLawStat> resultList = new ArrayList<>();
- if(null != subTypeList ){
- resultList.addAll(subTypeList);
- }
- if(null !=projTypeList){
- resultList.addAll(projTypeList);
- }
- String fileName = templatePath + File.separator + templateName ;
- File file = new File(fileName);
- if(file.exists()){
- // 模板存在
- try {
- FileInputStream inputStream = new FileInputStream(file);
- Workbook workbook = WorkbookFactory.create(inputStream);
- exportFile(workbook, resultList, chkSafeSpvsEnforceLawStatParam);
- writeToResponse(response, workbook, "成都市水务安全生产监管执法专项行动统计汇总表.xls");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }else {
- logger.error("导出模板不存在");
- }
- }
- /**
- * 把数据写入excel
- * @param xssfWorkbook
- * @param resultList
- */
- private void exportFile(Workbook xssfWorkbook, List<ChkSafeSpvsEnforceLawStat> resultList , ChkSafeSpvsEnforceLawStatParam chkSafeSpvsEnforceLawStatParam){
- Sheet sheet = xssfWorkbook.getSheetAt(0);
- Date chkSubmitDttm = chkSafeSpvsEnforceLawStatParam.getChkSubmitDttm();
- if(null == chkSubmitDttm) {
- chkSubmitDttm = new Date();
- }
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月d日");
- String chkSubmitDttmStr = sdf.format(chkSubmitDttm);
- String title = String.format("成都市水务安全生产“护安%s”监管执法专项行动统计汇总表", chkSubmitDttmStr.substring(0,4));
- setCellValue(sheet,0,0,title);
- String titleSub = chkSubmitDttmStr ;
- setCellValue(sheet,1,0,titleSub);
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.M.d");
- String chkSubmitDttmStr2 = sdf2.format(chkSubmitDttm);
- setCellValue(sheet,2,18,chkSubmitDttmStr2);
- if(resultList.size()>0){
- if(!"2".equals(chkSafeSpvsEnforceLawStatParam.getFillRepoStat())){
- String submitDept = resultList.get(0).getChkSubmitDept();
- setCellValue(sheet,2,3,submitDept);
- }
- // 求合计
- ChkSafeSpvsEnforceLawStat total = countTotal(resultList);
- resultList.add(total);
- for(int i=0;i<resultList.size();i++){
- setAllCell(sheet,i,resultList.get(i));
- }
- }
- }
- private ChkSafeSpvsEnforceLawStat countTotal(List<ChkSafeSpvsEnforceLawStat> resultList){
- ChkSafeSpvsEnforceLawStat total = new ChkSafeSpvsEnforceLawStat();
- total.setChkGroupNum(resultList.stream().mapToLong(m->m.getChkGroupNum()).sum());
- total.setChkPersTime(resultList.stream().mapToLong(m->m.getChkPersTime()).sum());
- total.setChkSafeExpertTime(resultList.stream().mapToLong(m->m.getChkSafeExpertTime()).sum());
- total.setChkUnitNum(resultList.stream().mapToLong(m->m.getChkUnitNum()).sum());
- total.setChkFindDangerTotalNum(resultList.stream().mapToLong(m->m.getChkFindDangerTotalNum()).sum());
- total.setChkFindDangerGeneralNum(resultList.stream().mapToLong(m->m.getChkFindDangerGeneralNum()).sum());
- total.setChkFindDangerMajorNum(resultList.stream().mapToLong(m->m.getChkFindDangerMajorNum()).sum());
- total.setChkRectDangerTotalNum(resultList.stream().mapToLong(m->m.getChkRectDangerTotalNum()).sum());
- total.setChkRectDangerGeneralNum(resultList.stream().mapToLong(m->m.getChkRectDangerGeneralNum()).sum());
- total.setChkRectDangerMajorNum(resultList.stream().mapToLong(m->m.getChkRectDangerMajorNum()).sum());
- total.setSceneEmergencyDisposal(resultList.stream().mapToLong(m->m.getSceneEmergencyDisposal()).sum());
- total.setPenaltyRecord(resultList.stream().mapToLong(m->m.getPenaltyRecord()).sum());
- total.setPenaltyImposeFine(String.valueOf(resultList.stream().mapToDouble(m->Double.parseDouble(m.getPenaltyImposeFine())).sum()));
- total.setPenaltyShutProd(resultList.stream().mapToLong(m->m.getPenaltyShutProd()).sum());
- total.setPenaltySuspendLicense(resultList.stream().mapToLong(m->m.getPenaltySuspendLicense()).sum());
- total.setIssueEnforceLawWrit(resultList.stream().mapToLong(m->m.getIssueEnforceLawWrit()).sum());
- total.setInformExposeFreq(resultList.stream().mapToLong(m->m.getInformExposeFreq()).sum());
- total.setHandOverCaseGeneral(resultList.stream().mapToLong(m->m.getHandOverCaseGeneral()).sum());
- total.setHandOverCaseMajor(resultList.stream().mapToLong(m->m.getHandOverCaseMajor()).sum());
- return total;
- }
- private void setAllCell(Sheet sheet, int i,ChkSafeSpvsEnforceLawStat lawStat){
- setCellValue(sheet, 6+i, 2,String.valueOf(lawStat.getChkGroupNum()));
- setCellValue(sheet, 6+i, 3,String.valueOf(lawStat.getChkPersTime()));
- setCellValue(sheet, 6+i, 4,String.valueOf(lawStat.getChkSafeExpertTime()));
- setCellValue(sheet, 6+i, 5,String.valueOf(lawStat.getChkUnitNum()));
- setCellValue(sheet, 6+i, 6,String.valueOf(lawStat.getChkFindDangerTotalNum()));
- setCellValue(sheet, 6+i, 7,String.valueOf(lawStat.getChkFindDangerGeneralNum()));
- setCellValue(sheet, 6+i, 8,String.valueOf(lawStat.getChkFindDangerMajorNum()));
- setCellValue(sheet, 6+i, 9,String.valueOf(lawStat.getChkRectDangerTotalNum()));
- setCellValue(sheet, 6+i, 10,String.valueOf(lawStat.getChkRectDangerGeneralNum()));
- setCellValue(sheet, 6+i, 11,String.valueOf(lawStat.getChkRectDangerMajorNum()));
- setCellValue(sheet, 6+i, 12,String.valueOf(lawStat.getSceneEmergencyDisposal()));
- setCellValue(sheet, 6+i, 13,String.valueOf(lawStat.getPenaltyRecord()));
- setCellValue(sheet, 6+i, 14,String.valueOf(lawStat.getPenaltyImposeFine()));
- setCellValue(sheet, 6+i, 15,String.valueOf(lawStat.getPenaltyShutProd()));
- setCellValue(sheet, 6+i, 16,String.valueOf(lawStat.getPenaltySuspendLicense()));
- setCellValue(sheet, 6+i, 17,String.valueOf(lawStat.getIssueEnforceLawWrit()));
- setCellValue(sheet, 6+i, 18,String.valueOf(lawStat.getInformExposeFreq()));
- setCellValue(sheet, 6+i, 19,String.valueOf(lawStat.getHandOverCaseGeneral()));
- setCellValue(sheet, 6+i, 20,String.valueOf(lawStat.getHandOverCaseMajor()));
- }
- private void setCellValue(Sheet sheet, int rownum, int cellnum, String value) {
- Cell cell = sheet.getRow(rownum).getCell(cellnum);
- cell.setCellValue(value);
- }
- private void writeToResponse(HttpServletResponse response, Workbook workbook, String name) throws IOException {
- // 修改模板内容导出新模板
- response.setContentType("application/x-msdownload");
- String fileNameURL = URLEncoder.encode(name, "UTF-8");
- response.setHeader("Content-disposition", "attachment;filename=" + fileNameURL + ";filename*=utf-8''" + fileNameURL);
- OutputStream out = response.getOutputStream();
- workbook.write(out);
- out.flush();
- out.close();
- }
- /**
- * 批量上报
- * @param ids
- * @return
- */
- @Override
- public int batchReportByIds(String[] ids ){
- return this.chkSafeSpvsEnforceLawStatDao.batchReportByIds(ids,new Date());
- }
- }
|