songhuangfeng123
2022-07-28 e2380fc99bb36cadfa8e2b5c22fcf17310a8dbfd
equipment/equipment-service/src/main/java/com/gkhy/safePlatform/equipment/controller/KeypointEquipmentInfoController.java
@@ -2,24 +2,35 @@
import com.alibaba.fastjson.JSONObject;
import com.gkhy.safePlatform.equipment.entity.*;
import com.gkhy.safePlatform.equipment.model.dto.resp.KeypointEquipmentInfoDto;
import com.gkhy.safePlatform.equipment.service.KeypointEquipmentInfoService;
import com.google.common.collect.Lists;
import org.springframework.web.bind.annotation.*;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.commons.query.PageQuery;
import com.gkhy.safePlatform.commons.utils.BeanCopyUtils;
import com.gkhy.safePlatform.commons.utils.PageUtils;
import com.gkhy.safePlatform.commons.vo.ResultVO;
import com.gkhy.safePlatform.commons.enums.ResultCodes;
import com.gkhy.safePlatform.equipment.entity.*;
import com.gkhy.safePlatform.equipment.model.dto.req.KeypointEquipmentInfoImportExcel;
import com.gkhy.safePlatform.equipment.model.dto.req.KeypointEquipmentInfoQueryCriteria;
import com.gkhy.safePlatform.equipment.model.dto.resp.KeypointEquipmentInfoDto;
import com.gkhy.safePlatform.equipment.model.dto.resp.KeypointEquipmentInfoExcel;
import com.gkhy.safePlatform.equipment.service.KeypointEquipmentInfoService;
import com.gkhy.safePlatform.equipment.utils.DateUtils;
import com.gkhy.safePlatform.equipment.utils.poihelper.ExcelLogs;
import com.gkhy.safePlatform.equipment.utils.poihelper.ExcelUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 重点监管装置/设备 详细信息(KeypointEquipmentInfo)表控制层
@@ -35,6 +46,13 @@
     */
    @Resource
    private KeypointEquipmentInfoService keypointEquipmentInfoService;
    @Autowired
    public HttpServletRequest request;
    @Autowired
    public HttpServletResponse response;
    /**
     * 分页查询所有数据
@@ -91,6 +109,105 @@
    }
    /**
     * 下载模板
     *
     */
    @GetMapping(value = "/exportTemplate")
    public void exportTemplate() throws IOException {
        Map<String,String> map = new LinkedHashMap<>();
        map.put("1","类型/类别外键 ");
        map.put("2","装置/部位名称");
        map.put("3","所属单位部门/外键");
        map.put("4","具体位置");
        map.put("5","负责人姓名");
        map.put("6","联系人/外键");
        map.put("7","录入人/外键");
        map.put("8","责任人/外键");
        map.put("9","装置部位分类 1:关键装置 2:重点部位");
        map.put("10","检查周期");
        map.put("11","应急预案/外键");
        map.put("12","主要危险有害因素");
        map.put("13","易导致风险");
        map.put("14","应急处置措施");
        map.put("15","现场图片地址路径");
        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();
    }
    /**
     * 导入数据
     *
     */
    @RequestMapping(value = "/importData")
    public ResultVO importData(MultipartFile file) throws IOException {
        String contentType = file.getContentType();
        if(!"application/vnd.ms-excel".equals(contentType)
                && !"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(contentType)) {
            return new ResultVO<>(ResultCodes.CLIENT_PARAM_ILLEGAL, "上传的excel格式错误");
        }
        Collection<KeypointEquipmentInfoImportExcel> importExcel = ExcelUtil.importExcel(KeypointEquipmentInfoImportExcel.class, file.getInputStream(), "yyyy-MM-dd HH:mm:ss", new ExcelLogs() , 0);
        if (CollectionUtils.isEmpty(importExcel)) {
            return new ResultVO<>(ResultCodes.OK);
        }
        List<KeypointEquipmentInfo> respList = BeanCopyUtils.copyBeanList((List<KeypointEquipmentInfoImportExcel>)importExcel, KeypointEquipmentInfo.class);
        keypointEquipmentInfoService.saveBatch(respList);
        return new ResultVO<>(ResultCodes.OK);
    }
    /**
     * 导出一览数据
     *
     */
    @GetMapping(value = "/exportData")
    public void exportData(KeypointEquipmentInfoQueryCriteria queryCriteria) throws IOException {
        Map<String,String> map = new LinkedHashMap<>();
        map.put("0","ID");
        map.put("1","类型/类别外键");
        map.put("2","装置/部位名称");
        map.put("3","所属单位部门/外键");
        map.put("4","具体位置");
        map.put("5","负责人姓名");
        map.put("6","联系人/外键");
        map.put("7","录入人/外键");
        map.put("8","责任人/外键");
        map.put("9","装置部位分类 1:关键装置 2:重点部位");
        map.put("10","检查周期");
        map.put("11","应急预案/外键");
        map.put("12","主要危险有害因素");
        map.put("13","易导致风险");
        map.put("14","应急处置措施");
        map.put("15","现场图片地址路径");
        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<KeypointEquipmentInfoExcel> respList = BeanCopyUtils.copyBeanList(keypointEquipmentInfoService.queryAll(queryCriteria), KeypointEquipmentInfoExcel.class);
        ExcelUtil.exportExcel(map,respList , response.getOutputStream(),DateUtils.PATTERN_STANDARD);
        response.getOutputStream().close();
    }
    public static void main(String[] args) {
        KeypointEquipmentInfoDto infoDto = new KeypointEquipmentInfoDto();