diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java new file mode 100644 index 0000000000..eb8d25e80f --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CoveragePlaceTypeEnum.java @@ -0,0 +1,48 @@ +package com.epmet.commons.tools.enums; + +/** + * 五大图层字典表,placeType枚举 + */ +public enum CoveragePlaceTypeEnum { + + SUPERIOR_RESOURCE("superior_resource", "优势资源"), + DANGEROUS_CHEMICALS("dangerous_chemicals", "重点危化企业"), + ENTERPRISE_PATROL("enterprise_patrol", "企事业单位巡查"), + SPECIAL_RESI("special_resi", "特殊人群"), + CITY_MANAGEMENT("city_management", "城市管理"), + COMMUNITY_ORG("community_org", "社区自组织"), + PUBLIC_SERVICE("public_service", "公共服务"), + RESI("resi", "居民"), + PARTY_UNIT("party_unit", "联建单位"), + GROUP_RENT("group_rent", "群租房"), + EVENT("event", "事件(包括难点堵点)"); + + private final String code; + private final String name; + + + CoveragePlaceTypeEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static CoveragePlaceTypeEnum getEnum(String code) { + CoveragePlaceTypeEnum[] values = CoveragePlaceTypeEnum.values(); + for (CoveragePlaceTypeEnum value : values) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterpriseFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterpriseFormDTO.java new file mode 100644 index 0000000000..5139e442b0 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterpriseFormDTO.java @@ -0,0 +1,111 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class EnterpriseFormDTO implements Serializable { + public interface AddShow extends CustomerClientShowGroup {} + // public interface UpdateShow extends CustomerClientShowGroup {} + /** + * 客户Id + * token赋值 + */ + private String customerId; + + /** + * 网格Id【场所区域】 + */ + @NotBlank(message = "场所区域不能为空", groups = {AddShow.class}) + private String gridId; + + /** + * 网格所属的组织Id + */ + @NotBlank(message = "所属组织不能为空", groups = {AddShow.class}) + private String agencyId; + + /** + * agency_id的所有上级 + * 接口内查询 + */ + private String agencyPids; + + /** + * 场所类型:来源于ic_coverage_category_dict + */ + @NotBlank(message = "场所类型不能为空", groups = {AddShow.class}) + private String placeType; + + /** + * 场所名称 + */ + @NotBlank(message = "场所名称不能为空", groups = {AddShow.class}) + @Length(max = 50, message = "场所名称最多输入50字", groups = {AddShow.class}) + private String placeOrgName; + + /** + * 场所地址 + */ + @NotBlank(message = "场所地址不能为空", groups = {AddShow.class}) + private String address; + + /** + * 经度 + */ + @NotBlank(message = "位置坐标不能为空", groups = {AddShow.class}) + private String longitude; + + /** + * 纬度 + */ + @NotBlank(message = "位置坐标不能为空", groups = {AddShow.class}) + private String latitude; + + /** + * 字典value,场所规模【 + 0:10人以下 + 1:10-20人 + 2:21-40人 + 3:41-100人 + 4:100人以上】 + */ + @NotBlank(message = "规模不能为空", groups = {AddShow.class}) + private String scale; + + /** + * 场所负责人 + */ + @NotBlank(message = "负责人不能为空", groups = {AddShow.class}) + private String personInCharge; + + /** + * 负责人电话 + */ + @NotBlank(message = "联系电话不能为空", groups = {AddShow.class}) + @Length(max = 50, message = "联系电话最多输入50位", groups = {AddShow.class}) + private String mobile; + + /** + * 企事业单位id + */ + private String enterpriseId; + + /** + * 来源【新增:add 导入:import 】 + * 接口内复制 + */ + private String sourceType; + + /** + * 最新巡查结果【0:合格 1:不合格】 + * 默认为空 + */ + private String latestResult; + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePatrolFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePatrolFormDTO.java new file mode 100644 index 0000000000..564653e88a --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EnterprisePatrolFormDTO.java @@ -0,0 +1,83 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +public class EnterprisePatrolFormDTO implements Serializable { + public interface AddShow extends CustomerClientShowGroup {} + // public interface UpdateShow extends CustomerClientShowGroup {} + /** + * 客户Id + */ + private String customerId; + + //修改时必填 + private String patrolId; + + /** + * 企事业单位id + */ + @NotBlank(message = "企事业单位id不能为空", groups = {AddShow.class}) + private String enterpriseId; + + /** + * 巡查时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date patrolTime; + + /** + * 工作人员id + */ + @NotBlank(message = "巡查人员id不能为空", groups = {AddShow.class}) + private String staffId; + + /** + * 工作人员姓名 + */ + @NotBlank(message = "巡查人员姓名不能为空", groups = {AddShow.class}) + private String staffName; + + /** + * 工作人员手机号 + */ + @NotBlank(message = "联系电话不能为空", groups = {AddShow.class}) + private String mobile; + + /** + * 检查结果【0:合格 1:不合格】 + */ + @NotBlank(message = "检查结果不能为空", groups = {AddShow.class}) + private String result; + + /** + * 隐患明细 + */ + @Length(max = 50, message = "隐患明细500字以内", groups = {AddShow.class}) + private String detailed; + + /** + * 拟复查时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date reviewTime; + + /** + * 图片列表 + */ + private List imgList; + + //tokenDto.getUserId + private String userId; +} 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 new file mode 100644 index 0000000000..c248c9ffee --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterpriseDetailDTO.java @@ -0,0 +1,98 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 场所详情 + */ +@Data +public class EnterpriseDetailDTO implements Serializable { + private String enterpriseId; + /** + * 网格Id【场所区域】 + */ + private String gridId; + + private String gridName; + + /** + * 网格所属的组织Id + */ + private String agencyId; + + private String agencyName; + + /** + * agency_id的所有上级 + */ + private String agencyPids; + + /** + * 场所类型:来源于ic_coverage_category_dict + */ + private String placeType; + + /** + * 场所类型名称 + */ + private String placeTypeName; + + /** + * 场所名称 + */ + private String placeOrgName; + + /** + * 场所地址 + */ + private String address; + + /** + * 经度 + */ + private String longitude; + + /** + * 纬度 + */ + private String latitude; + + /** + * 字典value,场所规模【 + 0:10人以下 + 1:10-20人 + 2:21-40人 + 3:41-100人 + 4:100人以上】 + */ + private String scale; + + /** + * 规模名称 + */ + private String scaleName; + + + /** + * 场所负责人 + */ + private String personInCharge; + + /** + * 负责人电话 + */ + private String mobile; + + /** + * 来源【新增:add 导入:import 】 + */ + private String sourceType; + + /** + * 最新巡查结果【0:合格 1:不合格】 + */ + private String latestResult; + +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterprisePatrolResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterprisePatrolResultDTO.java new file mode 100644 index 0000000000..a81ae678d0 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/EnterprisePatrolResultDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dto.result; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +public class EnterprisePatrolResultDTO implements Serializable { + + //修改时必填 + private String patrolId; + + /** + * 企事业单位id + */ + private String enterpriseId; + + /** + * 巡查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date patrolTime; + + /** + * 工作人员id + */ + private String staffId; + + /** + * 工作人员姓名 + */ + private String staffName; + + /** + * 工作人员手机号 + */ + private String mobile; + + /** + * 检查结果【0:合格 1:不合格】 + */ + private String result; + + /** + * 隐患明细 + */ + private String detailed; + + /** + * 拟复查时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date reviewTime; + + /** + * 图片列表 + */ + private List imgList; +} 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 3e64f3bd81..ed4e93f49a 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,9 +1,27 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.EnterpriseFormDTO; +import com.epmet.dto.form.EnterprisePatrolFormDTO; +import com.epmet.dto.result.EnterpriseDetailDTO; +import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.service.IcEnterpriseService; +import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Map; /** @@ -19,50 +37,97 @@ public class IcEnterpriseController { @Autowired private IcEnterpriseService icEnterpriseService; - // @RequestMapping("page") - // public Result> page(@RequestParam Map params){ - // PageData page = icEnterpriseService.page(params); - // return new Result>().ok(page); - // } - // - // @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) - // public Result get(@PathVariable("id") String id){ - // IcEnterpriseDTO data = icEnterpriseService.get(id); - // return new Result().ok(data); - // } - // - // @NoRepeatSubmit - // @PostMapping("save") - // public Result save(@RequestBody IcEnterpriseDTO dto){ - // //效验数据 - // ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - // icEnterpriseService.save(dto); - // return new Result(); - // } - // - // @NoRepeatSubmit - // @PostMapping("update") - // public Result update(@RequestBody IcEnterpriseDTO dto){ - // //效验数据 - // ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - // icEnterpriseService.update(dto); - // return new Result(); - // } - // - // @PostMapping("delete") - // public Result delete(@RequestBody String[] ids){ - // //效验数据 - // AssertUtils.isArrayEmpty(ids, "id"); - // icEnterpriseService.delete(ids); - // return new Result(); - // } - // - // @GetMapping("export") - // public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { - // List list = icEnterpriseService.list(params); - // ExcelUtils.exportExcelToTarget(response, null, list, IcEnterpriseExcel.class); - // } + /** + * 企事业单位巡查】新增/编辑 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("addOrUpdate") + public Result addOrUpdate(@LoginUser TokenDto tokenDto, @RequestBody EnterpriseFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(EnterpriseFormDTO.AddShow.class); + Map map = new HashMap<>(); + map.put("enterpriseId", icEnterpriseService.addOrUpdate(formDTO)); + return new Result().ok(map); + } + + /** + * 场所详情 + * + * @param tokenDto + * @param enterpriseId + * @return + */ + @PostMapping("detail/{enterpriseId}") + public Result detail(@LoginUser TokenDto tokenDto, @PathVariable("enterpriseId") String enterpriseId) { + return new Result().ok(icEnterpriseService.queryEnterpriseDetail(tokenDto.getCustomerId(), enterpriseId)); + } + + + /** + * 下载社区自组织导入模板 + * + * @param response + * @throws IOException + */ + @RequestMapping(value = "download-tem", 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.ms-excel"); + 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"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + /** + * 【企事业单位巡查】新增/修改巡查记录 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("addorupdate-patrol") + public Result addOrUpdatePatrol(@LoginUser TokenDto tokenDto, @RequestBody EnterprisePatrolFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, EnterprisePatrolFormDTO.AddShow.class); + Map map = new HashMap<>(); + map.put("patrolId", icEnterpriseService.addOrUpdatePatrol(formDTO)); + return new Result().ok(map); + } + /** + * 删除巡查记录 + * + * @param patrolId + * @return + */ + @PostMapping("del-patrol/{patrolId}") + public Result delPatrol(@LoginUser TokenDto tokenDto, @PathVariable("patrolId") String patrolId) { + icEnterpriseService.delPatrol(patrolId, tokenDto.getUserId()); + return new Result(); + } + /** + * 巡查记录列表 + * + * @param enterpriseId + * @return + */ + @PostMapping("patrollist/{enterpriseId}") + public Result> patrolList(@PathVariable("enterpriseId") String enterpriseId) { + return new Result>().ok(icEnterpriseService.patrolList(enterpriseId)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcCoverageCategoryDictDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcCoverageCategoryDictDao.java index ae507878c5..44339e4e9b 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcCoverageCategoryDictDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcCoverageCategoryDictDao.java @@ -1,7 +1,6 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.dto.result.CoverageCategoryResultDTO; import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO; import com.epmet.entity.IcCoverageCategoryDictEntity; import org.apache.ibatis.annotations.Mapper; @@ -20,4 +19,5 @@ public interface IcCoverageCategoryDictDao extends BaseDao dictMap(@Param("customerId") String customerId, @Param("placeType") String placeType); + String selectCategoryName(@Param("customerId") String customerId, @Param("placeType") String placeType, @Param("categoryKey") String categoryKey); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolAttachmentDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolAttachmentDao.java new file mode 100644 index 0000000000..fda1e8ef6c --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolAttachmentDao.java @@ -0,0 +1,32 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcEnterprisePatrolAttachmentEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 企事业单位巡查附件表(目前只上传图片) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-06-20 + */ +@Mapper +public interface IcEnterprisePatrolAttachmentDao extends BaseDao { + + /** + * 删除巡查及路的图片 + * @param patrolId + * @return + */ + int deleteByPatrolId(@Param("patrolId") String patrolId, @Param("staffId") String staffId); + + /** + * 巡查记录图片 + * @param patrolId + * @return + */ + List selectAtt(String patrolId); +} \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolRecordDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolRecordDao.java index df257e2507..1915b153a7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolRecordDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcEnterprisePatrolRecordDao.java @@ -1,9 +1,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.entity.IcEnterprisePatrolRecordEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 企事业单位巡查表 * @@ -12,5 +15,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcEnterprisePatrolRecordDao extends BaseDao { - + + List patrolList(String enterpriseId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterprisePatrolAttachmentEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterprisePatrolAttachmentEntity.java new file mode 100644 index 0000000000..5130ee855a --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcEnterprisePatrolAttachmentEntity.java @@ -0,0 +1,80 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 企事业单位巡查附件表(目前只上传图片) + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-06-20 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_enterprise_patrol_attachment") +public class IcEnterprisePatrolAttachmentEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 服务记录id,服务项目id + */ + private String patrolId; + + /** + * 附件名 + */ + private String attachmentName; + + /** + * 文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS) + */ + private String attachmentFormat; + + /** + * 附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc)) + */ + private String attachmentType; + + /** + * 附件地址 + */ + private String attachmentUrl; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 附件状态(审核中:auditing; +auto_passed: 自动通过; +review:结果不确定,需要人工审核; +block: 结果违规; +rejected:人工审核驳回; +approved:人工审核通过) +现在图片是同步审核的,所以图片只有auto_passed一种状态 + */ + private String status; + + /** + * 失败原因 + */ + private String reason; + + /** + * 语音或视频时长,秒 + */ + private Integer duration; + +} 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 c2607efaa2..9cd5260728 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 @@ -1,6 +1,11 @@ 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.EnterprisePatrolFormDTO; +import com.epmet.dto.result.EnterpriseDetailDTO; +import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.entity.IcEnterpriseEntity; /** @@ -10,64 +15,39 @@ import com.epmet.entity.IcEnterpriseEntity; * @since v1.0.0 2022-06-17 */ public interface IcEnterpriseService extends BaseService { + /** + * 企事业单位巡查】新增/编辑 + * @param formDTO + * @return 返回企事业单位id + */ + String addOrUpdate(EnterpriseFormDTO formDTO); + + /** + * 【企事业单位巡查】新增/修改巡查记录 + * @param formDTO + * @return + */ + String addOrUpdatePatrol(EnterprisePatrolFormDTO formDTO); + + /** + * 删除巡查记录 + * @param patrolId + */ + void delPatrol(String patrolId,String currentUserId); + + /** + * 巡查记录列表 + * @param enterpriseId + * @return + */ + PageData patrolList(String enterpriseId); + + /** + * 企事业单位详情 + * @param customerId + * @param enterpriseId + * @return + */ + EnterpriseDetailDTO queryEnterpriseDetail(String customerId, String enterpriseId); - // /** - // * 默认分页 - // * - // * @param params - // * @return PageData - // * @author generator - // * @date 2022-06-17 - // */ - // PageData page(Map params); - // - // /** - // * 默认查询 - // * - // * @param params - // * @return java.util.List - // * @author generator - // * @date 2022-06-17 - // */ - // List list(Map params); - // - // /** - // * 单条查询 - // * - // * @param id - // * @return IcEnterpriseDTO - // * @author generator - // * @date 2022-06-17 - // */ - // IcEnterpriseDTO get(String id); - // - // /** - // * 默认保存 - // * - // * @param dto - // * @return void - // * @author generator - // * @date 2022-06-17 - // */ - // void save(IcEnterpriseDTO dto); - // - // /** - // * 默认更新 - // * - // * @param dto - // * @return void - // * @author generator - // * @date 2022-06-17 - // */ - // void update(IcEnterpriseDTO dto); - // - // /** - // * 批量删除 - // * - // * @param ids - // * @return void - // * @author generator - // * @date 2022-06-17 - // */ - // void delete(String[] ids); } \ 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 9943497b41..d47c477c3c 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 @@ -1,10 +1,42 @@ 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.enums.CommonOperateTypeEnum; +import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; +import com.epmet.commons.tools.enums.DictTypeEnum; +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.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.IcCoverageCategoryDictDao; 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.EnterprisePatrolFormDTO; +import com.epmet.dto.result.EnterpriseDetailDTO; +import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.entity.IcEnterpriseEntity; +import com.epmet.entity.IcEnterprisePatrolAttachmentEntity; +import com.epmet.entity.IcEnterprisePatrolRecordEntity; +import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.service.IcEnterpriseService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 企事业单位表 @@ -14,57 +46,128 @@ import org.springframework.stereotype.Service; */ @Service public class IcEnterpriseServiceImpl extends BaseServiceImpl implements IcEnterpriseService { + @Autowired + private IcEnterprisePatrolAttachmentDao enterprisePatrolAttachmentDao; + @Autowired + private IcEnterprisePatrolRecordDao enterprisePatrolRecordDao; + @Autowired + private EpmetAdminOpenFeignClient adminOpenFeignClient; + @Autowired + private IcCoverageCategoryDictDao coverageCategoryDictDao; + /** + * 企事业单位巡查】新增/编辑 + * + * @param formDTO + * @return 返回企事业单位id + */ + @Transactional(rollbackFor = Exception.class) + @Override + public String addOrUpdate(EnterpriseFormDTO formDTO) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); + if (null == agencyInfoCache) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"组织信息查询异常","组织信息查询异常"); + } + IcEnterpriseEntity enterpriseEntity = ConvertUtils.sourceToTarget(formDTO, IcEnterpriseEntity.class); + enterpriseEntity.setAgencyPids(agencyInfoCache.getPids()); + if(StringUtils.isBlank(formDTO.getEnterpriseId())){ + enterpriseEntity.setLatestResult(StrConstant.EPMETY_STR); + enterpriseEntity.setSourceType(CommonOperateTypeEnum.ADD.getCode()); + baseDao.insert(enterpriseEntity); + }else{ + enterpriseEntity.setId(formDTO.getEnterpriseId()); + baseDao.updateById(enterpriseEntity); + } + return enterpriseEntity.getId(); + } + + /** + * 【企事业单位巡查】新增/修改巡查记录 + * + * @param formDTO + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public String addOrUpdatePatrol(EnterprisePatrolFormDTO formDTO) { + IcEnterprisePatrolRecordEntity patrolRecordEntity=ConvertUtils.sourceToTarget(formDTO,IcEnterprisePatrolRecordEntity.class); + if(StringUtils.isBlank(formDTO.getEnterpriseId())){ + enterprisePatrolRecordDao.insert(patrolRecordEntity); + }else{ + patrolRecordEntity.setId(formDTO.getPatrolId()); + enterprisePatrolRecordDao.updateById(patrolRecordEntity); + //删除之前的图片 + enterprisePatrolAttachmentDao.deleteByPatrolId(formDTO.getPatrolId(),formDTO.getUserId()); + } + int sort = 1; + for (String imgUrl : formDTO.getImgList()) { + IcEnterprisePatrolAttachmentEntity att = new IcEnterprisePatrolAttachmentEntity(); + att.setCustomerId(formDTO.getCustomerId()); + att.setPatrolId(patrolRecordEntity.getId()); + att.setAttachmentType("image"); + att.setAttachmentUrl(imgUrl); + att.setSort(sort); + att.setStatus("auto_passed"); + enterprisePatrolAttachmentDao.insert(att); + sort++; + } + return patrolRecordEntity.getId(); + } + + /** + * 删除巡查记录 + * + * @param patrolId + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void delPatrol(String patrolId,String currentUserId) { + //1、删除巡查记录 + enterprisePatrolRecordDao.deleteById(patrolId); + //2、删除之前的图片 + enterprisePatrolAttachmentDao.deleteByPatrolId(patrolId,currentUserId); + } + + /** + * 巡查记录列表 + * 暂时不分页 + * @param enterpriseId + * @return + */ + @Override + public PageData patrolList(String enterpriseId) { + List list = enterprisePatrolRecordDao.patrolList(enterpriseId); + int total = CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO; + return new PageData<>(list, total); + } + + /** + * 企事业单位详情 + * + * @param customerId + * @param enterpriseId + * @return + */ + @Override + public EnterpriseDetailDTO queryEnterpriseDetail(String customerId, String enterpriseId) { + IcEnterpriseEntity enterpriseEntity=baseDao.selectById(enterpriseId); + if(null==enterpriseEntity){ + return null; + } + EnterpriseDetailDTO resultDto=ConvertUtils.sourceToTarget(enterpriseEntity,EnterpriseDetailDTO.class); + resultDto.setEnterpriseId(enterpriseId); + GridInfoCache gridInfoCache=CustomerOrgRedis.getGridInfo(resultDto.getGridId()); + if (null != gridInfoCache) { + resultDto.setGridName(gridInfoCache.getGridName()); + resultDto.setAgencyName(gridInfoCache.getAgencyName()); + } + String placeTypeName=coverageCategoryDictDao.selectCategoryName(customerId, CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode(),resultDto.getPlaceType()); + resultDto.setPlaceTypeName(placeTypeName); + //规模名称 + Result> dictMapRes=adminOpenFeignClient.dictMap(DictTypeEnum.SCALE.getCode()); + Map dictMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>(); + resultDto.setScaleName(dictMap.containsKey(resultDto.getScale())?dictMap.get(resultDto.getScale()):StrConstant.EPMETY_STR); + return resultDto; + } - // @Override - // public PageData page(Map params) { - // IPage page = baseDao.selectPage( - // getPage(params, FieldConstant.CREATED_TIME, false), - // getWrapper(params) - // ); - // return getPageData(page, IcEnterpriseDTO.class); - // } - // - // @Override - // public List list(Map params) { - // List entityList = baseDao.selectList(getWrapper(params)); - // - // return ConvertUtils.sourceToTarget(entityList, IcEnterpriseDTO.class); - // } - // - // private QueryWrapper getWrapper(Map params){ - // String id = (String)params.get(FieldConstant.ID_HUMP); - // - // QueryWrapper wrapper = new QueryWrapper<>(); - // wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - // - // return wrapper; - // } - // - // @Override - // public IcEnterpriseDTO get(String id) { - // IcEnterpriseEntity entity = baseDao.selectById(id); - // return ConvertUtils.sourceToTarget(entity, IcEnterpriseDTO.class); - // } - // - // @Override - // @Transactional(rollbackFor = Exception.class) - // public void save(IcEnterpriseDTO dto) { - // IcEnterpriseEntity entity = ConvertUtils.sourceToTarget(dto, IcEnterpriseEntity.class); - // insert(entity); - // } - // - // @Override - // @Transactional(rollbackFor = Exception.class) - // public void update(IcEnterpriseDTO dto) { - // IcEnterpriseEntity entity = ConvertUtils.sourceToTarget(dto, IcEnterpriseEntity.class); - // updateById(entity); - // } - // - // @Override - // @Transactional(rollbackFor = Exception.class) - // public void delete(String[] ids) { - // // 逻辑删除(@TableLogic 注解) - // baseDao.deleteBatchIds(Arrays.asList(ids)); - // } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterprise_patrol_import_tem.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterprise_patrol_import_tem.xlsx new file mode 100644 index 0000000000..d3ade2c3fa Binary files /dev/null and b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/enterprise_patrol_import_tem.xlsx differ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCoverageCategoryDictDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCoverageCategoryDictDao.xml index 1a41b6077a..3a948a7a2a 100755 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCoverageCategoryDictDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcCoverageCategoryDictDao.xml @@ -24,4 +24,11 @@ ORDER BY sort ASC + \ 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 new file mode 100644 index 0000000000..610b640b33 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolAttachmentDao.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + update ic_enterprise_patrol_attachment + set del_flag='1', + UPDATED_TIME=now(), + UPDATED_BY={staffId} + where PATROL_ID=#{patrolId} + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolRecordDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolRecordDao.xml index 2d5b0ca97d..b5ccb55cbe 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolRecordDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcEnterprisePatrolRecordDao.xml @@ -3,9 +3,8 @@ - - - + + @@ -14,13 +13,27 @@ - - - - - - + + - + \ No newline at end of file