diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInterviewController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInterviewController.java index 4d2dbd4f4b..bc57810e49 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInterviewController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInterviewController.java @@ -1,8 +1,11 @@ package com.epmet.controller; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -13,19 +16,32 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.EnterpriseInterviewDTO; import com.epmet.dto.KeyEnterpriseDTO; import com.epmet.dto.form.EnterpriseInterviewFormDTO; +import com.epmet.dto.form.KeyEnterpriseFormDTO; +import com.epmet.entity.EnterpriseInterviewEntity; import com.epmet.excel.EnterpriseInterviewExcel; +import com.epmet.excel.EnterpriseInterviewImportExcel; import com.epmet.service.EnterpriseInterviewService; import com.epmet.service.KeyEnterpriseService; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; import java.util.Map; /** - * 日照:企业走访 + * 日照:重点单位走访 * * @author generator generator@elink-cn.com * @since v1.0.0 2023-06-19 @@ -101,4 +117,62 @@ public class EnterpriseInterviewController { } } + @RequestMapping(value = "exportTemplate", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("重点单位走访信息导入模版", "UTF-8") + ".xlsx"); + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/enterpriseInterview_template.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + @PostMapping("import") + public Result importExcel(@RequestParam("file") MultipartFile file) { + if (!file.isEmpty()) { + KeyEnterpriseFormDTO formDto = new KeyEnterpriseFormDTO(); + formDto.setPageSize(10000); + PageData dtoList = keyEnterpriseService.search(formDto); + if (null != dtoList && dtoList.getList().size() > 0) { + try { + ExcelImportResult formDTOList = ExcelPoiUtils.importExcel1(file.getInputStream(), 0, 1, EnterpriseInterviewImportExcel.class); + List entities = new ArrayList<>(); + if (null != formDTOList.getList() && formDTOList.getList().size() > 0) { + formDTOList.getList().stream().forEach(form -> { + dtoList.getList().forEach(dto -> { + if (dto.getUnitName().equals(form.getUnitName())) { + EnterpriseInterviewEntity entity = ConvertUtils.sourceToTarget(form, EnterpriseInterviewEntity.class); + entity.setEnterpriseId(dto.getId()); + try { + entity.setInvTime(new SimpleDateFormat("yyyy-MM-dd").parse(form.getInvTime())); + } catch (ParseException e) { + e.printStackTrace(); + } + entity.setInterviewType(form.getInterviewType().equals("电话走访") ? "0" : "1"); + entities.add(entity); + } + }); + }); + enterpriseInterviewService.saveOrUpdateBatch(entities); + } + } catch (Exception e) { + return new Result().error(8000, e.getMessage()); + } + } else { + return new Result().error(8000, "请先维护企业信息"); + } + + } else { + return new Result().error(8000, "请选择正确的文件!"); + } + return new Result().ok("导入成功!"); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInvestigateController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInvestigateController.java index a0679d4297..69a0d7ab85 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInvestigateController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/EnterpriseInvestigateController.java @@ -1,8 +1,11 @@ package com.epmet.controller; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -13,19 +16,32 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.EnterpriseInvestigateDTO; import com.epmet.dto.KeyEnterpriseDTO; import com.epmet.dto.form.EnterpriseInvestigateFormDTO; +import com.epmet.dto.form.KeyEnterpriseFormDTO; +import com.epmet.entity.EnterpriseInvestigateEntity; import com.epmet.excel.EnterpriseInvestigateExcel; +import com.epmet.excel.EnterpriseInvestigateImportExcel; import com.epmet.service.EnterpriseInvestigateService; import com.epmet.service.KeyEnterpriseService; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; import java.util.Map; /** - * 日照:企业排查管理 + * 日照:重点单位排查 * * @author generator generator@elink-cn.com * @since v1.0.0 2023-06-19 @@ -96,10 +112,67 @@ public class EnterpriseInvestigateController { } } - @PostMapping("search") public Result> search(@RequestBody EnterpriseInvestigateFormDTO formDto) { return new Result().ok(enterpriseInvestigateService.search(formDto)); } + @RequestMapping(value = "exportTemplate", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("重点单位排查信息导入模版", "UTF-8") + ".xlsx"); + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/enterpriseInvestigate_template.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + @PostMapping("import") + public Result importExcel(@RequestParam("file") MultipartFile file) { + if (!file.isEmpty()) { + KeyEnterpriseFormDTO formDto = new KeyEnterpriseFormDTO(); + formDto.setPageSize(10000); + PageData dtoList = keyEnterpriseService.search(formDto); + if (null != dtoList && dtoList.getList().size() > 0) { + try { + ExcelImportResult formDTOList = ExcelPoiUtils.importExcel1(file.getInputStream(), 0, 1, EnterpriseInvestigateImportExcel.class); + List entities = new ArrayList<>(); + if (null != formDTOList.getList() && formDTOList.getList().size() > 0) { + formDTOList.getList().stream().forEach(form -> { + dtoList.getList().forEach(dto -> { + if (dto.getUnitName().equals(form.getUnitName())) { + EnterpriseInvestigateEntity entity = ConvertUtils.sourceToTarget(form, EnterpriseInvestigateEntity.class); + entity.setEnterpriseId(dto.getId()); + try { + entity.setInvTime(new SimpleDateFormat("yyyy-MM-dd").parse(form.getInvTime())); + } catch (ParseException e) { + e.printStackTrace(); + } + entity.setConsequence(form.getConsequence().equals("合格") ? "0" : "1"); + entities.add(entity); + } + }); + }); + enterpriseInvestigateService.saveOrUpdateBatch(entities); + } + } catch (Exception e) { + return new Result().error(8000, e.getMessage()); + } + } else { + return new Result().error(8000, "请先维护企业信息"); + } + + } else { + return new Result().error(8000, "请选择正确的文件!"); + } + return new Result().ok("导入成功!"); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/KeyEnterpriseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/KeyEnterpriseController.java index f8087d7719..c23a5df2b3 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/KeyEnterpriseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/KeyEnterpriseController.java @@ -1,10 +1,12 @@ package com.epmet.controller; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -14,22 +16,32 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.KeyEnterpriseDTO; import com.epmet.dto.form.KeyEnterpriseFormDTO; +import com.epmet.entity.KeyEnterpriseEntity; import com.epmet.excel.KeyEnterpriseExcel; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.service.KeyEnterpriseService; -import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** + * 日照:重点单位管理 + * * @author generator generator@elink-cn.com * @since v1.0.0 2023-06-19 */ @@ -94,10 +106,48 @@ public class KeyEnterpriseController { return new Result(); } - @PostMapping("exportTemplate") - public void exportTemplate(HttpServletResponse response) throws Exception { - TemplateExportParams templatePath = new TemplateExportParams("excel/keyEnterprise_template.xlsx"); - ExcelPoiUtils.exportExcel(templatePath, new HashMap<>(), "重点企业信息录入表", response); + @RequestMapping(value = "exportTemplate", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("重点单位信息导入模版", "UTF-8") + ".xlsx"); + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/keyEnterprise_template.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + @PostMapping("import") + public Result importExcel(@RequestParam("file") MultipartFile file) { + if (!file.isEmpty()) { + Result> dictMapRes = adminOpenFeignClient.dictMap(DictTypeEnum.UNIT_TYPE.getCode()); + Map dictMap = dictMapRes.getData().entrySet().stream() + .collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); + try { + ExcelImportResult formDTOList = ExcelPoiUtils.importExcel1(file.getInputStream(), 0, 1, KeyEnterpriseExcel.class); + List entities = new ArrayList<>(); + if (null != formDTOList.getList() && formDTOList.getList().size() > 0) { + formDTOList.getList().stream().forEach(form -> { + if (null != form.getUnitType()) { + form.setUnitType(dictMap.get(form.getUnitType())); + entities.add(ConvertUtils.sourceToTarget(form, KeyEnterpriseEntity.class)); + } + }); + keyEnterpriseService.saveOrUpdateBatch(entities); + } + } catch (Exception e) { + return new Result().error(8000, e.getMessage()); + } + } else { + return new Result().error(8000, "请选择正确的文件!"); + } + return new Result().ok("导入成功!"); } @RequestMapping(value = "/exportExcel") diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewExcel.java index 8754bf1bab..c81b94ba2b 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewExcel.java @@ -26,7 +26,7 @@ public class EnterpriseInterviewExcel { @Excel(name = "走访人员职务") private String jobType; - @Excel(name = "走访方式 ", replace = {"电话走访_0", "实际走访_1"}) + @Excel(name = "走访方式", replace = {"电话走访_0", "实际走访_1"}) private String interviewType; @Excel(name = "企业问题") diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewImportExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewImportExcel.java new file mode 100644 index 0000000000..2c29924030 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInterviewImportExcel.java @@ -0,0 +1,35 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @author yan Lu + * @description 描述 + * @create 2023/6/26 15:37 + */ +@Data +public class EnterpriseInterviewImportExcel { + + @Excel(name = "企业名称") + private String unitName; + + @Excel(name = "走访时间") + private String invTime; + + @Excel(name = "走访人员(多个以“,”相隔)") + private String staffs; + + @Excel(name = "走访人员职务") + private String jobType; + + @Excel(name = "走访方式") + private String interviewType; + + @Excel(name = "企业问题") + private String problem; + + @Excel(name = "备注") + private String remark; + +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInvestigateImportExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInvestigateImportExcel.java new file mode 100644 index 0000000000..5ded24422d --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseInvestigateImportExcel.java @@ -0,0 +1,31 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +/** + * @author yan Lu + * @description 描述 + * @create 2023/6/26 15:57 + */ +@Data +public class EnterpriseInvestigateImportExcel { + + @Excel(name = "排查企业名称") + private String unitName; + + @Excel(name = "排查主题") + private String title; + + @Excel(name = "排查时间") + private String invTime; + + @Excel(name = "排查人员(多个以“,”相隔)") + private String staffs; + + @Excel(name = "排查结果") + private String consequence; + + @Excel(name = "备注") + private String remark; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/KeyEnterpriseExcel.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/KeyEnterpriseExcel.java index 7d26d9e718..9a2214d439 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/KeyEnterpriseExcel.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/KeyEnterpriseExcel.java @@ -3,10 +3,8 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; -import java.util.Date; - /** - * + * * * @author generator generator@elink-cn.com * @since v1.0.0 2023-06-19 @@ -14,14 +12,12 @@ import java.util.Date; @Data public class KeyEnterpriseExcel { - @Excel(name = "主键ID") - private String id; @Excel(name = "单位名称") private String unitName; @Excel(name = "单位类型") - private Integer unitType; + private String unitType; @Excel(name = "主营业务") private String business; @@ -41,23 +37,4 @@ public class KeyEnterpriseExcel { @Excel(name = "纬度") private String latitude; - @Excel(name = "删除标识:0.未删除 1.已删除") - private Integer delFlag; - - @Excel(name = "乐观锁") - private Integer revision; - - @Excel(name = "创建人") - private String createdBy; - - @Excel(name = "创建时间") - private Date createdTime; - - @Excel(name = "更新人") - private String updatedBy; - - @Excel(name = "更新时间") - private Date updatedTime; - - -} \ No newline at end of file +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInterview_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInterview_template.xlsx new file mode 100644 index 0000000000..4b575eb4b2 Binary files /dev/null and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInterview_template.xlsx differ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInvestigate_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInvestigate_template.xlsx new file mode 100644 index 0000000000..73b5efc878 Binary files /dev/null and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterpriseInvestigate_template.xlsx differ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/keyEnterprise_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/keyEnterprise_template.xlsx new file mode 100644 index 0000000000..f32ec55c7f Binary files /dev/null and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/keyEnterprise_template.xlsx differ