diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePageFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePageFormDTO.java new file mode 100644 index 0000000000..3c6c45d445 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePageFormDTO.java @@ -0,0 +1,64 @@ +package com.epmet.dto.form; + + +import lombok.Data; + +import java.io.Serializable; + +/** + * 企事业单位 + */ +@Data +public class EnterprisePageFormDTO implements Serializable { + /** + * 场所区域 + */ + private String gridId; + /** + * 场所类型 + */ + private String placeType; + + /** + * 场所名称 + */ + private String placeOrgName; + + /** + * 规模 + */ + private String scale; + + /** + * 联系电话 + */ + private String mobile; + + /** + * 巡查结果:0:合格 1:不合格 + */ + private String result; + + /** + * 隐患明细 + */ + private String detailed; + + + private Integer pageNo = 1; + private Integer pageSize = 20; + + /** + * 列表查询默认分页 + * 导出不分页 + */ + private Boolean pageFlag; + //tokenDto.customerId + private String customerId; + //tokenDto.userId + private String currentStaffId; + /** + * 当前登录用户的所属组织id + */ + private String staffAgencyId; +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterpriseDetailDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterpriseDetailDTO.java index c248c9ffee..f42ea2303e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterpriseDetailDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterpriseDetailDTO.java @@ -1,15 +1,19 @@ package com.epmet.dto.result; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** * 场所详情 */ @Data public class EnterpriseDetailDTO implements Serializable { + private String enterpriseId; + /** * 网格Id【场所区域】 */ @@ -95,4 +99,9 @@ public class EnterpriseDetailDTO implements Serializable { */ private String latestResult; + /** + * 最新检查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date latestPatrolTime; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java index ed4e93f49a..3cdfb2f243 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java @@ -1,15 +1,30 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.EnterpriseFormDTO; +import com.epmet.dto.form.EnterprisePageFormDTO; import com.epmet.dto.form.EnterprisePatrolFormDTO; import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; +import com.epmet.excel.EnterpriseExportExcelDTO; import com.epmet.service.IcEnterpriseService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -19,8 +34,11 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.io.PrintWriter; import java.net.URLEncoder; +import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @@ -30,6 +48,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-06-17 */ +@Slf4j @RestController @RequestMapping("enterprise") public class IcEnterpriseController { @@ -53,6 +72,67 @@ public class IcEnterpriseController { return new Result().ok(map); } + /** + * 企事业单位列表查询 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("list") + public Result> list(@LoginUser TokenDto tokenDto, @RequestBody EnterprisePageFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setCurrentStaffId(tokenDto.getUserId()); + formDTO.setPageFlag(true); + return new Result>().ok(icEnterpriseService.list(formDTO)); + } + + /** + * 企事业单位列表导出 + * @param tokenDto + * @param formDTO + * @param response + * @return + * @throws IOException + */ + @PostMapping("export") + public void exportEnterprise(@LoginUser TokenDto tokenDto, @RequestBody EnterprisePageFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setCurrentStaffId(tokenDto.getUserId()); + formDTO.setPageFlag(false); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "企事业单位" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), EnterpriseExportExcelDTO.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = icEnterpriseService.list(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), EnterpriseExportExcelDTO.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("企事业单位导出异常export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + + /** * 场所详情 * @@ -65,10 +145,20 @@ public class IcEnterpriseController { return new Result().ok(icEnterpriseService.queryEnterpriseDetail(tokenDto.getCustomerId(), enterpriseId)); } - /** - * 下载社区自组织导入模板 + * 企事业单位-删除场所 * + * @param enterpriseId + * @return + */ + @PostMapping("delete/{enterpriseId}") + public Result delete(@PathVariable("enterpriseId") String enterpriseId) { + icEnterpriseService.delete(enterpriseId); + return new Result(); + } + + /** + * 企事业单位导入模板 * @param response * @throws IOException */ @@ -80,7 +170,7 @@ public class IcEnterpriseController { 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("templates/enterprise_patrol.xlsx"); + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/enterprise_patrol_import_tem.xlsx"); try { ServletOutputStream os = response.getOutputStream(); IOUtils.copy(is, os); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java index 5dd0b2c826..d2d1d19318 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterpriseDao.java @@ -1,8 +1,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.EnterprisePageFormDTO; +import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.entity.IcEnterpriseEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; /** * 企事业单位表 @@ -12,5 +18,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcEnterpriseDao extends BaseDao { - + + int updateLatestPatrol(@Param("enterpriseId") String enterpriseId, + @Param("updatedTime")Date updatedTime, + @Param("result")String result, + @Param("userId")String userId); + + /** + * 企事业单位列表 + * @param formDTO + * @return + */ + List selectList(EnterprisePageFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseEntity.java index 76d6d69a90..d022fabf3d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterpriseEntity.java @@ -5,6 +5,8 @@ import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * 企事业单位表 * @@ -92,4 +94,9 @@ public class IcEnterpriseEntity extends BaseEpmetEntity { * 最新巡查结果【0:合格 1:不合格】 */ private String latestResult; + + /** + * 最新检查时间 + */ + private Date latestPatrolTime; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseExportExcelDTO.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseExportExcelDTO.java new file mode 100644 index 0000000000..213e0c294b --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/EnterpriseExportExcelDTO.java @@ -0,0 +1,94 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * 企事业单位导出excel + */ +@Data +public class EnterpriseExportExcelDTO { + /** + * 场所类型:来源于ic_coverage_category_dict + */ + @ExcelIgnore + private String placeType; + + /** + * 场所类型名称 + */ + @ExcelProperty(value = "场所类型") + @ColumnWidth(25) + private String placeTypeName; + + + /** + * 网格所属的组织Id + */ + @ExcelIgnore + private String agencyId; + + @ExcelProperty(value = "所属组织") + @ColumnWidth(25) + private String agencyName; + + + /** + * 网格Id【场所区域】 + */ + @ExcelIgnore + private String gridId; + + @ExcelProperty(value = "场所区域") + @ColumnWidth(25) + private String gridName; + + /** + * 场所名称 + */ + @ExcelProperty(value = "场所名称") + @ColumnWidth(25) + private String placeOrgName; + + /** + * 场所地址 + */ + @ExcelProperty(value = "场所地址") + @ColumnWidth(30) + private String address; + + /** + * 字典value,场所规模【 + * 0:10人以下 + * 1:10-20人 + * 2:21-40人 + * 3:41-100人 + * 4:100人以上】 + */ + @ExcelIgnore + private String scale; + + /** + * 规模名称 + */ + @ExcelProperty(value = "规模") + @ColumnWidth(15) + private String scaleName; + + + /** + * 场所负责人 + */ + @ExcelProperty(value = "负责人") + @ColumnWidth(20) + private String personInCharge; + + /** + * 负责人电话 + */ + @ExcelProperty(value = "联系电话") + @ColumnWidth(20) + private String mobile; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java index 9cd5260728..168a7002f4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java @@ -3,6 +3,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.form.EnterpriseFormDTO; +import com.epmet.dto.form.EnterprisePageFormDTO; import com.epmet.dto.form.EnterprisePatrolFormDTO; import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; @@ -50,4 +51,17 @@ public interface IcEnterpriseService extends BaseService { */ EnterpriseDetailDTO queryEnterpriseDetail(String customerId, String enterpriseId); + /** + * 企事业单位-删除 + * @param enterpriseId + * @return + */ + void delete(String enterpriseId); + + /** + * 企事业单位列表 + * @param formDTO + * @return + */ + PageData list(EnterprisePageFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java index d47c477c3c..d100120311 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java @@ -3,6 +3,7 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.CommonOperateTypeEnum; import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.enums.DictTypeEnum; @@ -10,6 +11,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; @@ -19,6 +21,7 @@ import com.epmet.dao.IcEnterpriseDao; import com.epmet.dao.IcEnterprisePatrolAttachmentDao; import com.epmet.dao.IcEnterprisePatrolRecordDao; import com.epmet.dto.form.EnterpriseFormDTO; +import com.epmet.dto.form.EnterprisePageFormDTO; import com.epmet.dto.form.EnterprisePatrolFormDTO; import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; @@ -27,6 +30,8 @@ import com.epmet.entity.IcEnterprisePatrolAttachmentEntity; import com.epmet.entity.IcEnterprisePatrolRecordEntity; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.service.IcEnterpriseService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -90,7 +95,9 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl list(EnterprisePageFormDTO formDTO) { + //查询当前登录用的所属组织 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getCurrentStaffId()); + if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询工作人员信息异常", "查询工作人员信息异常"); + } + //本组织及下级 + formDTO.setStaffAgencyId(staffInfo.getAgencyId()); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getPageFlag()); + List list = baseDao.selectList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + if (!org.springframework.util.CollectionUtils.isEmpty(list)) { + //规模名称 + Result> dictMapRes = adminOpenFeignClient.dictMap(DictTypeEnum.SCALE.getCode()); + Map dictMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>(); + for (EnterpriseDetailDTO detailDTO : list) { + GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(detailDTO.getGridId()); + if (null != gridInfoCache) { + detailDTO.setGridName(gridInfoCache.getGridName()); + detailDTO.setAgencyName(gridInfoCache.getAgencyName()); + } + String placeTypeName = coverageCategoryDictDao.selectCategoryName(formDTO.getCustomerId(), CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(), detailDTO.getPlaceType()); + detailDTO.setPlaceTypeName(placeTypeName); + detailDTO.setScaleName(dictMap.containsKey(detailDTO.getScale()) ? dictMap.get(detailDTO.getScale()) : StrConstant.EPMETY_STR); + } + } + return new PageData<>(list, pageInfo.getTotal()); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml index 51c5356717..3079f9fc48 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterpriseDao.xml @@ -27,5 +27,62 @@ + + update ic_enterprise + set LATEST_RESULT = #{result}, + UPDATED_BY = #{userId}, + UPDATED_TIME=NOW(), + LATEST_PATROL_TIME = #{updatedTime} + WHERE ID = #{enterpriseId} + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolAttachmentDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolAttachmentDao.xml index 610b640b33..7fcba55fd7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolAttachmentDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolAttachmentDao.xml @@ -23,13 +23,10 @@ - - update ic_enterprise_patrol_attachment - set del_flag='1', - UPDATED_TIME=now(), - UPDATED_BY={staffId} - where PATROL_ID=#{patrolId} - + + delete from ic_enterprise_patrol_attachment + where PATROL_ID = #{patrolId} +