From 79cec12400c23ec72f41e57d53c0d72f140f0aa8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 09:37:45 +0800 Subject: [PATCH 001/160] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoAttachmentDTO.java | 105 ++++++++++++++++++ .../main/java/com/epmet/dto/MemoAttrDTO.java | 80 +++++++++++++ .../java/com/epmet/dto/MemoConcernDTO.java | 105 ++++++++++++++++++ .../java/com/epmet/dto/MemoDifficultyDTO.java | 85 ++++++++++++++ .../java/com/epmet/dto/MemoWorkDiaryDTO.java | 75 +++++++++++++ .../controller/MemoAttachmentController.java | 72 ++++++++++++ .../epmet/controller/MemoAttrController.java | 72 ++++++++++++ .../controller/MemoConcernController.java | 72 ++++++++++++ .../controller/MemoDifficultyController.java | 72 ++++++++++++ .../controller/MemoWorkDiaryController.java | 72 ++++++++++++ .../java/com/epmet/dao/MemoAttachmentDao.java | 16 +++ .../main/java/com/epmet/dao/MemoAttrDao.java | 16 +++ .../java/com/epmet/dao/MemoConcernDao.java | 16 +++ .../java/com/epmet/dao/MemoDifficultyDao.java | 16 +++ .../java/com/epmet/dao/MemoWorkDiaryDao.java | 16 +++ .../epmet/entity/MemoAttachmentEntity.java | 71 ++++++++++++ .../java/com/epmet/entity/MemoAttrEntity.java | 48 ++++++++ .../com/epmet/entity/MemoConcernEntity.java | 73 ++++++++++++ .../epmet/entity/MemoDifficultyEntity.java | 53 +++++++++ .../com/epmet/entity/MemoWorkDiaryEntity.java | 43 +++++++ .../epmet/service/MemoAttachmentService.java | 78 +++++++++++++ .../com/epmet/service/MemoAttrService.java | 78 +++++++++++++ .../com/epmet/service/MemoConcernService.java | 78 +++++++++++++ .../epmet/service/MemoDifficultyService.java | 78 +++++++++++++ .../epmet/service/MemoWorkDiaryService.java | 78 +++++++++++++ .../impl/MemoAttachmentServiceImpl.java | 83 ++++++++++++++ .../service/impl/MemoAttrServiceImpl.java | 83 ++++++++++++++ .../service/impl/MemoConcernServiceImpl.java | 83 ++++++++++++++ .../impl/MemoDifficultyServiceImpl.java | 83 ++++++++++++++ .../impl/MemoWorkDiaryServiceImpl.java | 83 ++++++++++++++ .../resources/mapper/MemoAttachmentDao.xml | 8 ++ .../src/main/resources/mapper/MemoAttrDao.xml | 8 ++ .../main/resources/mapper/MemoConcernDao.xml | 8 ++ .../resources/mapper/MemoDifficultyDao.xml | 8 ++ .../resources/mapper/MemoWorkDiaryDao.xml | 8 ++ 35 files changed, 2023 insertions(+) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttrDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttachmentController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttachmentDao.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java new file mode 100644 index 0000000000..d1dec98f34 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java @@ -0,0 +1,105 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoAttachmentDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * REMIND_MSG.ID + */ + private String remindMsgId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 附件名(uuid随机生成) + */ + private String attachmentName; + + /** + * 文件大小,单位b + */ + private Integer attachmentSize; + + /** + * 文件格式(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 duration; + + /** + * 排序字段 + */ + private Integer sort; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttrDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttrDTO.java new file mode 100644 index 0000000000..6f219e43ad --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttrDTO.java @@ -0,0 +1,80 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 备忘录-属性表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoAttrDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 业务类型 人员关怀:concern;难点堵点:difficulty;工作日志:work_diary + */ + private String type; + + /** + * 阅读标记1 已读;0未读 + */ + private Integer readFlag; + + /** + * 接收人ID + */ + private String receiver; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java new file mode 100644 index 0000000000..500e28d53e --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -0,0 +1,105 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 备忘录-人文关怀 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoConcernDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识(同memo_attr表Id) + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 关怀类型 + */ + private String concernType; + + /** + * 关怀对象 + */ + private String resiName; + + /** + * 关怀对象电话 + */ + private String phnoe; + + /** + * 关怀对象地址 + */ + private String address; + + /** + * 关怀事项 + */ + private String content; + + /** + * 计划执行时间 + */ + private Date scheduledTime; + + /** + * 实际执行时间 + */ + private Date actualTime; + + /** + * 状态 0未完成 1已完成 + */ + private Integer status; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 操作人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java new file mode 100644 index 0000000000..6b3008fa42 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java @@ -0,0 +1,85 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoDifficultyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识(同memo_attr表Id) + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 内容 + */ + private String content; + + /** + * 解决方式 + */ + private String resolveWay; + + /** + * 备注 + */ + private String remark; + + /** + * 计划执行时间 + */ + private Date scheduledTime; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java new file mode 100644 index 0000000000..f72cb66a95 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java @@ -0,0 +1,75 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 备忘录-工作日志 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoWorkDiaryDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识(同memo_attr表Id) + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 工作事项 + */ + private String workType; + + /** + * 内容 + */ + private String content; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttachmentController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttachmentController.java new file mode 100644 index 0000000000..3090cd1ec7 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttachmentController.java @@ -0,0 +1,72 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.MemoAttachmentDTO; +import com.epmet.service.MemoAttachmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@RestController +@RequestMapping("memoAttachment") +public class MemoAttachmentController { + + @Autowired + private MemoAttachmentService memoAttachmentService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = memoAttachmentService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + MemoAttachmentDTO data = memoAttachmentService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody MemoAttachmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + memoAttachmentService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody MemoAttachmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + memoAttachmentService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + memoAttachmentService.delete(ids); + return new Result(); + } + + + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java new file mode 100644 index 0000000000..c88ccdc7c1 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java @@ -0,0 +1,72 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.MemoAttrDTO; +import com.epmet.service.MemoAttrService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 备忘录-属性表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@RestController +@RequestMapping("memoAttr") +public class MemoAttrController { + + @Autowired + private MemoAttrService memoAttrService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = memoAttrService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + MemoAttrDTO data = memoAttrService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody MemoAttrDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + memoAttrService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody MemoAttrDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + memoAttrService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + memoAttrService.delete(ids); + return new Result(); + } + + + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java new file mode 100644 index 0000000000..39d1beb1d4 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -0,0 +1,72 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.MemoConcernDTO; +import com.epmet.service.MemoConcernService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 备忘录-人文关怀 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@RestController +@RequestMapping("memoConcern") +public class MemoConcernController { + + @Autowired + private MemoConcernService memoConcernService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = memoConcernService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + MemoConcernDTO data = memoConcernService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody MemoConcernDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + memoConcernService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody MemoConcernDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + memoConcernService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + memoConcernService.delete(ids); + return new Result(); + } + + + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java new file mode 100644 index 0000000000..c932841cf8 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -0,0 +1,72 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.service.MemoDifficultyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@RestController +@RequestMapping("memoDifficulty") +public class MemoDifficultyController { + + @Autowired + private MemoDifficultyService memoDifficultyService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = memoDifficultyService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + MemoDifficultyDTO data = memoDifficultyService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody MemoDifficultyDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + memoDifficultyService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody MemoDifficultyDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + memoDifficultyService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + memoDifficultyService.delete(ids); + return new Result(); + } + + + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java new file mode 100644 index 0000000000..43faecbcab --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -0,0 +1,72 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.service.MemoWorkDiaryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 备忘录-工作日志 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@RestController +@RequestMapping("memoWorkDiary") +public class MemoWorkDiaryController { + + @Autowired + private MemoWorkDiaryService memoWorkDiaryService; + + @RequestMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = memoWorkDiaryService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + MemoWorkDiaryDTO data = memoWorkDiaryService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody MemoWorkDiaryDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + memoWorkDiaryService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody MemoWorkDiaryDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + memoWorkDiaryService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + memoWorkDiaryService.delete(ids); + return new Result(); + } + + + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttachmentDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttachmentDao.java new file mode 100644 index 0000000000..941b5d7ca1 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttachmentDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.MemoAttachmentEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Mapper +public interface MemoAttachmentDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java new file mode 100644 index 0000000000..ad1b4216cc --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.MemoAttrEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 备忘录-属性表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Mapper +public interface MemoAttrDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java new file mode 100644 index 0000000000..723dbe4444 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.MemoConcernEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 备忘录-人文关怀 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Mapper +public interface MemoConcernDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java new file mode 100644 index 0000000000..8449129bbd --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.MemoDifficultyEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Mapper +public interface MemoDifficultyDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java new file mode 100644 index 0000000000..dd27cdd763 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.MemoWorkDiaryEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 备忘录-工作日志 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Mapper +public interface MemoWorkDiaryDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java new file mode 100644 index 0000000000..fcc0c1622d --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java @@ -0,0 +1,71 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("memo_attachment") +public class MemoAttachmentEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * REMIND_MSG.ID + */ + private String remindMsgId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 附件名(uuid随机生成) + */ + private String attachmentName; + + /** + * 文件大小,单位b + */ + private Integer attachmentSize; + + /** + * 文件格式(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 duration; + + /** + * 排序字段 + */ + private Integer sort; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java new file mode 100644 index 0000000000..69a68497ce --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java @@ -0,0 +1,48 @@ +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-03-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("memo_attr") +public class MemoAttrEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 业务类型 人员关怀:concern;难点堵点:difficulty;工作日志:work_diary + */ + private String type; + + /** + * 阅读标记1 已读;0未读 + */ + private Integer readFlag; + + /** + * 接收人ID + */ + private String receiver; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java new file mode 100644 index 0000000000..7d62073752 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -0,0 +1,73 @@ +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-03-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("memo_concern") +public class MemoConcernEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 关怀类型 + */ + private String concernType; + + /** + * 关怀对象 + */ + private String resiName; + + /** + * 关怀对象电话 + */ + private String phnoe; + + /** + * 关怀对象地址 + */ + private String address; + + /** + * 关怀事项 + */ + private String content; + + /** + * 计划执行时间 + */ + private Date scheduledTime; + + /** + * 实际执行时间 + */ + private Date actualTime; + + /** + * 状态 0未完成 1已完成 + */ + private Integer status; + + /** + * 提醒时间 + */ + private Date remindTime; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java new file mode 100644 index 0000000000..453f2eed09 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java @@ -0,0 +1,53 @@ +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-03-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("memo_difficulty") +public class MemoDifficultyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 内容 + */ + private String content; + + /** + * 解决方式 + */ + private String resolveWay; + + /** + * 备注 + */ + private String remark; + + /** + * 计划执行时间 + */ + private Date scheduledTime; + + /** + * 提醒时间 + */ + private Date remindTime; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java new file mode 100644 index 0000000000..2407b046e9 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java @@ -0,0 +1,43 @@ +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-03-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("memo_work_diary") +public class MemoWorkDiaryEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 工作事项 + */ + private String workType; + + /** + * 内容 + */ + private String content; + + /** + * 提醒时间 + */ + private Date remindTime; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java new file mode 100644 index 0000000000..dde25470fe --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.MemoAttachmentDTO; +import com.epmet.entity.MemoAttachmentEntity; + +import java.util.List; +import java.util.Map; + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +public interface MemoAttachmentService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-03-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-03-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return MemoAttachmentDTO + * @author generator + * @date 2022-03-15 + */ + MemoAttachmentDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void save(MemoAttachmentDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void update(MemoAttachmentDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-03-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java new file mode 100644 index 0000000000..e7d717187d --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.MemoAttrDTO; +import com.epmet.entity.MemoAttrEntity; + +import java.util.List; +import java.util.Map; + +/** + * 备忘录-属性表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +public interface MemoAttrService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-03-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-03-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return MemoAttrDTO + * @author generator + * @date 2022-03-15 + */ + MemoAttrDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void save(MemoAttrDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void update(MemoAttrDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-03-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java new file mode 100644 index 0000000000..f18784a348 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.MemoConcernDTO; +import com.epmet.entity.MemoConcernEntity; + +import java.util.List; +import java.util.Map; + +/** + * 备忘录-人文关怀 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +public interface MemoConcernService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-03-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-03-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return MemoConcernDTO + * @author generator + * @date 2022-03-15 + */ + MemoConcernDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void save(MemoConcernDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void update(MemoConcernDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-03-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java new file mode 100644 index 0000000000..00a825fb23 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.entity.MemoDifficultyEntity; + +import java.util.List; +import java.util.Map; + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +public interface MemoDifficultyService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-03-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-03-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return MemoDifficultyDTO + * @author generator + * @date 2022-03-15 + */ + MemoDifficultyDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void save(MemoDifficultyDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void update(MemoDifficultyDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-03-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java new file mode 100644 index 0000000000..29d7614886 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.entity.MemoWorkDiaryEntity; + +import java.util.List; +import java.util.Map; + +/** + * 备忘录-工作日志 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +public interface MemoWorkDiaryService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-03-15 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-03-15 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return MemoWorkDiaryDTO + * @author generator + * @date 2022-03-15 + */ + MemoWorkDiaryDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void save(MemoWorkDiaryDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-03-15 + */ + void update(MemoWorkDiaryDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-03-15 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java new file mode 100644 index 0000000000..b670d73537 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.MemoAttachmentDao; +import com.epmet.dto.MemoAttachmentDTO; +import com.epmet.entity.MemoAttachmentEntity; +import com.epmet.service.MemoAttachmentService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 备忘录-附件表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Service +public class MemoAttachmentServiceImpl extends BaseServiceImpl implements MemoAttachmentService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, MemoAttachmentDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, MemoAttachmentDTO.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 MemoAttachmentDTO get(String id) { + MemoAttachmentEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, MemoAttachmentDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(MemoAttachmentDTO dto) { + MemoAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, MemoAttachmentEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MemoAttachmentDTO dto) { + MemoAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, MemoAttachmentEntity.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-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java new file mode 100644 index 0000000000..5af16cb67b --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.MemoAttrDao; +import com.epmet.dto.MemoAttrDTO; +import com.epmet.entity.MemoAttrEntity; +import com.epmet.service.MemoAttrService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 备忘录-属性表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Service +public class MemoAttrServiceImpl extends BaseServiceImpl implements MemoAttrService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, MemoAttrDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, MemoAttrDTO.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 MemoAttrDTO get(String id) { + MemoAttrEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, MemoAttrDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(MemoAttrDTO dto) { + MemoAttrEntity entity = ConvertUtils.sourceToTarget(dto, MemoAttrEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MemoAttrDTO dto) { + MemoAttrEntity entity = ConvertUtils.sourceToTarget(dto, MemoAttrEntity.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-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java new file mode 100644 index 0000000000..060ede4916 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.MemoConcernDao; +import com.epmet.dto.MemoConcernDTO; +import com.epmet.entity.MemoConcernEntity; +import com.epmet.service.MemoConcernService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 备忘录-人文关怀 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Service +public class MemoConcernServiceImpl extends BaseServiceImpl implements MemoConcernService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, MemoConcernDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, MemoConcernDTO.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 MemoConcernDTO get(String id) { + MemoConcernEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, MemoConcernDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(MemoConcernDTO dto) { + MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MemoConcernDTO dto) { + MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.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-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java new file mode 100644 index 0000000000..4c40dfc3b1 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.MemoDifficultyDao; +import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.entity.MemoDifficultyEntity; +import com.epmet.service.MemoDifficultyService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Service +public class MemoDifficultyServiceImpl extends BaseServiceImpl implements MemoDifficultyService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, MemoDifficultyDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, MemoDifficultyDTO.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 MemoDifficultyDTO get(String id) { + MemoDifficultyEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, MemoDifficultyDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(MemoDifficultyDTO dto) { + MemoDifficultyEntity entity = ConvertUtils.sourceToTarget(dto, MemoDifficultyEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MemoDifficultyDTO dto) { + MemoDifficultyEntity entity = ConvertUtils.sourceToTarget(dto, MemoDifficultyEntity.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-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java new file mode 100644 index 0000000000..f4be3dfd27 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java @@ -0,0 +1,83 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.MemoWorkDiaryDao; +import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.entity.MemoWorkDiaryEntity; +import com.epmet.service.MemoWorkDiaryService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 备忘录-工作日志 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Service +public class MemoWorkDiaryServiceImpl extends BaseServiceImpl implements MemoWorkDiaryService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, MemoWorkDiaryDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, MemoWorkDiaryDTO.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 MemoWorkDiaryDTO get(String id) { + MemoWorkDiaryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, MemoWorkDiaryDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(MemoWorkDiaryDTO dto) { + MemoWorkDiaryEntity entity = ConvertUtils.sourceToTarget(dto, MemoWorkDiaryEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MemoWorkDiaryDTO dto) { + MemoWorkDiaryEntity entity = ConvertUtils.sourceToTarget(dto, MemoWorkDiaryEntity.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-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml new file mode 100644 index 0000000000..f892f237a5 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml new file mode 100644 index 0000000000..5c98e2eb58 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml new file mode 100644 index 0000000000..fa6d92a22a --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml new file mode 100644 index 0000000000..42e16012e4 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml new file mode 100644 index 0000000000..b563021ce0 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From bed41c106ba6800e5eb94154a7b8e2a83b5f48ff Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 13:50:53 +0800 Subject: [PATCH 002/160] =?UTF-8?q?=E5=85=9A=E7=BE=A4=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DelPartyServiceCenterResultDTO.java | 23 +++++++++ .../IcPartyServiceCenterController.java | 2 +- .../epmet/dao/IcPartyServiceCenterDao.java | 27 ++++++++++ .../impl/IcPartyServiceCenterServiceImpl.java | 51 +++++++++++++++++-- .../mapper/IcPartyServiceCenterDao.xml | 49 ++++++++++++++++++ 5 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DelPartyServiceCenterResultDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DelPartyServiceCenterResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DelPartyServiceCenterResultDTO.java new file mode 100644 index 0000000000..30f5f9ceb9 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DelPartyServiceCenterResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/15 10:43 上午 + * @DESC + */ +@Data +public class DelPartyServiceCenterResultDTO implements Serializable { + + private static final long serialVersionUID = -2238226229442700788L; + + private String date; + private String matterId; + private String timeId; + private String startTime; + private String endTime; + private String centerName; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPartyServiceCenterController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPartyServiceCenterController.java index a2f71aa778..df9fa9100d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPartyServiceCenterController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPartyServiceCenterController.java @@ -84,7 +84,7 @@ public class IcPartyServiceCenterController { return new Result(); } - @DeleteMapping + @PostMapping("del") public Result delete(@RequestBody String[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterDao.java index 065dc62906..75f75e87fc 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterDao.java @@ -19,12 +19,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.result.AllMattersResultDTO; +import com.epmet.dto.result.DelPartyServiceCenterResultDTO; import com.epmet.dto.result.PartyServiceCenterListResultDTO; import com.epmet.entity.IcPartyServiceCenterEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 党群服务中心 @@ -61,4 +63,29 @@ public interface IcPartyServiceCenterDao extends BaseDao getAllMattersByOrgId(@Param("matterIds")List matterIds); + /** + * Desc: 根据党群服务中心查询可预约事项ID + * @param centerIds + * @author zxc + * @date 2022/3/15 9:33 上午 + */ + + List selectMatterByIds(@Param("centerIds")List centerIds); + + /** + * Desc: 根据事项ID查询预约记录 + * @param matterIds + * @author zxc + * @date 2022/3/15 9:46 上午 + */ + List selectAppointmentList(@Param("matterIds")List matterIds); + + /** + * Desc: 删除可预约事项 + * @param centerIds + * @author zxc + * @date 2022/3/15 1:37 下午 + */ + void delMatters(@Param("centerIds")List centerIds); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java index 8c313c780f..208dde8fc2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java @@ -41,7 +41,6 @@ import com.epmet.constant.PartyServiceCenterConstant; import com.epmet.dao.IcMatterAppointmentRecordDao; import com.epmet.dao.IcPartyServiceCenterDao; import com.epmet.dto.IcPartyServiceCenterDTO; -import com.epmet.dto.RegisterRelationDTO; import com.epmet.dto.TimeDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -63,6 +62,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -130,8 +130,53 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl centerIds = Arrays.asList(ids); + List matterIds = baseDao.selectMatterByIds(centerIds); + if (CollectionUtils.isEmpty(matterIds)){ + baseDao.deleteBatchIds(centerIds); + }else { + List appointmentList = baseDao.selectAppointmentList(matterIds); + if (CollectionUtils.isEmpty(appointmentList)){ + baseDao.deleteBatchIds(centerIds); + baseDao.delMatters(centerIds); + }else { + List names = new ArrayList<>(); + Map> groupByMatterId = appointmentList.stream().collect(Collectors.groupingBy(DelPartyServiceCenterResultDTO::getMatterId)); + groupByMatterId.forEach((k,v) -> { + if (getMatterAppointmentList(v)){ + names.add(v.get(0).getCenterName()); + } + }); + if (CollectionUtils.isNotEmpty(names)){ + throw new EpmetException(names.stream().collect(Collectors.joining("、")) + "存在未来时间的预约事项,不允许删除"); + } + baseDao.deleteBatchIds(centerIds); + baseDao.delMatters(centerIds); + } + } + + } + + public boolean getMatterAppointmentList(List list){ + AtomicBoolean result = new AtomicBoolean(false); + if (CollectionUtils.isNotEmpty(list)){ + list.forEach(l -> { + int[] timeIds = Arrays.asList(l.getTimeId().split(",")).stream().mapToInt(m -> Integer.parseInt(m)).toArray(); + List intervalTimeList = getIntervalTimeList(l.getStartTime(), l.getEndTime(), 30); + for (int timeId : timeIds) { + for (int i1 = 0; i1 < intervalTimeList.size(); i1++) { + if (timeId == i1 + 1){ + String date = l.getDate() + " " + intervalTimeList.get(i1) + ":00"; + if (DateUtils.parse(date,DateUtils.DATE_TIME_PATTERN).after(new Date())){ + result.set(true); + return; + } + } + } + } + }); + } + return result.get(); } /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml index f159698f7f..51fa3a720c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml @@ -118,4 +118,53 @@ ) + + + + + + + + + + UPDATE ic_party_service_center_matter + SET del_flag = 1, + UPDATED_TIME = NOW() + WHERE DEL_FLAG = 0 + AND PARTY_SERVICE_CENTER_ID IN ( + + #{centerId} + + ) + + \ No newline at end of file From 0663b09b349ea8bdbd9cef24ca371eddad28bf8e Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 15:10:39 +0800 Subject: [PATCH 003/160] =?UTF-8?q?=E4=B9=A6=E8=AE=B0=E6=97=A5=E5=BF=97-?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92=E5=BC=B9=E6=A1=86=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/MemosToRemindFormDTO.java | 34 +++++++ .../dto/result/MemosToRemindResultDTO.java | 42 +++++++++ .../epmet/controller/MemoAttrController.java | 53 +++++++++-- .../main/java/com/epmet/dao/MemoAttrDao.java | 18 +++- .../com/epmet/service/MemoAttrService.java | 20 +++++ .../service/impl/MemoAttrServiceImpl.java | 44 +++++++++- .../src/main/resources/mapper/MemoAttrDao.xml | 88 +++++++++++++++++++ 7 files changed, 290 insertions(+), 9 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java new file mode 100644 index 0000000000..4b5ac76740 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; + +/** + * @Author sun + * @Description 书记日志-待提醒弹框-提醒内容列表-接口入参 + **/ +@Data +public class MemosToRemindFormDTO implements Serializable { + private static final long serialVersionUID = 4859779755214502427L; + public interface MemoAttr extends CustomerClientShowGroup {} + /** + * 待提醒业务Id + */ + @NotBlank(message = "待提醒业务Id不能为空", groups = { MemoAttr.class }) + private String memoId; + /** + * 到期提醒时间,不传值默认查询当前时间之前的数据(yyyy-MM-dd) + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String remindTime; + + //token中用户Id + private String userId; + +} + diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java new file mode 100644 index 0000000000..43998e8395 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author sun + * @Description 书记日志-待提醒弹框-提醒内容列表-接口返参 + **/ +@Data +@AllArgsConstructor +public class MemosToRemindResultDTO implements Serializable { + + private static final long serialVersionUID = 4769136806332933579L; + + /** + * 对应业务数据Id + */ + private String memoId; + /** + * 业务类型 人员关怀:concern;难点堵点:difficulty;工作日志:work_diary + */ + private String type; + /** + * 业务类型 人员关怀:concern;难点堵点:difficulty;工作日志:work_diary + */ + private String typeName; + /** + * 提醒内容 + */ + private String content; + /** + * 提醒时间(日期类型) + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private String remindTime; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java index c88ccdc7c1..8a8c3f557e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java @@ -1,7 +1,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +11,16 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoAttrDTO; +import com.epmet.dto.form.MemosToRemindFormDTO; +import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; +import com.epmet.dto.form.ShiftProjectFormDTO; +import com.epmet.dto.result.IssueProjectResultDTO; +import com.epmet.dto.result.MemosToRemindResultDTO; import com.epmet.service.MemoAttrService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; @@ -30,20 +38,20 @@ public class MemoAttrController { private MemoAttrService memoAttrService; @RequestMapping("page") - public Result> page(@RequestParam Map params){ + public Result> page(@RequestParam Map params) { PageData page = memoAttrService.page(params); return new Result>().ok(page); } - @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) - public Result get(@PathVariable("id") String id){ + @RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET}) + public Result get(@PathVariable("id") String id) { MemoAttrDTO data = memoAttrService.get(id); return new Result().ok(data); } @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody MemoAttrDTO dto){ + public Result save(@RequestBody MemoAttrDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); memoAttrService.save(dto); @@ -52,7 +60,7 @@ public class MemoAttrController { @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody MemoAttrDTO dto){ + public Result update(@RequestBody MemoAttrDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); memoAttrService.update(dto); @@ -60,13 +68,46 @@ public class MemoAttrController { } @PostMapping("delete") - public Result delete(@RequestBody String[] ids){ + public Result delete(@RequestBody String[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); memoAttrService.delete(ids); return new Result(); } + /** + * @Author sun + * @Description 书记日志-待提醒弹框-提醒内容列表 + **/ + @PostMapping("memosToRemind") + public Result> memosToRemind(@RequestBody MemosToRemindFormDTO formDTO) { + //public Result> memosToRemind(@LoginUser TokenDto tokenDTO, @RequestBody MemosToRemindFormDTO formDTO) { + //formDTO.setUserId(tokenDTO.getUserId()); + formDTO.setUserId("111"); + return new Result>().ok(memoAttrService.memosToRemind(formDTO)); + } + + /** + * @Author sun + * @Description 书记日志-待提醒时间列表 + **/ + @PostMapping("memoTime") + public Result> memoTime() { + return new Result>().ok(memoAttrService.memoTime("111")); + /*public Result> memoTime(@LoginUser TokenDto tokenDTO) { + return new Result>().ok(memoAttrService.memoTime(tokenDTO.getUserId()));*/ + } + + /** + * @Author sun + * @Description 书记日志-提醒列表-我知道了 + **/ + @PostMapping("setReaded") + public Result setReaded(@RequestBody MemosToRemindFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MemosToRemindFormDTO.MemoAttr.class); + memoAttrService.setReaded(formDTO.getMemoId()); + return new Result(); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java index ad1b4216cc..4ba3580b45 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java @@ -1,8 +1,13 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.MemosToRemindResultDTO; import com.epmet.entity.MemoAttrEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; /** * 备忘录-属性表 @@ -12,5 +17,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface MemoAttrDao extends BaseDao { - + + /** + * @Author sun + * @Description 查询提醒内容列表,有时间的按时间查询,没有的查询当前日期之前的数据 + **/ + List memosToRemind(@Param("remindTime") String remindTime, @Param("userId") String userId); + + /** + * @Author sun + * @Description 查询某个人当前日期之后,当日0点之前待提醒时间节点列表 + **/ + List memoTime(@Param("userId") String userId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java index e7d717187d..388698df6a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java @@ -3,6 +3,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.MemoAttrDTO; +import com.epmet.dto.form.MemosToRemindFormDTO; +import com.epmet.dto.result.MemosToRemindResultDTO; import com.epmet.entity.MemoAttrEntity; import java.util.List; @@ -75,4 +77,22 @@ public interface MemoAttrService extends BaseService { * @date 2022-03-15 */ void delete(String[] ids); + + /** + * @Author sun + * @Description 书记日志-待提醒弹框-提醒内容列表 + **/ + List memosToRemind(MemosToRemindFormDTO formDTO); + + /** + * @Author sun + * @Description 书记日志-待提醒时间列表 + **/ + List memoTime(String userId); + + /** + * @Author sun + * @Description 书记日志-提醒列表-我知道了 + **/ + void setReaded(String memoId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java index 5af16cb67b..c979928ceb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java @@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.MemoAttrDao; import com.epmet.dto.MemoAttrDTO; +import com.epmet.dto.form.MemosToRemindFormDTO; +import com.epmet.dto.result.MemosToRemindResultDTO; import com.epmet.entity.MemoAttrEntity; import com.epmet.service.MemoAttrService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +29,7 @@ import java.util.Map; * @since v1.0.0 2022-03-15 */ @Service +@Slf4j public class MemoAttrServiceImpl extends BaseServiceImpl implements MemoAttrService { @@ -44,8 +49,8 @@ public class MemoAttrServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -80,4 +85,39 @@ public class MemoAttrServiceImpl extends BaseServiceImpl memosToRemind(MemosToRemindFormDTO formDTO) { + //1.查询提醒内容列表,有时间的按时间查询,没有的查询当前日期之前的数据 + List resultList = baseDao.memosToRemind(formDTO.getRemindTime(), formDTO.getUserId()); + return resultList; + } + + /** + * @Author sun + * @Description 书记日志-待提醒时间列表 + **/ + @Override + public List memoTime(String userId) { + List resultList = baseDao.memoTime(userId); + return resultList; + } + + /** + * @Author sun + * @Description 书记日志-提醒列表-我知道了 + **/ + @Override + public void setReaded(String memoId) { + MemoAttrEntity entity = new MemoAttrEntity(); + entity.setId(memoId); + entity.setReadFlag(NumConstant.ONE); + if (baseDao.updateById(entity) < NumConstant.ONE) { + log.warn(String.format("书记日志-提醒列表-修改阅读状态失败,提醒记录Id", memoId)); + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml index 5c98e2eb58..72fd81c7d3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml @@ -3,6 +3,94 @@ + + + \ No newline at end of file From 8a1bfb496c1b272a0c73128572bcda47954efb28 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 15:13:19 +0800 Subject: [PATCH 004/160] =?UTF-8?q?=E9=94=99=E6=8F=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/MemoAttrController.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java index 8a8c3f557e..07b1ed3eb6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java @@ -12,9 +12,6 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.form.MemosToRemindFormDTO; -import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO; -import com.epmet.dto.form.ShiftProjectFormDTO; -import com.epmet.dto.result.IssueProjectResultDTO; import com.epmet.dto.result.MemosToRemindResultDTO; import com.epmet.service.MemoAttrService; import org.springframework.beans.factory.annotation.Autowired; @@ -80,10 +77,8 @@ public class MemoAttrController { * @Description 书记日志-待提醒弹框-提醒内容列表 **/ @PostMapping("memosToRemind") - public Result> memosToRemind(@RequestBody MemosToRemindFormDTO formDTO) { - //public Result> memosToRemind(@LoginUser TokenDto tokenDTO, @RequestBody MemosToRemindFormDTO formDTO) { - //formDTO.setUserId(tokenDTO.getUserId()); - formDTO.setUserId("111"); + public Result> memosToRemind(@LoginUser TokenDto tokenDTO, @RequestBody MemosToRemindFormDTO formDTO) { + formDTO.setUserId(tokenDTO.getUserId()); return new Result>().ok(memoAttrService.memosToRemind(formDTO)); } @@ -92,10 +87,8 @@ public class MemoAttrController { * @Description 书记日志-待提醒时间列表 **/ @PostMapping("memoTime") - public Result> memoTime() { - return new Result>().ok(memoAttrService.memoTime("111")); - /*public Result> memoTime(@LoginUser TokenDto tokenDTO) { - return new Result>().ok(memoAttrService.memoTime(tokenDTO.getUserId()));*/ + public Result> memoTime(@LoginUser TokenDto tokenDTO) { + return new Result>().ok(memoAttrService.memoTime(tokenDTO.getUserId())); } /** From 7bef86dded3f477841ec1e0fdb41e7f6b053ddcf Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 15:17:44 +0800 Subject: [PATCH 005/160] . --- .../src/main/java/com/epmet/entity/MemoConcernEntity.java | 5 ----- .../src/main/java/com/epmet/entity/MemoDifficultyEntity.java | 5 ----- .../src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java | 5 ----- 3 files changed, 15 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index 7d62073752..f897debb03 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -65,9 +65,4 @@ public class MemoConcernEntity extends BaseEpmetEntity { */ private Integer status; - /** - * 提醒时间 - */ - private Date remindTime; - } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java index 453f2eed09..32d6263849 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java @@ -45,9 +45,4 @@ public class MemoDifficultyEntity extends BaseEpmetEntity { */ private Date scheduledTime; - /** - * 提醒时间 - */ - private Date remindTime; - } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java index 2407b046e9..c5d81f90fa 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java @@ -35,9 +35,4 @@ public class MemoWorkDiaryEntity extends BaseEpmetEntity { */ private String content; - /** - * 提醒时间 - */ - private Date remindTime; - } From 8dba635743eaa7cc167c57982e999e7fc9a7c498 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 15 Mar 2022 16:06:02 +0800 Subject: [PATCH 006/160] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoAttachmentDTO.java | 10 +++ .../java/com/epmet/dto/MemoWorkDiaryDTO.java | 9 +++ .../epmet/dto/form/MemoWorkDiaryFormDTO.java | 25 ++++++++ .../controller/MemoWorkDiaryController.java | 16 ++--- .../java/com/epmet/dao/MemoWorkDiaryDao.java | 14 +++++ .../epmet/entity/MemoAttachmentEntity.java | 7 +++ .../epmet/service/MemoAttachmentService.java | 20 ++++++ .../epmet/service/MemoWorkDiaryService.java | 14 ++--- .../impl/MemoAttachmentServiceImpl.java | 40 ++++++++++++ .../impl/MemoWorkDiaryServiceImpl.java | 63 +++++++++++-------- .../resources/mapper/MemoWorkDiaryDao.xml | 29 +++++++++ 11 files changed, 207 insertions(+), 40 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoWorkDiaryFormDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java index d1dec98f34..5a008c81c2 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -20,16 +21,19 @@ public class MemoAttachmentDTO implements Serializable { /** * 主键 */ + @JsonIgnore private String id; /** * 客户ID */ + @JsonIgnore private String customerId; /** * REMIND_MSG.ID */ + @JsonIgnore private String remindMsgId; /** @@ -70,21 +74,25 @@ public class MemoAttachmentDTO implements Serializable { /** * 排序字段 */ + @JsonIgnore private Integer sort; /** * 删除标记 0:未删除,1:已删除 */ + @JsonIgnore private String delFlag; /** * 乐观锁 */ + @JsonIgnore private Integer revision; /** * 创建人 */ + @JsonIgnore private String createdBy; /** @@ -95,11 +103,13 @@ public class MemoAttachmentDTO implements Serializable { /** * 更新人 */ + @JsonIgnore private String updatedBy; /** * 更新时间 */ + @JsonIgnore private Date updatedTime; } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java index f72cb66a95..2bde9822fa 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java @@ -1,9 +1,11 @@ package com.epmet.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -40,6 +42,7 @@ public class MemoWorkDiaryDTO implements Serializable { /** * 提醒时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; /** @@ -60,6 +63,7 @@ public class MemoWorkDiaryDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date createdTime; /** @@ -72,4 +76,9 @@ public class MemoWorkDiaryDTO implements Serializable { */ private Date updatedTime; + /** + * 附件 + */ + private List attachmentList; + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoWorkDiaryFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoWorkDiaryFormDTO.java new file mode 100644 index 0000000000..88e3aaef4b --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoWorkDiaryFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/3/15 15:09 + */ +@NoArgsConstructor +@Data +public class MemoWorkDiaryFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 3101320969471756516L; + private String userId; + private String id; + private String readFlag = "0"; + private String content; + private String workType; + private String startTime; + private String endTime; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 43faecbcab..54e6dd3c0f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -1,7 +1,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,12 +11,11 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoWorkDiaryFormDTO; import com.epmet.service.MemoWorkDiaryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Map; - /** * 备忘录-工作日志 @@ -30,14 +31,15 @@ public class MemoWorkDiaryController { private MemoWorkDiaryService memoWorkDiaryService; @RequestMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = memoWorkDiaryService.page(params); + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody MemoWorkDiaryFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + PageData page = memoWorkDiaryService.page(formDTO); return new Result>().ok(page); } - @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) - public Result get(@PathVariable("id") String id){ - MemoWorkDiaryDTO data = memoWorkDiaryService.get(id); + @RequestMapping(method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@RequestBody MemoWorkDiaryFormDTO formDTO){ + MemoWorkDiaryDTO data = memoWorkDiaryService.get(formDTO); return new Result().ok(data); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java index dd27cdd763..9431661632 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java @@ -1,9 +1,13 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoWorkDiaryFormDTO; import com.epmet.entity.MemoWorkDiaryEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 备忘录-工作日志 * @@ -12,5 +16,15 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface MemoWorkDiaryDao extends BaseDao { + + /** + * 查询列表 + * + * @Param formDTO + * @Return {@link List< MemoWorkDiaryDTO>} + * @Author zhaoqifeng + * @Date 2022/3/15 15:31 + */ + List getPage(MemoWorkDiaryFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java index fcc0c1622d..20a7c39dfd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java @@ -1,5 +1,7 @@ package com.epmet.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; @@ -68,4 +70,9 @@ public class MemoAttachmentEntity extends BaseEpmetEntity { */ private Integer sort; + /** + * 物理删除 + */ + @TableField(fill = FieldFill.INSERT) + private String delFlag; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java index dde25470fe..fa5d0450ea 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java @@ -75,4 +75,24 @@ public interface MemoAttachmentService extends BaseService * @date 2022-03-15 */ void delete(String[] ids); + + /** + * 根据备忘录ID查询附件 + * + * @Param memoId + * @Return {@link List< MemoAttachmentDTO>} + * @Author zhaoqifeng + * @Date 2022/3/15 15:56 + */ + List getListByMemoId(String memoId); + + /** + * 根据备忘录ID删除附件 + * + * @Param memoId + * @Return + * @Author zhaoqifeng + * @Date 2022/3/15 15:57 + */ + void deleteByMemoId(String memoId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java index 29d7614886..c3754d3357 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java @@ -3,10 +3,10 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoWorkDiaryFormDTO; import com.epmet.entity.MemoWorkDiaryEntity; import java.util.List; -import java.util.Map; /** * 备忘录-工作日志 @@ -19,32 +19,32 @@ public interface MemoWorkDiaryService extends BaseService { /** * 默认分页 * - * @param params + * @param formDTO * @return PageData * @author generator * @date 2022-03-15 */ - PageData page(Map params); + PageData page(MemoWorkDiaryFormDTO formDTO); /** * 默认查询 * - * @param params + * @param formDTO * @return java.util.List * @author generator * @date 2022-03-15 */ - List list(Map params); + List list(MemoWorkDiaryFormDTO formDTO); /** * 单条查询 * - * @param id + * @param formDTO * @return MemoWorkDiaryDTO * @author generator * @date 2022-03-15 */ - MemoWorkDiaryDTO get(String id); + MemoWorkDiaryDTO get(MemoWorkDiaryFormDTO formDTO); /** * 默认保存 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java index b670d73537..5710369dee 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -10,11 +11,13 @@ import com.epmet.dao.MemoAttachmentDao; import com.epmet.dto.MemoAttachmentDTO; import com.epmet.entity.MemoAttachmentEntity; import com.epmet.service.MemoAttachmentService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -80,4 +83,41 @@ public class MemoAttachmentServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2022/3/15 15:56 + */ + @Override + public List getListByMemoId(String memoId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MemoAttachmentEntity::getRemindMsgId, memoId); + wrapper.orderByAsc(MemoAttachmentEntity::getSort); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return ConvertUtils.sourceToTarget(list, MemoAttachmentDTO.class); + } + + /** + * 根据备忘录ID删除附件 + * + * @param memoId + * @Param memoId + * @Return + * @Author zhaoqifeng + * @Date 2022/3/15 15:57 + */ + @Override + public void deleteByMemoId(String memoId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MemoAttachmentEntity::getRemindMsgId, memoId); + baseDao.delete(wrapper); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java index f4be3dfd27..3ea93d5724 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java @@ -1,22 +1,25 @@ package com.epmet.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.MemoWorkDiaryDao; +import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoWorkDiaryFormDTO; import com.epmet.entity.MemoWorkDiaryEntity; +import com.epmet.service.MemoAttachmentService; +import com.epmet.service.MemoAttrService; import com.epmet.service.MemoWorkDiaryService; -import org.apache.commons.lang3.StringUtils; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Arrays; import java.util.List; -import java.util.Map; /** * 备忘录-工作日志 @@ -27,36 +30,44 @@ import java.util.Map; @Service public class MemoWorkDiaryServiceImpl extends BaseServiceImpl implements MemoWorkDiaryService { + @Resource + private MemoAttrService memoAttrService; + @Resource + private MemoAttachmentService memoAttachmentService; @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, MemoWorkDiaryDTO.class); + public PageData page(MemoWorkDiaryFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPage(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); } @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); + public List list(MemoWorkDiaryFormDTO formDTO) { + List list = baseDao.getPage(formDTO); - return ConvertUtils.sourceToTarget(entityList, MemoWorkDiaryDTO.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; + return list; } @Override - public MemoWorkDiaryDTO get(String id) { - MemoWorkDiaryEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, MemoWorkDiaryDTO.class); + public MemoWorkDiaryDTO get(MemoWorkDiaryFormDTO formDTO) { + MemoWorkDiaryEntity entity = baseDao.selectById(formDTO.getId()); + MemoWorkDiaryDTO dto = ConvertUtils.sourceToTarget(entity, MemoWorkDiaryDTO.class); + //获取提醒时间 + MemoAttrDTO memoAttr = memoAttrService.get(formDTO.getId()); + if (null != memoAttr && null != dto) { + dto.setRemindTime(memoAttr.getRemindTime()); + } + //获取附件列表 + //更新阅读状态 + if (NumConstant.ONE_STR.equals(formDTO.getReadFlag())) { + MemoAttrDTO memoAttrDTO = new MemoAttrDTO(); + memoAttrDTO.setId(formDTO.getId()); + memoAttrDTO.setReadFlag(NumConstant.ONE); + memoAttrService.update(memoAttrDTO); + } + return dto; } @Override diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml index b563021ce0..08b7db4af6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml @@ -5,4 +5,33 @@ + + + \ No newline at end of file From 0012cbbb930e71d23a8ebd309b82c5c59a4a993f Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 16:08:47 +0800 Subject: [PATCH 007/160] =?UTF-8?q?customer=5Fgrid=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0abandon=5Fflag=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/db/migration/V0.0.13__abandon_grid.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql new file mode 100644 index 0000000000..1822215609 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql @@ -0,0 +1,3 @@ +alter table customer_grid +add column ABANDON_FLAG TINYINT(1) default '0' +comment '弃用:1;正常使用:0' after SYNC_FLAG; \ No newline at end of file From c40df4938eeb0200dd960d51001f45abe5f43a6a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:11:59 +0800 Subject: [PATCH 008/160] =?UTF-8?q?=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoAttachmentDTO.java | 2 +- .../dto/form/AddMemoDifficultyFromDTO.java | 68 +++++++++++++++++++ .../controller/MemoDifficultyController.java | 14 ++-- .../epmet/entity/MemoAttachmentEntity.java | 2 +- .../epmet/service/MemoDifficultyService.java | 5 +- .../impl/MemoDifficultyServiceImpl.java | 47 ++++++++++++- 6 files changed, 126 insertions(+), 12 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java index 5a008c81c2..623da6c057 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java @@ -31,7 +31,7 @@ public class MemoAttachmentDTO implements Serializable { private String customerId; /** - * REMIND_MSG.ID + * REMIND_MSG.ID 业务(工作日志、难点堵点、人员关怀)表Id */ @JsonIgnore private String remindMsgId; diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java new file mode 100644 index 0000000000..e74bc8f461 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java @@ -0,0 +1,68 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.epmet.dto.MemoAttachmentDTO; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class AddMemoDifficultyFromDTO implements Serializable { + + private static final long serialVersionUID = 1L; + public interface AddMemoDifficulty extends CustomerClientShowGroup {} + + /** + * id + */ + private String id; + + /** + * 内容 + */ + @NotBlank(message = "难点堵点内容不能为空", groups = { AddMemoDifficulty.class }) + @Length(max = 500, message = "难点堵点内容最长为50个字", groups = { AddMemoDifficulty.class }) + private String content; + + /** + * 解决方式 + */ + private String resolveWay; + + /** + * 备注 + */ + private String remark; + + /** + * 计划执行时间 + */ + private Date scheduledTime; + + /** + * 提醒时间 + */ + private Date remindTime; + + /** + * 附件集合 + */ + private List attachmentList; + + //token中客户ID + private String customerId; + //token中用户Id + private String userId; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index c932841cf8..342c50d8f2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -1,7 +1,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,6 +11,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.service.MemoDifficultyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,18 +46,17 @@ public class MemoDifficultyController { @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody MemoDifficultyDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + public Result save(@LoginUser TokenDto tokenDTO, @RequestBody AddMemoDifficultyFromDTO dto){ + ValidatorUtils.validateEntity(dto, AddMemoDifficultyFromDTO.AddMemoDifficulty.class); + dto.setCustomerId(tokenDTO.getCustomerId()); + dto.setUserId(tokenDTO.getUserId()); memoDifficultyService.save(dto); return new Result(); } @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody MemoDifficultyDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + public Result update(@RequestBody AddMemoDifficultyFromDTO dto){ memoDifficultyService.update(dto); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java index 20a7c39dfd..10dc7ba536 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java @@ -26,7 +26,7 @@ public class MemoAttachmentEntity extends BaseEpmetEntity { private String customerId; /** - * REMIND_MSG.ID + * REMIND_MSG.ID 业务(工作日志、难点堵点、人员关怀)表Id */ private String remindMsgId; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java index 00a825fb23..77cf4282e8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.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.MemoDifficultyDTO; +import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.entity.MemoDifficultyEntity; import java.util.List; @@ -54,7 +55,7 @@ public interface MemoDifficultyService extends BaseService * @author generator * @date 2022-03-15 */ - void save(MemoDifficultyDTO dto); + void save(AddMemoDifficultyFromDTO dto); /** * 默认更新 @@ -64,7 +65,7 @@ public interface MemoDifficultyService extends BaseService * @author generator * @date 2022-03-15 */ - void update(MemoDifficultyDTO dto); + void update(AddMemoDifficultyFromDTO dto); /** * 批量删除 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 4c40dfc3b1..8586c096c7 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -7,10 +7,19 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.MemoDifficultyDao; +import com.epmet.dto.MemoAttachmentDTO; +import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.entity.MemoAttachmentEntity; +import com.epmet.entity.MemoAttrEntity; import com.epmet.entity.MemoDifficultyEntity; +import com.epmet.service.MemoAttachmentService; +import com.epmet.service.MemoAttrService; import com.epmet.service.MemoDifficultyService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,6 +35,10 @@ import java.util.Map; */ @Service public class MemoDifficultyServiceImpl extends BaseServiceImpl implements MemoDifficultyService { + @Autowired + private MemoAttrService memoAttrService; + @Autowired + private MemoAttachmentService memoAttachmentService; @Override @@ -61,16 +74,46 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); + list.forEach(l->l.setRemindMsgId(entity.getId())); + memoAttachmentService.insertBatch(list); + } } @Override @Transactional(rollbackFor = Exception.class) - public void update(MemoDifficultyDTO dto) { + public void update(AddMemoDifficultyFromDTO dto) { + //1.更新难点堵点主表数据 MemoDifficultyEntity entity = ConvertUtils.sourceToTarget(dto, MemoDifficultyEntity.class); updateById(entity); + //2.附件表数据全删全增 + memoAttachmentService.deleteByMemoId(dto.getId()); + if(CollectionUtils.isNotEmpty(dto.getAttachmentList())){ + List list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); + list.forEach(l->l.setRemindMsgId(entity.getId())); + memoAttachmentService.insertBatch(list); + } + //3.判断更新提醒记录表提醒时间 + if(null != dto.getRemindTime()){ + MemoAttrDTO memoAttr = new MemoAttrDTO(); + memoAttr.setId(dto.getId()); + memoAttr.setRemindTime(dto.getRemindTime()); + memoAttrService.update(memoAttr); + } } @Override From a24c07fe4cca9d72360c3fd2a33967304c10822e Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 16:16:32 +0800 Subject: [PATCH 009/160] =?UTF-8?q?/resi/mine/mygrid/allgridsg=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E7=AB=AF=E7=94=A8=E6=88=B7=E8=AE=BF=E9=97=AE=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E7=BD=91=E6=A0=BC=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-org-server/src/main/resources/mapper/CustomerGridDao.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 357c8cebdc..535fa0d3f0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -338,6 +338,7 @@ WHERE cg.del_flag = '0' AND ca.del_flag = '0' AND cg.SYNC_FLAG='1' + and cg.ABANDON_FLAG='0' AND cg.id IN #{id} From 1f9dd227e5306ac9d8bd8851a6b382cc5e101175 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:18:09 +0800 Subject: [PATCH 010/160] .. --- .../src/main/java/com/epmet/dto/MemoConcernDTO.java | 2 +- .../src/main/java/com/epmet/entity/MemoConcernEntity.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 500e28d53e..2068008383 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -40,7 +40,7 @@ public class MemoConcernDTO implements Serializable { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index f897debb03..59a2770876 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -38,7 +38,7 @@ public class MemoConcernEntity extends BaseEpmetEntity { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 From 27110a1bb24b319453bd40435723f19ae1dd7223 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 16:29:33 +0800 Subject: [PATCH 011/160] =?UTF-8?q?/resi/guide/stranger/marketcontactinfo?= =?UTF-8?q?=E5=8E=BB=E5=85=B6=E4=BB=96=E7=BD=91=E6=A0=BC=E7=9C=8B=E7=9C=8B?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0ABANDON=5FFLAG=3D'0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/CustomerGridDao.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 535fa0d3f0..d5fed50249 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -458,6 +458,7 @@ WHERE grid.del_flag = 0 and grid.SYNC_FLAG='1' + and grid.ABANDON_FLAG='0' AND grid.area_code LIKE CONCAT(#{areaCode},'%') @@ -498,6 +499,7 @@ WHERE a.del_flag = 0 and a.SYNC_FLAG='1' + and a.ABANDON_FLAG='0' AND a.customer_id = #{customerId} ) AS c ORDER BY CONVERT ( gridName USING gbk ) ASC From b1bb631860c31e147e564cc1cc7d5322350348fa Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 16:37:06 +0800 Subject: [PATCH 012/160] =?UTF-8?q?resi/guide/stranger/publiclocationgridl?= =?UTF-8?q?ist=E9=99=8C=E7=94=9F=E4=BA=BA=E9=80=89=E6=8B=A9=E7=BD=91?= =?UTF-8?q?=E6=A0=BC+=E5=8E=BB=E5=85=B6=E4=BB=96=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E7=9C=8B=E7=9C=8B=EF=BC=8C=E6=B7=BB=E5=8A=A0ABANDON=5FFLAG=3D'?= =?UTF-8?q?0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/controller/StrangerResiGuideController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java index d2e021b4d0..1ffeff276d 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java +++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java @@ -131,7 +131,7 @@ public class StrangerResiGuideController { /** * @param * @Author sun - * @Description 单客户-陌生访客根据自动定位获取附近网格数据 + * @Description 单客户-陌生访客根据自动定位获取附近网格数据 陌生人选网格+去其他网格看看 **/ @PostMapping("publiclocationgridlist") Result> publicLocationGridList(@RequestBody PublicCustomerGridListFormDTO formDTO){ From 7a3c88a495d9ee89d31d7b4e8d0f6908d5ff58c4 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:40:50 +0800 Subject: [PATCH 013/160] .. --- .../java/com/epmet/dto/MemoDifficultyDTO.java | 2 ++ .../dto/form/MemoDifficultyDetailFromDTO.java | 34 +++++++++++++++++++ .../controller/MemoDifficultyController.java | 6 ++++ .../epmet/service/MemoDifficultyService.java | 8 +++++ .../impl/MemoDifficultyServiceImpl.java | 12 +++++++ 5 files changed, 62 insertions(+) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyDetailFromDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java index 6b3008fa42..59500dd922 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java @@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -82,4 +83,5 @@ public class MemoDifficultyDTO implements Serializable { */ private Date updatedTime; + private List attachmentList; } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyDetailFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyDetailFromDTO.java new file mode 100644 index 0000000000..6866de9bf7 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyDetailFromDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + + +/** + * 备忘录-难点读点 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-15 + */ +@Data +public class MemoDifficultyDetailFromDTO implements Serializable { + + private static final long serialVersionUID = 1L; + public interface Detail extends CustomerClientShowGroup {} + + /** + * id + */ + @NotBlank(message = "难点堵点Id不能为空", groups = { Detail.class }) + private String id; + /** + * 阅读标记1 已读;0未读 + */ + @NotNull(message = "阅读标记不能为空", groups = { Detail.class }) + private Integer readFlag; + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 342c50d8f2..7329f514e5 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.service.MemoDifficultyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -69,6 +70,11 @@ public class MemoDifficultyController { return new Result(); } + @PostMapping("detail") + public Result detail(@RequestBody MemoDifficultyDetailFromDTO fromDTO){ + return new Result().ok(memoDifficultyService.detail(fromDTO)); + } + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java index 77cf4282e8..d91ecf1b4a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.entity.MemoDifficultyEntity; import java.util.List; @@ -76,4 +77,11 @@ public interface MemoDifficultyService extends BaseService * @date 2022-03-15 */ void delete(String[] ids); + + /** + * 详情接口 + * @author generator + * @date 2022-03-15 + */ + MemoDifficultyDTO detail(MemoDifficultyDetailFromDTO fromDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 8586c096c7..78db39353f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -11,6 +11,7 @@ import com.epmet.dto.MemoAttachmentDTO; import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.entity.MemoAttachmentEntity; import com.epmet.entity.MemoAttrEntity; import com.epmet.entity.MemoDifficultyEntity; @@ -123,4 +124,15 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl attachmentList = memoAttachmentService.getListByMemoId(fromDTO.getId()); + resultDTO.setAttachmentList(attachmentList); + return resultDTO; + } + } \ No newline at end of file From f52ab1b8d5506cf61fd6fc5fc780bc7493917640 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 15 Mar 2022 16:51:55 +0800 Subject: [PATCH 014/160] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=201.?= =?UTF-8?q?=E5=A4=87=E5=BF=98=E5=BD=95-=E4=BA=BA=E5=91=98=E5=85=B3?= =?UTF-8?q?=E6=80=80=E3=80=81=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9=E3=80=81?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97=E7=9A=84word=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoConcernDTO.java | 2 +- .../gov-project/gov-project-server/pom.xml | 12 ++++ .../controller/MemoConcernController.java | 61 ++++++++++++++++++ .../controller/MemoDifficultyController.java | 48 ++++++++++++++ .../controller/MemoWorkDiaryController.java | 39 +++++++++++ .../com/epmet/entity/MemoConcernEntity.java | 2 +- .../memo_concern_export_template.docx | Bin 0 -> 11862 bytes .../memo_difficulty_export_template.docx | Bin 0 -> 12172 bytes .../memo_work_diary_export_template.docx | Bin 0 -> 11587 bytes 9 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 500e28d53e..2068008383 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -40,7 +40,7 @@ public class MemoConcernDTO implements Serializable { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 88e598b596..8604647c05 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -148,6 +148,18 @@ true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + doc + docx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index 39d1beb1d4..bf3df91094 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -1,7 +1,12 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; +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.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +14,16 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoConcernDTO; +import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoConcernService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URL; import java.util.Map; @@ -67,6 +78,56 @@ public class MemoConcernController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_concern_export_template.docx"); + + MemoConcernDTO data = memoConcernService.get(id); + + if (data == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到id为" + id + "的关怀项目", "未找到该关怀项目"); + } + + Map map = BeanUtil.beanToMap(data); + + // 创建时间 + if (data.getCreatedTime() != null) { + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + } else { + map.put("createTime", ""); + } + + // 预计关怀时间 + if (data.getScheduledTime() != null) { + String scheduledTimeStr = DateUtils.format(data.getScheduledTime(), "yyyy年MM月dd日 HH:mm"); + map.put("scheduledTime", scheduledTimeStr); + } else { + map.put("scheduledTime", ""); + } + + //状态 + map.put("statusName", "0".equals(data.getStatus()) ? "未完成" : "已完成"); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=人员关怀导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index c932841cf8..012059e342 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -1,7 +1,12 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; +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.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +14,16 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoDifficultyService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.net.URL; import java.util.Map; @@ -67,6 +78,43 @@ public class MemoDifficultyController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_difficulty_export_template.docx"); + + MemoDifficultyDTO data = memoDifficultyService.get(id); + + if (data == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到id为" + id + "的难点堵点项", "未找到该难点堵点项"); + } + + Map map = BeanUtil.beanToMap(data); + + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + + String scheduledTimeStr = DateUtils.format(data.getScheduledTime(), "yyyy年MM月dd日 HH:mm"); + map.put("scheduledTime", scheduledTimeStr); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 43faecbcab..2692fdf195 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -1,7 +1,10 @@ package com.epmet.controller; +import cn.afterturn.easypoi.word.WordExportUtil; +import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -10,10 +13,19 @@ import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.service.MemoWorkDiaryService; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** @@ -67,6 +79,33 @@ public class MemoWorkDiaryController { return new Result(); } + @PostMapping("/{id}/exportWord") + public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { + URL resource = this.getClass().getClassLoader().getResource("templates/memo_work_diary_export_template.docx"); + MemoWorkDiaryDTO data = memoWorkDiaryService.get(id); + + Map map = BeanUtil.beanToMap(data); + String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); + map.put("createTime", createTimeStr); + + XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + String filePath = resource.getFile(); + String suffix = filePath.substring(filePath.lastIndexOf(".")); + + response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + + ServletOutputStream fos = null; + try { + fos = response.getOutputStream(); + doc.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index f897debb03..59a2770876 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -38,7 +38,7 @@ public class MemoConcernEntity extends BaseEpmetEntity { /** * 关怀对象电话 */ - private String phnoe; + private String phone; /** * 关怀对象地址 diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx new file mode 100644 index 0000000000000000000000000000000000000000..07d3c0e1f9a016758be051c68b97ef7f0e334b78 GIT binary patch literal 11862 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 C_znR8 literal 0 HcmV?d00001 diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx b/epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx new file mode 100644 index 0000000000000000000000000000000000000000..2e58a313b6d0892062df3bd710f47026337cc965 GIT binary patch literal 11587 zcma)iWmKHY(k`yS-EEKn3GNo$ogl&82Z9AB!QEYgTX1)RySr24?vR|lv%|N~ zS+{@8%zCGu?&|05uIlP41!+hq1hB^zAh+@A@%yg^5BgzbW2j(fV{6Z#020FlJ%IZu zHce#^uLKSTrUn59hWbx2eOud?&em3GQNzFvMpWP9xEo}}qo6cjg;#Q@NLwm3625jK z@m1G~7>kui-gRZdv=U`4hwgL{rtkVsCu&CUVu4WdOKrWSkf}jg>#sMC&cZnCiL7ZD z%;-1)M_AQOGU@4ks_^gwtQka>?T#BWJ$=wZ$m(Rt8HnDW3uA1DqGv5$a%yx`>cwqb4p;m zi8J0^&$uOpIFg*!J>Y~h6XGi$1B^R+BUmZqRF!IxvU^t8_^jTI>{ws+_NCuO350E2 zzr|=4T_3dE_M3Fsmd&a^Q57U~vZYxkE;56g-p?;2(K+gzrT5XM6@ph9#3(ir`^K*& zjF0H>V^uCE6!rN?k>uQ^#|%z(*lzkp!t~wdoW-XhMmq3*@ZwS*3#U$z)aKH0 zRJKZa$sM?v+4UJZM%Y8Ks{4Sv%L%0p!kltAD;$($&Ue(gR(xypXldq>iiicjbI)uvWAI(Fl@{LeG_@_elr(^EMR!Z?VUZ%*eQ z)aLP8XBsBo;t2!$J-;CC#wBQj3#3#7lVfuNkE-yy0i_D@Mks++@R?X8DD#{5h~96t z^H6tH{U+0O(tT=E>dUCO9H{kuTraK}TX}4xrIdoBX+omSVsh|0y#m))y`$IJ4sYsD z2_D({cRKODfazUy+rQ!*M7d=_+FJ96`QZLH#b}KrrxRO-XsH{u%zt4Z(1qesjG^C2g z-`+KXEpS>Quw5#szl-ws9*jU9_Cn$bN4CaJ0M4qZ#hO=l&Y>TY2Xh$YCDL|0gU>h& z_cgvFUy#HyMH7)*!tpSyexiVy4DrvM+-2`4285g)|wU3-z74_KqeU75>y~F~m zbYxglgL7V&rM%7*J`B96Ca;PWYkaa;o86JGq)gez?&~&KIj^xZnE*HhM)suEV=0jE zlRB-FGvW&rvGmd-)fdjdI=F8H2`>Yj7fCj91iCKo$mDK?Q_lmgG6lMtR0DN_ zUPMO!CJZ%&_tZ_ zLfM+WBZV|(ITfX>@ut$tv)Gu^*etk{`20L9{k$oG=SqPDQRuwEte-BQN07@wdy1=w z_t<&Y7PV8FHRCVEtjCP3p|k2D0i*CRwSB30T9bfn zy6-N_nM7y4wVEc6GUJ0MSJE)}llqsfBRb=-^M1{9FZ1;lqnnUzR45VfZcdadzq`q}Xnp*cBC$*`Rx|;Y5f5;B5Z0qJI%t=1pZ@uD{B(U)WJ%hDG3 z$1oG_7X&D9jrlzeW70%g!I$64PT&`;K_AJy(DwiXM&)Rujt)x*W|Y_OULBEp^V{x` z<4LlOQZ&-1sXTK~EWq9EAkF5LQ&OVFgODP@gRsLvq z-y_<^2Nsg7MR%c#w=Yh%98HRrUEk*?@TShw*5~cMMXV(+{pJ?vJA7C61!F}7x||UD z1y-#(rbyn9Yvo*rVtJy`VZQ<5KyBs4c}hsv#nytR`L zdg^h{j-`aIJcOF&IE3Yd!8|0kSuk=3lbC>HGdLnUY#S?zHtam@Z#|WB5Y==m>e!kN zja>wTerPuI302O9L8;vY(qHIT)X7c1^`LWwa76dXHdg@HUl%w6rJF0X*sTj1k~hLA zEBl3Ir!Z{*uyADAd@rV>F>M#GJQGB09bA`wVND0tv08uH?RmAKpZP|Hq@{h-$S>d#}NZf<3DKnsDDgZ zf}G=9PqZG04C6`vH_9phm}OLxGleM@cQ8kMH+IHP?y@E+K^lcR8#X*8>`}ca5g-WN z9>@_7;=d-39mJ^-=miu!U-5@yFR(e1D66yP_&f)87R9XI$#tPN?ZoXGjD8?r_HKoN zBb9^NlU;LSfB!pz6z5J*d+o!p_1fTcqDkg~3BmQ(p-uyXrLQ{Xp*3(@Z$`mXnHRV> z>oT|*V@~K0z+h_=657kac8jKqJRW-QeML{IAcQo57q?!HISV^p2M-UUs}Gm6BsayR zM7Jp9{;Ngxo0i9`%qCkm>kL|ZVW-0_amNS~W#=F47SwJWv%DNKI19hdGS20-^7h2| z^cLpLD|l%W%N%{r#QPE6HfQ=(@1~-e&0gL%q-U_{Eqpv`;wy%7zapLuJ1h2Eo1X4k z$q5tBMEGf9{r%dPEQn@JFWj08H5#6+4k^D->R2Z3o7Yguf%w6)uIMl*V_;+lUE9WB zo|tebY7j75ycTrDOV`TB&FbBF&X=P}wRyB3my}_#wg}cHDQg%UvCtQG`RQQ-#S8M! zL$f^5^DsmxFt8cWIqxw}`FRYqH+FC^2b%sm<*91eEOMfH>gqlCWWMW-Hl!vXlUt{- zP~x;!pllk&WUH-TCyR`Iy)%2PfVruc1|u4B(>+DFx+JXQc|~=l2fM&XX{u<4E)E%~ z5+?&R9p4mY|3Qb3D{UlMAI%tYp_hfC=5_yeJ`bi?l!@gPoVk*qsiLuUTDX|MDrq2> zBAbK}Fc!OOBY!0vYFu8HFGp&stJ3?e$z}Fi!gNu-&}7lDcykmc%uoyCsUGe)6>IiT zp$8n+?-6t7$#kLw;1f>R;`p35899aO))2{88m!MM5J;OYz31SGzbpVe>3Lr7f2}czzT|8y^Wex^r6^Fac|>Q;!FIbsTvsa4_)`UYYQgW=l8MY zWJq-=IejIcd>Z;W%h}ACzLBueJ-}GwQSz3-iz=bY=9#Y4MJFZ4+=WdX;89SxJC3#V zG%Ue}fgNr^9$e=15~rz(U<7}-*iJALq9bNp#iP2_GP0+#|jknm84$dA6R8WtC6^k{hW+8%u`p?}NmIXzb(>(QXKy6&fvYA9cWSl!4<{v6fUL35XGcp|AKs9^_&({~-^Ku@_N;mPi!54V zXQnBxAm^xUDrC03Y!1+;SZ}iZlqahWc1cI*vt&2X#UAwFq2?IL+klysH${?%gZM*~ zF_ICzfRP+Hhe=GAvFQ43-3nVWuX%G=PVSt1*%z(Ijo;K`I>n&4+=sNAAefwhxJja; z)3(?1=7xs0X-(qLOHqv%Zq;*CRe?=4k(_KHx|IAc8zT&Oj$Agw19Zb@Jy5@Ti|*a8 zLH$6>z3Kemgm0D)i?5TW1GLMKg|v3fNQ1`b2QE~1R7|DzQ!nwY@9q+GH&|pg!*^*o zh@499<{hajt;D_uUH`;2#5Hv1#|@sW3p$2Y*q|cr{+#mkA!M<4UstBk>;F?8Y)RPePg0D^vK$LR3oS5SJfU^dO|mgT*}+ zua!(qt#l=#@Lga7DZTm4mNeyRXMZF#06yjZ(DO2Tu$3Ah1tFs0opO(f`0#ZmfJ93$ zg}H<2qKzLdrC?87DKEv+(g3bgLd)Q}+}eELH(bf9fzF!u*%T)PlQri`g|*le(N{X& z2DWa7tmMK6Ek6z~XIBL->P%L6F!LmG6d;8M+y*#mWmws96R?D2L__S3QOEO8FrW_# zB95h3vn3>)$G%J7jOs2nR{FEsQ_!l-;X7&HB`j{iv^#5$_IC<0ndd5%Ow}Sj;J?~p zE>%9B;;!jPhsjt+RZV`&H?BwS;ocTBpQL4(41%;?TQW8FI^%#LNJIgGsPmr_XOhLfMO0*7>sqAN2TZe? zVNh(ku(M)H3tNcEKjV@#o_qj^mNRYZthQe59fp{$eDm4qMe*eGygIpRXGo$Lw7{Xv zG(X=CV0dsjO}f0SI$q(uSqQ_Sx*ts!@Vf3*1Cm;0aiyuP^4{%VPpU7^zaC#v0HO0Cu-** z6zPI)W^XV>I}&v#59-|1!PIPn?Ab-$9HBWVYzSq%q?X+Mm?|%`^uiZe+rCc0V5^Qr zQjjlb(3q|RdpHG?65WrpeL{J34%e{v>k+y^_xby0To_h>mZq*n!7jXLemwPQR*nTq zrZ2`{$>FYR4eV`u7xkxVzOwUIN0rl|Iz}EFTKIj#PnN)J(z;NT8Ge6Ef!82$k>_r< z!7U_|CoGdR3tx`ayR$mY{kvhm`^K+^B=7q1iv__2-u7L}bOe zFgeRg2Z;dcfp_ek*YF$?TSYeMoX)x`{VUsD4W>>wzOGn6#gCeyuwOQc>_S`_MvlAZA67%oKHa(BNAs%bqnbJ54uvn?oDh}qx<$a{@^R%l>+WvWy z3!#2_WMB?OGA-v1Pp{P%Rr`%ICLJB`oIJK;yybw7Il&|}Hgq=h z{gd7sECp{I0vG5ZmSqJkwU_cGFX?KOjTXrDV^d^>#KkTd(K5kyrVGX7g*UbBmlN}+ zvhszZdOI={KmX9BA4#?>*PMb$PLvYFI4;ZkQ@`2VH`Sa$Y?4oT8bfXQNfSj4QQ}J zLX-gz$x>!lg$xIbXWgj_ENKYDS;G`o6lIu3*WL^ua^Gm8L2hccn!pvHMK_}%3r*_{ zXS`Xi-o?iYh||6_qQK%3X5HbNRKl8OTc$M`X0(Jvtl-s*;ZPqIdUiN*aFXP}AO$qc zb41+n&60lA7IMYac=R0KThN+6NmQ0eCtg2y{<>h9#{`l0!-9FTZ{|%+(xP8I7GDP! z(X)?*XFkgY(;Z`GPNh>(GXgq^0u1Hte5euZ&3$PK&zV1rWt2RI2^5wfet_2gxWB0i5;~SXP1ZGd3AcAiG4=s3#ksZ|A!gIN@Q31dUVQ)XbJC} z__yAK%9wqSP!ewaWV0W=F=ZF)f)KwJ+(Vtm_R#l0n*u~kMKYV*biEvVp_n2*MKdl#!sS6w zWT6_r328f1iH$-p5|pIq$CCd}x{=!(<15z1qSdo9Ge*)VK;|M63*n+Xgsq+lQ@SLw z>CG4!XRBdQ0;83u6J)Ft#Gip!yqAitk`8`hoA0+y_6dN9FLW0kxr{#Lo1C{y#!-D0 zy5zbeXb4U{9+LxxoLU$foQppz3W-$}Ke0hhiETVy%F;n%)3>kEI)q0kVYNmR|DM1$ zok>i~hBjmY`NBORzcJhyuT389%@Vru3|iC2EV{hY035uUZ_lKSp4++k-1^ln+ugU2 zE49VlL?hbKxKMI)dwb$7pbhfSyH%C7S=Co%CO4wD^(?0wt4D^1D@;n6>k#XO@n{(i zwZX9ks$)o~0@DRf^(-3T&j)BYrSKA*b>0JeNG?M^FIV9}9SR;KpIr^rc6i9;SlbD8 zF}W1GQK_$yiwJ+I>0DJ1n_8%Edp@54wQ~zaj;@iy#=31XkQCpno-*)UnYWCv-m&}` zfL+>2hD;63L5&qsO)##dJ`U7Ff>ui&g$nO$_o#E27jU}c3fsGhzk+4l7fv?03G4>O z8K|e83QMNE1nW2t@ZcPWB46(#$*kQ81>-V+~@*7D-XBw>u3+|4y8Ru3j5Gi(13W)k@8k%GP!) z7-r_{bcke7m$2yto zcD||ik}EINK?=swLptM+$!OjmU29M;>0dr9V=g!5i(i7bVv=<&7Ho*oFWJzpz?!Od?Tu@|gus z)&daa8A2H=eAnKrefB|Kk~`ck5jIR%YyF-x!VQ1i;yUX9}52sjUX zV?Jv=kQa!<9`Rf=%h#;A#(K7VzV~8F$*&PuK_%!I^zJt{Z+DZH(j^nR}qz zp+-(Q_JdDNaHoy-V7vS+>GCbke@{|8o;(eIW^&Z6t)3h)m%R8#<3RsI{3rGETh83U z*!t%IGcCLw0hI6*Ire@)y#Urthr|N-s-3Z?P~glz`8g>!7LI?eQ$X!bnN4!(jOork z?ph98a#f0?d=4i*Gy6gtOKT)xm>3FHxMq)+3tGNcVfS3h4oHpMS|-D2z)z-Xi>Tj+ zW*90-$XVgrYW`-Q)+T>NvCTU9(6)4d0|7DRLDI58Jv9}ncO2yhQAYd~OPjpo9mJop zxS_C{=oV-e;-FdJ{xRFfS^UiM{+x<&grX%Vi{-Zpdy8VX$|klyWk6pox4S>5S4O6@ z_+GNBYk}!v6^8@Y!J{$Nt$vlOZb5q*Rm-+=!VHErnC#UH8S3+(_C-qqY*h7L$6na% zsCL*lbJGzhuTATS-Ys#ntdD0R{1CcvvBGsfGEdsEUh$PoJ?xa#8Y|D)Ba;a+5l%m& zw;cR}2$5dG*Tc-o!vTb^*a!_?>!Pcq$W2ZDO;Ha zJ73tjyn%Leqnouj13W0j8wbUYiwUhNn@cr2UV(Gm3y?aB-dCu3oVnd0{Yj1ea%Q#< z$T7@=90NLtnxEGcCN@9^6@3G%pZV18gk|6)BWCY$lyd;hrDkfeWs}A7RD@rqB!)M5 zLZ9sN4C%a!p#rYbC5ao0nyDd)r~m;0iLWVbbNzY#Yufw#h9xG>WnqG#q2IY=}2MJiG#cbpXEnh z3VbZNi=QwkPnUsa?(gxZ%b;3tWht$eg zux>LhRY*I3+Yj9`c_Y{VMSGE6MGfQrd()NTF@yaXY+}s@dur^~^07+IOg5IiW^Sdf z*n<*p9?0c|)v{w5ftJkGQYM0yE@H17hbXdie@V))Q>lsvfiLNDtek&bj zorSD#N*A3{s{9S}7js27>OTmMsz~!A=Y)zv1`$|Awdjv~*3`jM+fu#l`Y@pCM%;_Q z&J&>*aAdHuI$P4Dmp|c~$8YavpPxpXYs&-cFN(8&Anpv-bPr9CN~JD&Q1oq6q)?BV zmL8Yj`$Qt94C2eYQ1%_DO)Kr$a>2PZ_m~LuF(Q@yh-3W=nkd4)w9o(DcEfqbyT^OB!#H)%61R^##uqZ(N>LmE3EKx<&CKhQOTsQIvAb$5AmY+aEd#e zr;FS~a@D(hL>b13CiEEE{%QRF{ifxymgl#3`!`M<1h`zAK~gjzFGBn;(tmrzpEUc8 zwg*EnJ%d?mTH}dbN*i%TjoNe8z-|tzU#oFoX6ZIpPNuoJz?P?@KVX8tzRy_}=qNr) zoL6QYQ(>bC4R<9GhXie$X>81pu$HvvSs$pG51O{J_|~m*>A!u!D9RFHXAH_on>nC* z7EdRIJ7|R59~-j@2*6Tuo(wP z&=!`}X|y`rhhppd*du6Qn)RIPl0PjWHd>zddMzXV_x1Moebm1Z#D(zb`wtK?>>z(a z2>Sl%OMVIdGt~IcDwMbEWPH|r?BfBOeY=r!+ezc-isz#v4%6fs9-Y|jR6bSVew*~F z3R}vlznc{P^QEwB(_O@VH-}hdI~`3WA(ShI#l9x=@$~*O3!K5Bfp^l@8 zloOd)Ql4qv=Mxv+qxZlnE`M zzbOcK7xa*EJ(Lk8_u#w3Z|{zsVIj^#jmF&{Fa>>`Bd1H$)F6j;A==QFg|i1BA5k<6 zqiRs?lvan9s%JIm#`sSbj?6H{*}3B2v0E~uGUvCAuL{Yf<+5QGk)O=vn~maR7V^&z zhEyl~+|IuX%BE@`7A!$aDiL&(_gGz{DGc(ypr}k&#l_axUi)W3NGy*{2k2aKDRqYu zH5-h}t@2t_Z`aTYuV8Ar#-{C)ZY2Zey@w5i5g2B&m^L}(1=r4GLq+do7~4F)!Ndxd zRV<1IjGSxka+colSwcJCAUZ<6?>A(GTEDKmnEj$}?gXU9IZlOo(p@KQF45BE2uD=|H!DXpj&xzf_1yBTdWvlM0Ar;fxd6+E1?}5w^^G;VxUoeP%X+c$ zs$F6Ht;1$h0}l-g_<_N=T-wu~>QkRU{5N;5%J9v85|J}jj|LNfO$^U;5@>mS|tNlgIKT1RYWa4RY=p*bG6V#wzf5ZM$D*9CQ zr=^X*(fJ_z@HhIeLdU1@r)7G-;rJkf{2Tsv(cb@>G{_kJr#((u0+h)7PaWIig#UeY zKl+AW?Gb`U`G*5|s_au=@d*6Il+d3*klue^QvGAi|K6cbueN^ovICLLaLwme`bB3!k?A`{)Sur#rf~Tz+d41ANGSlvE0wG o|H>QvxlW&Ej((3?`6uvq9!WtO`ltEA0;QVpK&u0j<`MM&0B^zeumAu6 literal 0 HcmV?d00001 From 3baa8b9e5cc5cfa63d25976ab41e86aeb96c2788 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 15 Mar 2022 16:58:42 +0800 Subject: [PATCH 015/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/controller/MemoWorkDiaryController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 709c5098ff..5d3415ca29 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -87,7 +87,9 @@ public class MemoWorkDiaryController { public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { URL resource = this.getClass().getClassLoader().getResource("templates/memo_work_diary_export_template.docx"); - MemoWorkDiaryDTO data = memoWorkDiaryService.get(id); + MemoWorkDiaryFormDTO form = new MemoWorkDiaryFormDTO(); + form.setId(id); + MemoWorkDiaryDTO data = memoWorkDiaryService.get(form); Map map = BeanUtil.beanToMap(data); String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); From 2e7e9dc04a4b1d54f78b2fdf4fcd03e479c1cd20 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 17:00:48 +0800 Subject: [PATCH 016/160] =?UTF-8?q?=E5=AD=98=E5=9C=A8=E5=85=9A=E5=91=98?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=EF=BC=8C=E5=AD=98=E5=9C=A8=E8=AE=AE=E9=A2=98?= =?UTF-8?q?=E8=A1=A8=E5=86=B3=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/feign/GovIssueOpenFeignClient.java | 9 +++++++ .../GovIssueOpenFeignClientFallBack.java | 5 ++++ .../com/epmet/controller/IssueController.java | 11 +++++++++ .../src/main/java/com/epmet/dao/IssueDao.java | 16 +++++++++++++ .../java/com/epmet/service/IssueService.java | 8 +++++++ .../epmet/service/impl/IssueServiceImpl.java | 21 ++++++++++++++++ .../src/main/resources/mapper/IssueDao.xml | 19 +++++++++++++++ .../feign/ResiPartyMemberOpenFeignClient.java | 9 +++++++ ...esiPartyMemberOpenFeignClientFallback.java | 5 ++++ .../PartymemberConfirmManualController.java | 11 +++++++++ .../dao/PartymemberConfirmManualDao.java | 11 ++++++++- .../PartymemberConfirmManualService.java | 8 +++++++ .../PartymemberConfirmManualServiceImpl.java | 16 +++++++++++++ .../PartymemberConfirmManualDao.xml | 24 +++++++------------ 14 files changed, 157 insertions(+), 16 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 5ebed6c49e..da23d0701f 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -376,4 +376,13 @@ public interface GovIssueOpenFeignClient { */ @PostMapping("/gov/issue/issueprojectcategorydict/categoryMap/{customerId}") Result> getCategoryMap(@PathVariable("customerId") String customerId); + + /** + * Desc: 查询网格下是否存在审核中的,表决中的议题 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:40 下午 + */ + @PostMapping("audit-reset") + Result issueAuditReset(@RequestParam("gridId")String gridId); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index ae87c2cd6b..20b827a9ad 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -319,4 +319,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> getCategoryMap(String customerId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryMap", customerId); } + + @Override + public Result issueAuditReset(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "issueAuditReset", gridId); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index 55f1348b44..ec49c3bb81 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -322,5 +322,16 @@ public class IssueController { return new Result>().ok(issueService.getProjectCountByGrid(formDTO)); } + /** + * Desc: 查询网格下是否存在审核中的,表决中的议题 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:40 下午 + */ + @PostMapping("audit-reset") + public Result issueAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(issueService.issueAuditReset(gridId)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java index 0a82cb5530..1c5ae213ee 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java @@ -292,4 +292,20 @@ public interface IssueDao extends BaseDao { List selectCategoryNameByIssueList(List issueIds,@Param("customerId")String customerId); + /** + * Desc: 查询网格中表决中的议题个数 + * @param gridId + * @author zxc + * @date 2022/3/15 4:44 下午 + */ + Integer selectVotingIssue(@Param("gridId")String gridId); + + /** + * Desc: 查询网格中审核中的议题个数 + * @param gridId + * @author zxc + * @date 2022/3/15 4:44 下午 + */ + Integer selectAuditIssue(@Param("gridId")String gridId); + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index 01e16471da..1c8bd6c376 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -378,4 +378,12 @@ public interface IssueService extends BaseService { */ List getProjectCountByGrid(ProjectDistributionAnalysisFormDTO formDTO); + /** + * Desc: 查询网格下是否存在审核中的,表决中的议题 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:40 下午 + */ + Boolean issueAuditReset(String gridId); + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 70e8528491..fd4f54a866 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -1744,5 +1744,26 @@ public class IssueServiceImpl extends BaseServiceImpl imp return result; } + /** + * Desc: 查询网格下是否存在审核中的,表决中的议题 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:40 下午 + */ + @Override + public Boolean issueAuditReset(String gridId) { + // 表决中的议题个数 + Integer votingCount = baseDao.selectVotingIssue(gridId); + if (votingCount.compareTo(NumConstant.ZERO) != NumConstant.ZERO){ + return true; + } + // 审核中的议题个数 + Integer auditCount = baseDao.selectAuditIssue(gridId); + if (auditCount.compareTo(NumConstant.ZERO) != NumConstant.ZERO){ + return true; + } + return false; + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 3273fb243e..361e368d9f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -750,4 +750,23 @@ LEFT JOIN issue_project_category_dict cd ON (cd.CATEGORY_CODE = t1.categoryCode AND cd.DEL_FLAG = '0' AND cd.CUSTOMER_ID = #{customerId}) + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java index 0f320cf9be..a0321d2ffc 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java @@ -105,4 +105,13 @@ public interface ResiPartyMemberOpenFeignClient { @PostMapping(value = "/resi/partymember/partymemberinfo/getpartymemberinfobycustomerid") Result> getPartyMemberInfoByCustomerId(@RequestParam("customerId")String customerId); + /** + * Desc: 查询网格下是否存在党员审核 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:19 下午 + */ + @PostMapping("/resi/partymember/partymemberconfirmmanual/audit-reset") + Result partyMemberAuditReset(@RequestParam("gridId")String gridId); + } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index 953d5ca326..f26daa7faf 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -69,4 +69,9 @@ public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOp public Result> getPartyMemberInfoByCustomerId(String customerId) { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "getPartyMemberInfoByCustomerId", customerId); } + + @Override + public Result partyMemberAuditReset(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "partyMemberAuditReset", gridId); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java index e776590957..e429743d52 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java @@ -91,4 +91,15 @@ public class PartymemberConfirmManualController { ExcelUtils.exportExcelToTarget(response, null, list, PartymemberConfirmManualExcel.class); } + /** + * Desc: 查询网格下是否存在党员审核 true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 4:19 下午 + */ + @PostMapping("audit-reset") + public Result partyMemberAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(partymemberConfirmManualService.partyMemberAuditReset(gridId)); + } + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java index 4834e28601..badef14208 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java @@ -20,6 +20,7 @@ package com.epmet.modules.partymember.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partymember.entity.PartymemberConfirmManualEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 党员认证人工审核表 人工审核时要展示自动审核的结果,同事允许前台去修改党员认证信息表的数据 @@ -29,5 +30,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface PartymemberConfirmManualDao extends BaseDao { - + + /** + * Desc: 查询网格下存在党员审核个数 + * @param gridId + * @author zxc + * @date 2022/3/15 4:24 下午 + */ + Integer partyMemberAuditReset(@Param("gridId")String gridId); + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberConfirmManualService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberConfirmManualService.java index d3e02c1df2..76e4e612c0 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberConfirmManualService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberConfirmManualService.java @@ -100,4 +100,12 @@ public interface PartymemberConfirmManualService extends BaseService - - - - - - - - - - - - - - - + + \ No newline at end of file From dbe98fab02eccf041b5ffdddadd7dc67275a4f90 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 15 Mar 2022 17:09:52 +0800 Subject: [PATCH 017/160] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/constant/MemoConstant.java | 12 +++ .../controller/MemoWorkDiaryController.java | 7 +- .../impl/MemoWorkDiaryServiceImpl.java | 75 +++++++++++++++++-- 3 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/MemoConstant.java diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/MemoConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/MemoConstant.java new file mode 100644 index 0000000000..b8d5c841dd --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/MemoConstant.java @@ -0,0 +1,12 @@ +package com.epmet.constant; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/3/15 16:56 + */ +public interface MemoConstant { + String WORK_DIARY = "work_diary"; + String CONCERN = "concern"; + String DIFFICULTY = "difficulty"; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 5d3415ca29..73ce22ac03 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -59,18 +59,21 @@ public class MemoWorkDiaryController { @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody MemoWorkDiaryDTO dto){ + public Result save(@LoginUser TokenDto tokenDto, @RequestBody MemoWorkDiaryDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setCreatedBy(tokenDto.getUserId()); memoWorkDiaryService.save(dto); return new Result(); } @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody MemoWorkDiaryDTO dto){ + public Result update(@LoginUser TokenDto tokenDto, @RequestBody MemoWorkDiaryDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + dto.setCustomerId(tokenDto.getCustomerId()); memoWorkDiaryService.update(dto); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java index 3ea93d5724..0fed05ec70 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java @@ -4,22 +4,28 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.constant.MemoConstant; import com.epmet.dao.MemoWorkDiaryDao; +import com.epmet.dto.MemoAttachmentDTO; import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.dto.form.MemoWorkDiaryFormDTO; +import com.epmet.entity.MemoAttachmentEntity; import com.epmet.entity.MemoWorkDiaryEntity; import com.epmet.service.MemoAttachmentService; import com.epmet.service.MemoAttrService; import com.epmet.service.MemoWorkDiaryService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * 备忘录-工作日志 @@ -46,7 +52,6 @@ public class MemoWorkDiaryServiceImpl extends BaseServiceImpl list(MemoWorkDiaryFormDTO formDTO) { List list = baseDao.getPage(formDTO); - return list; } @@ -54,12 +59,16 @@ public class MemoWorkDiaryServiceImpl extends BaseServiceImpl attachmentList = memoAttachmentService.getListByMemoId(formDTO.getId()); + dto.setAttachmentList(attachmentList); } - //获取附件列表 //更新阅读状态 if (NumConstant.ONE_STR.equals(formDTO.getReadFlag())) { MemoAttrDTO memoAttrDTO = new MemoAttrDTO(); @@ -75,6 +84,28 @@ public class MemoWorkDiaryServiceImpl extends BaseServiceImpl list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(entity.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); + memoAttachmentService.insertBatch(list); + } } @Override @@ -82,13 +113,43 @@ public class MemoWorkDiaryServiceImpl extends BaseServiceImpl list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(dto.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); + memoAttachmentService.insertBatch(list); + } } @Override @Transactional(rollbackFor = Exception.class) public void delete(String[] ids) { // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); + List list = Arrays.asList(ids); + baseDao.deleteBatchIds(list); + memoAttrService.delete(ids); + list.forEach(id -> { + //删除附件 + memoAttachmentService.deleteByMemoId(id); + }); } } \ No newline at end of file From 60eb478f57668e1e7b8c4430a3d7d1103ca8a86e Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 17:11:16 +0800 Subject: [PATCH 018/160] =?UTF-8?q?/gov/voice/article/agencygridlist=20?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E5=A3=B0=E9=9F=B3=E5=8F=AF=E9=80=89=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/CustomerAgencyServiceImpl.java | 2 ++ .../src/main/resources/mapper/CustomerGridDao.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index db8174b51d..209d684745 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -728,6 +728,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl gridList = customerGridDao.selectAgencyGridList(agencyEntity.getId()); returnDTO.setGridList(gridList); //递归查询当前组织的下级组织以及每个下级组织对应的网格列表 @@ -762,6 +763,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl subAgencyList = baseDao.selectAllSubAgency(subAgencyPids); if (subAgencyList.size() > NumConstant.ZERO) { for (ArticleGridResultDTO sub : subAgencyList) { + //未隐藏的网格 List gridList = customerGridDao.selectAgencyGridList(sub.getAgencyId()); sub.setGridList(gridList); List subAgency = getGridList(sub.getPids() + ":" + sub.getAgencyId()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index d5fed50249..1bd13058c8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -408,6 +408,7 @@ grid_name AS "gridName" FROM customer_grid WHERE del_flag = '0' + and ABANDON_FLAG='0' AND pid = #{agencyId} @@ -429,6 +430,7 @@ WHERE cg.del_flag = '0' AND ca.del_flag = '0' + and cg.ABANDON_FLAG='0' AND cg.pid = #{agencyId} From d51f66be47975fb3cb53ff680afc3bcbe558926d Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 17:15:42 +0800 Subject: [PATCH 019/160] =?UTF-8?q?=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/MemoDifficultyFormDTO.java | 47 +++++++++++++++++++ .../controller/MemoDifficultyController.java | 6 ++- .../java/com/epmet/dao/MemoDifficultyDao.java | 12 ++++- .../epmet/service/MemoDifficultyService.java | 3 +- .../impl/MemoDifficultyServiceImpl.java | 15 +++--- .../resources/mapper/MemoDifficultyDao.xml | 34 +++++++++++++- 6 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java new file mode 100644 index 0000000000..c46be3103f --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java @@ -0,0 +1,47 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description 难点堵点列表 + * @Author sun + */ +@NoArgsConstructor +@Data +public class MemoDifficultyFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 3101320969471756516L; + + /** + * 内容摘要 + */ + private String content; + /** + * 起始预计处理时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String scheduledStartTime; + /** + * 终止预计处理时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String scheduledEndTime; + /** + * 起始创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String startTime; + /** + * 终止创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String endTime; + + //token中用户Id + private String userId; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index cb8e6441ed..e3f855b8e5 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -19,6 +19,7 @@ import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.dto.form.MemoDifficultyDetailFromDTO; +import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.service.MemoDifficultyService; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; @@ -45,8 +46,9 @@ public class MemoDifficultyController { private MemoDifficultyService memoDifficultyService; @RequestMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = memoDifficultyService.page(params); + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody MemoDifficultyFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + PageData page = memoDifficultyService.page(formDTO); return new Result>().ok(page); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java index 8449129bbd..a2955f6297 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java @@ -1,9 +1,14 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.MemoDifficultyDTO; +import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.entity.MemoDifficultyEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 备忘录-难点读点 * @@ -12,5 +17,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface MemoDifficultyDao extends BaseDao { - + + /** + * 难点堵点查询列表 + * @Author sun + */ + List getPage(MemoDifficultyFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java index d91ecf1b4a..dcce6fd28c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.entity.MemoDifficultyEntity; @@ -26,7 +27,7 @@ public interface MemoDifficultyService extends BaseService * @author generator * @date 2022-03-15 */ - PageData page(Map params); + PageData page(MemoDifficultyFormDTO formDTO); /** * 默认查询 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 78db39353f..7b1ed9f24d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -1,7 +1,6 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.page.PageData; @@ -11,6 +10,7 @@ import com.epmet.dto.MemoAttachmentDTO; import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; +import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.entity.MemoAttachmentEntity; import com.epmet.entity.MemoAttrEntity; @@ -18,6 +18,8 @@ import com.epmet.entity.MemoDifficultyEntity; import com.epmet.service.MemoAttachmentService; import com.epmet.service.MemoAttrService; import com.epmet.service.MemoDifficultyService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,12 +45,11 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, MemoDifficultyDTO.class); + public PageData page(MemoDifficultyFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPage(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); } @Override diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml index 42e16012e4..fcdae4b4ac 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml @@ -3,6 +3,38 @@ - + \ No newline at end of file From c6c4a896fb5b7721d647bbd5216dce8f063c3100 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 17:18:21 +0800 Subject: [PATCH 020/160] =?UTF-8?q?/article/publishagencylist=20=E5=85=9A?= =?UTF-8?q?=E5=BB=BA=E5=A3=B0=E9=9F=B3=E5=8F=AF=E9=80=89=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/CustomerAgencyServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index 209d684745..31bb56ca18 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -828,11 +828,13 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl agencyDeptList = customerDepartmentDao.selectAgencyDeptMsgList(agencyEntity.getId()); returnDTO.setAgencyDeptList(agencyDeptList); //当前机关下网格列表 + // 未隐藏的网格 List agencyGridList = customerGridDao.selectAgencyGridMsgList(agencyEntity.getId()); returnDTO.setAgencyGridList(agencyGridList); } else if (gridParty) { //4.2:查询人员在当前机关下参与的网格列表 //查询当前组织下的网格列表 + //未隐藏的网格 List gridList = customerGridDao.selectAgencyGridList(agencyEntity.getId()); //查询该工作人员在该客户下参与的网格列表 CustomerStaffGridDTO staffGridDTO = new CustomerStaffGridDTO(); From 334230fa31080caf471a035e7cbb5ee7e0a0a4bc Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 15 Mar 2022 17:18:25 +0800 Subject: [PATCH 021/160] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1=E8=BF=9B=E5=85=A5?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=20=E6=B7=BB=E5=8A=A0=E5=BC=83=E7=94=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redis/common/bean/GridInfoCache.java | 5 +++ .../service/impl/ResiMineGridServiceImpl.java | 38 ++++++++++++++++--- .../epmet/dto/form/LatestGridInfoFormDTO.java | 5 +++ .../epmet/feign/EpmetUserOpenFeignClient.java | 3 +- .../EpmetUserOpenFeignClientFallback.java | 2 +- .../controller/GridLatestController.java | 4 +- .../java/com/epmet/dao/GridLatestDao.java | 2 +- .../com/epmet/service/GridLatestService.java | 2 +- .../service/impl/GridLatestServiceImpl.java | 3 +- .../main/resources/mapper/GridLatestDao.xml | 2 +- 10 files changed, 50 insertions(+), 16 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java index cf90afee5b..63114e5794 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/GridInfoCache.java @@ -113,4 +113,9 @@ public class GridInfoCache implements Serializable { * 坐标区域 */ private String coordinates; + + /** + * 弃用标记 + */ + private Integer abandonFlag; } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index de5e28a457..f77f59e033 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; @@ -116,26 +118,50 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { JSONObject toResult = JSON.parseObject(data); Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); if (null != toResult.get("code")) { - mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + mapToResult.setCode((Integer) toResult.get("code")); } if (!mapToResult.success()) { logger.error(String.format("根据appId查询客户信息失败,对应appId->" + formDTO.getAppId())); throw new RenException(mapToResult.getMsg()); } - Object PublicCustomerResultDTO = mapToResult.getData(); - JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); - Map map = (Map) json.get("customer"); + Object publicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(publicCustomerResultDTO.toString()); + Map map = (Map) json.get("customer"); PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); //2.调用epmet-user服务,根据客户Id和用户Id查询最后一次访问记录 + LatestGridInfoResultDTO result = null; formDTO.setCustomerId(customer.getId()); - Result userResult = epmetUserOpenFeignClient.latestGridInfo(formDTO); + Result> userResult = epmetUserOpenFeignClient.latestGridList(formDTO); if (!userResult.success()) { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); + return result; } - return userResult.getData(); + for (LatestGridInfoResultDTO girdInfo : userResult.getData()) { + try { + GridInfoCache grid = CustomerOrgRedis.getGridInfo(girdInfo.getGridId()); + if (grid == null) { + logger.warn("latestGridInfo get gridInfo return null,gridId:{}", girdInfo.getGridId()); + continue; + } else { + Integer abandonFlag = grid.getAbandonFlag(); + if (NumConstant.ONE == abandonFlag) { + logger.warn("latestGridInfo gridId:{} has abandoned", girdInfo.getGridId()); + continue; + } else { + result = girdInfo; + //匹配到了未弃用的网格 跳出 + break; + } + } + } catch (Exception e) { + logger.warn("latestGridInfo get gridInfo exception,gridId:{}", girdInfo.getGridId()); + } + } + + return result; } /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java index 3df970fc0c..7f32733eb8 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java @@ -35,4 +35,9 @@ public class LatestGridInfoFormDTO implements Serializable { */ private String userId; + /** + * 前n个 默认10 + */ + private Integer top = 10; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 415f818abe..849850e01a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -1,7 +1,6 @@ package com.epmet.feign; -import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; @@ -260,7 +259,7 @@ public interface EpmetUserOpenFeignClient { * @Date 2020/8/3 **/ @PostMapping(value = "epmetuser/gridlatest/latestgridinfo") - Result latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO); + Result> latestGridList(@RequestBody LatestGridInfoFormDTO formDTO); /** * @Description 查询工作人员的信息 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 0f9f38ea5c..f614e8ea46 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -180,7 +180,7 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien } @Override - public Result latestGridInfo(LatestGridInfoFormDTO formDTO) { + public Result> latestGridList(LatestGridInfoFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "latestGridInfo", formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java index c470d793a9..f1faa9a29a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java @@ -139,8 +139,8 @@ public class GridLatestController { * @Date 2020/8/3 **/ @PostMapping("latestgridinfo") - public Result latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){ - return new Result().ok(gridLatestService.latestGridInfo(formDTO)); + public Result> latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){ + return new Result>().ok(gridLatestService.latestGridInfo(formDTO)); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java index 979ac85a5f..7e28dc8154 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java @@ -73,5 +73,5 @@ public interface GridLatestDao extends BaseDao { * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Date 2020/8/3 **/ - LatestGridInfoResultDTO selectLatestGridInfo(LatestGridInfoFormDTO formDTO); + List selectLatestGridInfo(LatestGridInfoFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java index e9ff239d1e..4716ff8bcd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java @@ -139,5 +139,5 @@ public interface GridLatestService extends BaseService { * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Date 2020/8/3 **/ - LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO); + List latestGridInfo(LatestGridInfoFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java index 58f9383078..ad2f79f266 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java @@ -36,7 +36,6 @@ import com.epmet.dto.result.CustomerUser4PointResultDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.entity.GridLatestEntity; -import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.redis.UserBaseInfoRedis; import com.epmet.service.GridLatestService; import com.epmet.util.ModuleConstant; @@ -205,7 +204,7 @@ public class GridLatestServiceImpl extends BaseServiceImpl latestGridInfo(LatestGridInfoFormDTO formDTO) { return baseDao.selectLatestGridInfo(formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml index 59f1be1af7..b06b1a8069 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml @@ -109,6 +109,6 @@ AND gl.CUSTOMER_USER_ID = #{userId} ORDER BY gl.LATEST_TIME DESC - LIMIT 1 + LIMIT #{top} From f97f4e15e0b259ac92e6bc09f88324c04d70888d Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 17:19:41 +0800 Subject: [PATCH 022/160] =?UTF-8?q?=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=B7=B2=E8=AF=BB=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MemoDifficultyServiceImpl.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 7b1ed9f24d..3d2f510fe9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -3,6 +3,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.MemoDifficultyDao; @@ -20,6 +21,7 @@ import com.epmet.service.MemoAttrService; import com.epmet.service.MemoDifficultyService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import oracle.sql.NUMBER; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,7 +49,7 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl page(MemoDifficultyFormDTO formDTO) { PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); - List list = baseDao.getPage(formDTO); + List list = baseDao.getPage(formDTO); PageInfo pageInfo = new PageInfo<>(list); return new PageData<>(list, pageInfo.getTotal()); } @@ -59,8 +61,8 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -89,9 +91,9 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); - list.forEach(l->l.setRemindMsgId(entity.getId())); + list.forEach(l -> l.setRemindMsgId(entity.getId())); memoAttachmentService.insertBatch(list); } } @@ -104,13 +106,13 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); - list.forEach(l->l.setRemindMsgId(entity.getId())); + list.forEach(l -> l.setRemindMsgId(entity.getId())); memoAttachmentService.insertBatch(list); } //3.判断更新提醒记录表提醒时间 - if(null != dto.getRemindTime()){ + if (null != dto.getRemindTime()) { MemoAttrDTO memoAttr = new MemoAttrDTO(); memoAttr.setId(dto.getId()); memoAttr.setRemindTime(dto.getRemindTime()); @@ -127,6 +129,10 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl Date: Tue, 15 Mar 2022 17:25:07 +0800 Subject: [PATCH 023/160] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98=E6=89=80=E5=9C=A8?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E4=B8=AD=20=E5=8A=A0=E5=85=A5=E5=BC=83?= =?UTF-8?q?=E7=94=A8=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-org-server/src/main/resources/mapper/CustomerGridDao.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 1bd13058c8..ff6ef61026 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -175,6 +175,7 @@ WHERE cg.del_flag = '0' AND csg.del_flag = '0' + AND cg.ABANDON_FLAG='0' AND csg.user_id = #{userId} ORDER BY cg.GRID_NAME ASC From 1622660bb0b766a8b25602694fd4f31b08d2fa31 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 17:30:29 +0800 Subject: [PATCH 024/160] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B5=81=E8=BD=AC/go?= =?UTF-8?q?v/project/trace/departmentstafflist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/CustomerAgencyServiceImpl.java | 1 + .../gov-org-server/src/main/resources/mapper/CustomerGridDao.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index 31bb56ca18..07bfa4eaf0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -250,6 +250,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl gridList = customerGridDao.selectGridList(canTick.getAgencyId()); List gridStaffs = new ArrayList<>(); if (null != gridList && gridList.size() > NumConstant.ZERO) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 1bd13058c8..2e8fdb58bf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -372,6 +372,7 @@ grid_name AS "gridName" FROM customer_grid WHERE del_flag = '0' + and ABANDON_FLAG='0' AND pid = #{agencyId} ORDER BY created_time DESC From 4dffdf1ded30193b7b8f05be343b5400f78f6265 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 15 Mar 2022 17:33:37 +0800 Subject: [PATCH 025/160] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=85=B3=E6=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoConcernDTO.java | 11 +- .../epmet/dto/form/MemoConcernFormDTO.java | 29 ++++ .../controller/MemoConcernController.java | 23 ++-- .../java/com/epmet/dao/MemoConcernDao.java | 14 +- .../com/epmet/service/MemoConcernService.java | 8 +- .../service/impl/MemoConcernServiceImpl.java | 127 ++++++++++++++---- .../main/resources/mapper/MemoConcernDao.xml | 45 +++++++ 7 files changed, 216 insertions(+), 41 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 2068008383..230887b58a 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -1,9 +1,11 @@ package com.epmet.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -55,11 +57,13 @@ public class MemoConcernDTO implements Serializable { /** * 计划执行时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; /** * 实际执行时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date actualTime; /** @@ -70,6 +74,7 @@ public class MemoConcernDTO implements Serializable { /** * 提醒时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; /** @@ -90,6 +95,7 @@ public class MemoConcernDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date createdTime; /** @@ -101,5 +107,8 @@ public class MemoConcernDTO implements Serializable { * 更新时间 */ private Date updatedTime; - + /** + * 附件 + */ + private List attachmentList; } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java new file mode 100644 index 0000000000..eb0e50978e --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/3/15 17:11 + */ +@NoArgsConstructor +@Data +public class MemoConcernFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -2355555089163762829L; + private String userId; + private String id; + private String readFlag = "0"; + private String content; + private String concernType; + private String resiName; + private String status; + private String startTime; + private String endTime; + private String scheduledStartTime; + private String scheduledEndTime; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index bf3df91094..043aa9712c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -2,10 +2,12 @@ package com.epmet.controller; import cn.afterturn.easypoi.word.WordExportUtil; import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -14,7 +16,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoConcernDTO; -import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.MemoConcernFormDTO; import com.epmet.service.MemoConcernService; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; @@ -41,31 +43,36 @@ public class MemoConcernController { private MemoConcernService memoConcernService; @RequestMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = memoConcernService.page(params); + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + PageData page = memoConcernService.page(formDTO); return new Result>().ok(page); } - @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) - public Result get(@PathVariable("id") String id){ - MemoConcernDTO data = memoConcernService.get(id); + @RequestMapping(method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@RequestBody MemoConcernFormDTO formDTO){ + MemoConcernDTO data = memoConcernService.get(formDTO); return new Result().ok(data); } @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody MemoConcernDTO dto){ + public Result save(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setCreatedBy(tokenDto.getUserId()); memoConcernService.save(dto); return new Result(); } @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody MemoConcernDTO dto){ + public Result update(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + dto.setCustomerId(tokenDto.getCustomerId()); memoConcernService.update(dto); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java index 723dbe4444..99ad577c44 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java @@ -1,9 +1,13 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.MemoConcernDTO; +import com.epmet.dto.form.MemoConcernFormDTO; import com.epmet.entity.MemoConcernEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 备忘录-人文关怀 * @@ -12,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface MemoConcernDao extends BaseDao { - + /** + * 查询列表 + * + * @Param formDTO + * @Return {@link List < MemoConcernDTO>} + * @Author zhaoqifeng + * @Date 2022/3/15 15:31 + */ + List getPage(MemoConcernFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java index f18784a348..a7397794a2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java @@ -3,10 +3,10 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.MemoConcernDTO; +import com.epmet.dto.form.MemoConcernFormDTO; import com.epmet.entity.MemoConcernEntity; import java.util.List; -import java.util.Map; /** * 备忘录-人文关怀 @@ -24,7 +24,7 @@ public interface MemoConcernService extends BaseService { * @author generator * @date 2022-03-15 */ - PageData page(Map params); + PageData page(MemoConcernFormDTO formDTO); /** * 默认查询 @@ -34,7 +34,7 @@ public interface MemoConcernService extends BaseService { * @author generator * @date 2022-03-15 */ - List list(Map params); + List list(MemoConcernFormDTO formDTO); /** * 单条查询 @@ -44,7 +44,7 @@ public interface MemoConcernService extends BaseService { * @author generator * @date 2022-03-15 */ - MemoConcernDTO get(String id); + MemoConcernDTO get(MemoConcernFormDTO formDTO); /** * 默认保存 diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java index 060ede4916..c017703d7a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java @@ -1,22 +1,31 @@ package com.epmet.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.constant.MemoConstant; import com.epmet.dao.MemoConcernDao; +import com.epmet.dto.MemoAttachmentDTO; +import com.epmet.dto.MemoAttrDTO; import com.epmet.dto.MemoConcernDTO; +import com.epmet.dto.form.MemoConcernFormDTO; +import com.epmet.entity.MemoAttachmentEntity; import com.epmet.entity.MemoConcernEntity; +import com.epmet.service.MemoAttachmentService; +import com.epmet.service.MemoAttrService; import com.epmet.service.MemoConcernService; -import org.apache.commons.lang3.StringUtils; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Arrays; import java.util.List; -import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * 备忘录-人文关怀 @@ -27,36 +36,47 @@ import java.util.Map; @Service public class MemoConcernServiceImpl extends BaseServiceImpl implements MemoConcernService { + @Resource + private MemoAttrService memoAttrService; + @Resource + private MemoAttachmentService memoAttachmentService; @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, MemoConcernDTO.class); + public PageData page(MemoConcernFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPage(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); } @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, MemoConcernDTO.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; + public List list(MemoConcernFormDTO formDTO) { + List list = baseDao.getPage(formDTO); + return list; } @Override - public MemoConcernDTO get(String id) { - MemoConcernEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, MemoConcernDTO.class); + public MemoConcernDTO get(MemoConcernFormDTO formDTO) { + MemoConcernEntity entity = baseDao.selectById(formDTO.getId()); + MemoConcernDTO dto = ConvertUtils.sourceToTarget(entity, MemoConcernDTO.class); + if (null != dto) { + //获取提醒时间 + MemoAttrDTO memoAttr = memoAttrService.get(formDTO.getId()); + if (null != memoAttr) { + dto.setRemindTime(memoAttr.getRemindTime()); + } + //获取附件列表 + List attachmentList = memoAttachmentService.getListByMemoId(formDTO.getId()); + dto.setAttachmentList(attachmentList); + } + //更新阅读状态 + if (NumConstant.ONE_STR.equals(formDTO.getReadFlag())) { + MemoAttrDTO memoAttrDTO = new MemoAttrDTO(); + memoAttrDTO.setId(formDTO.getId()); + memoAttrDTO.setReadFlag(NumConstant.ONE); + memoAttrService.update(memoAttrDTO); + } + return dto; } @Override @@ -64,6 +84,28 @@ public class MemoConcernServiceImpl extends BaseServiceImpl list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(entity.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); + memoAttachmentService.insertBatch(list); + } } @Override @@ -71,6 +113,30 @@ public class MemoConcernServiceImpl extends BaseServiceImpl list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(dto.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); + memoAttachmentService.insertBatch(list); + } } @Override @@ -78,6 +144,13 @@ public class MemoConcernServiceImpl extends BaseServiceImpl list = Arrays.asList(ids); + baseDao.deleteBatchIds(list); + memoAttrService.delete(ids); + list.forEach(id -> { + //删除附件 + memoAttachmentService.deleteByMemoId(id); + }); } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml index fa6d92a22a..3018238747 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml @@ -3,6 +3,51 @@ + + \ No newline at end of file From 0328a84ad8b8eaa91d83596bb61fbcc501dca211 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 17:35:32 +0800 Subject: [PATCH 026/160] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/IcPartyServiceCenterServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java index 208dde8fc2..41b5b7dca6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java @@ -148,7 +148,8 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl Date: Tue, 15 Mar 2022 17:36:05 +0800 Subject: [PATCH 027/160] =?UTF-8?q?/gov/org/grid/gridlist=E5=B9=B3?= =?UTF-8?q?=E9=98=B4=E9=80=9A=E8=AE=AF=E5=BD=95-=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/CustomerGridDao.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index e43632a140..05895fd04c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -289,6 +289,7 @@ CUSTOMER_GRID WHERE DEL_FLAG = '0' + and ABANDON_FLAG='0' AND PID = #{agencyId} @@ -308,6 +309,7 @@ CUSTOMER_GRID DEL_FLAG = '0' + AND ABANDON_FLAG='0' AND PID = #{agencyId} ORDER BY CREATED_TIME DESC From 960bd501db35329edd29e6755ad84769a43a2a72 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 15 Mar 2022 17:43:36 +0800 Subject: [PATCH 028/160] =?UTF-8?q?/gov/mine/agency/getmygrids=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E7=AB=AF=E8=8E=B7=E5=8F=96=E6=88=91=E7=9A=84=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-org-server/src/main/resources/mapper/CustomerGridDao.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 05895fd04c..e805ace544 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -174,6 +174,7 @@ INNER JOIN customer_staff_grid csg ON cg.id = csg.grid_id WHERE cg.del_flag = '0' + AND cg.ABANDON_FLAG='0' AND csg.del_flag = '0' AND cg.ABANDON_FLAG='0' AND csg.user_id = #{userId} From c91570f3cbf5ed7673db8654cdc3dedbe6ab3280 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 15 Mar 2022 17:46:20 +0800 Subject: [PATCH 029/160] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=85=B3=E6=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/controller/MemoConcernController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index 043aa9712c..c9eef29e73 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -88,8 +88,9 @@ public class MemoConcernController { @PostMapping("/{id}/exportWord") public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { URL resource = this.getClass().getClassLoader().getResource("templates/memo_concern_export_template.docx"); - - MemoConcernDTO data = memoConcernService.get(id); + MemoConcernFormDTO formDTO = new MemoConcernFormDTO(); + formDTO.setId(id); + MemoConcernDTO data = memoConcernService.get(formDTO); if (data == null) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到id为" + id + "的关怀项目", "未找到该关怀项目"); From b6bf05b02b42970bd9c09b17d63b3403dc8fa7ce Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 17:48:03 +0800 Subject: [PATCH 030/160] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E4=B8=8B=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AD=98=E5=9C=A8=E5=A4=84=E7=90=86=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E7=BE=A4=E4=BC=97=E7=9B=B4=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/ProjectController.java | 11 +++++++++++ .../src/main/java/com/epmet/dao/ProjectDao.java | 9 +++++++++ .../java/com/epmet/service/ProjectService.java | 9 +++++++++ .../epmet/service/impl/ProjectServiceImpl.java | 15 +++++++++++++++ .../src/main/resources/mapper/ProjectDao.xml | 10 ++++++++++ 5 files changed, 54 insertions(+) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 077b06e22d..7aa1ae7501 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -325,4 +325,15 @@ public class ProjectController { projectService.projectWorkMinutesJob(dto); return new Result(); } + + /** + * Desc: 查询群众直报是否存在处理中的,true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 5:05 下午 + */ + @PostMapping("audit-reset") + public Result eventAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(projectService.eventAuditReset(gridId)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index b5a3e5107e..650d598e1b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -283,4 +283,13 @@ public interface ProjectDao extends BaseDao { * @Date 2022/1/12 17:05 */ List getProjectListForWorkMinutes(@Param("customerId")String customerId, @Param("projectId")String projectId, @Param("status")String status); + + /** + * Desc: 查询网格下群众直报处理中的个数 + * @param gridId + * @author zxc + * @date 2022/3/15 5:09 下午 + */ + Integer selectEventStatus(@Param("gridId") String gridId); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 4757113bc7..139fba06c8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -376,4 +376,13 @@ public interface ProjectService extends BaseService { * @Date 2022/1/4 16:27 */ PageData approvaledList(ApprovaledListFromDTO formDTO); + + /** + * Desc: 查询群众直报是否存在处理中的,true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 5:05 下午 + */ + Boolean eventAuditReset(String gridId); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 6a591d9e8d..336095f215 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -3134,6 +3134,21 @@ public class ProjectServiceImpl extends BaseServiceImpl + + + \ No newline at end of file From 453d8d3de29c7a4c1e425eb6e65c9f3828cb5c43 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 19:56:41 +0800 Subject: [PATCH 031/160] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E4=B8=8B=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AD=98=E5=9C=A8=E5=A4=84=E7=90=86=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E7=BE=A4=E4=BC=97=E7=9B=B4=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/feign/GovProjectOpenFeignClient.java | 14 ++++++++++---- .../GovProjectOpenFeignClientFallback.java | 5 +++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 9f58bbb306..6fcfe0827c 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -9,10 +9,7 @@ import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovProjectOpenFeignClientFallbackFactory; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -152,4 +149,13 @@ public interface GovProjectOpenFeignClient { **/ @PostMapping("gov/project/resievent/autoAudit") Result autoAudit(); + + /** + * Desc: 查询群众直报是否存在处理中的,true:存在,false:不存在 + * @param gridId + * @author zxc + * @date 2022/3/15 5:05 下午 + */ + @PostMapping("audit-reset") + Result eventAuditReset(@RequestParam("gridId")String gridId); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 58da1494d8..e3b6e51677 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -154,4 +154,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result autoAudit() { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "autoAudit"); } + + @Override + public Result eventAuditReset(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "eventAuditReset",gridId); + } } From d2c61a77cabf1e0964a288df381f37d26c4956f9 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 15 Mar 2022 20:13:28 +0800 Subject: [PATCH 032/160] =?UTF-8?q?=E7=83=AD=E5=BF=83=E5=B1=85=E6=B0=91?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/WarnAndPartyAuditResultDTO.java | 31 +++++++++++++++++++ .../feign/ResiPartyMemberOpenFeignClient.java | 3 +- ...esiPartyMemberOpenFeignClientFallback.java | 3 +- .../PartymemberConfirmManualController.java | 5 +-- .../dao/PartymemberConfirmManualDao.java | 8 +++++ .../PartymemberConfirmManualService.java | 3 +- .../PartymemberConfirmManualServiceImpl.java | 14 +++++++-- .../PartymemberConfirmManualDao.xml | 10 ++++++ 8 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/WarnAndPartyAuditResultDTO.java diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/WarnAndPartyAuditResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/WarnAndPartyAuditResultDTO.java new file mode 100644 index 0000000000..1b900df696 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/WarnAndPartyAuditResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.resi.partymember.dto.partymember.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/15 8:00 下午 + * @DESC + */ +@Data +public class WarnAndPartyAuditResultDTO implements Serializable { + + private static final long serialVersionUID = 6971169159679812283L; + + /** + * 是否存在党员审核 + */ + private Boolean partyMemberStatus; + + /** + * 是否存在热心居民审核 + */ + private Boolean warnStatus; + + public WarnAndPartyAuditResultDTO() { + this.partyMemberStatus = false; + this.warnStatus = false; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java index a0321d2ffc..debdc9afea 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/ResiPartyMemberOpenFeignClient.java @@ -8,6 +8,7 @@ import com.epmet.resi.partymember.dto.partymember.form.DelPartyMemberBaseInfoFor import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; import com.epmet.resi.partymember.dto.partymember.result.PartyMemberBaseInfoDetailResultDTO; import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResultDTO; import com.epmet.resi.partymember.feign.fallback.ResiPartyMemberOpenFeignClientFallback; import com.epmet.resi.partymember.feign.fallback.ResiPartyMemberOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @@ -112,6 +113,6 @@ public interface ResiPartyMemberOpenFeignClient { * @date 2022/3/15 4:19 下午 */ @PostMapping("/resi/partymember/partymemberconfirmmanual/audit-reset") - Result partyMemberAuditReset(@RequestParam("gridId")String gridId); + Result partyMemberAuditReset(@RequestParam("gridId")String gridId); } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index f26daa7faf..f7fe137a60 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -9,6 +9,7 @@ import com.epmet.resi.partymember.dto.partymember.form.DelPartyMemberBaseInfoFor import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; import com.epmet.resi.partymember.dto.partymember.result.PartyMemberBaseInfoDetailResultDTO; import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; +import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResultDTO; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import org.springframework.stereotype.Component; @@ -71,7 +72,7 @@ public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOp } @Override - public Result partyMemberAuditReset(String gridId) { + public Result partyMemberAuditReset(String gridId) { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "partyMemberAuditReset", gridId); } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java index e429743d52..ec0ae2d39c 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberConfirmManualController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.partymember.excel.PartymemberConfirmManualExcel; import com.epmet.modules.partymember.service.PartymemberConfirmManualService; import com.epmet.resi.partymember.dto.partymember.PartymemberConfirmManualDTO; +import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -98,8 +99,8 @@ public class PartymemberConfirmManualController { * @date 2022/3/15 4:19 下午 */ @PostMapping("audit-reset") - public Result partyMemberAuditReset(@RequestParam("gridId")String gridId){ - return new Result().ok(partymemberConfirmManualService.partyMemberAuditReset(gridId)); + public Result partyMemberAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(partymemberConfirmManualService.partyMemberAuditReset(gridId)); } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java index badef14208..e3154645cf 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberConfirmManualDao.java @@ -39,4 +39,12 @@ public interface PartymemberConfirmManualDao extends BaseDao + + + \ No newline at end of file From 041ad7979f71247ad0ca46814317a3fdc33d8376 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 15 Mar 2022 21:19:39 +0800 Subject: [PATCH 033/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=E8=A7=A3=E5=86=B3ja?= =?UTF-8?q?r=E5=8C=85=E5=86=85=E6=96=87=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MemoConcernController.java | 64 ++++++++++++++++-- .../controller/MemoDifficultyController.java | 65 +++++++++++++++++-- .../controller/MemoWorkDiaryController.java | 64 ++++++++++++++++-- 3 files changed, 179 insertions(+), 14 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index c9eef29e73..aee3d541bf 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.DateUtils; @@ -18,6 +19,8 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoConcernDTO; import com.epmet.dto.form.MemoConcernFormDTO; import com.epmet.service.MemoConcernService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -25,7 +28,14 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Map; @@ -35,6 +45,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-15 */ +@Slf4j @RestController @RequestMapping("memoConcern") public class MemoConcernController { @@ -87,7 +98,7 @@ public class MemoConcernController { @PostMapping("/{id}/exportWord") public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { - URL resource = this.getClass().getClassLoader().getResource("templates/memo_concern_export_template.docx"); + String templateFilePath = loadTemplate("memo_concern_export_template.docx"); MemoConcernFormDTO formDTO = new MemoConcernFormDTO(); formDTO.setId(id); MemoConcernDTO data = memoConcernService.get(formDTO); @@ -117,10 +128,9 @@ public class MemoConcernController { //状态 map.put("statusName", "0".equals(data.getStatus()) ? "未完成" : "已完成"); - XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map); - String filePath = resource.getFile(); - String suffix = filePath.substring(filePath.lastIndexOf(".")); + String suffix = templateFilePath.substring(templateFilePath.lastIndexOf(".")); response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); @@ -137,5 +147,51 @@ public class MemoConcernController { } } + /** + * 加载模板 + * @param templateFileName + * @return + * @throws IOException + */ + private String loadTemplate(String templateFileName) throws IOException { + String homeDir = System.getProperty("user.home"); + Path templates = Paths.get(homeDir, "epmet_files", "templates"); + if (Files.notExists(templates)) { + Files.createDirectory(templates); + } + + Path templateFilePath = templates.resolve(templateFileName); + String templateFilePathStr = templateFilePath.toString(); + if (Files.exists(templateFilePath)) { + return templateFilePathStr; + } + + // 将项目中的模板拷贝至用户家目录中 + OutputStream os = null; + InputStream is = null; + try { + is = this.getClass().getClassLoader().getResourceAsStream("templates/" + templateFileName); + os = new FileOutputStream(templateFilePathStr); + IOUtils.copy(is, os); + } finally { + try { + if (is != null) { + is.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输入流出错:{}", errorMsg); + } + try { + if (os != null) { + os.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输出流出错:{}", errorMsg); + } + } + return templateFilePathStr; + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index e3f855b8e5..149d043b8d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -6,6 +6,7 @@ import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.security.dto.TokenDto; @@ -21,6 +22,8 @@ import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.service.MemoDifficultyService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -28,7 +31,14 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Map; @@ -38,6 +48,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-15 */ +@Slf4j @RestController @RequestMapping("memoDifficulty") public class MemoDifficultyController { @@ -90,8 +101,7 @@ public class MemoDifficultyController { @PostMapping("/{id}/exportWord") public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { - URL resource = this.getClass().getClassLoader().getResource("templates/memo_difficulty_export_template.docx"); - + String templateFilePath = loadTemplate("memo_difficulty_export_template.docx"); MemoDifficultyDTO data = memoDifficultyService.get(id); if (data == null) { @@ -106,10 +116,9 @@ public class MemoDifficultyController { String scheduledTimeStr = DateUtils.format(data.getScheduledTime(), "yyyy年MM月dd日 HH:mm"); map.put("scheduledTime", scheduledTimeStr); - XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map); - String filePath = resource.getFile(); - String suffix = filePath.substring(filePath.lastIndexOf(".")); + String suffix = templateFilePath.substring(templateFilePath.lastIndexOf(".")); response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); @@ -126,5 +135,51 @@ public class MemoDifficultyController { } } + /** + * 加载模板 + * @param templateFileName + * @return + * @throws IOException + */ + private String loadTemplate(String templateFileName) throws IOException { + String homeDir = System.getProperty("user.home"); + Path templates = Paths.get(homeDir, "epmet_files", "templates"); + if (Files.notExists(templates)) { + Files.createDirectory(templates); + } + + Path templateFilePath = templates.resolve(templateFileName); + String templateFilePathStr = templateFilePath.toString(); + if (Files.exists(templateFilePath)) { + return templateFilePathStr; + } + + // 将项目中的模板拷贝至用户家目录中 + OutputStream os = null; + InputStream is = null; + try { + is = this.getClass().getClassLoader().getResourceAsStream("templates/" + templateFileName); + os = new FileOutputStream(templateFilePathStr); + IOUtils.copy(is, os); + } finally { + try { + if (is != null) { + is.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输入流出错:{}", errorMsg); + } + try { + if (os != null) { + os.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输出流出错:{}", errorMsg); + } + } + return templateFilePathStr; + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 73ce22ac03..547983cf39 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -4,6 +4,7 @@ import cn.afterturn.easypoi.word.WordExportUtil; import cn.hutool.core.bean.BeanUtil; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.security.dto.TokenDto; @@ -16,6 +17,8 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.dto.form.MemoWorkDiaryFormDTO; import com.epmet.service.MemoWorkDiaryService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; @@ -24,8 +27,13 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -37,6 +45,7 @@ import java.util.Optional; * @author generator generator@elink-cn.com * @since v1.0.0 2022-03-15 */ +@Slf4j @RestController @RequestMapping("memoWorkDiary") public class MemoWorkDiaryController { @@ -88,8 +97,7 @@ public class MemoWorkDiaryController { @PostMapping("/{id}/exportWord") public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception { - URL resource = this.getClass().getClassLoader().getResource("templates/memo_work_diary_export_template.docx"); - + String templateFilePath = loadTemplate("memo_work_diary_export_template.docx"); MemoWorkDiaryFormDTO form = new MemoWorkDiaryFormDTO(); form.setId(id); MemoWorkDiaryDTO data = memoWorkDiaryService.get(form); @@ -98,10 +106,9 @@ public class MemoWorkDiaryController { String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm"); map.put("createTime", createTimeStr); - XWPFDocument doc = WordExportUtil.exportWord07(resource.getFile(), map); + XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map); - String filePath = resource.getFile(); - String suffix = filePath.substring(filePath.lastIndexOf(".")); + String suffix = templateFilePath.substring(templateFilePath.lastIndexOf(".")); response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); @@ -117,4 +124,51 @@ public class MemoWorkDiaryController { } } } + + /** + * 加载模板 + * @param templateFileName + * @return + * @throws IOException + */ + private String loadTemplate(String templateFileName) throws IOException { + String homeDir = System.getProperty("user.home"); + Path templates = Paths.get(homeDir, "epmet_files", "templates"); + if (Files.notExists(templates)) { + Files.createDirectory(templates); + } + + Path templateFilePath = templates.resolve(templateFileName); + String templateFilePathStr = templateFilePath.toString(); + if (Files.exists(templateFilePath)) { + return templateFilePathStr; + } + + // 将项目中的模板拷贝至用户家目录中 + OutputStream os = null; + InputStream is = null; + try { + is = this.getClass().getClassLoader().getResourceAsStream("templates/" + templateFileName); + os = new FileOutputStream(templateFilePathStr); + IOUtils.copy(is, os); + } finally { + try { + if (is != null) { + is.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输入流出错:{}", errorMsg); + } + try { + if (os != null) { + os.close(); + } + } catch (IOException e) { + String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e); + log.error("【导出工作日志doc】关闭输出流出错:{}", errorMsg); + } + } + return templateFilePathStr; + } } From 9df11f7bd6731dc6b74d37771e94c84f6800c3d3 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 15 Mar 2022 21:30:52 +0800 Subject: [PATCH 034/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=E8=A7=A3=E5=86=B3ja?= =?UTF-8?q?r=E5=8C=85=E5=86=85=E6=96=87=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/MemoConcernController.java | 2 +- .../java/com/epmet/controller/MemoDifficultyController.java | 2 +- .../main/java/com/epmet/controller/MemoWorkDiaryController.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index aee3d541bf..ad0826a348 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -157,7 +157,7 @@ public class MemoConcernController { String homeDir = System.getProperty("user.home"); Path templates = Paths.get(homeDir, "epmet_files", "templates"); if (Files.notExists(templates)) { - Files.createDirectory(templates); + Files.createDirectories(templates); } Path templateFilePath = templates.resolve(templateFileName); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 149d043b8d..656f319ae3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -145,7 +145,7 @@ public class MemoDifficultyController { String homeDir = System.getProperty("user.home"); Path templates = Paths.get(homeDir, "epmet_files", "templates"); if (Files.notExists(templates)) { - Files.createDirectory(templates); + Files.createDirectories(templates); } Path templateFilePath = templates.resolve(templateFileName); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 547983cf39..47eb4395c3 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -135,7 +135,7 @@ public class MemoWorkDiaryController { String homeDir = System.getProperty("user.home"); Path templates = Paths.get(homeDir, "epmet_files", "templates"); if (Files.notExists(templates)) { - Files.createDirectory(templates); + Files.createDirectories(templates); } Path templateFilePath = templates.resolve(templateFileName); From c45778bbf33ab1494157a612f3dbf17c2513e19b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 16 Mar 2022 08:52:37 +0800 Subject: [PATCH 035/160] =?UTF-8?q?grid/abandon=E5=BC=83=E7=94=A8=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/CustomerGridDTO.java | 4 + .../epmet/dto/form/AbandonGridFormDTO.java | 14 +++ .../epmet/dto/result/AbandonGridResDTO.java | 25 ++++++ epmet-module/gov-org/gov-org-server/pom.xml | 6 ++ .../com/epmet/controller/GridController.java | 12 +++ .../com/epmet/entity/CustomerGridEntity.java | 5 ++ .../epmet/service/CustomerGridService.java | 7 ++ .../service/impl/CustomerGridServiceImpl.java | 85 +++++++++++++++++-- 8 files changed, 152 insertions(+), 6 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java index 7acfd64627..78fecfca6d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java @@ -151,4 +151,8 @@ public class CustomerGridDTO implements Serializable { * 联系电话 */ private String mobile; + /** + * 弃用:1;正常使用:0 + */ + private Boolean abandonFlag; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java new file mode 100644 index 0000000000..1d1aca23e1 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java @@ -0,0 +1,14 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class AbandonGridFormDTO implements Serializable { + @NotBlank(message = "网格id不能为空",groups = AddGroup.class) + private String gridId; +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java new file mode 100644 index 0000000000..5ded7f55e2 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.result; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 废弃网格,前置条件查询返参 + */ +@AllArgsConstructor +@Data +public class AbandonGridResDTO implements Serializable { + + /** + * true:可以弃用,false:不可以弃用 + */ + private Boolean abandonFlag; + + /** + * 待办事项 + */ + private List toDoList; +} diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 777645a3c1..0331f95ce7 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -136,6 +136,12 @@ 3.0.3 compile + + com.epmet + gov-issue-client + 2.0.0 + compile + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index f7c4d8ec10..affc36fe0e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum; 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.commons.tools.validator.group.AddGroup; import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -226,4 +227,15 @@ public class GridController { ValidatorUtils.validateEntity(formDTO); return new Result>().ok(customerGridService.getGridTree(formDTO)); } + + /** + * 弃用网格 + * @param formDTO + * @return + */ + @PostMapping("abandon") + public Result abandonGrid(@RequestBody AbandonGridFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + return new Result().ok(customerGridService.abandonGrid(formDTO)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java index d6018c2a29..379d916654 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java @@ -109,4 +109,9 @@ public class CustomerGridEntity extends BaseEpmetEntity { * 联系电话 */ private String mobile; + + /** + * 弃用:1;正常使用:0 + */ + private Boolean abandonFlag; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index cac10ea123..dea04e9f16 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -374,4 +374,11 @@ public interface CustomerGridService extends BaseService { * @date 2022/1/17 3:50 下午 */ List getStaffGridList(String customerId, String orgId, String orgType); + + /** + * 弃用网格,前置条件查询 + * @param formDTO + * @return + */ + AbandonGridResDTO abandonGrid(AbandonGridFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index cd0080f548..512e050c80 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; @@ -28,6 +29,7 @@ import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; 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.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; @@ -43,10 +45,9 @@ import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerGridEntity; -import com.epmet.feign.EpmetAdminOpenFeignClient; -import com.epmet.feign.EpmetMessageOpenFeignClient; -import com.epmet.feign.EpmetUserFeignClient; -import com.epmet.feign.OperCrmOpenFeignClient; +import com.epmet.feign.*; +import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResultDTO; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; import com.epmet.util.ModuleConstant; @@ -88,10 +89,21 @@ public class CustomerGridServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -945,4 +957,65 @@ public class CustomerGridServiceImpl extends BaseServiceImpl partyMem = resiPartyMemberOpenFeignClient.partyMemberAuditReset(formDTO.getGridId()); + if (!partyMem.success() || null == partyMem.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "partyMemberAuditReset failed", "数据校验异常"); + } + //未处理的事件 + Result eventRes = govProjectOpenFeignClient.eventAuditReset(formDTO.getGridId()); + if (!eventRes.success() || null == eventRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "eventAuditReset failed", "数据校验异常"); + } + //表决中的议题 + Result issueAuditReset = govIssueOpenFeignClient.issueAuditReset(formDTO.getGridId()); + if (!issueAuditReset.success() || null == issueAuditReset.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "issueAuditReset failed", "数据校验异常"); + } + //徽章???? + AbandonGridResDTO result=new AbandonGridResDTO(true,new ArrayList<>()); + if(partyMem.getData().getPartyMemberStatus()){ + result.setAbandonFlag(false); + result.getToDoList().add("存在未审核的党员申请"); + } + if(partyMem.getData().getWarnStatus()){ + result.setAbandonFlag(false); + result.getToDoList().add("存在未审核的热心居民申请"); + } + if(eventRes.getData()){ + result.setAbandonFlag(false); + result.getToDoList().add("存在未处理的事件"); + } + if(issueAuditReset.getData()){ + result.setAbandonFlag(false); + result.getToDoList().add("存在未处理的议题"); + } + + if(!result.getAbandonFlag()){ + return result; + } + //可以弃用、处理数据 todo + // .... + // .... + + + //处理成功,隐藏网格 + LambdaUpdateWrapper updateGrid=new LambdaUpdateWrapper<>(); + updateGrid.set(CustomerGridEntity::getAbandonFlag,true); + updateGrid.eq(CustomerGridEntity::getId,formDTO.getGridId()); + baseDao.update(null,updateGrid); + return result; + } + } From 95ed4d218e015de58cc23170d5ed062467f1a4ef Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 16 Mar 2022 09:59:44 +0800 Subject: [PATCH 036/160] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/MemoDifficultyFormDTO.java | 2 +- .../controller/MemoDifficultyController.java | 3 ++- .../impl/MemoDifficultyServiceImpl.java | 24 +++++++++++++++---- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java index c46be3103f..e75f90dd8c 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java @@ -31,7 +31,7 @@ public class MemoDifficultyFormDTO extends PageFormDTO implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private String scheduledEndTime; /** - * 起始创建时间 + * 起始创建时间Y-%m-%d */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private String startTime; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 656f319ae3..9f57fe50dc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -81,7 +81,8 @@ public class MemoDifficultyController { @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody AddMemoDifficultyFromDTO dto){ + public Result update(@LoginUser TokenDto tokenDTO, @RequestBody AddMemoDifficultyFromDTO dto){ + dto.setCustomerId(tokenDTO.getCustomerId()); memoDifficultyService.update(dto); return new Result(); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 3d2f510fe9..7777b65d72 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -31,6 +31,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** * 备忘录-难点读点 @@ -84,7 +86,7 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); - list.forEach(l -> l.setRemindMsgId(entity.getId())); + AtomicInteger i = new AtomicInteger(NumConstant.ZERO); + List list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(entity.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); memoAttachmentService.insertBatch(list); } } @@ -107,8 +115,14 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl list = ConvertUtils.sourceToTarget(dto.getAttachmentList(), MemoAttachmentEntity.class); - list.forEach(l -> l.setRemindMsgId(entity.getId())); + AtomicInteger i = new AtomicInteger(NumConstant.ZERO); + List list = dto.getAttachmentList().stream().map(item -> { + MemoAttachmentEntity e = ConvertUtils.sourceToTarget(item, MemoAttachmentEntity.class); + e.setCustomerId(dto.getCustomerId()); + e.setRemindMsgId(dto.getId()); + e.setSort(i.getAndIncrement()); + return e; + }).collect(Collectors.toList()); memoAttachmentService.insertBatch(list); } //3.判断更新提醒记录表提醒时间 From 65c1b4b904164b9275cdf59c7b3b26108492bba9 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 10:02:08 +0800 Subject: [PATCH 037/160] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E4=B8=8B=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AD=98=E5=9C=A8=E6=9C=AA=E5=AE=A1=E6=A0=B8=E7=9A=84?= =?UTF-8?q?=E5=BE=BD=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/BadgeController.java | 12 ++++++++++++ .../src/main/java/com/epmet/dao/BadgeDao.java | 9 +++++++++ .../main/java/com/epmet/service/BadgeService.java | 9 +++++++++ .../com/epmet/service/impl/BadgeServiceImpl.java | 15 +++++++++++++++ .../src/main/resources/mapper/BadgeDao.xml | 10 ++++++++++ 5 files changed, 55 insertions(+) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index e25083f669..7c02a9df9d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -206,4 +206,16 @@ public class BadgeController { List users = badgeService.listUsersByBadge(customerId, badgeKey); return new Result>().ok(users); } + + /** + * Desc: 查询网格下是否存在未审核的徽章,true:是,false:否 + * @param gridId + * @author zxc + * @date 2022/3/16 9:42 上午 + */ + @PostMapping("audit-reset") + public Result badgeAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(badgeService.badgeAuditReset(gridId)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java index d2a10f7026..113ed28dee 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java @@ -204,4 +204,13 @@ public interface BadgeDao extends BaseDao { * @date 2021.08.02 10:40 */ List listUsersByBadge(@Param("customerId") String customerId, @Param("badgeKey") String badgeKey); + + /** + * Desc: 查询网格下的徽章审核个数 + * @param gridId + * @author zxc + * @date 2022/3/16 9:52 上午 + */ + Integer badgeAuditReset(@Param("gridId") String gridId); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java index fc06714fd9..4b2252b51c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java @@ -200,4 +200,13 @@ public interface BadgeService extends BaseService { * @date 2021.08.02 10:39 */ List listUsersByBadge(String customerId, String badgeKey); + + /** + * Desc: 查询网格下是否存在未审核的徽章,true:是,false:否 + * @param gridId + * @author zxc + * @date 2022/3/16 9:42 上午 + */ + Boolean badgeAuditReset(String gridId); + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java index de2f864ff0..5667c6d401 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java @@ -495,4 +495,19 @@ public class BadgeServiceImpl extends BaseServiceImpl imp public List listUsersByBadge(String customerId, String badgeKey) { return baseDao.listUsersByBadge(customerId, badgeKey); } + + /** + * Desc: 查询网格下是否存在未审核的徽章,true:是,false:否 + * @param gridId + * @author zxc + * @date 2022/3/16 9:42 上午 + */ + @Override + public Boolean badgeAuditReset(String gridId) { + Integer badgeAuditCount = baseDao.badgeAuditReset(gridId); + if (badgeAuditCount.compareTo(NumConstant.ZERO) != NumConstant.ZERO){ + return true; + } + return false; + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml index 09c84bde81..275babd61f 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml @@ -330,4 +330,14 @@ and user_base_info.DEL_FLAG = 0) + + + \ No newline at end of file From f157f5c4852ee1587be522156d884f73c7cecaca Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 16 Mar 2022 11:25:36 +0800 Subject: [PATCH 038/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E5=89=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=9A=E6=9C=AA=E5=A4=84=E7=90=86=E7=9A=84=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?+=E6=9C=AA=E5=85=B3=E9=97=AD=E7=9A=84=E8=AE=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82=E5=85=B6=E4=BB=96=E4=B8=8D=E7=AE=A1=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/result/AbandonGridResDTO.java | 10 ----- .../com/epmet/controller/GridController.java | 5 ++- .../epmet/service/CustomerGridService.java | 2 +- .../service/impl/CustomerGridServiceImpl.java | 40 ++++--------------- 4 files changed, 11 insertions(+), 46 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java index 5ded7f55e2..c09bee8db5 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java @@ -4,7 +4,6 @@ import lombok.AllArgsConstructor; import lombok.Data; import java.io.Serializable; -import java.util.List; /** * 废弃网格,前置条件查询返参 @@ -13,13 +12,4 @@ import java.util.List; @Data public class AbandonGridResDTO implements Serializable { - /** - * true:可以弃用,false:不可以弃用 - */ - private Boolean abandonFlag; - - /** - * 待办事项 - */ - private List toDoList; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index affc36fe0e..60ffda8b94 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -234,8 +234,9 @@ public class GridController { * @return */ @PostMapping("abandon") - public Result abandonGrid(@RequestBody AbandonGridFormDTO formDTO){ + public Result abandonGrid(@RequestBody AbandonGridFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, AddGroup.class); - return new Result().ok(customerGridService.abandonGrid(formDTO)); + customerGridService.abandonGrid(formDTO); + return new Result(); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index dea04e9f16..c57c5052ed 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -380,5 +380,5 @@ public interface CustomerGridService extends BaseService { * @param formDTO * @return */ - AbandonGridResDTO abandonGrid(AbandonGridFormDTO formDTO); + void abandonGrid(AbandonGridFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 512e050c80..2f5436c710 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -46,7 +46,6 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerGridEntity; import com.epmet.feign.*; -import com.epmet.resi.partymember.dto.partymember.result.WarnAndPartyAuditResultDTO; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; @@ -966,45 +965,21 @@ public class CustomerGridServiceImpl extends BaseServiceImpl partyMem = resiPartyMemberOpenFeignClient.partyMemberAuditReset(formDTO.getGridId()); - if (!partyMem.success() || null == partyMem.getData()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "partyMemberAuditReset failed", "数据校验异常"); - } + public void abandonGrid(AbandonGridFormDTO formDTO) { //未处理的事件 Result eventRes = govProjectOpenFeignClient.eventAuditReset(formDTO.getGridId()); - if (!eventRes.success() || null == eventRes.getData()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "eventAuditReset failed", "数据校验异常"); - } //表决中的议题 Result issueAuditReset = govIssueOpenFeignClient.issueAuditReset(formDTO.getGridId()); - if (!issueAuditReset.success() || null == issueAuditReset.getData()) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "issueAuditReset failed", "数据校验异常"); - } - //徽章???? - AbandonGridResDTO result=new AbandonGridResDTO(true,new ArrayList<>()); - if(partyMem.getData().getPartyMemberStatus()){ - result.setAbandonFlag(false); - result.getToDoList().add("存在未审核的党员申请"); + if (eventRes.success() || issueAuditReset.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "校验数据异常", "服务器开小差了..."); } - if(partyMem.getData().getWarnStatus()){ - result.setAbandonFlag(false); - result.getToDoList().add("存在未审核的热心居民申请"); + if (eventRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未处理的事件", "该网格存在未办结的群众直报事件,请先将事件办结后再操作"); } - if(eventRes.getData()){ - result.setAbandonFlag(false); - result.getToDoList().add("存在未处理的事件"); - } - if(issueAuditReset.getData()){ - result.setAbandonFlag(false); - result.getToDoList().add("存在未处理的议题"); + if (issueAuditReset.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未关闭的议题", "该网格存在未关闭的议题,请处理完再操作"); } - if(!result.getAbandonFlag()){ - return result; - } //可以弃用、处理数据 todo // .... // .... @@ -1015,7 +990,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl Date: Wed, 16 Mar 2022 11:27:01 +0800 Subject: [PATCH 039/160] =?UTF-8?q?=E6=BC=8F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/result/AbandonGridResDTO.java | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java deleted file mode 100644 index c09bee8db5..0000000000 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AbandonGridResDTO.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.epmet.dto.result; - -import lombok.AllArgsConstructor; -import lombok.Data; - -import java.io.Serializable; - -/** - * 废弃网格,前置条件查询返参 - */ -@AllArgsConstructor -@Data -public class AbandonGridResDTO implements Serializable { - -} From def4a20d61e1a70e9ea75febee4fb195deb6ad7b Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 11:41:14 +0800 Subject: [PATCH 040/160] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../grid/service/impl/ResiMineGridServiceImpl.java | 12 ++++++++++++ .../epmet/dto/result/LatestGridInfoResultDTO.java | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index f77f59e033..b044e1bdbb 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; @@ -15,6 +16,7 @@ import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.form.LatestGridInfoFormDTO; import com.epmet.dto.result.AllGridsByUserIdResultDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; +import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.GovOrgFeignClient; @@ -27,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -161,6 +164,15 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { } } + // 查询注册网格的弃用状态 + Result> userBaseInfo = epmetUserOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); + if (!userBaseInfo.success()){ + throw new EpmetException("查询用户基本信息失败"); + } + GridInfoCache grid = CustomerOrgRedis.getGridInfo(userBaseInfo.getData().get(NumConstant.ZERO).getRegisteredGridId()); + if (grid != null) { + result.setRegisterGridStatus(grid.getAbandonFlag().compareTo(NumConstant.ONE) == NumConstant.ZERO ? true : false); + } return result; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java index ddf04a0fe7..af656061dd 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java @@ -23,4 +23,9 @@ public class LatestGridInfoResultDTO implements Serializable { */ private String gridId; + /** + * 居民注册网格弃用状态 true:弃用,false:正常使用 + */ + private Boolean registerGridStatus = false; + } From 00ad3f117ead923c523fe9010d9e48297c930e2b Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 12:06:35 +0800 Subject: [PATCH 041/160] =?UTF-8?q?Revert=20"=E5=B1=85=E6=B0=91=E7=AB=AF?= =?UTF-8?q?=20=E8=8E=B7=E5=8F=96=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E7=BD=91=E6=A0=BC=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=8A=B6=E6=80=81=E7=9A=84=E5=88=A4=E6=96=AD?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 334230fa --- .../service/impl/ResiMineGridServiceImpl.java | 41 ++++--------------- .../epmet/dto/form/LatestGridInfoFormDTO.java | 5 --- .../epmet/feign/EpmetUserOpenFeignClient.java | 3 +- .../EpmetUserOpenFeignClientFallback.java | 2 +- .../controller/GridLatestController.java | 4 +- .../java/com/epmet/dao/GridLatestDao.java | 2 +- .../com/epmet/service/GridLatestService.java | 2 +- .../service/impl/GridLatestServiceImpl.java | 3 +- .../main/resources/mapper/GridLatestDao.xml | 2 +- 9 files changed, 18 insertions(+), 46 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index b044e1bdbb..73f40808ef 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -6,8 +6,6 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.redis.common.CustomerOrgRedis; -import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; @@ -121,50 +119,27 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { JSONObject toResult = JSON.parseObject(data); Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); if (null != toResult.get("code")) { - mapToResult.setCode((Integer) toResult.get("code")); + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); } if (!mapToResult.success()) { logger.error(String.format("根据appId查询客户信息失败,对应appId->" + formDTO.getAppId())); throw new RenException(mapToResult.getMsg()); } - Object publicCustomerResultDTO = mapToResult.getData(); - JSONObject json = JSON.parseObject(publicCustomerResultDTO.toString()); - Map map = (Map) json.get("customer"); + Object PublicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); + Map map = (Map) json.get("customer"); PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); //2.调用epmet-user服务,根据客户Id和用户Id查询最后一次访问记录 - LatestGridInfoResultDTO result = null; formDTO.setCustomerId(customer.getId()); - Result> userResult = epmetUserOpenFeignClient.latestGridList(formDTO); + Result userResult = epmetUserOpenFeignClient.latestGridInfo(formDTO); if (!userResult.success()) { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); - return result; + return null; } - - for (LatestGridInfoResultDTO girdInfo : userResult.getData()) { - try { - GridInfoCache grid = CustomerOrgRedis.getGridInfo(girdInfo.getGridId()); - if (grid == null) { - logger.warn("latestGridInfo get gridInfo return null,gridId:{}", girdInfo.getGridId()); - continue; - } else { - Integer abandonFlag = grid.getAbandonFlag(); - if (NumConstant.ONE == abandonFlag) { - logger.warn("latestGridInfo gridId:{} has abandoned", girdInfo.getGridId()); - continue; - } else { - result = girdInfo; - //匹配到了未弃用的网格 跳出 - break; - } - } - } catch (Exception e) { - logger.warn("latestGridInfo get gridInfo exception,gridId:{}", girdInfo.getGridId()); - } - } - - // 查询注册网格的弃用状态 +// 查询注册网格的弃用状态 + LatestGridInfoResultDTO result = userResult.getData(); Result> userBaseInfo = epmetUserOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); if (!userBaseInfo.success()){ throw new EpmetException("查询用户基本信息失败"); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java index 7f32733eb8..3df970fc0c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LatestGridInfoFormDTO.java @@ -35,9 +35,4 @@ public class LatestGridInfoFormDTO implements Serializable { */ private String userId; - /** - * 前n个 默认10 - */ - private Integer top = 10; - } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 849850e01a..415f818abe 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -1,6 +1,7 @@ package com.epmet.feign; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; @@ -259,7 +260,7 @@ public interface EpmetUserOpenFeignClient { * @Date 2020/8/3 **/ @PostMapping(value = "epmetuser/gridlatest/latestgridinfo") - Result> latestGridList(@RequestBody LatestGridInfoFormDTO formDTO); + Result latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO); /** * @Description 查询工作人员的信息 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index f614e8ea46..0f9f38ea5c 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -180,7 +180,7 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien } @Override - public Result> latestGridList(LatestGridInfoFormDTO formDTO) { + public Result latestGridInfo(LatestGridInfoFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "latestGridInfo", formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java index f1faa9a29a..c470d793a9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java @@ -139,8 +139,8 @@ public class GridLatestController { * @Date 2020/8/3 **/ @PostMapping("latestgridinfo") - public Result> latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){ - return new Result>().ok(gridLatestService.latestGridInfo(formDTO)); + public Result latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO){ + return new Result().ok(gridLatestService.latestGridInfo(formDTO)); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java index 7e28dc8154..979ac85a5f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridLatestDao.java @@ -73,5 +73,5 @@ public interface GridLatestDao extends BaseDao { * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Date 2020/8/3 **/ - List selectLatestGridInfo(LatestGridInfoFormDTO formDTO); + LatestGridInfoResultDTO selectLatestGridInfo(LatestGridInfoFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java index 4716ff8bcd..e9ff239d1e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java @@ -139,5 +139,5 @@ public interface GridLatestService extends BaseService { * @Description 单客户-根据客户Id和userId查询用户最后一次访问的网格 * @Date 2020/8/3 **/ - List latestGridInfo(LatestGridInfoFormDTO formDTO); + LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java index ad2f79f266..58f9383078 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java @@ -36,6 +36,7 @@ import com.epmet.dto.result.CustomerUser4PointResultDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.entity.GridLatestEntity; +import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.redis.UserBaseInfoRedis; import com.epmet.service.GridLatestService; import com.epmet.util.ModuleConstant; @@ -204,7 +205,7 @@ public class GridLatestServiceImpl extends BaseServiceImpl latestGridInfo(LatestGridInfoFormDTO formDTO) { + public LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO) { return baseDao.selectLatestGridInfo(formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml index b06b1a8069..59f1be1af7 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/GridLatestDao.xml @@ -109,6 +109,6 @@ AND gl.CUSTOMER_USER_ID = #{userId} ORDER BY gl.LATEST_TIME DESC - LIMIT #{top} + LIMIT 1 From 6aacc9fa781735204478361093ffa379582e9a84 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 12:08:24 +0800 Subject: [PATCH 042/160] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=90=8E=E8=BF=9B=E5=85=A5=E7=9A=84=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E6=92=A4=E5=9B=9E=20=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/grid/service/impl/ResiMineGridServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 73f40808ef..1ea5883b80 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -6,6 +6,8 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; @@ -138,7 +140,7 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); return null; } -// 查询注册网格的弃用状态 + // 查询注册网格的弃用状态 LatestGridInfoResultDTO result = userResult.getData(); Result> userBaseInfo = epmetUserOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); if (!userBaseInfo.success()){ @@ -146,7 +148,7 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { } GridInfoCache grid = CustomerOrgRedis.getGridInfo(userBaseInfo.getData().get(NumConstant.ZERO).getRegisteredGridId()); if (grid != null) { - result.setRegisterGridStatus(grid.getAbandonFlag().compareTo(NumConstant.ONE) == NumConstant.ZERO ? true : false); + result.setRegisterGridStatus(grid.getAbandonFlag().compareTo(NumConstant.ONE) == NumConstant.ZERO); } return result; } From f3e872ae4bff6b3808fde6dc8a4b5af68733e38d Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 12:10:12 +0800 Subject: [PATCH 043/160] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/grid/service/impl/ResiMineGridServiceImpl.java | 2 +- .../java/com/epmet/dto/result/LatestGridInfoResultDTO.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 1ea5883b80..49195ea8e0 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -148,7 +148,7 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { } GridInfoCache grid = CustomerOrgRedis.getGridInfo(userBaseInfo.getData().get(NumConstant.ZERO).getRegisteredGridId()); if (grid != null) { - result.setRegisterGridStatus(grid.getAbandonFlag().compareTo(NumConstant.ONE) == NumConstant.ZERO); + result.setRegisterGridStatus(grid.getAbandonFlag()); } return result; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java index af656061dd..1601ac09af 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java @@ -24,8 +24,8 @@ public class LatestGridInfoResultDTO implements Serializable { private String gridId; /** - * 居民注册网格弃用状态 true:弃用,false:正常使用 + * 居民注册网格弃用状态 1:弃用,0:正常使用 */ - private Boolean registerGridStatus = false; + private Integer registerGridStatus = 0; } From 83f72fce41f966faf2ce5f61960ea2ec6343c883 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 12:19:47 +0800 Subject: [PATCH 044/160] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dataaggre/entity/govorg/CustomerGridEntity.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerGridEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerGridEntity.java index c58ce50893..baac6f8c53 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerGridEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/CustomerGridEntity.java @@ -99,4 +99,9 @@ public class CustomerGridEntity extends BaseEpmetEntity { * 联系电话 */ private String mobile; + + /** + * 弃用标记 + */ + private Integer abandonFlag; } From 25e40a91a5529c4fa3d39361a9701455c5c11838 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 12:26:30 +0800 Subject: [PATCH 045/160] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java index cacdf2e849..b9c12da858 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/CustomerGridDTO.java @@ -153,4 +153,9 @@ public class CustomerGridDTO implements Serializable { * 联系电话 */ private String mobile; + + /** + * 弃用标记 + */ + private Integer abandonFlag; } From 47eb773af3ea6e6ade68faa6f7f95e5121cc9f0d Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 13:53:39 +0800 Subject: [PATCH 046/160] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=BC=83=E7=94=A8?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ResiMineGridServiceImpl.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 49195ea8e0..754a1e2e87 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -113,7 +113,21 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { @Override public LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO) { logger.info(String.format("居民端获取用户最近访问网格入参%s", JSON.toJSONString(formDTO))); - //1.调用third服务,根据appId获取客户Id + + // 查询注册网格的弃用状态 + LatestGridInfoResultDTO result = new LatestGridInfoResultDTO(); + Result> userBaseInfo = epmetUserOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); + if (!userBaseInfo.success()){ + throw new EpmetException("查询用户基本信息失败"); + } + String registeredGridId = userBaseInfo.getData().get(NumConstant.ZERO).getRegisteredGridId(); + if (StringUtils.isNotBlank(registeredGridId)){ + GridInfoCache grid = CustomerOrgRedis.getGridInfo(registeredGridId); + if (grid != null) { + result.setRegisterGridStatus(grid.getAbandonFlag()); + } + } + //1.调用third服务,根据appId获取客户Id JSONObject jsonObject = new JSONObject(); String customerMsgUrl = "https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/"; String data = HttpClientManager.getInstance().sendPostByJSON(customerMsgUrl + formDTO.getAppId(), JSON.toJSONString(jsonObject)).getData(); @@ -140,16 +154,8 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); return null; } - // 查询注册网格的弃用状态 - LatestGridInfoResultDTO result = userResult.getData(); - Result> userBaseInfo = epmetUserOpenFeignClient.queryUserBaseInfo(Arrays.asList(formDTO.getUserId())); - if (!userBaseInfo.success()){ - throw new EpmetException("查询用户基本信息失败"); - } - GridInfoCache grid = CustomerOrgRedis.getGridInfo(userBaseInfo.getData().get(NumConstant.ZERO).getRegisteredGridId()); - if (grid != null) { - result.setRegisterGridStatus(grid.getAbandonFlag()); - } + result.setGridId(userResult.getData().getGridId()); + result.setCustomerId(userResult.getData().getCustomerId()); return result; } From da3b488d2256b2775c14e0b5ec6fe0fbf651e478 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 14:10:37 +0800 Subject: [PATCH 047/160] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/grid/service/impl/ResiMineGridServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 754a1e2e87..fcd40fd3a5 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -154,8 +154,8 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); return null; } - result.setGridId(userResult.getData().getGridId()); - result.setCustomerId(userResult.getData().getCustomerId()); + result.setGridId(StringUtils.isNotBlank(userResult.getData().getGridId()) ? userResult.getData().getGridId() : ""); + result.setCustomerId(StringUtils.isNotBlank(userResult.getData().getCustomerId()) ? userResult.getData().getCustomerId() : ""); return result; } From 010069dbedf971f0c40f4ba6309492ce9366b990 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 16 Mar 2022 14:11:12 +0800 Subject: [PATCH 048/160] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=85=B3=E6=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/MemoConcernServiceImpl.java | 3 ++- .../java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java index c017703d7a..94c2de470a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java @@ -86,7 +86,8 @@ public class MemoConcernServiceImpl extends BaseServiceImpl Date: Wed, 16 Mar 2022 14:17:59 +0800 Subject: [PATCH 049/160] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/grid/service/impl/ResiMineGridServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index fcd40fd3a5..3a8516efec 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -154,6 +154,9 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); return null; } + if (null == userResult.getData()){ + return result; + } result.setGridId(StringUtils.isNotBlank(userResult.getData().getGridId()) ? userResult.getData().getGridId() : ""); result.setCustomerId(StringUtils.isNotBlank(userResult.getData().getCustomerId()) ? userResult.getData().getCustomerId() : ""); return result; From ee3d3aee2c3f0c8f016a061220806c46a6ac1b6c Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 14:35:56 +0800 Subject: [PATCH 050/160] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/grid/service/impl/ResiMineGridServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 3a8516efec..68ac4ef3c1 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -125,6 +125,9 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { GridInfoCache grid = CustomerOrgRedis.getGridInfo(registeredGridId); if (grid != null) { result.setRegisterGridStatus(grid.getAbandonFlag()); + if (result.getRegisterGridStatus().compareTo(NumConstant.ONE) == NumConstant.ZERO){ + return result; + } } } //1.调用third服务,根据appId获取客户Id From e8619eb9dad990c639b03894cb2df6d8ba7803b3 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 14:52:49 +0800 Subject: [PATCH 051/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86(?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=85=B3=E7=B3=BB=E5=92=8C=E5=BE=BD=E7=AB=A0?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/GridController.java | 12 ++++ .../java/com/epmet/dao/CustomerGridDao.java | 12 +++- .../com/epmet/dao/CustomerStaffGridDao.java | 14 ++-- .../EpmetUserFeignClientFallBack.java | 20 ++---- .../epmet/service/CustomerGridService.java | 6 ++ .../java/com/epmet/service/StaffService.java | 2 +- .../service/impl/CustomerGridServiceImpl.java | 66 ++++++++++++++++++- .../main/resources/mapper/CustomerGridDao.xml | 4 ++ .../resources/mapper/CustomerStaffGridDao.xml | 16 ++++- .../com/epmet/controller/BadgeController.java | 12 +++- .../java/com/epmet/service/BadgeService.java | 9 ++- .../UserBadgeCertificateRecordService.java | 10 ++- .../epmet/service/impl/BadgeServiceImpl.java | 8 ++- ...UserBadgeCertificateRecordServiceImpl.java | 12 +++- 14 files changed, 173 insertions(+), 30 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 60ffda8b94..1bfe447675 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -239,4 +239,16 @@ public class GridController { customerGridService.abandonGrid(formDTO); return new Result(); } + + /** + * desc:移除网格内的工作人员关系 并迁移到组织 + * @author jianjun liu + * @remark: 如果是网格添加的则解除关系后将注册关系改为对应的组织 如果不是则直接解除关系(相当于移除该人员与网格的关系) + */ + @PostMapping("removeGridStaff2Agency/{gridId}") + //@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_TRANSFER) + public Result removeGridStaff2Agency( @PathVariable String gridId){ + customerGridService.abandonGridForDealBizData(gridId); + return new Result(); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java index 3dcedd5c73..d642c4a911 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java @@ -367,11 +367,19 @@ public interface CustomerGridDao extends BaseDao { List getStaffGridList(@Param("customerId") String customerId, @Param("orgId") String orgId, @Param("orgType") String orgType); /** - * @Description 根据网格名字查询网格信息 * @param names + * @Description 根据网格名字查询网格信息 * @author zxc * @date 2022/2/12 2:06 下午 */ - List selectGridInfoByNames(@Param("names")List names,@Param("customerId")String customerId); + List selectGridInfoByNames(@Param("names") List names, @Param("customerId") String customerId); + /** + * desc:修改网格工作人员数量 + * + * @param gridId + * @param incrCount 增加人数 负数为 - + * @return + */ + int updateTotalUser(@Param("gridId") String gridId, @Param("incrCount") long incrCount); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java index 426a0e6b3a..238e8e9c16 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerStaffGridDao.java @@ -19,8 +19,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.CustomerStaffDepartmentDTO; import com.epmet.dto.CustomerStaffGridDTO; +import com.epmet.dto.StaffOrgRelationDTO; import com.epmet.dto.form.LatestGridFormDTO; import com.epmet.dto.result.EventTitleOrgResultDTO; import com.epmet.dto.result.GridStaffResultDTO; @@ -28,12 +28,11 @@ import com.epmet.entity.CustomerStaffGridEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.util.HashSet; import java.util.List; import java.util.Set; /** - * 网格人员关系表 + * 网格人员关系表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-04-20 @@ -115,4 +114,11 @@ public interface CustomerStaffGridDao extends BaseDao { * @date 2021/8/5 5:36 下午 */ List eventOrg(@Param("userId") String userId); -} \ No newline at end of file + + /** + * desc:根据网格id 获取网格下的工作人员及其添加关系 + * @param gridId + * @return + */ + List getGridStaffList(String gridId); +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java index f6ac8153ce..8aa28ad9f7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java @@ -4,23 +4,8 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffGridDTO; -import com.epmet.dto.StaffGridListDTO; -import com.epmet.dto.form.AddDepartmentStaffFormDTO; -import com.epmet.dto.form.DepartmentInStaffFormDTO; -import com.epmet.dto.form.StaffInfoFromDTO; -import com.epmet.dto.form.StaffSubmitFromDTO; -import com.epmet.dto.form.StaffsInAgencyFromDTO; -import com.epmet.dto.result.DepartInStaffListResultDTO; -import com.epmet.dto.result.StaffDetailResultDTO; -import com.epmet.dto.result.StaffInfoResultDTO; -import com.epmet.dto.result.StaffInitResultDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffGridDTO; -import com.epmet.dto.StaffGridListDTO; import com.epmet.feign.EpmetUserFeignClient; import org.springframework.stereotype.Component; @@ -106,4 +91,9 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { public Result getCustomerStaffList(List staffIdList) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerStaffList", staffIdList); } + + @Override + public Result updateUserBadgeCertificateRecord(String customerId, String gridId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "updateUserBadgeCertificateRecord", customerId, gridId); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index c57c5052ed..504555fbc7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -381,4 +381,10 @@ public interface CustomerGridService extends BaseService { * @return */ void abandonGrid(AbandonGridFormDTO formDTO); + + /** + * desc:移除网格内的工作人员关系 并迁移到组织 + * @param gridId + */ + void abandonGridForDealBizData(String gridId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java index ccd998c0fc..2c11cd6444 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/StaffService.java @@ -89,7 +89,7 @@ public interface StaffService { * @return com.epmet.dto.result.MineResultDTO */ MineResultDTO mine(StaffInfoFromDTO fromDTO); - + /** * 工作人员调动 * @author zhaoqifeng diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 2f5436c710..962dcd994e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -18,6 +18,7 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -28,12 +29,14 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.enums.DictTypeEnum; +import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; @@ -41,10 +44,13 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; import com.epmet.dao.CustomerGridDao; import com.epmet.dao.CustomerStaffGridDao; +import com.epmet.dao.StaffOrgRelationDao; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerGridEntity; +import com.epmet.entity.CustomerStaffGridEntity; +import com.epmet.entity.StaffOrgRelationEntity; import com.epmet.feign.*; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.CustomerAgencyService; @@ -86,6 +92,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateGrid=new LambdaUpdateWrapper<>(); @@ -992,4 +1000,60 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList = customerStaffGridDao.getGridStaffList(gridId); + if (CollectionUtils.isEmpty(staffList)){ + log.info("abandonGridForDealBizData gridId:{} have any staff", gridId); + return; + } + logger.debug("abandonGridForDealBizData staffList:{}", JSON.toJSONString(staffList)); + List updateList = new ArrayList<>(); + staffList.forEach(staffOrg->{ + if(OrgTypeEnum.GRID.getCode().equals(staffOrg.getOrgType())){ + StaffOrgRelationEntity entity = new StaffOrgRelationEntity(); + entity.setId(staffOrg.getId()); + entity.setOrgType(OrgTypeEnum.AGENCY.getCode()); + String pid = CustomerOrgRedis.getGridInfo(staffOrg.getStaffId()).getPid(); + if (StringUtils.isBlank(pid)){ + log.error("abandonGridForDealBizData agencyId:{} is not exist",pid); + return; + } + entity.setOrgId(pid); + updateList.add(entity); + } + }); + //更新工作人员组织关系 + String customerId = staffList.get(NumConstant.ZERO).getCustomerId(); + updateGridStaff2Agency(customerId,gridId, staffList, updateList); + //清空工作人员缓存 + staffList.forEach(staff->CustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); + } catch (Exception e) { + log.error("abandonGridForDealBizData exception", e); + throw e; + } + + } + @Transactional + public void updateGridStaff2Agency(String customerId, String gridId, List staffList, List updateList) { + //1.删除工作人员与网格的关系 + LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); + updateWrapper.eq(CustomerStaffGridEntity::getGridId,gridId); + customerStaffGridDao.delete(updateWrapper); + //2.修改 网格内添加工作人员改为组织 + updateList.forEach(e->{ + staffOrgRelationDao.update(e,null); + }); + //网格对应的人数减少 + long reduceCount = NumConstant.ZERO - staffList.stream().map(StaffOrgRelationDTO::getStaffId).distinct().count(); + log.debug("updateGridStaff2Agency gridId:{} reduceCount:{}",gridId, reduceCount); + int effectRow = customerGridDao.updateTotalUser(gridId, reduceCount); + Result badgeResult = epmetUserFeignClient.deleteBadgeCertificateAuditing(customerId,gridId); + if (badgeResult == null || !badgeResult.success()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"删除未审核徽章失败,请稍后重试"); + } + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index e805ace544..4690b1f384 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -844,5 +844,9 @@ ) + + UPDATE customer_grid SET total_user = total_user+#{incrCount} + where id = #{gridId} and del_flag = '0' + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml index 1d11a957b2..cf57cc708f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffGridDao.xml @@ -173,4 +173,18 @@ AND DEL_FLAG = 0 - \ No newline at end of file + + diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index 7c02a9df9d..700c7b56bf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -12,7 +12,6 @@ import com.epmet.service.BadgeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.validation.constraints.NotBlank; import java.util.List; import java.util.Map; @@ -218,4 +217,15 @@ public class BadgeController { return new Result().ok(badgeService.badgeAuditReset(gridId)); } + /** + * Desc: 查询网格下是否存在未审核的徽章,true:是,false:否 + * @param gridId + * @author zxc + * @date 2022/3/16 9:42 上午 + */ + @PostMapping("deleteBadgeCertificateAuditing") + public Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ + return new Result().ok(badgeService.deleteBadgeCertificateAuditing(customerId,gridId)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java index 4b2252b51c..34defc0541 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java @@ -209,4 +209,11 @@ public interface BadgeService extends BaseService { */ Boolean badgeAuditReset(String gridId); -} \ No newline at end of file + /** + * desc:根据网格id 修改审核状态 + * @param customerId + * @param gridId + * @return + */ + Integer deleteBadgeCertificateAuditing(String customerId, String gridId); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeCertificateRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeCertificateRecordService.java index 154c8685db..64e38706b6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeCertificateRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBadgeCertificateRecordService.java @@ -92,4 +92,12 @@ public interface UserBadgeCertificateRecordService extends BaseService imp } return false; } -} \ No newline at end of file + + @Override + public Integer deleteBadgeCertificateAuditing(String customerId, String gridId) { + return userBadgeCertificateRecordService.deleteBadgeCertificateAuditing(customerId,gridId); + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeCertificateRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeCertificateRecordServiceImpl.java index 6f798abc79..a472ebcdae 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeCertificateRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeCertificateRecordServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -97,4 +98,13 @@ public class UserBadgeCertificateRecordServiceImpl extends BaseServiceImpl tWrapper = new LambdaQueryWrapper<>(); + tWrapper.eq(UserBadgeCertificateRecordEntity::getCustomerId,customerId) + .eq(UserBadgeCertificateRecordEntity::getGridId,gridId) + .eq(UserBadgeCertificateRecordEntity::getAuditStatus,"auditing"); + return baseDao.delete(tWrapper); + } + +} From 44b4afa8b6755aacf725bd8a302010ab9f47ed68 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 15:09:24 +0800 Subject: [PATCH 052/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86(?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=85=B3=E7=B3=BB=E5=92=8C=E5=BE=BD=E7=AB=A0?= =?UTF-8?q?)=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/BadgeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index 700c7b56bf..11444790e5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -224,7 +224,7 @@ public class BadgeController { * @date 2022/3/16 9:42 上午 */ @PostMapping("deleteBadgeCertificateAuditing") - public Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ + public Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ return new Result().ok(badgeService.deleteBadgeCertificateAuditing(customerId,gridId)); } From e856f7c54148f587943964b9fcee6982c5c7c7a8 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 15:18:59 +0800 Subject: [PATCH 053/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86(?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=85=B3=E7=B3=BB=E5=92=8C=E5=BE=BD=E7=AB=A0?= =?UTF-8?q?)=20=E5=8F=98=E5=BC=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/feign/EpmetUserFeignClient.java | 25 ++++++++----------- .../EpmetUserFeignClientFallBack.java | 4 +-- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index 297df14501..b29dfbcdac 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -3,28 +3,14 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffGridDTO; -import com.epmet.dto.StaffGridListDTO; -import com.epmet.dto.form.AddDepartmentStaffFormDTO; -import com.epmet.dto.form.DepartmentInStaffFormDTO; -import com.epmet.dto.form.StaffInfoFromDTO; -import com.epmet.dto.form.StaffSubmitFromDTO; -import com.epmet.dto.form.StaffsInAgencyFromDTO; -import com.epmet.dto.result.DepartInStaffListResultDTO; -import com.epmet.dto.result.StaffDetailResultDTO; -import com.epmet.dto.result.StaffInfoResultDTO; -import com.epmet.dto.result.StaffInitResultDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffGridDTO; -import com.epmet.dto.StaffGridListDTO; import com.epmet.feign.fallback.EpmetUserFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -169,4 +155,13 @@ public interface EpmetUserFeignClient { **/ @PostMapping(value = "/epmetuser/customerstaff/getcustomerstafflist", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) Result getCustomerStaffList(List staffIdList); + + /** + * desc:删除审核中的徽章认证记录 + * @param customerId + * @param gridId + * @return + */ + @PostMapping("/epmetuser/badge/deleteBadgeCertificateAuditing") + Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId, @RequestParam("gridId") String gridId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java index 8aa28ad9f7..70bc8b7892 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java @@ -93,7 +93,7 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { } @Override - public Result updateUserBadgeCertificateRecord(String customerId, String gridId) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "updateUserBadgeCertificateRecord", customerId, gridId); + public Result deleteBadgeCertificateAuditing(String customerId, String gridId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deleteBadgeCertificateAuditing", customerId, gridId); } } From 316fcdcd25860655c17f1aebf936f5c2b8fd8c81 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 15:20:39 +0800 Subject: [PATCH 054/160] dimGrid --- .../main/java/com/epmet/entity/org/CustomerGridEntity.java | 5 +++++ .../main/java/com/epmet/entity/stats/DimGridEntity.java | 7 +++++++ .../java/com/epmet/service/impl/StatsDimServiceImpl.java | 1 + .../com/epmet/service/stats/impl/DimGridServiceImpl.java | 2 +- .../src/main/resources/mapper/org/CustomerGridDao.xml | 3 ++- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java index ba86713249..76dee40a36 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/CustomerGridEntity.java @@ -86,4 +86,9 @@ public class CustomerGridEntity extends BaseEpmetEntity { */ private String syncFlag; + /** + * 弃用标记 + */ + private Integer abandonFlag; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java index 2d3fc94740..4db45eaef7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/DimGridEntity.java @@ -17,6 +17,7 @@ package com.epmet.entity.stats; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; @@ -59,4 +60,10 @@ public class DimGridEntity extends BaseEpmetEntity { private String code; + /** + * 弃用标记 + */ + @TableField(exist = false) + private Integer abandonFlag; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java index d9081c7c6f..b1a1511740 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java @@ -112,6 +112,7 @@ public class StatsDimServiceImpl implements StatsDimService { dimGrid.setAreaCode(updatedGrid.getAreaCode()); dimGrid.setCustomerId(updatedGrid.getCustomerId()); dimGrid.setCode(updatedGrid.getCode()); + dimGrid.setAbandonFlag(updatedGrid.getAbandonFlag()); dimGrids.add(dimGrid); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java index 0a0fb86ecf..5de49ca847 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java @@ -130,7 +130,7 @@ public class DimGridServiceImpl extends BaseServiceImpl #{startTime} From 40cb0ae0bb810ad8eec5aabb0ec034a64cb43e08 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 15:23:15 +0800 Subject: [PATCH 055/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86(?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=85=B3=E7=B3=BB=E5=92=8C=E5=BE=BD=E7=AB=A0?= =?UTF-8?q?)=20=E5=8F=98=E5=BC=82=E9=94=99=E8=AF=AF2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/BadgeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index 11444790e5..37c56eeac9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -225,7 +225,7 @@ public class BadgeController { */ @PostMapping("deleteBadgeCertificateAuditing") public Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ - return new Result().ok(badgeService.deleteBadgeCertificateAuditing(customerId,gridId)); + return new Result().ok(badgeService.deleteBadgeCertificateAuditing(customerId,gridId)); } } From 6a08c3a2d085f506ba812f15f804b60623b26ac8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 16 Mar 2022 15:29:20 +0800 Subject: [PATCH 056/160] bug --- .../java/com/epmet/service/impl/CustomerGridServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 962dcd994e..d124b5bae5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -978,7 +978,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl eventRes = govProjectOpenFeignClient.eventAuditReset(formDTO.getGridId()); //表决中的议题 Result issueAuditReset = govIssueOpenFeignClient.issueAuditReset(formDTO.getGridId()); - if (eventRes.success() || issueAuditReset.success()) { + if (!eventRes.success() || !issueAuditReset.success()) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "校验数据异常", "服务器开小差了..."); } if (eventRes.getData()) { From 5ed6be9e7ce4b39cd0d0f94d4c28aee39290dea8 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 15:37:16 +0800 Subject: [PATCH 057/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=BD=91=E6=A0=BC=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/redis/common/CustomerOrgRedis.java | 14 ++++++++++++-- .../service/impl/CustomerGridServiceImpl.java | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index 449a90116a..4fbf63be42 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -1,12 +1,12 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; -import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.commons.tools.redis.common.bean.*; +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 lombok.extern.slf4j.Slf4j; @@ -35,6 +35,7 @@ public class CustomerOrgRedis { private static CustomerOrgRedis customerOrgRedis; private static final String ROLE_MAP_KEY = "roleMap"; + @PostConstruct public void init() { customerOrgRedis = this; @@ -91,4 +92,13 @@ public class CustomerOrgRedis { return agencyInfoResult.getData(); } + /** + * desc:删除网格缓存 + * @param gridId + */ + public static void delGridInfo(String gridId) { + String key = RedisKeys.getGridInfoKey(gridId); + customerOrgRedis.redisUtils.delete(key); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 962dcd994e..2eea3efe1a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -998,6 +998,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl Date: Wed, 16 Mar 2022 15:39:07 +0800 Subject: [PATCH 058/160] =?UTF-8?q?=E7=9B=B8=E5=90=8C=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=8F=AA=E5=8F=96=E4=B8=80=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/MemoAttrDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml index 72fd81c7d3..c99a280b7e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml @@ -81,7 +81,7 @@ \ No newline at end of file From d853127b56455a29eefb3fd148e62f0e3db13402 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 16 Mar 2022 16:23:38 +0800 Subject: [PATCH 061/160] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/MemoConcernDTO.java | 6 ++++++ .../src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java | 5 +++++ .../java/com/epmet/service/impl/MemoConcernServiceImpl.java | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 230887b58a..7ccc04ee24 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -1,8 +1,11 @@ package com.epmet.dto; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; import java.util.List; @@ -22,6 +25,7 @@ public class MemoConcernDTO implements Serializable { /** * 唯一标识(同memo_attr表Id) */ + @NotBlank(message = "ID不能为空", groups = { UpdateGroup.class }) private String id; /** @@ -37,6 +41,7 @@ public class MemoConcernDTO implements Serializable { /** * 关怀对象 */ + @NotBlank(message = "关怀人员不能为空", groups = { AddGroup.class, UpdateGroup.class }) private String resiName; /** @@ -52,6 +57,7 @@ public class MemoConcernDTO implements Serializable { /** * 关怀事项 */ + @NotBlank(message = "关怀事项不能为空", groups = { AddGroup.class, UpdateGroup.class }) private String content; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java index 2bde9822fa..517cce113d 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java @@ -1,8 +1,11 @@ package com.epmet.dto; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; import java.util.List; @@ -22,6 +25,7 @@ public class MemoWorkDiaryDTO implements Serializable { /** * 唯一标识(同memo_attr表Id) */ + @NotBlank(message = "ID不能为空", groups = { UpdateGroup.class }) private String id; /** @@ -37,6 +41,7 @@ public class MemoWorkDiaryDTO implements Serializable { /** * 内容 */ + @NotBlank(message = "内容不能为空", groups = { AddGroup.class, UpdateGroup.class }) private String content; /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java index 94c2de470a..bca27c6f81 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java @@ -88,7 +88,7 @@ public class MemoConcernServiceImpl extends BaseServiceImpl Date: Wed, 16 Mar 2022 16:28:04 +0800 Subject: [PATCH 062/160] =?UTF-8?q?=E6=97=B6=E9=97=B4=E4=B8=8D=E8=A6=81?= =?UTF-8?q?=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java | 3 +++ .../src/main/resources/mapper/MemoAttrDao.xml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java index e74bc8f461..9a98647a3c 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.epmet.dto.MemoAttachmentDTO; import lombok.Data; import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import java.io.Serializable; @@ -48,11 +49,13 @@ public class AddMemoDifficultyFromDTO implements Serializable { /** * 计划执行时间 */ + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; /** * 提醒时间 */ + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml index c99a280b7e..191ad22c0d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml @@ -82,7 +82,7 @@ From 6e6190e7e7e123642266ab60f4df3aff435ac35a Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 16:38:47 +0800 Subject: [PATCH 064/160] shuju cuowu --- .../com/epmet/service/impl/CustomerGridServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index cb55c5a7ca..87b3c6163e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -38,6 +38,7 @@ import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; @@ -1017,12 +1018,12 @@ public class CustomerGridServiceImpl extends BaseServiceImpl Date: Wed, 16 Mar 2022 16:39:23 +0800 Subject: [PATCH 065/160] . --- .../src/main/java/com/epmet/dto/MemoDifficultyDTO.java | 3 +++ .../java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java index 59500dd922..5d6030e006 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -46,11 +47,13 @@ public class MemoDifficultyDTO implements Serializable { /** * 计划执行时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; /** * 提醒时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java index 9a98647a3c..6c15f59fbb 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java @@ -2,6 +2,7 @@ package com.epmet.dto.form; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.epmet.dto.MemoAttachmentDTO; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -49,13 +50,13 @@ public class AddMemoDifficultyFromDTO implements Serializable { /** * 计划执行时间 */ - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; /** * 提醒时间 */ - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; /** From 5087e746e97049bd708f751792c2ce4add735ad8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 16 Mar 2022 17:17:44 +0800 Subject: [PATCH 066/160] =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=8A=A0=E8=BF=94?= =?UTF-8?q?=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoDifficultyDTO.java | 1 + .../dto/form/AddMemoDifficultyFromDTO.java | 6 ++++++ .../controller/MemoDifficultyController.java | 13 ++++--------- .../java/com/epmet/dao/MemoDifficultyDao.java | 4 ++++ .../epmet/service/MemoDifficultyService.java | 2 +- .../impl/MemoDifficultyServiceImpl.java | 5 ++--- .../resources/mapper/MemoDifficultyDao.xml | 18 ++++++++++++++++++ 7 files changed, 36 insertions(+), 13 deletions(-) diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java index 5d6030e006..90b9505e75 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java @@ -74,6 +74,7 @@ public class MemoDifficultyDTO implements Serializable { /** * 创建时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date createdTime; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java index 6c15f59fbb..dda956c0b6 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java @@ -59,6 +59,12 @@ public class AddMemoDifficultyFromDTO implements Serializable { @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date remindTime; + /** + * 创建时间 + */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm") + private Date createdTime; + /** * 附件集合 */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 9f57fe50dc..07fca9ad3c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -1,23 +1,19 @@ package com.epmet.controller; -import com.epmet.commons.tools.annotation.LoginUser; import cn.afterturn.easypoi.word.WordExportUtil; import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.MemoDifficultyDTO; -import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.dto.form.MemoDifficultyDetailFromDTO; import com.epmet.dto.form.MemoDifficultyFormDTO; @@ -35,7 +31,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -96,8 +91,8 @@ public class MemoDifficultyController { } @PostMapping("detail") - public Result detail(@RequestBody MemoDifficultyDetailFromDTO fromDTO){ - return new Result().ok(memoDifficultyService.detail(fromDTO)); + public Result detail(@RequestBody MemoDifficultyDetailFromDTO fromDTO){ + return new Result().ok(memoDifficultyService.detail(fromDTO)); } @PostMapping("/{id}/exportWord") diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java index a2955f6297..032be5b4fe 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java @@ -3,9 +3,11 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.MemoDifficultyDTO; import com.epmet.dto.MemoWorkDiaryDTO; +import com.epmet.dto.form.AddMemoDifficultyFromDTO; import com.epmet.dto.form.MemoDifficultyFormDTO; import com.epmet.entity.MemoDifficultyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,4 +25,6 @@ public interface MemoDifficultyDao extends BaseDao { * @Author sun */ List getPage(MemoDifficultyFormDTO formDTO); + + AddMemoDifficultyFromDTO selectByDifficutyId(@Param("id") String id); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java index dcce6fd28c..a016573e03 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java @@ -84,5 +84,5 @@ public interface MemoDifficultyService extends BaseService * @author generator * @date 2022-03-15 */ - MemoDifficultyDTO detail(MemoDifficultyDetailFromDTO fromDTO); + AddMemoDifficultyFromDTO detail(MemoDifficultyDetailFromDTO fromDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 7777b65d72..6760d8b357 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -142,14 +142,13 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl attachmentList = memoAttachmentService.getListByMemoId(fromDTO.getId()); resultDTO.setAttachmentList(attachmentList); diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml index fcdae4b4ac..27b8655c87 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml @@ -37,4 +37,22 @@ ORDER BY md.created_time DESC + + \ No newline at end of file From 52159052de84abcc98885599212c2483f1b4bc8e Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 17:22:30 +0800 Subject: [PATCH 067/160] =?UTF-8?q?=E5=BE=80=E6=8C=87=E6=A0=87=E5=BA=93?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=BD=91=E6=A0=BC=E6=97=B6=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/impl/ScreenCustomerGridServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index d184f762d1..9249ad678a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -124,7 +124,7 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl w = new LambdaQueryWrapper<>(); w.eq(ScreenCustomerGridEntity::getGridId, grid.getId()); screenCustomerGridDao.delete(w); From 630ff1508f45d0912497b22f9ce31410d84b47b3 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 16 Mar 2022 17:33:07 +0800 Subject: [PATCH 068/160] . --- .../main/java/com/epmet/controller/MemoDifficultyController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 07fca9ad3c..def6d05162 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -92,6 +92,7 @@ public class MemoDifficultyController { @PostMapping("detail") public Result detail(@RequestBody MemoDifficultyDetailFromDTO fromDTO){ + ValidatorUtils.validateEntity(fromDTO, MemoDifficultyDetailFromDTO.Detail.class); return new Result().ok(memoDifficultyService.detail(fromDTO)); } From 0dbcdc286a8cfadc708032929a53b31e18f50bb4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 16 Mar 2022 18:10:26 +0800 Subject: [PATCH 069/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=83=E9=99=90=E6=B3=A8=E8=A7=A3=EF=BC=8C?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E5=8E=9F=E6=9D=A5=E7=9A=84=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/GridController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 1bfe447675..0c1470d26f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -233,6 +233,7 @@ public class GridController { * @param formDTO * @return */ + @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE) @PostMapping("abandon") public Result abandonGrid(@RequestBody AbandonGridFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO, AddGroup.class); From 63f159ed9cd1e2c5d900691a4f8a69d9ef560078 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 16 Mar 2022 20:21:47 +0800 Subject: [PATCH 070/160] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/impl/ScreenCustomerGridServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index 9249ad678a..268330f03b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -127,7 +127,12 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl w = new LambdaQueryWrapper<>(); w.eq(ScreenCustomerGridEntity::getGridId, grid.getId()); - screenCustomerGridDao.delete(w); + ScreenCustomerGridEntity e = new ScreenCustomerGridEntity(); + e.setDataEndTime(NumConstant.ONE_STR); + e.setUpdatedTime(new Date()); + screenCustomerGridDao.update(e,w); + // 此delete不更新 updatedTime +// screenCustomerGridDao.delete(w); } } } From a7359ba6629ba96e23e03c040eaaa1ec0cdd868e Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 20:22:50 +0800 Subject: [PATCH 071/160] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/controller/GridController.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 0c1470d26f..20c4dd4aef 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -241,15 +241,4 @@ public class GridController { return new Result(); } - /** - * desc:移除网格内的工作人员关系 并迁移到组织 - * @author jianjun liu - * @remark: 如果是网格添加的则解除关系后将注册关系改为对应的组织 如果不是则直接解除关系(相当于移除该人员与网格的关系) - */ - @PostMapping("removeGridStaff2Agency/{gridId}") - //@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_TRANSFER) - public Result removeGridStaff2Agency( @PathVariable String gridId){ - customerGridService.abandonGridForDealBizData(gridId); - return new Result(); - } } From 814a2e339616526d238bc7c861f85ea230af0143 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 16 Mar 2022 20:39:46 +0800 Subject: [PATCH 072/160] =?UTF-8?q?=E5=BC=83=E7=94=A8=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CustomerGridServiceImpl.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 87b3c6163e..f57f99bcdf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -972,7 +972,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateGrid=new LambdaUpdateWrapper<>(); - updateGrid.set(CustomerGridEntity::getAbandonFlag,true); - updateGrid.eq(CustomerGridEntity::getId,formDTO.getGridId()); - baseDao.update(null,updateGrid); CustomerOrgRedis.delGridInfo(formDTO.getGridId()); } @@ -1014,24 +1005,28 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateList = new ArrayList<>(); staffList.forEach(staffOrg->{ - if(OrgTypeEnum.GRID.getCode().equals(staffOrg.getOrgType())){ - StaffOrgRelationEntity entity = new StaffOrgRelationEntity(); - entity.setId(staffOrg.getId()); - entity.setOrgType(OrgTypeEnum.AGENCY.getCode()); - GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(staffOrg.getOrgId()); - if (gridInfo == null || StringUtils.isBlank(gridInfo.getPid())){ - log.error("abandonGridForDealBizData agencyId:{} is not exist",gridInfo.getPid()); - return; - } - entity.setOrgId(gridInfo.getPid()); - updateList.add(entity); + //只有工作人员是网格添加的才处理 + if(!OrgTypeEnum.GRID.getCode().equals(staffOrg.getOrgType())) { + return; + } + StaffOrgRelationEntity entity = new StaffOrgRelationEntity(); + entity.setId(staffOrg.getId()); + entity.setOrgType(OrgTypeEnum.AGENCY.getCode()); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(staffOrg.getOrgId()); + if (gridInfo == null || StringUtils.isBlank(gridInfo.getPid())) { + assert gridInfo != null; + log.error("abandonGridForDealBizData grid:{} pid is not exist", JSON.toJSONString(gridInfo)); + return; } + entity.setOrgId(gridInfo.getPid()); + updateList.add(entity); }); //更新工作人员组织关系 String customerId = staffList.get(NumConstant.ZERO).getCustomerId(); updateGridStaff2Agency(customerId,gridId, staffList, updateList); //清空工作人员缓存 staffList.forEach(staff->CustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); + } catch (Exception e) { log.error("abandonGridForDealBizData exception", e); throw e; @@ -1051,11 +1046,18 @@ public class CustomerGridServiceImpl extends BaseServiceImpl badgeResult = epmetUserFeignClient.deleteBadgeCertificateAuditing(customerId,gridId); if (badgeResult == null || !badgeResult.success()){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"删除未审核徽章失败,请稍后重试"); } + + //处理成功,隐藏网格 + LambdaUpdateWrapper updateGrid=new LambdaUpdateWrapper<>(); + updateGrid.set(CustomerGridEntity::getAbandonFlag,true); + updateGrid.eq(CustomerGridEntity::getId,gridId); + baseDao.update(null,updateGrid); } } From 0702034ca76db3300651e5512ba22daef47cbbc8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 16 Mar 2022 21:03:46 +0800 Subject: [PATCH 073/160] =?UTF-8?q?"modify-reg-grid"=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/EpmetHeartOpenFeignClient.java | 8 ++ .../EpmetHeartOpenFeignClientFallback.java | 11 ++ .../controller/ResiVolunteerController.java | 11 ++ .../java/com/epmet/dao/VolunteerInfoDao.java | 7 ++ .../epmet/service/VolunteerInfoService.java | 6 ++ .../impl/VolunteerInfoServiceImpl.java | 10 ++ .../resources/mapper/VolunteerInfoDao.xml | 13 +++ .../epmet/dto/form/ModifyRegGridFormDTO.java | 26 +++++ .../com/epmet/controller/UserController.java | 16 +++ .../java/com/epmet/service/UserService.java | 6 ++ .../epmet/service/impl/UserServiceImpl.java | 101 ++++++++++++++++-- 11 files changed, 208 insertions(+), 7 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ModifyRegGridFormDTO.java diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 1a3f20439a..25cf270549 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -84,4 +84,12 @@ public interface EpmetHeartOpenFeignClient { */ @PostMapping("/heart/resi/volunteer/count") Result getVolunteerCount(@RequestBody VolunteerCommonFormDTO input); + + /** + * 修改志愿者的注册网格 + * @param volunteerInfoDTO + * @return + */ + @PostMapping("/heart/resi/volunteer/modifyVolunteerGrid") + Result modifyVolunteerGrid(@RequestBody VolunteerInfoDTO volunteerInfoDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index aab5bdb70d..06bdc642c9 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -77,4 +77,15 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result getVolunteerCount(VolunteerCommonFormDTO input) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "getVolunteerCount", input); } + + /** + * 修改志愿者的注册网格 + * + * @param volunteerInfoDTO + * @return + */ + @Override + public Result modifyVolunteerGrid(VolunteerInfoDTO volunteerInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "modifyVolunteerGrid", volunteerInfoDTO); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java index 39da0690af..410cbdf981 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java @@ -159,4 +159,15 @@ public class ResiVolunteerController { Integer volunteerCount = volunteerInfoService.getVolunteerCount(customerId, agencyId); return new Result().ok(volunteerCount); } + + /** + * 修改志愿者注册信息_的网格信息 + * @param volunteerInfoDTO + * @return + */ + @PostMapping("modifyVolunteerGrid") + public Result modifyVolunteerGrid(@RequestBody VolunteerInfoDTO volunteerInfoDTO){ + volunteerInfoService.modifyVolunteerGrid(volunteerInfoDTO); + return new Result(); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/VolunteerInfoDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/VolunteerInfoDao.java index ab0b65bf9c..2aa3afa166 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/VolunteerInfoDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/VolunteerInfoDao.java @@ -74,4 +74,11 @@ public interface VolunteerInfoDao extends BaseDao { * @date 2020.08.13 10:06 **/ List selectVolunteerIds(@Param("customerId")String customerId); + + /** + * 修改志愿者注册信息_网格信息 + * @param volunteerInfoDTO + * @return + */ + int updateVolunteerGrid(VolunteerInfoDTO volunteerInfoDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java index f9db916bbe..7cd4d30769 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java @@ -111,4 +111,10 @@ public interface VolunteerInfoService extends BaseService { * @return */ Integer getVolunteerCount(String customerId, String agencyId); + + /** + * 修改志愿者注册信息_的网格信息 + * @param volunteerInfoDTO + */ + void modifyVolunteerGrid(VolunteerInfoDTO volunteerInfoDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java index 71417dbb2e..846e342657 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java @@ -414,4 +414,14 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl + + + UPDATE volunteer_info + SET GRID_ID = #{gridId}, + GRID_NAME = #{gridName}, + PID = #{pid}, + PIDS = #{pids}, + UPDATED_TIME = NOW() + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND user_id = #{userId} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ModifyRegGridFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ModifyRegGridFormDTO.java new file mode 100644 index 0000000000..b54c57ca09 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ModifyRegGridFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class ModifyRegGridFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) + private String userId; + @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) + private String customerId; + + @NotBlank(message = "请选择您所在的网格", groups = AddUserShowGroup.class) + private String gridId; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java index 5d5870439e..3f8b17f323 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java @@ -210,4 +210,20 @@ public class UserController { ValidatorUtils.validateEntity(findIcUserFormDTO,FindIcUserFormDTO.AddUserInternalGroup.class); return new Result().ok(userService.findIcUser(findIcUserFormDTO)); } + + /** + * 居民端-修改注册网格 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping(value = "modify-reg-grid") + public Result modifyRegGrid(@LoginUser TokenDto tokenDto,@RequestBody ModifyRegGridFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,ModifyRegGridFormDTO.AddUserShowGroup.class, + ModifyRegGridFormDTO.AddUserInternalGroup.class); + userService.modifyRegGrid(formDTO); + return new Result(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java index 132ef019a7..5ee692c7de 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java @@ -121,4 +121,10 @@ public interface UserService extends BaseService { * @return */ EpmetUserFamilyDTO findIcUser(FindIcUserFormDTO findIcUserFormDTO); + + /** + * 居民端-修改注册网格 + * @param formDTO + */ + void modifyRegGrid(ModifyRegGridFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index af2a9e2513..44db1b1f5f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -1,26 +1,27 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; 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.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; -import com.epmet.dao.UserDao; -import com.epmet.dao.UserResiInfoDao; -import com.epmet.dao.UserRoleDao; -import com.epmet.dao.UserWechatDao; +import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.UserBaseInfoEntity; -import com.epmet.entity.UserEntity; -import com.epmet.entity.UserWechatEntity; +import com.epmet.entity.*; +import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.feign.EpmetPointOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; +import com.epmet.redis.UserBaseInfoRedis; import com.epmet.service.IcResiUserService; import com.epmet.service.UserBaseInfoService; import com.epmet.service.UserService; @@ -31,6 +32,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Arrays; @@ -63,6 +65,16 @@ public class UserServiceImpl extends BaseServiceImpl implem private UserResiInfoDao userResiInfoDao; @Autowired private IcResiUserService icResiUserService; + @Autowired + private RegisterRelationDao registerRelationDao; + @Autowired + private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Autowired + private ResiUserBadgeDao resiUserBadgeDao; + @Autowired + private UserBadgeCertificateRecordDao userBadgeCertificateRecordDao; + @Autowired + private UserBaseInfoRedis userBaseInfoRedis; private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class); @@ -417,4 +429,79 @@ public class UserServiceImpl extends BaseServiceImpl implem return result; } + /** + * 居民端-修改注册网格 + * + * @param formDTO + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void modifyRegGrid(ModifyRegGridFormDTO formDTO) { + GridInfoCache newGridInfo= CustomerOrgRedis.getGridInfo(formDTO.getGridId()); + if (null == newGridInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询当前网格信息异常", "服务器开小差了..."); + } + //修改register_relation表 + //原始注册记录 + LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); + wrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) + .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) + .eq(RegisterRelationEntity::getFirstRegister, NumConstant.ONE_STR); + RegisterRelationEntity originReg=registerRelationDao.selectOne(wrapper); + if(null==originReg){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询用户原始注册网格记录异常", "服务器开小差了..."); + } + //1、删除废弃网格的 + registerRelationDao.deleteById(originReg.getId()); + //2、当前选择的网格,是否有记录,有更新没有删除 + LambdaQueryWrapper query=new LambdaQueryWrapper(); + query.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) + .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) + .eq(RegisterRelationEntity::getGridId, formDTO.getGridId()); + RegisterRelationEntity nowReg=registerRelationDao.selectOne(query); + if (null != nowReg) { + nowReg.setFirstRegister(NumConstant.ONE_STR); + nowReg.setRegister(NumConstant.ONE_STR); + nowReg.setParticipation(NumConstant.ONE_STR); + registerRelationDao.updateById(nowReg); + } else { + RegisterRelationEntity insert=new RegisterRelationEntity(); + insert.setCustomerId(formDTO.getCustomerId()); + insert.setGridId(formDTO.getGridId()); + insert.setUserId(formDTO.getUserId()); + insert.setFirstRegister(NumConstant.ONE_STR); + insert.setRegister(NumConstant.ONE_STR); + insert.setParticipation(NumConstant.ONE_STR); + registerRelationDao.insert(insert); + } + + //2、修改历史徽章表 + LambdaUpdateWrapper recUpdate=new LambdaUpdateWrapper<>(); + recUpdate.set(UserBadgeCertificateRecordEntity::getGridId,newGridInfo.getId()); + recUpdate.eq(UserBadgeCertificateRecordEntity::getCustomerId,formDTO.getCustomerId()) + .eq(UserBadgeCertificateRecordEntity::getUserId,formDTO.getUserId()); + userBadgeCertificateRecordDao.update(null,recUpdate); + + LambdaUpdateWrapper badgeUpdate=new LambdaUpdateWrapper<>(); + badgeUpdate.set(ResiUserBadgeEntity::getGridId,newGridInfo.getId()); + badgeUpdate.eq(ResiUserBadgeEntity::getCustomerId,formDTO.getCustomerId()) + .eq(ResiUserBadgeEntity::getUserId,formDTO.getUserId()); + resiUserBadgeDao.update(null,badgeUpdate); + + //3、修改支援者信息表 + VolunteerInfoDTO volunteerInfoDTO=new VolunteerInfoDTO(); + volunteerInfoDTO.setCustomerId(formDTO.getCustomerId()); + volunteerInfoDTO.setUserId(formDTO.getUserId()); + volunteerInfoDTO.setGridId(newGridInfo.getId()); + volunteerInfoDTO.setPid(newGridInfo.getPid()); + volunteerInfoDTO.setPids(newGridInfo.getPids()); + volunteerInfoDTO.setGridName(newGridInfo.getGridName()); + Result volunteerRes=epmetHeartOpenFeignClient.modifyVolunteerGrid(volunteerInfoDTO); + if (!volunteerRes.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:修改用户志愿者信息异常", "服务器开小差了..."); + } + //4、删除用户缓存信息 + userBaseInfoRedis.clearUserCache(Arrays.asList(formDTO.getUserId())); + } + } From 3a8cb6317c010921463014b599448de4b7d2f494 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 09:34:55 +0800 Subject: [PATCH 074/160] =?UTF-8?q?/resi/guide/user/entergrid=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E8=BF=9B=E7=BD=91=E6=A0=BC=E5=8A=A0=E4=B8=AA=E9=98=B2?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=90=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/controller/UserGuideController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/UserGuideController.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/UserGuideController.java index 42920ff788..94c19dfdfe 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/UserGuideController.java +++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/UserGuideController.java @@ -2,6 +2,7 @@ package com.epmet.controller; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -29,6 +30,7 @@ public class UserGuideController { @Autowired private UserAccessService userAccessService; + @NoRepeatSubmit @PostMapping("entergrid") Result enterGrid(@LoginUser TokenDto token, @RequestBody UserEnterGridFormDTO userEnterGridFormDTO){ logger.info("进网格TokenDto:"+ JSON.toJSON(token)); From 485f360692dda85b61337291d60d0780839382cd Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Thu, 17 Mar 2022 09:42:53 +0800 Subject: [PATCH 075/160] =?UTF-8?q?=E4=B9=A6=E8=AE=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/MemoConcernDTO.java | 4 +- .../java/com/epmet/dto/MemoDifficultyDTO.java | 2 +- .../dto/form/AddMemoDifficultyFromDTO.java | 7 +- .../com/epmet/entity/MemoConcernEntity.java | 4 +- .../epmet/entity/MemoDifficultyEntity.java | 2 +- .../migration/V0.0.21__create_memo_table.sql | 86 +++++++++++++++++++ 6 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.21__create_memo_table.sql diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java index 7ccc04ee24..eb1a825736 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java @@ -61,13 +61,13 @@ public class MemoConcernDTO implements Serializable { private String content; /** - * 计划执行时间 + * 预计关怀时间 */ @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; /** - * 实际执行时间 + * 实际执行时间(预留字段) */ @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date actualTime; diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java index 90b9505e75..0f1e94e071 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java @@ -45,7 +45,7 @@ public class MemoDifficultyDTO implements Serializable { private String remark; /** - * 计划执行时间 + * 预计处理时间 */ @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java index dda956c0b6..3fe64af31d 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java @@ -5,7 +5,6 @@ import com.epmet.dto.MemoAttachmentDTO; 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; @@ -34,21 +33,23 @@ public class AddMemoDifficultyFromDTO implements Serializable { * 内容 */ @NotBlank(message = "难点堵点内容不能为空", groups = { AddMemoDifficulty.class }) - @Length(max = 500, message = "难点堵点内容最长为50个字", groups = { AddMemoDifficulty.class }) + @Length(max = 500, message = "难点堵点内容最多为50个字", groups = { AddMemoDifficulty.class }) private String content; /** * 解决方式 */ + @Length(max = 500, message = "解决方式最多为500个字", groups = { AddMemoDifficulty.class }) private String resolveWay; /** * 备注 */ + @Length(max = 200, message = "备注最多为200个字", groups = { AddMemoDifficulty.class }) private String remark; /** - * 计划执行时间 + * 预计处理时间 */ @JsonFormat(pattern="yyyy-MM-dd HH:mm") private Date scheduledTime; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index 59a2770876..dce8dc6672 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -51,12 +51,12 @@ public class MemoConcernEntity extends BaseEpmetEntity { private String content; /** - * 计划执行时间 + * 预计关怀时间 */ private Date scheduledTime; /** - * 实际执行时间 + * 实际执行时间(预留字段) */ private Date actualTime; diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java index 32d6263849..e73a444598 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java @@ -41,7 +41,7 @@ public class MemoDifficultyEntity extends BaseEpmetEntity { private String remark; /** - * 计划执行时间 + * 预计处理时间 */ private Date scheduledTime; diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.21__create_memo_table.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.21__create_memo_table.sql new file mode 100644 index 0000000000..e719505e40 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.21__create_memo_table.sql @@ -0,0 +1,86 @@ +CREATE TABLE `memo_attachment` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `REMIND_MSG_ID` varchar(64) NOT NULL COMMENT 'REMIND_MSG.ID 业务(工作日志、难点堵点、人员关怀)表Id', + `FILE_NAME` varchar(255) DEFAULT NULL COMMENT '文件名', + `ATTACHMENT_NAME` varchar(64) DEFAULT NULL COMMENT '附件名(uuid随机生成)', + `ATTACHMENT_SIZE` int(11) DEFAULT NULL COMMENT '文件大小,单位b', + `ATTACHMENT_FORMAT` varchar(64) NOT NULL COMMENT '文件格式(JPG、PNG、PDF、JPEG、BMP、MP4、WMA、M4A、MP3、DOC、DOCX、XLS)', + `ATTACHMENT_TYPE` varchar(64) NOT NULL COMMENT '附件类型((图片 - image、 视频 - video、 语音 - voice、 文档 - doc))', + `ATTACHMENT_URL` varchar(255) NOT NULL COMMENT '附件地址', + `DURATION` int(11) DEFAULT '0' COMMENT '语音或视频时长,秒', + `SORT` int(1) NOT NULL COMMENT '排序字段', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标记 0:未删除,1:已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='备忘录-附件表'; + +CREATE TABLE `memo_attr` ( + `ID` varchar(32) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `REMIND_TIME` datetime DEFAULT NULL COMMENT '提醒时间', + `TYPE` varchar(32) NOT NULL COMMENT '业务类型 人员关怀:concern;难点堵点:difficulty;工作日志:work_diary', + `READ_FLAG` tinyint(1) NOT NULL DEFAULT '0' COMMENT '阅读标记1 已读;0未读', + `RECEIVER` varchar(32) NOT NULL COMMENT '接收人ID', + `DEL_FLAG` char(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备忘录-属性(通知)表'; + +CREATE TABLE `memo_concern` ( + `ID` varchar(32) NOT NULL COMMENT '唯一标识(同memo_attr表Id)', + `CUSTOMER_ID` varchar(32) NOT NULL COMMENT '客户ID', + `CONCERN_TYPE` varchar(64) DEFAULT NULL COMMENT '关怀类型', + `RESI_NAME` varchar(64) NOT NULL COMMENT '关怀人员', + `PHONE` varchar(64) DEFAULT NULL COMMENT '关怀对象电话', + `ADDRESS` varchar(64) DEFAULT NULL COMMENT '关怀对象地址', + `CONTENT` varchar(1024) NOT NULL COMMENT '关怀事项', + `SCHEDULED_TIME` datetime DEFAULT NULL COMMENT '预计关怀时间', + `ACTUAL_TIME` datetime DEFAULT NULL COMMENT '实际执行时间(预留字段)', + `STATUS` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 0未完成 1已完成', + `DEL_FLAG` char(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '操作人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备忘录-人文关怀'; + +CREATE TABLE `memo_difficulty` ( + `ID` varchar(32) NOT NULL COMMENT '唯一标识(同memo_attr表Id)', + `CUSTOMER_ID` varchar(32) NOT NULL COMMENT '客户ID', + `CONTENT` varchar(1024) NOT NULL COMMENT '内容', + `RESOLVE_WAY` varchar(512) DEFAULT NULL COMMENT '解决方式', + `REMARK` varchar(255) DEFAULT NULL COMMENT '备注', + `SCHEDULED_TIME` datetime DEFAULT NULL COMMENT '预计处理时间', + `DEL_FLAG` char(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备忘录-难点读点'; + +CREATE TABLE `memo_work_diary` ( + `ID` varchar(32) NOT NULL COMMENT '唯一标识(同memo_attr表Id)', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `CONTENT` varchar(1024) NOT NULL COMMENT '内容', + `WORK_TYPE` varchar(64) DEFAULT NULL COMMENT '工作事项', + `DEL_FLAG` char(1) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备忘录-工作日志'; \ No newline at end of file From 1c69bbf8a61520110da60a1c05435bc30a199978 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 09:44:23 +0800 Subject: [PATCH 076/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/UserServiceImpl.java | 46 ++++++++----------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 44db1b1f5f..a6f88e5c0f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -442,38 +442,28 @@ public class UserServiceImpl extends BaseServiceImpl implem throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询当前网格信息异常", "服务器开小差了..."); } //修改register_relation表 - //原始注册记录 - LambdaQueryWrapper wrapper=new LambdaQueryWrapper(); - wrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) + LambdaQueryWrapper originWrapper=new LambdaQueryWrapper(); + originWrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) .eq(RegisterRelationEntity::getFirstRegister, NumConstant.ONE_STR); - RegisterRelationEntity originReg=registerRelationDao.selectOne(wrapper); - if(null==originReg){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询用户原始注册网格记录异常", "服务器开小差了..."); - } - //1、删除废弃网格的 - registerRelationDao.deleteById(originReg.getId()); - //2、当前选择的网格,是否有记录,有更新没有删除 - LambdaQueryWrapper query=new LambdaQueryWrapper(); - query.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) + //1、删除废弃网格的(现在生产存在同一个用户相同的网格id多条记录,所以用delete方法) + registerRelationDao.delete(originWrapper); + + //2、删除用户与当前选择的网格的关系,新插入一条注册关系, + LambdaQueryWrapper deleteWrapper=new LambdaQueryWrapper(); + deleteWrapper.eq(RegisterRelationEntity::getCustomerId,formDTO.getCustomerId()) .eq(RegisterRelationEntity::getUserId,formDTO.getUserId()) .eq(RegisterRelationEntity::getGridId, formDTO.getGridId()); - RegisterRelationEntity nowReg=registerRelationDao.selectOne(query); - if (null != nowReg) { - nowReg.setFirstRegister(NumConstant.ONE_STR); - nowReg.setRegister(NumConstant.ONE_STR); - nowReg.setParticipation(NumConstant.ONE_STR); - registerRelationDao.updateById(nowReg); - } else { - RegisterRelationEntity insert=new RegisterRelationEntity(); - insert.setCustomerId(formDTO.getCustomerId()); - insert.setGridId(formDTO.getGridId()); - insert.setUserId(formDTO.getUserId()); - insert.setFirstRegister(NumConstant.ONE_STR); - insert.setRegister(NumConstant.ONE_STR); - insert.setParticipation(NumConstant.ONE_STR); - registerRelationDao.insert(insert); - } + registerRelationDao.delete(deleteWrapper); + + RegisterRelationEntity insert=new RegisterRelationEntity(); + insert.setCustomerId(formDTO.getCustomerId()); + insert.setGridId(formDTO.getGridId()); + insert.setUserId(formDTO.getUserId()); + insert.setFirstRegister(NumConstant.ONE_STR); + insert.setRegister(NumConstant.ONE_STR); + insert.setParticipation(NumConstant.ONE_STR); + registerRelationDao.insert(insert); //2、修改历史徽章表 LambdaUpdateWrapper recUpdate=new LambdaUpdateWrapper<>(); From 1f55065e3f3b2280be4c6a263caa3a2469946fee Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 10:21:39 +0800 Subject: [PATCH 077/160] =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/org/result/CustomerGridDTO.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerGridDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerGridDTO.java index 752bb721cd..9c2d142132 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerGridDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/org/result/CustomerGridDTO.java @@ -131,4 +131,9 @@ public class CustomerGridDTO implements Serializable { * 所有上级组织名 */ private String allParentName; + + /** + * 弃用标记 + */ + private Integer abandonFlag; } From 59940aab45c78835040a0958ad951dd95716b110 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 10:33:35 +0800 Subject: [PATCH 078/160] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/govorg/CustomerGridDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index adc659eae6..0625e55ce5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -174,8 +174,8 @@ cg.* FROM customer_grid cg LEFT JOIN customer_agency ca ON (ca.ID = cg.PID AND ca.DEL_FLAG = '0') - WHERE cg.DEL_FLAG = '0' - AND cg.ID = #{gridId} + WHERE cg.ID = #{gridId} + AND cg.DEL_FLAG = '0' From d83b3f1cb82db99c39cabcf954905259aae58762 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 10:35:31 +0800 Subject: [PATCH 079/160] abandon_flag not null --- .../src/main/resources/db/migration/V0.0.13__abandon_grid.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql index 1822215609..37fbf05faa 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__abandon_grid.sql @@ -1,3 +1,3 @@ alter table customer_grid -add column ABANDON_FLAG TINYINT(1) default '0' +add column ABANDON_FLAG TINYINT(1) NOT NULL default '0' comment '弃用:1;正常使用:0' after SYNC_FLAG; \ No newline at end of file From 565af14f737d51751b34f789dac99ad13d5881fb Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 11:04:17 +0800 Subject: [PATCH 080/160] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/commons/tools/redis/common/CustomerOrgRedis.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index 4fbf63be42..c44a7030db 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -1,6 +1,7 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.RedisKeys; @@ -52,6 +53,7 @@ public class CustomerOrgRedis { public static GridInfoCache getGridInfo(String gridId){ String key = RedisKeys.getGridInfoKey(gridId); Map grid = customerOrgRedis.redisUtils.hGetAll(key); + log.info("grid is {}", JSON.toJSONString(grid)); if (!CollectionUtils.isEmpty(grid)) { return ConvertUtils.mapToEntity(grid, GridInfoCache.class); } @@ -63,6 +65,7 @@ public class CustomerOrgRedis { //throw new RenException("没有此网格信息..."); return null; } + log.info("select grid info is {}", JSON.toJSONString(gridInfoResult.getData())); Map map = BeanUtil.beanToMap(gridInfoResult.getData(), false, true); customerOrgRedis.redisUtils.hMSet(key, map); return gridInfoResult.getData(); From 54a8d2ede14e86bcf6e8138fd128167061d0e082 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 11:29:35 +0800 Subject: [PATCH 081/160] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=B7=BB=E5=8A=A0=20=E5=BA=9F=E5=BC=83?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/CustomerGridServiceImpl.java | 8 -------- .../src/main/resources/mapper/CustomerGridDao.xml | 3 ++- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index f57f99bcdf..3b9e0be490 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -822,14 +822,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl IFNULL(cg.longitude,ca.longitude) longitude, - IFNULL(cg.latitude,ca.latitude) latitude + IFNULL(cg.latitude,ca.latitude) latitude, + cg.ABANDON_FLAG FROM customer_grid cg INNER JOIN customer_agency ca ON ca.pid = '0' AND ca.customer_id = cg.customer_id From 056b0fd96ceb9fd17a3930823a7fe6fa5e9c85f7 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 13:56:25 +0800 Subject: [PATCH 082/160] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E4=BF=A1=E6=81=AFfeign=E8=B0=83=E6=88=90=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/feign/CommonGovOrgFeignClient.java | 29 +++++++++++++++++++ ...ommonGovOrgFeignClientFallBackFactory.java | 23 +++++++++++++++ .../tools/redis/common/CustomerOrgRedis.java | 11 +++++-- 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java new file mode 100644 index 0000000000..3ece646100 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java @@ -0,0 +1,29 @@ +package com.epmet.commons.tools.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; +import com.epmet.commons.tools.feign.fallback.CommonGovOrgFeignClientFallBackFactory; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @Author zxc + * @DateTime 2022/3/17 1:42 下午 + * @DESC + */ +@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallbackFactory = CommonGovOrgFeignClientFallBackFactory.class) +public interface CommonGovOrgFeignClient { + + /** + * @Description 查询网格信息 + * @param gridId + * @author zxc + * @date 2021/11/5 2:54 下午 + */ + @PostMapping("/gov/org/grid/getbaseinfo") + Result getGridInfo(@RequestParam("gridId")String gridId); + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java new file mode 100644 index 0000000000..bcde96c380 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java @@ -0,0 +1,23 @@ +package com.epmet.commons.tools.feign.fallback; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import org.springframework.stereotype.Component; + +/** + * @Author zxc + * @DateTime 2022/3/17 1:46 下午 + * @DESC + */ +@Component +public class CommonGovOrgFeignClientFallBackFactory implements CommonGovOrgFeignClient { + + @Override + public Result getGridInfo(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", gridId); + } + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index c44a7030db..94c413431a 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; @@ -32,6 +33,8 @@ public class CustomerOrgRedis { @Autowired private CommonAggFeignClient commonAggFeignClient; + @Autowired + private CommonGovOrgFeignClient govOrgFeignClient; private static CustomerOrgRedis customerOrgRedis; private static final String ROLE_MAP_KEY = "roleMap"; @@ -42,6 +45,7 @@ public class CustomerOrgRedis { customerOrgRedis = this; customerOrgRedis.redisUtils = this.redisUtils; customerOrgRedis.commonAggFeignClient = this.commonAggFeignClient; + customerOrgRedis.govOrgFeignClient = this.govOrgFeignClient; } /** @@ -57,7 +61,7 @@ public class CustomerOrgRedis { if (!CollectionUtils.isEmpty(grid)) { return ConvertUtils.mapToEntity(grid, GridInfoCache.class); } - Result gridInfoResult = customerOrgRedis.commonAggFeignClient.getGridInfo(gridId); + Result gridInfoResult = customerOrgRedis.govOrgFeignClient.getGridInfo(gridId); if (!gridInfoResult.success()){ throw new RenException("查询网格信息失败..."); } @@ -65,9 +69,10 @@ public class CustomerOrgRedis { //throw new RenException("没有此网格信息..."); return null; } - log.info("select grid info is {}", JSON.toJSONString(gridInfoResult.getData())); + // feign 方法中已经放缓存 + /*log.info("select grid info is {}", JSON.toJSONString(gridInfoResult.getData())); Map map = BeanUtil.beanToMap(gridInfoResult.getData(), false, true); - customerOrgRedis.redisUtils.hMSet(key, map); + customerOrgRedis.redisUtils.hMSet(key, map);*/ return gridInfoResult.getData(); } From cfce2fd8846fb8b7cc7de430643d7eb813ab23ad Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 14:00:30 +0800 Subject: [PATCH 083/160] =?UTF-8?q?=E5=BA=9F=E5=BC=83=E5=AD=97=E6=AE=B5=20?= =?UTF-8?q?integer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/CustomerGridDTO.java | 2 +- .../main/java/com/epmet/entity/CustomerGridEntity.java | 2 +- .../com/epmet/service/impl/CustomerGridServiceImpl.java | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java index 78fecfca6d..0acd914fa6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java @@ -154,5 +154,5 @@ public class CustomerGridDTO implements Serializable { /** * 弃用:1;正常使用:0 */ - private Boolean abandonFlag; + private Integer abandonFlag; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java index 379d916654..70f73c89da 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CustomerGridEntity.java @@ -113,5 +113,5 @@ public class CustomerGridEntity extends BaseEpmetEntity { /** * 弃用:1;正常使用:0 */ - private Boolean abandonFlag; + private Integer abandonFlag; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 3b9e0be490..bd30ca06ac 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -1015,7 +1015,7 @@ public class CustomerGridServiceImpl extends BaseServiceImplCustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); @@ -1026,7 +1026,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList, List updateList) { + public void dealBizDataForAbandon(String customerId, String gridId, List staffList, List updateList) { //1.删除工作人员与网格的关系 LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); updateWrapper.eq(CustomerStaffGridEntity::getGridId,gridId); @@ -1037,7 +1037,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl badgeResult = epmetUserFeignClient.deleteBadgeCertificateAuditing(customerId,gridId); @@ -1047,7 +1047,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateGrid=new LambdaUpdateWrapper<>(); - updateGrid.set(CustomerGridEntity::getAbandonFlag,true); + updateGrid.set(CustomerGridEntity::getAbandonFlag,NumConstant.ZERO); updateGrid.eq(CustomerGridEntity::getId,gridId); baseDao.update(null,updateGrid); } From 7d5000fbb1b05db195bef7d4b71789dd518278c5 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 14:14:45 +0800 Subject: [PATCH 084/160] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E4=BF=A1=E6=81=AFfeign=E8=B0=83=E6=88=90=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/dto/form/CustomerGridFormDTO.java | 42 +++++++++++++++++++ .../tools/feign/CommonGovOrgFeignClient.java | 8 ++-- ...ommonGovOrgFeignClientFallBackFactory.java | 5 ++- .../tools/redis/common/CustomerOrgRedis.java | 5 ++- 4 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/CustomerGridFormDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/CustomerGridFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/CustomerGridFormDTO.java new file mode 100644 index 0000000000..767f03bc07 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/CustomerGridFormDTO.java @@ -0,0 +1,42 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.commons.tools.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +/** + * epmet-user端调用gov-org端的入参 + * @author sun + */ +@Data +public class CustomerGridFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 网格Id + */ + @NotBlank(message = "网格ID不能为空", groups = {Grid.class}) + private String gridId; + + public interface Grid{} + +} \ No newline at end of file diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java index 3ece646100..bb6bfe423b 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovOrgFeignClient.java @@ -1,13 +1,13 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; +import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; import com.epmet.commons.tools.feign.fallback.CommonGovOrgFeignClientFallBackFactory; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestBody; /** * @Author zxc @@ -19,11 +19,11 @@ public interface CommonGovOrgFeignClient { /** * @Description 查询网格信息 - * @param gridId + * @param customerGridFormDTO * @author zxc * @date 2021/11/5 2:54 下午 */ @PostMapping("/gov/org/grid/getbaseinfo") - Result getGridInfo(@RequestParam("gridId")String gridId); + Result getGridInfo(@RequestBody CustomerGridFormDTO customerGridFormDTO); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java index bcde96c380..e292d07c69 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java @@ -1,6 +1,7 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; @@ -16,8 +17,8 @@ import org.springframework.stereotype.Component; public class CommonGovOrgFeignClientFallBackFactory implements CommonGovOrgFeignClient { @Override - public Result getGridInfo(String gridId) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", gridId); + public Result getGridInfo(CustomerGridFormDTO customerGridFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", customerGridFormDTO); } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index 94c413431a..66faab24d3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -2,6 +2,7 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; @@ -61,7 +62,9 @@ public class CustomerOrgRedis { if (!CollectionUtils.isEmpty(grid)) { return ConvertUtils.mapToEntity(grid, GridInfoCache.class); } - Result gridInfoResult = customerOrgRedis.govOrgFeignClient.getGridInfo(gridId); + CustomerGridFormDTO formDTO = new CustomerGridFormDTO(); + formDTO.setGridId(gridId); + Result gridInfoResult = customerOrgRedis.govOrgFeignClient.getGridInfo(formDTO); if (!gridInfoResult.success()){ throw new RenException("查询网格信息失败..."); } From e1878114117c0055551439f601838e91090cb2af Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 14:27:30 +0800 Subject: [PATCH 085/160] fallback --- .../CommonOrgFeignClientFallback.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java new file mode 100644 index 0000000000..1f9ddecf02 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java @@ -0,0 +1,25 @@ +package com.epmet.commons.tools.feign.fallback; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import org.springframework.stereotype.Component; + +/** + * 调用政府端权限 + * @Author wxz + * @Description + * @Date 2020/4/24 11:17 + **/ +@Component +public class CommonOrgFeignClientFallback implements CommonGovOrgFeignClient { + + @Override + public Result getGridInfo(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", gridId); + } + + +} From cd4cddd617a4e0ed4da76e95548881124a70806a Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 14:38:25 +0800 Subject: [PATCH 086/160] =?UTF-8?q?=E5=93=88=E5=93=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/feign/fallback/CommonOrgFeignClientFallback.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java index 1f9ddecf02..c7308d15ab 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java @@ -1,6 +1,7 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; @@ -17,8 +18,8 @@ import org.springframework.stereotype.Component; public class CommonOrgFeignClientFallback implements CommonGovOrgFeignClient { @Override - public Result getGridInfo(String gridId) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", gridId); + public Result getGridInfo(CustomerGridFormDTO customerGridFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", customerGridFormDTO); } From 3e8b7cbb0ed820e6bd9e97566af42c36c2579bbd Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 14:54:44 +0800 Subject: [PATCH 087/160] fallback --- ...CommonGovOrgFeignClientFallBackFactory.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java index e292d07c69..219d8f38cd 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java @@ -1,11 +1,9 @@ package com.epmet.commons.tools.feign.fallback; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.dto.form.CustomerGridFormDTO; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.feign.CommonGovOrgFeignClient; -import com.epmet.commons.tools.redis.common.bean.GridInfoCache; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** @@ -13,12 +11,14 @@ import org.springframework.stereotype.Component; * @DateTime 2022/3/17 1:46 下午 * @DESC */ +@Slf4j @Component -public class CommonGovOrgFeignClientFallBackFactory implements CommonGovOrgFeignClient { - +public class CommonGovOrgFeignClientFallBackFactory implements FallbackFactory { + private CommonOrgFeignClientFallback fallback = new CommonOrgFeignClientFallback(); @Override - public Result getGridInfo(CustomerGridFormDTO customerGridFormDTO) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo", customerGridFormDTO); + public CommonGovOrgFeignClient create(Throwable cause) { + log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); + return fallback; } } From b0a480d79122ce69ae36dae299195c818b51d5bd Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 15:03:12 +0800 Subject: [PATCH 088/160] fallback --- .../feign/fallback/CommonGovOrgFeignClientFallBackFactory.java | 2 +- ...ClientFallback.java => CommonGovOrgFeignClientFallback.java} | 2 +- .../java/com/epmet/service/impl/CustomerGridServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/{CommonOrgFeignClientFallback.java => CommonGovOrgFeignClientFallback.java} (90%) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java index 219d8f38cd..8cde59e6e1 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallBackFactory.java @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; @Slf4j @Component public class CommonGovOrgFeignClientFallBackFactory implements FallbackFactory { - private CommonOrgFeignClientFallback fallback = new CommonOrgFeignClientFallback(); + private CommonGovOrgFeignClientFallback fallback = new CommonGovOrgFeignClientFallback(); @Override public CommonGovOrgFeignClient create(Throwable cause) { log.error(String.format("FeignClient调用发生异常,异常信息:%s", ExceptionUtils.getThrowableErrorStackTrace(cause))); diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java similarity index 90% rename from epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java rename to epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java index c7308d15ab..c54567c350 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonOrgFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovOrgFeignClientFallback.java @@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; * @Date 2020/4/24 11:17 **/ @Component -public class CommonOrgFeignClientFallback implements CommonGovOrgFeignClient { +public class CommonGovOrgFeignClientFallback implements CommonGovOrgFeignClient { @Override public Result getGridInfo(CustomerGridFormDTO customerGridFormDTO) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index bd30ca06ac..094df4ba53 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -1047,7 +1047,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateGrid=new LambdaUpdateWrapper<>(); - updateGrid.set(CustomerGridEntity::getAbandonFlag,NumConstant.ZERO); + updateGrid.set(CustomerGridEntity::getAbandonFlag,NumConstant.ONE); updateGrid.eq(CustomerGridEntity::getId,gridId); baseDao.update(null,updateGrid); } From 110a1335876b8c4e2063d8fecd26977b770614e1 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 15:23:32 +0800 Subject: [PATCH 089/160] =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/impl/CustomerGridServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 094df4ba53..53d3242cfa 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -40,6 +40,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; @@ -98,6 +99,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList = customerStaffGridDao.getGridStaffList(gridId); - if (CollectionUtils.isEmpty(staffList)){ - log.info("abandonGridForDealBizData gridId:{} have any staff", gridId); - return; + if (staffList == null){ + staffList = new ArrayList<>(); } logger.debug("abandonGridForDealBizData staffList:{}", JSON.toJSONString(staffList)); List updateList = new ArrayList<>(); @@ -1013,8 +1015,8 @@ public class CustomerGridServiceImpl extends BaseServiceImplCustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); From bdc89ab26258d1da0d1105c6604e4fbb4b7fa630 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 15:34:48 +0800 Subject: [PATCH 090/160] updatedTime --- .../com/epmet/dto/form/AbandonGridFormDTO.java | 1 + .../java/com/epmet/controller/GridController.java | 3 ++- .../com/epmet/service/CustomerGridService.java | 4 ++-- .../service/impl/CustomerGridServiceImpl.java | 14 ++++++++------ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java index 1d1aca23e1..85f8d7fd34 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AbandonGridFormDTO.java @@ -11,4 +11,5 @@ import java.io.Serializable; public class AbandonGridFormDTO implements Serializable { @NotBlank(message = "网格id不能为空",groups = AddGroup.class) private String gridId; + private String userId; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 20c4dd4aef..8f026e9f44 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -235,7 +235,8 @@ public class GridController { */ @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE) @PostMapping("abandon") - public Result abandonGrid(@RequestBody AbandonGridFormDTO formDTO){ + public Result abandonGrid(@LoginUser TokenDto tokenDto,@RequestBody AbandonGridFormDTO formDTO){ + formDTO.setUserId(tokenDto.getUserId()); ValidatorUtils.validateEntity(formDTO, AddGroup.class); customerGridService.abandonGrid(formDTO); return new Result(); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java index 504555fbc7..c3ba7c1286 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerGridService.java @@ -384,7 +384,7 @@ public interface CustomerGridService extends BaseService { /** * desc:移除网格内的工作人员关系 并迁移到组织 - * @param gridId + * @param formDTO */ - void abandonGridForDealBizData(String gridId); + void abandonGridForDealBizData(AbandonGridFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 094df4ba53..60735f8615 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -981,17 +981,17 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList = customerStaffGridDao.getGridStaffList(gridId); + List staffList = customerStaffGridDao.getGridStaffList(formDTO.getGridId()); if (CollectionUtils.isEmpty(staffList)){ - log.info("abandonGridForDealBizData gridId:{} have any staff", gridId); + log.info("abandonGridForDealBizData gridId:{} have any staff", formDTO.getGridId()); return; } logger.debug("abandonGridForDealBizData staffList:{}", JSON.toJSONString(staffList)); @@ -1015,7 +1015,7 @@ public class CustomerGridServiceImpl extends BaseServiceImplCustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); @@ -1026,7 +1026,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList, List updateList) { + public void dealBizDataForAbandon(String customerId, String gridId, String userId,List staffList, List updateList) { //1.删除工作人员与网格的关系 LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); updateWrapper.eq(CustomerStaffGridEntity::getGridId,gridId); @@ -1048,6 +1048,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl updateGrid=new LambdaUpdateWrapper<>(); updateGrid.set(CustomerGridEntity::getAbandonFlag,NumConstant.ONE); + updateGrid.set(CustomerGridEntity::getUpdatedBy,userId); + updateGrid.set(CustomerGridEntity::getUpdatedTime,new Date()); updateGrid.eq(CustomerGridEntity::getId,gridId); baseDao.update(null,updateGrid); } From 7f4123c5cffd14dc662642663756c6f1ed3d3452 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 15:38:01 +0800 Subject: [PATCH 091/160] merge --- .../java/com/epmet/service/impl/CustomerGridServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index b63db4f280..c337f989e3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -992,7 +992,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl staffList = customerStaffGridDao.getGridStaffList(gridId); + List staffList = customerStaffGridDao.getGridStaffList(formDTO.getGridId()); if (staffList == null){ staffList = new ArrayList<>(); } @@ -1017,7 +1017,7 @@ public class CustomerGridServiceImpl extends BaseServiceImplCustomerStaffRedis.delStaffInfoFormCache(customerId,staff.getStaffId())); From d1a24727d496e3d845204735175f5b81dcbaa5fb Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 16:38:30 +0800 Subject: [PATCH 092/160] =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/UserServiceImpl.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index a6f88e5c0f..ee45a0afe7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -467,18 +467,29 @@ public class UserServiceImpl extends BaseServiceImpl implem //2、修改历史徽章表 LambdaUpdateWrapper recUpdate=new LambdaUpdateWrapper<>(); - recUpdate.set(UserBadgeCertificateRecordEntity::getGridId,newGridInfo.getId()); + recUpdate.set(UserBadgeCertificateRecordEntity::getGridId,newGridInfo.getId()) + .set(UserBadgeCertificateRecordEntity::getUpdatedBy,formDTO.getUserId()) + .set(UserBadgeCertificateRecordEntity::getUpdatedTime,new Date()); recUpdate.eq(UserBadgeCertificateRecordEntity::getCustomerId,formDTO.getCustomerId()) .eq(UserBadgeCertificateRecordEntity::getUserId,formDTO.getUserId()); userBadgeCertificateRecordDao.update(null,recUpdate); LambdaUpdateWrapper badgeUpdate=new LambdaUpdateWrapper<>(); - badgeUpdate.set(ResiUserBadgeEntity::getGridId,newGridInfo.getId()); + badgeUpdate.set(ResiUserBadgeEntity::getGridId,newGridInfo.getId()) + .set(ResiUserBadgeEntity::getUpdatedBy,formDTO.getUserId()) + .set(ResiUserBadgeEntity::getUpdatedTime,new Date());; badgeUpdate.eq(ResiUserBadgeEntity::getCustomerId,formDTO.getCustomerId()) .eq(ResiUserBadgeEntity::getUserId,formDTO.getUserId()); resiUserBadgeDao.update(null,badgeUpdate); //3、修改支援者信息表 + modifyVolunteerGrid(formDTO,newGridInfo); + + //4、删除用户缓存信息 + userBaseInfoRedis.clearUserCache(Arrays.asList(formDTO.getUserId())); + } + + private void modifyVolunteerGrid(ModifyRegGridFormDTO formDTO, GridInfoCache newGridInfo) { VolunteerInfoDTO volunteerInfoDTO=new VolunteerInfoDTO(); volunteerInfoDTO.setCustomerId(formDTO.getCustomerId()); volunteerInfoDTO.setUserId(formDTO.getUserId()); @@ -490,8 +501,6 @@ public class UserServiceImpl extends BaseServiceImpl implem if (!volunteerRes.success()) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:修改用户志愿者信息异常", "服务器开小差了..."); } - //4、删除用户缓存信息 - userBaseInfoRedis.clearUserCache(Arrays.asList(formDTO.getUserId())); } } From 90c1207acc8c0dc0e43a155701f993543c2e0568 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 16:52:22 +0800 Subject: [PATCH 093/160] =?UTF-8?q?=E6=A0=B9=E6=8D=AEuserId=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=B3=A8=E5=86=8C=E7=BD=91=E6=A0=BCID=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/RegisterRelationDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml index 74c1691615..3ce51f018a 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml @@ -79,7 +79,7 @@ From c540404bf6ca70a67a6764ebc23e347ca84e3412 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 17 Mar 2022 18:15:50 +0800 Subject: [PATCH 094/160] =?UTF-8?q?commonFeign=E5=88=A0=E9=99=A4=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=BD=91=E6=A0=BC=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/feign/CommonAggFeignClient.java | 8 -------- .../feign/fallback/CommonAggFeignClientFallback.java | 4 ---- 2 files changed, 12 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java index 5a03583011..5ec2ed2e44 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java @@ -37,12 +37,4 @@ public interface CommonAggFeignClient { @PostMapping("/data/aggregator/org/agency") Result getAgencyInfo(@RequestParam("agencyId")String agencyId); - /** - * @Description 查询网格信息 - * @param gridId - * @author zxc - * @date 2021/11/5 2:54 下午 - */ - @PostMapping("/data/aggregator/org/grid") - Result getGridInfo(@RequestParam("gridId")String gridId); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java index 02f209f4f2..317e7bb131 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java @@ -28,8 +28,4 @@ public class CommonAggFeignClientFallback implements CommonAggFeignClient { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getAgencyInfo", agencyId); } - @Override - public Result getGridInfo(String gridId) { - return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId); - } } From e20910681e61006541930e434e2d49f9eb122dc7 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 19:05:04 +0800 Subject: [PATCH 095/160] user_reg_grid_change_rec --- .../epmet/dao/UserRegGridChangeRecDao.java | 16 ++++++++ .../entity/UserRegGridChangeRecEntity.java | 41 +++++++++++++++++++ .../epmet/service/impl/UserServiceImpl.java | 15 ++++++- .../V0.0.25__create_user_reg_grid_rec.sql | 14 +++++++ .../mapper/UserRegGridChangeRecDao.xml | 8 ++++ 5 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRegGridChangeRecDao.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserRegGridChangeRecEntity.java create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.25__create_user_reg_grid_rec.sql create mode 100644 epmet-user/epmet-user-server/src/main/resources/mapper/UserRegGridChangeRecDao.xml diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRegGridChangeRecDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRegGridChangeRecDao.java new file mode 100644 index 0000000000..c14ace1ab7 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRegGridChangeRecDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.UserRegGridChangeRecEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户注册网格变更记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-17 + */ +@Mapper +public interface UserRegGridChangeRecDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserRegGridChangeRecEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserRegGridChangeRecEntity.java new file mode 100644 index 0000000000..262c79e608 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserRegGridChangeRecEntity.java @@ -0,0 +1,41 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户注册网格变更记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-03-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("user_reg_grid_change_rec") +public class UserRegGridChangeRecEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 居民端用户id + */ + private String userId; + + /** + * 原始网格id + */ + private String originGridId; + + /** + * 当前所选择的注册网格 + */ + private String gridId; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index ee45a0afe7..12380e64c2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -75,6 +75,9 @@ public class UserServiceImpl extends BaseServiceImpl implem private UserBadgeCertificateRecordDao userBadgeCertificateRecordDao; @Autowired private UserBaseInfoRedis userBaseInfoRedis; + @Autowired + private UserRegGridChangeRecDao UserRegGridChangeRecDao; + private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class); @@ -438,8 +441,9 @@ public class UserServiceImpl extends BaseServiceImpl implem @Override public void modifyRegGrid(ModifyRegGridFormDTO formDTO) { GridInfoCache newGridInfo= CustomerOrgRedis.getGridInfo(formDTO.getGridId()); - if (null == newGridInfo) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询当前网格信息异常", "服务器开小差了..."); + RegisterRelationEntity originReg=registerRelationDao.selectRegisteredGridIdByUserIdAndCustomerId(formDTO.getUserId(),formDTO.getCustomerId()); + if (null == newGridInfo || null == originReg) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "居民端_修改注册网格:查询网格信息异常", "服务器开小差了..."); } //修改register_relation表 LambdaQueryWrapper originWrapper=new LambdaQueryWrapper(); @@ -487,6 +491,13 @@ public class UserServiceImpl extends BaseServiceImpl implem //4、删除用户缓存信息 userBaseInfoRedis.clearUserCache(Arrays.asList(formDTO.getUserId())); + //5、插入用户注册网格变更记录 + UserRegGridChangeRecEntity log=new UserRegGridChangeRecEntity(); + log.setCustomerId(formDTO.getCustomerId()); + log.setUserId(formDTO.getUserId()); + log.setOriginGridId(originReg.getGridId()); + log.setGridId(formDTO.getGridId()); + UserRegGridChangeRecDao.insert(log); } private void modifyVolunteerGrid(ModifyRegGridFormDTO formDTO, GridInfoCache newGridInfo) { diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.25__create_user_reg_grid_rec.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.25__create_user_reg_grid_rec.sql new file mode 100644 index 0000000000..85a0db8e18 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.25__create_user_reg_grid_rec.sql @@ -0,0 +1,14 @@ +CREATE TABLE `user_reg_grid_change_rec` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `USER_ID` varchar(64) NOT NULL COMMENT '居民端用户id', + `ORIGIN_GRID_ID` varchar(64) NOT NULL COMMENT '原始网格id', + `GRID_ID` varchar(64) NOT NULL COMMENT '当前所选择的注册网格', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 1删除;0未删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户注册网格变更记录表'; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRegGridChangeRecDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRegGridChangeRecDao.xml new file mode 100644 index 0000000000..4fcd5c664e --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRegGridChangeRecDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 0dc2f58ea0e8d8b25091fcf643dd4ad78c283029 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 17 Mar 2022 19:28:44 +0800 Subject: [PATCH 096/160] =?UTF-8?q?=E5=85=88=E6=94=BE=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-org-server/src/main/resources/mapper/CustomerGridDao.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 426b4fbb0a..c3390d9cc9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -342,7 +342,6 @@ WHERE cg.del_flag = '0' AND ca.del_flag = '0' AND cg.SYNC_FLAG='1' - and cg.ABANDON_FLAG='0' AND cg.id IN #{id} From 7cec5ec2e2aaac3b3ebf1b90a6e585f9c27838b3 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 17 Mar 2022 19:46:40 +0800 Subject: [PATCH 097/160] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E8=AE=BF=E9=97=AE=E8=AE=B0=E5=BD=95-=E5=BA=9F=E5=BC=83?= =?UTF-8?q?=E7=BD=91=E6=A0=BC=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/feign/EpmetUserFeignClient.java | 11 ++++++++++- .../feign/fallback/EpmetUserFeignClientFallBack.java | 5 +++++ .../epmet/service/impl/CustomerGridServiceImpl.java | 6 +++++- .../java/com/epmet/controller/BadgeController.java | 9 ++++++--- .../com/epmet/controller/GridLatestController.java | 11 +++++++++++ .../java/com/epmet/service/GridLatestService.java | 8 ++++++++ .../com/epmet/service/impl/GridLatestServiceImpl.java | 11 ++++++++++- 7 files changed, 55 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index b29dfbcdac..8190c9418d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -157,11 +157,20 @@ public interface EpmetUserFeignClient { Result getCustomerStaffList(List staffIdList); /** - * desc:删除审核中的徽章认证记录 + * desc:删除审核中的徽章认证记录-弃用网格是调用 * @param customerId * @param gridId * @return */ @PostMapping("/epmetuser/badge/deleteBadgeCertificateAuditing") Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId, @RequestParam("gridId") String gridId); + + /** + * desc:删除弃用网格的访问记录-弃用网格是调用 + * @param customerId + * @param gridId + * @return + */ + @PostMapping("/epmetuser/gridlatest/deleteGridLatestData") + Result deleteGridLatestData(@RequestParam("customerId") String customerId, @RequestParam("gridId") String gridId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java index 70bc8b7892..4594d36a60 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java @@ -96,4 +96,9 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { public Result deleteBadgeCertificateAuditing(String customerId, String gridId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deleteBadgeCertificateAuditing", customerId, gridId); } + + @Override + public Result deleteGridLatestData(String customerId, String gridId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deleteGridLatestData", customerId, gridId); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index c337f989e3..70945c6fe1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -1046,7 +1046,11 @@ public class CustomerGridServiceImpl extends BaseServiceImpl gridLatestResult = epmetUserFeignClient.deleteGridLatestData(customerId,gridId); + if (gridLatestResult == null || !gridLatestResult.success()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"删除网格访问记录失败,请稍后重试"); + } //处理成功,隐藏网格 LambdaUpdateWrapper updateGrid=new LambdaUpdateWrapper<>(); updateGrid.set(CustomerGridEntity::getAbandonFlag,NumConstant.ONE); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java index 37c56eeac9..eace8b90b0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java @@ -1,7 +1,9 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -218,11 +220,12 @@ public class BadgeController { } /** - * Desc: 查询网格下是否存在未审核的徽章,true:是,false:否 + * desc:删除审核中的徽章认证记录-弃用网格是调用 + * @param customerId * @param gridId - * @author zxc - * @date 2022/3/16 9:42 上午 + * @return */ + @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE) @PostMapping("deleteBadgeCertificateAuditing") public Result deleteBadgeCertificateAuditing(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ return new Result().ok(badgeService.deleteBadgeCertificateAuditing(customerId,gridId)); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java index c470d793a9..b1b07c4e9e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GridLatestController.java @@ -143,4 +143,15 @@ public class GridLatestController { return new Result().ok(gridLatestService.latestGridInfo(formDTO)); } + /** + * desc:删除弃用网格的访问记录-弃用网格是调用 + * @param customerId + * @param gridId + * @return + */ + @PostMapping("deleteGridLatestData") + public Result deleteGridLatestData(@RequestParam("customerId") String customerId,@RequestParam("gridId")String gridId){ + return new Result().ok(gridLatestService.deleteGridLatestData(customerId,gridId)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java index e9ff239d1e..2ba30ae954 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GridLatestService.java @@ -140,4 +140,12 @@ public interface GridLatestService extends BaseService { * @Date 2020/8/3 **/ LatestGridInfoResultDTO latestGridInfo(LatestGridInfoFormDTO formDTO); + + /** + * desc:删除弃用网格的访问记录-弃用网格是调用 + * @param customerId + * @param gridId + * @return + */ + Integer deleteGridLatestData(String customerId, String gridId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java index 58f9383078..fabf993292 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java @@ -19,6 +19,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; @@ -36,7 +37,6 @@ import com.epmet.dto.result.CustomerUser4PointResultDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.entity.GridLatestEntity; -import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.redis.UserBaseInfoRedis; import com.epmet.service.GridLatestService; import com.epmet.util.ModuleConstant; @@ -210,4 +210,13 @@ public class GridLatestServiceImpl extends BaseServiceImpl wrapper = new LambdaUpdateWrapper(); + wrapper.eq(GridLatestEntity::getCustomerId,customerId) + .eq(GridLatestEntity::getGridId,gridId) + .set(GridLatestEntity::getUpdatedTime,System.currentTimeMillis()); + return baseDao.delete(wrapper); + } + } From 2a144cd01ffa0a09ceb71820a1d3ecac41a95f10 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Mar 2022 09:46:16 +0800 Subject: [PATCH 098/160] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/impl/ScreenCustomerGridServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index 268330f03b..308a9113c9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -128,7 +128,7 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl w = new LambdaQueryWrapper<>(); w.eq(ScreenCustomerGridEntity::getGridId, grid.getId()); ScreenCustomerGridEntity e = new ScreenCustomerGridEntity(); - e.setDataEndTime(NumConstant.ONE_STR); + e.setDelFlag(NumConstant.ONE_STR); e.setUpdatedTime(new Date()); screenCustomerGridDao.update(e,w); // 此delete不更新 updatedTime From 0fcb013795ae086f57188945fdca1f7b20988fb0 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 18 Mar 2022 14:51:15 +0800 Subject: [PATCH 099/160] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/entity/MemoAttrEntity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java index 69a68497ce..8a9642b2cc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java @@ -1,9 +1,12 @@ package com.epmet.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; import java.util.Date; @@ -28,6 +31,7 @@ public class MemoAttrEntity extends BaseEpmetEntity { /** * 提醒时间 */ + @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.DATE) private Date remindTime; /** From f258c7c449fffe911d8d5e1846312fc9e605256b Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 18 Mar 2022 15:30:30 +0800 Subject: [PATCH 100/160] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=EF=BC=8C=20?= =?UTF-8?q?=E6=8F=90=E9=86=92=E6=97=B6=E9=97=B4=E5=8F=AF=E4=BB=A5=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/entity/MemoAttrEntity.java | 2 +- .../src/main/java/com/epmet/entity/MemoConcernEntity.java | 5 +++++ .../src/main/java/com/epmet/entity/MemoDifficultyEntity.java | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java index 8a9642b2cc..1345a64b99 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java @@ -31,7 +31,7 @@ public class MemoAttrEntity extends BaseEpmetEntity { /** * 提醒时间 */ - @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.DATE) + @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date remindTime; /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index dce8dc6672..884231a5c1 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -1,9 +1,12 @@ package com.epmet.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; import java.util.Date; @@ -53,11 +56,13 @@ public class MemoConcernEntity extends BaseEpmetEntity { /** * 预计关怀时间 */ + @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date scheduledTime; /** * 实际执行时间(预留字段) */ + @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date actualTime; /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java index e73a444598..339ce5569e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java @@ -1,9 +1,12 @@ package com.epmet.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; import java.util.Date; @@ -43,6 +46,7 @@ public class MemoDifficultyEntity extends BaseEpmetEntity { /** * 预计处理时间 */ + @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date scheduledTime; } From bd768e2535d2b4ed0f15fc188c7b838b4ceb2299 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 18 Mar 2022 15:33:25 +0800 Subject: [PATCH 101/160] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MemoDifficultyServiceImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 6760d8b357..0a35d69ebf 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -126,19 +126,21 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl Date: Fri, 18 Mar 2022 16:24:04 +0800 Subject: [PATCH 102/160] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=EF=BC=8C=20?= =?UTF-8?q?=E6=8F=90=E9=86=92=E6=97=B6=E9=97=B4=E5=8F=AF=E4=BB=A5=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/entity/MemoConcernEntity.java | 4 ++-- .../src/main/java/com/epmet/entity/MemoDifficultyEntity.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java index 884231a5c1..2961cfad8a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java @@ -56,13 +56,13 @@ public class MemoConcernEntity extends BaseEpmetEntity { /** * 预计关怀时间 */ - @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) + @TableField(value="SCHEDULED_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date scheduledTime; /** * 实际执行时间(预留字段) */ - @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) + @TableField(value="ACTUAL_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date actualTime; /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java index 339ce5569e..7ac9750a3e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java @@ -46,7 +46,7 @@ public class MemoDifficultyEntity extends BaseEpmetEntity { /** * 预计处理时间 */ - @TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) + @TableField(value="SCHEDULED_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP) private Date scheduledTime; } From 348c42452aaa7e403c63ce69c8d118eb32bc5781 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 19 Mar 2022 17:44:30 +0800 Subject: [PATCH 103/160] =?UTF-8?q?=E5=9F=9F=E5=90=8D=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E4=B8=BAopen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/utils/BarcodeUtils.java | 2 +- .../com/epmet/controller/AgencyController.java | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java index ee5369b3af..a98c87a0a9 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java @@ -115,7 +115,7 @@ public class BarcodeUtils { String s = outStringByByte(pressText, maxSize); g.drawString(s, (WIDTH - (FONTSIZE * (WIDTH / FONTSIZE - 2))) / 2, startY); pressText = pressText.substring(s.length(), pressText.length()); - startY = startY + 30; + startY = startY + 35; } if (v != 0) { g.drawString(pressText, (WIDTH - (FONTSIZE * v)) / 2, startY); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index fa337b1fd2..0fd174dba9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -17,7 +17,6 @@ package com.epmet.controller; -import com.alibaba.fastjson.JSONObject; import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; @@ -43,12 +42,6 @@ import com.epmet.send.SendMqMsgUtil; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.IcNeighborHoodService; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.MultiFormatWriter; -import com.google.zxing.WriterException; -import com.google.zxing.client.j2se.MatrixToImageWriter; -import com.google.zxing.common.BitMatrix; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -58,10 +51,11 @@ import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; -import java.io.*; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URLEncoder; -import java.nio.file.FileSystems; -import java.nio.file.Path; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.HashMap; @@ -415,7 +409,9 @@ public class AgencyController { } //url组成:数字社区地址?小区id&用户id //String url = "https://demo.tduckapp.com/s/7314b64b3a26455ab793fb8c640856b6?id="+id; - String url = EnvEnum.getCurrentEnv().getUrl().replace("api/", StrConstant.EPMETY_STR) + String url = EnvEnum.getCurrentEnv().getUrl() + .replace("cloud","open") + .replace("api/", StrConstant.EPMETY_STR) .concat("epmet-oper-gov/#/caiji/") .concat(id).concat("?") .concat("name=").concat(URLEncoder.encode(name,StrConstant.UTF_8)).concat(StrConstant.AND_MARK) From 130f22d087075268519d004c2953fe460ecdfef8 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 19 Mar 2022 19:25:39 +0800 Subject: [PATCH 104/160] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=B9=B6=E8=AE=BE=E7=BD=AE=E6=96=87=E5=AD=97=E9=97=B4?= =?UTF-8?q?=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-commons/epmet-commons-tools/pom.xml | 4 +-- .../commons/tools/utils/BarcodeUtils.java | 2 +- .../epmet/controller/AgencyController.java | 28 +++++++++++++------ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml index 7542899ad0..7f1fb8e728 100644 --- a/epmet-commons/epmet-commons-tools/pom.xml +++ b/epmet-commons/epmet-commons-tools/pom.xml @@ -169,13 +169,13 @@ com.google.zxing core - 3.3.2 + 3.4.1 com.google.zxing javase - 3.3.2 + 3.4.1 diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java index ee5369b3af..07af293c07 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java @@ -95,7 +95,7 @@ public class BarcodeUtils { //x开始的位置:(图片宽度-字体大小*字的个数)/2 int startX = (WIDTH - (FONTSIZE * pressText.length())) / 2; //y开始的位置:图片高度-(图片高度-图片宽度)/2 - int startY = HEIGHT - (HEIGHT - WIDTH) / 2; + int startY = HEIGHT - (HEIGHT - WIDTH) / 2+ FONTSIZE; int imageW = outImage.getWidth(); int imageH = outImage.getHeight(); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index fa337b1fd2..e7396e96f8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -17,7 +17,6 @@ package com.epmet.controller; -import com.alibaba.fastjson.JSONObject; import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; @@ -43,12 +42,7 @@ import com.epmet.send.SendMqMsgUtil; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.IcNeighborHoodService; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.MultiFormatWriter; -import com.google.zxing.WriterException; -import com.google.zxing.client.j2se.MatrixToImageWriter; -import com.google.zxing.common.BitMatrix; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -60,8 +54,6 @@ import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.*; import java.net.URLEncoder; -import java.nio.file.FileSystems; -import java.nio.file.Path; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.HashMap; @@ -450,4 +442,22 @@ public class AgencyController { } } + public static void main(String[] args) { + try { + BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区中国国歌过过过过过所多对方水电费是的发生的", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区", "erId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage image2 = BarcodeUtils.getQRCode("小崽子社区", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage 转 InputStream + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream); + ImageIO.write(image, "png", imageOutput); + InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); + String s = "/Users/liujianjun/Downloads/t.png"; + File file= new File(s); + FileUtils.copyInputStreamToFile(inputStream, file); + } catch (Exception e) { + e.printStackTrace(); + } + } + } From 8087817caf5833643366b7588300d46ae052d541 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 19 Mar 2022 19:39:41 +0800 Subject: [PATCH 105/160] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=B9=B6=E8=AE=BE=E7=BD=AE=E6=96=87=E5=AD=97=E9=97=B4?= =?UTF-8?q?=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/utils/BarcodeUtils.java | 30 +++++++++++-------- .../epmet/controller/AgencyController.java | 18 +---------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java index 07af293c07..2f890c9e0f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/BarcodeUtils.java @@ -1,13 +1,5 @@ package com.epmet.commons.tools.utils; -/** - * desc: - * - * @author: LiuJanJun - * @date: 2022/3/18 11:57 上午 - * @version: 1.0 - */ - import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; @@ -28,7 +20,6 @@ import java.io.IOException; import java.util.HashMap; /** - * Author 程鹏 * Date: 2021/08/27 16:01 * Description:二维码生成工具类 */ @@ -95,7 +86,7 @@ public class BarcodeUtils { //x开始的位置:(图片宽度-字体大小*字的个数)/2 int startX = (WIDTH - (FONTSIZE * pressText.length())) / 2; //y开始的位置:图片高度-(图片高度-图片宽度)/2 - int startY = HEIGHT - (HEIGHT - WIDTH) / 2+ FONTSIZE; + int startY = HEIGHT - (HEIGHT - WIDTH) / 2 + FONTSIZE; int imageW = outImage.getWidth(); int imageH = outImage.getHeight(); @@ -169,9 +160,24 @@ public class BarcodeUtils { } else { return new String(btf, 0, len - 1, "GBK"); } - } - + /*public static void main(String[] args) { + try { + BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区中国国歌过过过过过所多对方水电费是的发生的", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区", "erId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage image2 = BarcodeUtils.getQRCode("小崽子社区", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); + //BufferedImage 转 InputStream + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream); + ImageIO.write(image, "png", imageOutput); + InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); + String s = "/Users/liujianjun/Downloads/t.png"; + File file= new File(s); + FileUtils.copyInputStreamToFile(inputStream, file); + } catch (Exception e) { + e.printStackTrace(); + } + }*/ } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index e7396e96f8..2279f38fc1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -442,22 +442,6 @@ public class AgencyController { } } - public static void main(String[] args) { - try { - BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区中国国歌过过过过过所多对方水电费是的发生的", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); - //BufferedImage image = BarcodeUtils.drawQRImage("小崽子社区", "erId=72d331139a5012b6bba18b40029a2755&123123123111"); - //BufferedImage image2 = BarcodeUtils.getQRCode("小崽子社区", "https://epmet-cloud.elinkservice.cn/epmet-oper-gov/#/caiji/b058eb82d65d922fec9dc84f0348fc6a?name=%E5%B0%8F%E5%AF%A8%E5%AD%90%E7%A4%BE%E5%8C%BA&customerId=3fdd0380deff5b30f45376cdf995d1c1&type=community&userId=72d331139a5012b6bba18b40029a2755&123123123111"); - //BufferedImage 转 InputStream - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream); - ImageIO.write(image, "png", imageOutput); - InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); - String s = "/Users/liujianjun/Downloads/t.png"; - File file= new File(s); - FileUtils.copyInputStreamToFile(inputStream, file); - } catch (Exception e) { - e.printStackTrace(); - } - } + } From 666971bdc99630ffab0f9118d1e3efe60bc3bdf2 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 09:04:47 +0800 Subject: [PATCH 106/160] =?UTF-8?q?=E6=88=90=E5=91=98=E5=8F=AA=E9=99=90?= =?UTF-8?q?=E5=88=B6=E5=A7=93=E5=90=8D=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7?= =?UTF-8?q?=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/form/IcResiCollectMemFormDTO.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java index 4490b9357c..72096f2b36 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java @@ -3,7 +3,6 @@ package com.epmet.dto.form; import lombok.Data; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; @Data @@ -27,18 +26,18 @@ public class IcResiCollectMemFormDTO implements Serializable { /** * 居住成员1手机号 */ - @NotBlank(message = "手机号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + // @NotBlank(message = "手机号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) private String mobile; /** * 居住成员1是否参加几轮全员核算检测,数字1-10 */ - @NotBlank(message = "核算检测情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + // @NotBlank(message = "核算检测情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) private String heSuanCount; /** * 居住成员1新冠疫苗接种情况;1:已全程接种;2:未全程接种;0未接种; */ - @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + // @NotNull(message = "疫苗接种情况不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) private Integer ymjz; } From 671b754a8ce14ae66083035b8b0a02b64752c9a8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 09:15:29 +0800 Subject: [PATCH 107/160] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=81=9A=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/form/IcResiCollectMemFormDTO.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java index 72096f2b36..823e76b4c9 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java @@ -5,6 +5,10 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +/** + * 家庭成员信息 + * 前端做校验 + */ @Data public class IcResiCollectMemFormDTO implements Serializable { /** @@ -14,13 +18,13 @@ public class IcResiCollectMemFormDTO implements Serializable { /** * 居住成员1姓名 */ - @NotBlank(message = "姓名不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + // @NotBlank(message = "姓名不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) private String name; /** * 居住成员1身份证号 */ - @NotBlank(message = "身份证号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) + // @NotBlank(message = "身份证号不能为空", groups = {IcResiCollectFormDTO.InternalShowGroup.class, IcResiCollectFormDTO.ExternalShowGroup.class}) private String idNum; /** From 8930f00674de03e1109a05603a88d187092fa136 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 09:18:01 +0800 Subject: [PATCH 108/160] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=81=9A=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java | 1 - 1 file changed, 1 deletion(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java index 823e76b4c9..2dccf23b59 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiCollectMemFormDTO.java @@ -2,7 +2,6 @@ package com.epmet.dto.form; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; /** From e905be87552b9a3c7a0e9f51c23899783279a19b Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 21 Mar 2022 09:59:56 +0800 Subject: [PATCH 109/160] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/指标可视化文案1201.docx | Bin 0 -> 38481 bytes .../resources/治理能力计算公式.docx | Bin 0 -> 53993 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-server/src/test/java/resources/指标可视化文案1201.docx create mode 100644 epmet-module/data-statistical/data-statistical-server/src/test/java/resources/治理能力计算公式.docx diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/指标可视化文案1201.docx b/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/指标可视化文案1201.docx new file mode 100644 index 0000000000000000000000000000000000000000..86fae3c767c1858fd7649c5f3b6c67399c3fb966 GIT binary patch literal 38481 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 X;TyLbO#P}2)B^!f7l5v`P-p)GDJ+Q> literal 0 HcmV?d00001 From bec8cb2afe4ada2ab2101baae8833cc637a5043e Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 21 Mar 2022 10:01:22 +0800 Subject: [PATCH 110/160] =?UTF-8?q?=E9=87=87=E9=9B=86=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dto/form/CollectListFormDTO.java | 4 +--- .../com/epmet/service/impl/IcResiCollectServiceImpl.java | 3 --- .../src/main/resources/mapper/IcResiCollectDao.xml | 9 --------- 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java index ae5ec4bacb..8c089ae331 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java @@ -24,9 +24,7 @@ public class CollectListFormDTO implements Serializable { private Integer pageSize; private String orgId; - private String neighborHoodId; - private String buildingId; - private String houseId; + private String address; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java index 4037180bf0..fc714f2912 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java @@ -86,9 +86,6 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl getCollectList(CollectListFormDTO formDTO) { PageData result = new PageData<>(new ArrayList<>(), 0); if (StringUtils.isBlank(formDTO.getOrgId()) && - StringUtils.isBlank(formDTO.getNeighborHoodId()) && - StringUtils.isBlank(formDTO.getBuildingId()) && - StringUtils.isBlank(formDTO.getHouseId()) && StringUtils.isBlank(formDTO.getAddress()) && StringUtils.isBlank(formDTO.getStartDate()) && StringUtils.isBlank(formDTO.getEndDate()) ){ diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml index 7f2c5a9a4d..0be0e43c13 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiCollectDao.xml @@ -30,15 +30,6 @@ AND CONCAT(c.PIDS,':',c.AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') - - AND c.VILLAGE_ID = #{neighborHoodId} - - - AND c.BUILD_ID = #{buildingId} - - - AND c.HOME_ID = #{houseId} - AND c.ADDRESS LIKE CONCAT('%',#{address},'%') From 9b3b5b23cfe3ea00f382370ecd4e812784efb0dd Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Mon, 21 Mar 2022 10:56:29 +0800 Subject: [PATCH 111/160] =?UTF-8?q?=E4=B9=A6=E8=AE=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=AF=BC=E5=87=BAword=EF=BC=8C=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/MemoConcernController.java | 2 +- .../java/com/epmet/controller/MemoDifficultyController.java | 2 +- .../main/java/com/epmet/controller/MemoWorkDiaryController.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index ad0826a348..945656b229 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -134,7 +134,7 @@ public class MemoConcernController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=人员关怀导入模板" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=人员关怀详情" + suffix); ServletOutputStream fos = null; try { diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index def6d05162..26c003a0c6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -119,7 +119,7 @@ public class MemoDifficultyController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=难点堵点详情" + suffix); ServletOutputStream fos = null; try { diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 47eb4395c3..1e1ffe12dc 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -112,7 +112,7 @@ public class MemoWorkDiaryController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志导入模板" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志详情" + suffix); ServletOutputStream fos = null; try { From 70bc04672240efce5055dd98783804becad0c694 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Mon, 21 Mar 2022 11:04:45 +0800 Subject: [PATCH 112/160] =?UTF-8?q?=E4=B9=A6=E8=AE=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=AF=BC=E5=87=BAword=EF=BC=8C=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/MemoConcernController.java | 3 ++- .../java/com/epmet/controller/MemoDifficultyController.java | 3 ++- .../java/com/epmet/controller/MemoWorkDiaryController.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index 945656b229..dd8cde22bd 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -33,6 +33,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -134,7 +135,7 @@ public class MemoConcernController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=人员关怀详情" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("人员关怀详情", "UTF-8") + suffix); ServletOutputStream fos = null; try { diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java index 26c003a0c6..e2e201ec48 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java @@ -31,6 +31,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -119,7 +120,7 @@ public class MemoDifficultyController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=难点堵点详情" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("难点堵点详情", "UTF-8") + suffix); ServletOutputStream fos = null; try { diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java index 1e1ffe12dc..7e0dd63b18 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -112,7 +113,7 @@ public class MemoWorkDiaryController { response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=工作日志详情" + suffix); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("工作日志详情", "UTF-8") + suffix); ServletOutputStream fos = null; try { From 7989691bfde67a69613e131c383c8438aecfe581 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 13:53:36 +0800 Subject: [PATCH 113/160] =?UTF-8?q?=E5=BA=9F=E5=BC=83=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=A0=A1=E9=AA=8C=E6=98=AF=E5=90=A6=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E6=9C=AA=E6=98=A8=E6=99=9A=E7=9A=84=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E7=A4=BA=E8=AF=AD=E6=8C=89=E7=85=A7=E7=A6=85?= =?UTF-8?q?=E9=81=93=E9=9C=80=E6=B1=82=E6=9D=A5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/CustomerGridServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 70945c6fe1..e4fa3887ca 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -980,7 +980,7 @@ public class CustomerGridServiceImpl extends BaseServiceImpl Date: Mon, 21 Mar 2022 15:26:51 +0800 Subject: [PATCH 114/160] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=A4=BE=E5=8C=BAlis?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/CommunityListResultDTO.java | 20 +++++++++++++++ .../epmet/controller/AgencyController.java | 12 +++++++-- .../java/com/epmet/dao/CustomerAgencyDao.java | 10 ++++++++ .../java/com/epmet/service/AgencyService.java | 25 ++++++------------- .../epmet/service/impl/AgencyServiceImpl.java | 16 ++++++++++++ .../resources/mapper/CustomerAgencyDao.xml | 12 +++++++++ 6 files changed, 76 insertions(+), 19 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListResultDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListResultDTO.java new file mode 100644 index 0000000000..2e080d97db --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityListResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/21 15:11 + * @DESC + */ +@Data +public class CommunityListResultDTO implements Serializable { + + private static final long serialVersionUID = 4336149113821131764L; + + private String orgId; + + private String orgName; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 2279f38fc1..f796f63a75 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -442,6 +442,14 @@ public class AgencyController { } } - - + /** + * Desc: 查询工作人员所属组织下的所有社区 + * @param tokenDto + * @author zxc + * @date 2022/3/21 15:13 + */ + @PostMapping("community-list") + public Result> getCommunityList(@LoginUser TokenDto tokenDto){ + return new Result>().ok(agencyService.getCommunityList(tokenDto)); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java index fafb2d474d..5e7cd8713a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java @@ -306,5 +306,15 @@ public interface CustomerAgencyDao extends BaseDao { OrgMobileResultDTO getAgencyMobile(@Param("gridId") String gridId); int updateSubAgencyAreaCodeById(@Param("customerId")String customerId, @Param("agencyId")String agencyId, @Param("operateUserId") String operateUserId); + + /** + * Desc: 查询组织下的社区 + * @param customerId + * @param agencyId + * @author zxc + * @date 2022/3/21 15:23 + */ + List getCommunityList(@Param("customerId")String customerId, @Param("agencyId")String agencyId); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java index bacb45d855..629adcc17a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/AgencyService.java @@ -1,20 +1,3 @@ -/** - * Copyright 2018 人人开源 https://www.renren.io - *

- * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - *

- * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - *

- * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - package com.epmet.service; import com.epmet.commons.tools.security.dto.TokenDto; @@ -156,4 +139,12 @@ public interface AgencyService { */ List getSonAgencyId(String orgId,String type); + /** + * Desc: 查询工作人员所属组织下的所有社区 + * @param tokenDto + * @author zxc + * @date 2022/3/21 15:13 + */ + List getCommunityList(TokenDto tokenDto); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index c20fd83965..00dc182535 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -798,6 +798,22 @@ public class AgencyServiceImpl implements AgencyService { return new ArrayList<>(); } + /** + * Desc: 查询工作人员所属组织下的所有社区 + * @param tokenDto + * @author zxc + * @date 2022/3/21 15:13 + */ + @Override + public List getCommunityList(TokenDto tokenDto) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + if (null == staffInfo){ + throw new EpmetException("未查询到工作人员信息"+staffInfo.getStaffId()); + } + String agencyId = staffInfo.getAgencyId(); + return customerAgencyDao.getCommunityList(tokenDto.getCustomerId(), agencyId); + } + private CustomerAgencyEntity constructInsertEntity(AddAgencyV2FormDTO formDTO, CustomerAgencyDTO parent) { CustomerAgencyEntity insertEntity = ConvertUtils.sourceToTarget(formDTO, CustomerAgencyEntity.class); insertEntity.setOrganizationName(formDTO.getAgencyName()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index 2cd7210dc5..1e8792cab6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -733,6 +733,18 @@ AND cg.id = #{gridId} + + + UPDATE customer_agency SET AREA_CODE = '', From 4dff78a636a7da26e60d29ccb549304ba599ef71 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 15:44:33 +0800 Subject: [PATCH 115/160] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E8=BD=AC=E9=A1=B9=E7=9B=AE=EF=BC=8C=E9=99=90=E5=80=BC?= =?UTF-8?q?=E6=9C=AA=E5=BA=9F=E5=BC=83=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dao/CustomerGridDao.java | 2 +- .../java/com/epmet/service/impl/CustomerAgencyServiceImpl.java | 2 +- .../src/main/resources/mapper/CustomerGridDao.xml | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java index d642c4a911..3de988ec2c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java @@ -172,7 +172,7 @@ public interface CustomerGridDao extends BaseDao { BelongGridNameResultDTO getGridNameByGridId(BelongGridNameFormDTO formDTO); /** - * @Description 根据组织机关Id查询机关下网格列表 + * @Description 根据组织机关Id查询机关下网格列表:未废弃的 * @author sun */ List selectGridList(@Param("agencyId") String agencyId); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index 07bfa4eaf0..aa2d4fed1b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -439,7 +439,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl gridList = customerGridDao.selectGridList(canTick.getAgencyId()); List gridStaffs = new ArrayList<>(); if (null != gridList && gridList.size() > NumConstant.ZERO) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index c3390d9cc9..ad26cd96ce 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -369,6 +369,7 @@ + - + From 256f38a6a9b198c9d9b47d5ccf579136144a92e0 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Mar 2022 15:54:19 +0800 Subject: [PATCH 117/160] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=BB=84=E7=BB=87=E6=A0=91=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=BA=9F=E5=BC=83=E7=9A=84=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java | 2 +- .../src/main/resources/mapper/govorg/CustomerGridDao.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java index 4ee22247f2..2d2c95b424 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerGridDao.java @@ -53,7 +53,7 @@ public interface CustomerGridDao extends BaseDao { /** * @Author sun - * @Description 根据组织Id查询当前组织下所有网格列表 + * @Description 根据组织Id查询当前组织下所有网格列表(未弃用的网格) **/ List selectGridListByAgencyId(@Param("agencyId") String agencyId); diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml index 0625e55ce5..c094cc33b8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerGridDao.xml @@ -53,6 +53,7 @@ WHERE del_flag = '0' AND pid = #{agencyId} + and ABANDON_FLAG='0' + + + diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectAuditResetResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectAuditResetResultDTO.java new file mode 100644 index 0000000000..7ff2a51a2c --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectAuditResetResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/21 15:48 + * @DESC + */ +@Data +public class ProjectAuditResetResultDTO implements Serializable { + + private static final long serialVersionUID = -4523314881244005376L; + + private Boolean projectStatus; + + private Boolean resiEventStatus; + + public ProjectAuditResetResultDTO() { + this.projectStatus = false; + this.resiEventStatus = false; + } +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 7aa1ae7501..372ff5fb5c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -333,7 +333,7 @@ public class ProjectController { * @date 2022/3/15 5:05 下午 */ @PostMapping("audit-reset") - public Result eventAuditReset(@RequestParam("gridId")String gridId){ - return new Result().ok(projectService.eventAuditReset(gridId)); + public Result eventAuditReset(@RequestParam("gridId")String gridId){ + return new Result().ok(projectService.eventAuditReset(gridId)); } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 650d598e1b..3aaabdf485 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -21,10 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.EventProjectInfoDTO; import com.epmet.dto.ProjectDTO; import com.epmet.dto.ProjectStaffDTO; -import com.epmet.dto.form.LatestListFormDTO; -import com.epmet.dto.form.PatrolProjectFormDTO; -import com.epmet.dto.form.ProjectListFromDTO; -import com.epmet.dto.form.ShiftProjectsFromDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.ProjectEntity; import org.apache.ibatis.annotations.Mapper; @@ -50,6 +47,14 @@ public interface ProjectDao extends BaseDao { **/ List selectPendList(ProjectListFromDTO fromDTO); + /** + * Desc: 待处理项目列表 + * @param userIds + * @author zxc + * @date 2022/3/21 14:12 + */ + List selectPendListByUserIds(@Param("userIds")List userIds); + /** * 我发起的项目列表 * diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 139fba06c8..d5f4ec3154 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -383,6 +383,6 @@ public interface ProjectService extends BaseService { * @author zxc * @date 2022/3/15 5:05 下午 */ - Boolean eventAuditReset(String gridId); + ProjectAuditResetResultDTO eventAuditReset(String gridId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 336095f215..12c88a2b3a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -234,14 +234,28 @@ public class ProjectServiceImpl extends BaseServiceImpl userIds) { + if (CollectionUtils.isNotEmpty(userIds)){ + List projectList = baseDao.selectPendListByUserIds(userIds); + if (projectList.size() == 0){ + return false; + }else { + return true; + } + } + return false; + } + @Override public List getCreatedList(ProjectListFromDTO fromDTO) { List list = new ArrayList<>(); - //查询条件 - int pageIndex = (fromDTO.getPageNo() - NumConstant.ONE) * fromDTO.getPageSize(); - fromDTO.setPageNo(pageIndex); - List projectList = baseDao.selectCreatedList(fromDTO); //获取客户定制的可滞留天数 Integer finalDays = getDays(fromDTO); @@ -3140,12 +3154,20 @@ public class ProjectServiceImpl extends BaseServiceImpl> allStaffByGridId = govOrgOpenFeignClient.getAllStaffByGridId(gridId); + if (!allStaffByGridId.success()){ + throw new EpmetException("查询网格下的工作人员失败"); + } + if (CollectionUtils.isNotEmpty(allStaffByGridId.getData())){ + result.setProjectStatus(getPendProjectListByUserIds(allStaffByGridId.getData())); + } + return result; } /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 5c17dad31d..f4ead24b22 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -41,6 +41,32 @@ ORDER BY psp.created_time, p.created_time ASC LIMIT #{pageNo}, #{pageSize} + + + + - SELECT - ID AS projectId, - SUBSTRING_INDEX(FINISH_ORG_IDS,':',1) AS agencyId - FROM - fact_origin_project_main_daily - WHERE - DEL_FLAG = '0' - AND ID IN ( - - SELECT DISTINCT PROJECT_ID FROM fact_origin_project_log_daily - WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} - AND ACTION_CODE = 'close' - + agencyId, + COUNT(projectId) AS count, + SUM(total) AS sum + FROM + ( + SELECT + a.ID AS projectId, + b.ID AS agencyId, + IF( + TIMESTAMPDIFF( DAY, DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ), DATE_FORMAT( c.DATE_ID, '%Y-%m-%d' ) ) = 0, + 1, + TIMESTAMPDIFF( DAY, DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ), DATE_FORMAT( c.DATE_ID, '%Y-%m-%d' ) ) + ) * 8 * 60 AS total + FROM + fact_origin_project_main_daily a + INNER JOIN dim_agency b ON a.PIDS LIKE CONCAT( '%', b.ID, '%' ) + AND b.AGENCY_DIM_TYPE = 'all' + AND b.DEL_FLAG = '0' + AND b.`LEVEL` = #{level} + INNER JOIN ( + SELECT DISTINCT + DATE_ID, + PROJECT_ID + FROM fact_origin_project_log_daily + WHERE DEL_FLAG = '0' + AND ACTION_CODE = 'close' + AND IS_ACTIVE = '1' + AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{dimId} - - ) - ORDER BY agencyId + ) c ON a.ID = c.PROJECT_ID + WHERE + a.DEL_FLAG = '0' + AND a.CUSTOMER_ID = #{customerId} + AND a.PROJECT_STATUS = 'closed' + ) t + GROUP BY + agencyId SELECT f.CUSTOMER_ID, - f.ORG_ID AS "agencyId", + + da.ID AS "agencyId", + f.ORG_ID AS "agencyId", + SUM( TIMESTAMPDIFF( MINUTE, ( DATE_FORMAT( f.INFORMED_DATE, '%Y-%m-%d %H:%i' )), ( DATE_FORMAT( f.PERIOD_TILL_REPLY_FIRSTLY, '%Y-%m-%d %H:%i' )) ) ) AS "sum", COUNT(DISTINCT f.PROJECT_ID) AS "count" FROM fact_origin_project_org_period_daily f - INNER JOIN dim_agency da ON f.ORG_ID = da.ID + INNER JOIN dim_agency da ON (f.PIDS LIKE CONCAT( '%', da.ID, '%' ) OR f.ORG_ID = da.ID) AND da.`LEVEL` = #{level} WHERE - f.ORG_TYPE = #{orgType} + f.DEL_FLAG = '0' + + AND f.ORG_TYPE = #{orgType} + AND DATE_FORMAT(INFORMED_DATE, '%Y%m') = #{monthId} AND PERIOD_TILL_REPLY_FIRSTLY IS NOT NULL AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, - f.ORG_ID + + da.ID + f.ORG_ID + From 6e2620420bbdee32ec192cfc90dc2171dcd09450 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 21 Mar 2022 18:48:11 +0800 Subject: [PATCH 122/160] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=B1=85=E6=B0=91?= =?UTF-8?q?=E6=94=B6=E9=9B=86=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/CollectListFormDTO.java | 12 +---- .../dto/result/CollectListExcelResultDTO.java | 48 +++++++++++++++++++ .../CollectListMemberExcelResultDTO.java | 48 +++++++++++++++++++ .../dto/result/CollectListResultDTO.java | 16 +------ .../controller/IcResiCollectController.java | 40 ++++++++++++++++ .../impl/IcResiCollectServiceImpl.java | 13 +++-- 6 files changed, 148 insertions(+), 29 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java index 8c089ae331..368db969c4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CollectListFormDTO.java @@ -1,28 +1,20 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; -import javax.validation.constraints.NotNull; -import java.io.Serializable; - /** * @Author zxc * @DateTime 2022/3/18 19:00 * @DESC */ @Data -public class CollectListFormDTO implements Serializable { +public class CollectListFormDTO extends PageFormDTO { private static final long serialVersionUID = 2106773724057183577L; public interface CollectListForm{} - @NotNull(message = "pageNo不能为空", groups = CollectListForm.class) - private Integer pageNo; - - @NotNull(message = "pageSize不能为空", groups = CollectListForm.class) - private Integer pageSize; - private String orgId; private String address; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java new file mode 100644 index 0000000000..f74e042b77 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelCollection; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2022/3/18 19:00 + * @DESC + */ +@Data +public class CollectListExcelResultDTO implements Serializable { + + private static final long serialVersionUID = -5659769436514116680L; + /** + * 户主姓名 + */ + @Excel(name = "户主姓名",width = 30, needMerge = true) + private String houseHolderName; + + /** + * 居住地址 + */ + @Excel(name = "居住地址",width = 40, needMerge = true) + private String address; + + /** + * 房屋类型,1:自有, 0:租住 + */ + @Excel(name = "房屋类型",replace = { "自有_1", "租住_2"}, width = 30, needMerge = true) + private String houseType; + + /** + * 居住人数 + */ + @Excel(name = "居住成员人数",width = 30, needMerge = true) + private Integer totalResi; + + @ExcelCollection(name="家庭成员") + private List listP = new ArrayList<>(); + + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java new file mode 100644 index 0000000000..319d11b8f0 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * desc: + * + * @author: LiuJanJun + * @date: 2022/3/21 5:09 下午 + * @version: 1.0 + */ +@Data +public class CollectListMemberExcelResultDTO implements Serializable { + private static final long serialVersionUID = -4290962585956172531L; + /** + * 成员名字 + */ + @Excel(name = "成员姓名", width = 30) + private String memberName; + + /** + * 成员身份证 + */ + @Excel(name = "成员身份证号", width = 30) + private String memberIdNum; + + /** + * 成员电话 + */ + @Excel(name = "成员手机号", width = 30) + private String memberMobile; + + /** + * 核酸检测次数 + */ + @Excel(name = "参加几轮核酸检测", width = 30) + private String heSuanCount = "0"; + + /** + * 疫苗是否全程接种,1:全程接种,2:未全程接种,3:为接种 + */ + @Excel(name = "疫苗接种情况",replace = { "全程接种_1", "未全程接种_2", "未接种_3" }, width = 30) + private String ymjz; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java index 9edcfa4d8d..1d61469165 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListResultDTO.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** @@ -42,13 +41,6 @@ public class CollectListResultDTO implements Serializable { private List list; - public CollectListResultDTO() { - this.houseHolderName = ""; - this.address = ""; - this.houseType = "0"; - this.totalResi = 0; - this.list = new ArrayList<>(); - } @Data public static class CollectListMemberResultDTO{ @@ -77,12 +69,6 @@ public class CollectListResultDTO implements Serializable { */ private Integer ymjz; - public CollectListMemberResultDTO() { - this.memberName = ""; - this.memberIdNum = ""; - this.memberMobile = ""; - this.heSuanCount = "0"; - this.ymjz = 0; - } + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java index ed1227c01e..fbe82fc561 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java @@ -2,12 +2,17 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.StrConstant; 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.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.CollectListFormDTO; import com.epmet.dto.form.IcResiCollectFormDTO; +import com.epmet.dto.result.CollectListExcelResultDTO; +import com.epmet.dto.result.CollectListMemberExcelResultDTO; import com.epmet.dto.result.CollectListResultDTO; import com.epmet.service.IcResiCollectService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; @@ -68,4 +75,37 @@ public class IcResiCollectController { return new Result>().ok(icResiCollectService.getCollectList(formDTO)); } + /** + * Desc: 查询采集居民信息 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2022/3/18 19:23 + */ + @PostMapping("export") + public void export(@RequestBody CollectListFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception { + //ValidatorUtils.validateEntity(formDTO,CollectListFormDTO.CollectListForm.class); + //tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setPage(false); + PageData collectList = icResiCollectService.getCollectList(formDTO); + List list = ConvertUtils.sourceToTarget(collectList.getList(),CollectListExcelResultDTO.class); + + collectList.getList().forEach(o->{ + List children = new ArrayList<>(); + o.getList().forEach(item->{ + CollectListMemberExcelResultDTO resultDTO = ConvertUtils.sourceToTarget(item, CollectListMemberExcelResultDTO.class); + resultDTO.setYmjz(item.getYmjz() == null? StrConstant.EPMETY_STR:String.valueOf(item.getYmjz())); + children.add(resultDTO); + }); + CollectListExcelResultDTO resultDTO = ConvertUtils.sourceToTarget(o, CollectListExcelResultDTO.class); + resultDTO.setListP(children); + list.add(resultDTO); + }); + + ExcelUtils.exportExcelToTarget(response, null, list, CollectListExcelResultDTO.class); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java index fc714f2912..e59318dbd6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java @@ -95,9 +95,14 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl pageList = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.getCollectList(formDTO)); - result.setList(pageList.getList()); - result.setTotal(Integer.valueOf(String.valueOf(pageList.getTotal()))); + if (formDTO.isPage()){ + PageInfo pageList = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.getCollectList(formDTO)); + result.setList(pageList.getList()); + result.setTotal(Integer.parseInt(String.valueOf(pageList.getTotal()))); + }else { + List collectList = baseDao.getCollectList(formDTO); + result.setList(collectList); + } return result; } @@ -132,4 +137,4 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl Date: Tue, 22 Mar 2022 09:06:16 +0800 Subject: [PATCH 123/160] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9C=AA=E7=BB=93?= =?UTF-8?q?=E6=A1=88=E9=A1=B9=E7=9B=AE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/ProjectDao.xml | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index f4ead24b22..d1b227b040 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -42,30 +42,6 @@ LIMIT #{pageNo}, #{pageSize} - - + \ No newline at end of file From a966dd98a570e62c7927a51d50c8df9b51980551 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 22 Mar 2022 09:27:22 +0800 Subject: [PATCH 124/160] =?UTF-8?q?=E4=B9=A6=E8=AE=B0=E6=97=A5=E5=BF=97-?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=85=B3=E6=80=80-=E5=AF=BC=E5=87=BAword?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/MemoConcernController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java index dd8cde22bd..474fb56a9e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java @@ -127,7 +127,7 @@ public class MemoConcernController { } //状态 - map.put("statusName", "0".equals(data.getStatus()) ? "未完成" : "已完成"); + map.put("statusName", new Integer(0).equals(data.getStatus()) ? "未完成" : "已完成"); XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map); From 243ffaa73f58de7cce3aaee063c22a83663f96d8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 22 Mar 2022 09:54:31 +0800 Subject: [PATCH 125/160] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/MemoDifficultyServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java index 0a35d69ebf..2ac7232763 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java @@ -129,6 +129,7 @@ public class MemoDifficultyServiceImpl extends BaseServiceImpl Date: Tue, 22 Mar 2022 10:25:09 +0800 Subject: [PATCH 126/160] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/MemoAttrServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java index c979928ceb..3c43ed0c25 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java @@ -112,8 +112,10 @@ public class MemoAttrServiceImpl extends BaseServiceImpl Date: Tue, 22 Mar 2022 10:27:53 +0800 Subject: [PATCH 127/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/MemoConcernServiceImpl.java | 4 ++-- .../java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java index bca27c6f81..533141d83d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java @@ -71,9 +71,9 @@ public class MemoConcernServiceImpl extends BaseServiceImpl Date: Tue, 22 Mar 2022 11:05:13 +0800 Subject: [PATCH 128/160] =?UTF-8?q?=E9=87=87=E9=9B=86=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=9A=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=A7=93=E5=90=8D=E4=B8=8D=E4=B8=BA=E7=A9=BA=E6=97=B6=E6=8F=92?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiCollectServiceImpl.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java index e59318dbd6..b1895b608a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiCollectServiceImpl.java @@ -63,8 +63,11 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl memberList = ConvertUtils.sourceToTarget(formDTO.getMemberList(), IcResiMemberEntity.class); memberList.forEach(mem -> { - mem.setIcResiCollectId(insert.getId()); - icResiMemberDao.insert(mem); + if (StringUtils.isNotBlank(mem.getName()) || StringUtils.isNotBlank(mem.getIdNum())) { + //姓名或份身份证号不为空时插入 + mem.setIcResiCollectId(insert.getId()); + icResiMemberDao.insert(mem); + } }); } else { //更新主表 @@ -125,16 +128,21 @@ public class IcResiCollectServiceImpl extends BaseServiceImpl newMemberList, Map memMap, String originIcResiCollectId) { for (IcResiMemberEntity entity : newMemberList) { - if (MapUtils.isNotEmpty(memMap) && memMap.containsKey(entity.getIdNum())) { + if(StringUtils.isNotBlank(entity.getIdNum())){ + if (MapUtils.isNotEmpty(memMap) && memMap.containsKey(entity.getIdNum())) { + entity.setIcResiCollectId(originIcResiCollectId); + entity.setCustomerId(memMap.get(entity.getIdNum()).getCustomerId()); + entity.setId(memMap.get(entity.getIdNum()).getId()); + icResiMemberDao.updateById(entity); + continue; + } + } + //与之前历史成员没有匹配到 + if (StringUtils.isNotBlank(entity.getName()) || StringUtils.isNotBlank(entity.getIdNum())) { + //姓名或份身份证号不为空时插入 entity.setIcResiCollectId(originIcResiCollectId); - entity.setCustomerId(memMap.get(entity.getIdNum()).getCustomerId()); - entity.setId(memMap.get(entity.getIdNum()).getId()); - icResiMemberDao.updateById(entity); - continue; + icResiMemberDao.insert(entity); } - //没有插入 - entity.setIcResiCollectId(originIcResiCollectId); - icResiMemberDao.insert(entity); } } } From a13d88ca4e66a4893c04020550a64f9da40ebbfe Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 22 Mar 2022 13:51:05 +0800 Subject: [PATCH 129/160] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/AgencyServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 00dc182535..52534374aa 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -26,7 +26,9 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +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.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; @@ -811,6 +813,13 @@ public class AgencyServiceImpl implements AgencyService { throw new EpmetException("未查询到工作人员信息"+staffInfo.getStaffId()); } String agencyId = staffInfo.getAgencyId(); + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(agencyId); + if (null == agencyInfo){ + throw new EpmetException("查询组织信息失败"+agencyInfo); + } + if (agencyInfo.getLevel().equals(CustomerAgencyConstant.COMMUNITY_LEVEL)){ + return new ArrayList<>(); + } return customerAgencyDao.getCommunityList(tokenDto.getCustomerId(), agencyId); } From 4030e4aa5270afc70d89a0d3e5cbd2e579a1f452 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 22 Mar 2022 14:49:09 +0800 Subject: [PATCH 130/160] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=87=87=E9=9B=86=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/result/CollectListExcelResultDTO.java | 2 +- .../com/epmet/dto/result/CollectListMemberExcelResultDTO.java | 2 +- .../main/java/com/epmet/controller/IcResiCollectController.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java index f74e042b77..b98e4489bd 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListExcelResultDTO.java @@ -32,7 +32,7 @@ public class CollectListExcelResultDTO implements Serializable { /** * 房屋类型,1:自有, 0:租住 */ - @Excel(name = "房屋类型",replace = { "自有_1", "租住_2"}, width = 30, needMerge = true) + @Excel(name = "房屋类型",replace = { "自有_1", "租住_0"}, width = 30, needMerge = true) private String houseType; /** diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java index 319d11b8f0..854d1b3c93 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CollectListMemberExcelResultDTO.java @@ -42,7 +42,7 @@ public class CollectListMemberExcelResultDTO implements Serializable { /** * 疫苗是否全程接种,1:全程接种,2:未全程接种,3:为接种 */ - @Excel(name = "疫苗接种情况",replace = { "全程接种_1", "未全程接种_2", "未接种_3" }, width = 30) + @Excel(name = "疫苗接种情况",replace = { "全程接种_1", "未全程接种_2", "未接种_0" }, width = 30) private String ymjz; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java index fbe82fc561..7b8df6ad1d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java @@ -91,7 +91,7 @@ public class IcResiCollectController { formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setPage(false); PageData collectList = icResiCollectService.getCollectList(formDTO); - List list = ConvertUtils.sourceToTarget(collectList.getList(),CollectListExcelResultDTO.class); + List list =new ArrayList<>(); collectList.getList().forEach(o->{ List children = new ArrayList<>(); From 656e49e0c988327978d2be60e8949c09e48c07e6 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 22 Mar 2022 17:40:39 +0800 Subject: [PATCH 131/160] =?UTF-8?q?=E5=8E=BB=E6=8E=89/wechatthird/componen?= =?UTF-8?q?taccesstoken=E4=B8=AD=E5=B0=86accesstoken=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=B0=E7=A7=81=E6=9C=89=E5=8C=96=E5=B9=B3=E5=8F=B0=E7=9A=84?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ComponentVerifyTicketServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index 0598e6e43d..f8c75e5a64 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -245,12 +245,12 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe //存缓存 redisThird.setComponentAccessToken(componentAccessToken); //推送到私有化平台们 - try { - pushComponentAccessToken2PrivateEpmetPlatforms(formDTO); - } catch (Exception e) { - String detail = ExceptionUtils.getErrorStackTrace(e); - log.error(detail); - } + //try { + // pushComponentAccessToken2PrivateEpmetPlatforms(formDTO); + //} catch (Exception e) { + // String detail = ExceptionUtils.getErrorStackTrace(e); + // log.error(detail); + //} } else { throw new RenException(ThirdRunTimeInfoConstant.FAILURE_ACCESS_TOKEN); } From 16cab43752365102085c822e816b71df1b9e2d08 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 23 Mar 2022 14:59:02 +0800 Subject: [PATCH 132/160] =?UTF-8?q?/gov/org/agency/editagency=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AFbugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java | 4 +++- .../src/main/java/com/epmet/controller/AgencyController.java | 1 + .../main/java/com/epmet/service/impl/AgencyServiceImpl.java | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java index 7473027fde..57e535ad25 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditAgencyFormDTO.java @@ -75,7 +75,7 @@ public class EditAgencyFormDTO implements Serializable { /** * open: 选择地区编码必填;closed: 无需选择地区编码;0409新增返参 */ - @NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class) + // @NotBlank(message = "areaCodeSwitch不能为空", groups = AddUserInternalGroup.class) private String areaCodeSwitch; /** @@ -108,4 +108,6 @@ public class EditAgencyFormDTO implements Serializable { * 中心点位位置 */ private String centerAddress; + + private String customerId; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 363f7b7297..6ede7c8216 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -150,6 +150,7 @@ public class AgencyController { @RequirePermission(requirePermission = RequirePermissionEnum.ORG_AGENCY_UPDATE) public Result editAgency(@LoginUser TokenDto tokenDTO, @RequestBody EditAgencyFormDTO formDTO) { formDTO.setUserId(tokenDTO.getUserId()); + formDTO.setCustomerId(tokenDTO.getCustomerId()); ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class); Result result = agencyService.editAgency(formDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index c20fd83965..5ca472eff8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -165,6 +165,8 @@ public class AgencyServiceImpl implements AgencyService { originalEntity.setLongitude(formDTO.getLongitude()); } originalEntity.setCenterAddress(formDTO.getCenterAddress()); + //平阴的工作端小程序与产品入参有差距,接口兼容,这个参数不让前端传了... + formDTO.setAreaCodeSwitch(customerOrgParameterService.getAreaCodeSwitch(formDTO.getCustomerId())); //当前客户开启了area_code_switch参数:open: 选择地区编码必填;closed: 无需选择地区编码 if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) { CustomerAgencyEntity parent = customerAgencyDao.selectById(originalEntity.getPid()); From 3a0cf66e6339e20a1419316aaa9f8ebc7ee026e6 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 23 Mar 2022 15:21:27 +0800 Subject: [PATCH 133/160] =?UTF-8?q?/gov/org/agency/editagency=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AFbugfix2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/AgencyServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 5ca472eff8..ee711fae0c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -165,7 +165,7 @@ public class AgencyServiceImpl implements AgencyService { originalEntity.setLongitude(formDTO.getLongitude()); } originalEntity.setCenterAddress(formDTO.getCenterAddress()); - //平阴的工作端小程序与产品入参有差距,接口兼容,这个参数不让前端传了... + //平阴的工作端小程序与产品入参有差距,为了接口兼容,这个参数不让前端传了... formDTO.setAreaCodeSwitch(customerOrgParameterService.getAreaCodeSwitch(formDTO.getCustomerId())); //当前客户开启了area_code_switch参数:open: 选择地区编码必填;closed: 无需选择地区编码 if (CustomerAgencyConstant.AREA_CODE_SWITCH_OPEN.equals(formDTO.getAreaCodeSwitch())) { @@ -184,7 +184,7 @@ public class AgencyServiceImpl implements AgencyService { } //什么时候要全部置为空呢?原来没有现在有 || 原来与现在不一致 if ((StringUtils.isBlank(originalAreaCode) && StringUtils.isNotBlank(formDTO.getAreaCode())) - || (!formDTO.getAreaCode().equals(originalAreaCode))) { + || (StringUtils.isNotBlank(formDTO.getAreaCode()) && !formDTO.getAreaCode().equals(originalAreaCode))) { updateSubOrg(originalEntity.getCustomerId(), formDTO, originalAreaCode); } } @@ -319,12 +319,13 @@ public class AgencyServiceImpl implements AgencyService { private void checkEditAgencyFormDTO(EditAgencyFormDTO formDTO,CustomerAgencyEntity originalEntity) { //根组织不允许修改 if (StringUtils.isNotBlank(originalEntity.getPid()) && !NumConstant.ZERO_STR.equals(originalEntity.getPid())) { - if (StringUtils.isBlank(formDTO.getAreaCode())) { + //03.23:平阴线上版本与产品主线版本差距太大,平阴的修改组织只能修改组织名称。 + /*if (StringUtils.isBlank(formDTO.getAreaCode())) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "area_code_switch is open areaCode不能为空", "组织区划不能为空"); } if (StringUtils.isBlank(formDTO.getParentAreaCode())) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "area_code_switch is open parentAreaCode不能为空", "请先设置上级组织的组织区划"); - } + }*/ //如果当前组织已经使用了自定义编码,不允许在选择其他。 if (StringUtils.isNotBlank(originalEntity.getAreaCode()) && originalEntity.getAreaCode().contains("UD") From 2bffec01ec5e2ad72e119c14fbc06f6f5a5a05a0 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 23 Mar 2022 17:59:42 +0800 Subject: [PATCH 134/160] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/HouseController.java | 21 +++++-------------- .../epmet/service/impl/HouseServiceImpl.java | 20 +++--------------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index acdd00b556..ab86eb425b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -19,9 +19,6 @@ package com.epmet.controller; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelReader; -import com.alibaba.excel.read.metadata.ReadSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; @@ -32,40 +29,32 @@ import com.epmet.commons.tools.feign.ResultDataResolver; 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.constant.ImportErrorMsgConstants; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.form.*; -import com.epmet.dto.result.*; +import com.epmet.dto.result.HouseInfoDTO; +import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.excel.IcHouseExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.feign.GovOrgOpenFeignClient; -import com.epmet.model.HouseInfoModel; -import com.epmet.model.ImportHouseInfoListener; import com.epmet.redis.IcHouseRedis; import com.epmet.service.HouseService; import com.epmet.service.IcHouseService; -import com.epmet.service.IcNeighborHoodService; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.tomcat.util.http.MimeHeaders; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Field; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @@ -283,7 +272,7 @@ public class HouseController implements ResultDataResolver { input.setTaskId(importTask.getData().getTaskId()); input.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); epmetCommonServiceOpenFeignClient.finishImportTask(input); - log.error("读取文件失败"); + log.error("读取文件失败",e); } houseService.dispose(inputStream,formDTO,importTask); return new Result<>(); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 0ec7984b85..36ace6672d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -1,14 +1,12 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; -import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.read.metadata.ReadSheet; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -18,9 +16,8 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.constants.ImportTaskConstants; -import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcBuildingDao; import com.epmet.dao.IcBuildingUnitDao; import com.epmet.dao.IcHouseDao; @@ -29,11 +26,7 @@ import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.IcBuildingDTO; import com.epmet.dto.IcBuildingUnitDTO; import com.epmet.dto.IcHouseDTO; -import com.epmet.dto.form.IcHouseFormDTO; -import com.epmet.dto.form.ImportInfoFormDTO; -import com.epmet.dto.form.ImportTaskCommonFormDTO; -import com.epmet.dto.form.ListIcNeighborHoodFormDTO; -import com.epmet.dto.form.NeighborHoodManageDelFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; import com.epmet.dto.result.ImportTaskCommonResultDTO; @@ -49,25 +42,17 @@ import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.model.HouseInfoModel; import com.epmet.model.ImportHouseInfoListener; import com.epmet.redis.IcHouseRedis; -import com.epmet.service.HouseService; -import com.epmet.service.IcBuildingService; -import com.epmet.service.IcBuildingUnitService; -import com.epmet.service.IcHouseService; import com.epmet.service.*; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; -import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.io.InputStream; import java.util.*; import java.util.concurrent.ExecutorService; @@ -376,6 +361,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { .build(); excelReader.read(readSheet); } catch (Exception e){ + log.error("dispose exception",e); ImportTaskCommonFormDTO input = new ImportTaskCommonFormDTO(); input.setOperatorId(formDTO.getUserId()); input.setTaskId(importTask.getData().getTaskId()); From e16c68732b54bffc0b8fe3414882dc8c540dc2fa Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 24 Mar 2022 12:11:38 +0800 Subject: [PATCH 135/160] =?UTF-8?q?=E6=8A=A5=E4=BA=8B=E4=BA=BA=E5=A4=A7?= =?UTF-8?q?=E4=BB=A3=E8=A1=A8=E5=92=8C=E6=8A=A5=E7=BB=99=E7=BB=84=E7=BB=87?= =?UTF-8?q?=EF=BC=8Cpids=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ResiEventServiceImpl.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java index fa19f94f14..e7d6749e4f 100644 --- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java +++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.ResultDataResolver; @@ -20,7 +21,6 @@ import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @author wxz @@ -68,6 +68,12 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve npcData.stream().forEach(npc -> { if (StringUtils.isBlank(excludeUserId) || !npc.getUserId().equals(excludeUserId)) { OrgInfoResultDTO gridInfo = npcGridInfoMap.get(npc.getGridId()); + String pids; + if (StringUtils.isNotBlank(gridInfo.getPids()) && !NumConstant.ZERO_STR.equals(gridInfo.getPids())) { + pids = gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()); + } else { + pids = gridInfo.getAgencyId(); + } ResiEventNpcResultDTO resiEventNpcInfo = new ResiEventNpcResultDTO( npc.getUserId(), npc.getGridId(), @@ -75,7 +81,8 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve npc.getRealName(), npc.getHeadImgUrl(), gridInfo != null ? gridInfo.getAgencyId() : null, - gridInfo != null ? gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()) : null); + // gridInfo != null ? gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()) : null + pids); npcResultList.add(resiEventNpcInfo); } } @@ -122,7 +129,13 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve OrgInfoResultDTO currentGridInfo = currentGridInfos.get(0); // 因为上游接口的值对应问题,这里只好做一个适配,拼接起来,希望上游代码不要再改了... - String pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId()); + // String pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId()); + String pids; + if (StringUtils.isNotBlank(currentGridInfo.getPids()) && !NumConstant.ZERO_STR.equals(currentGridInfo.getPids())) { + pids = currentGridInfo.getPids().concat(":").concat(currentGridInfo.getAgencyId()); + } else { + pids = currentGridInfo.getAgencyId(); + } // 父ID列表的index排序字段是从0开始,网格要排在他们前面,则网格的index为-1 targetLevels.add(new ResiEventTargetLevelResultDTO(OrgLevelEnums.GRID.getLevel(), OrgLevelEnums.GRID.getLevelName(), currentGridInfo.getOrgId(), currentGridInfo.getAgencyId(), pids, -1)); @@ -135,7 +148,12 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve throw new RenException(String.format("根据级别%s没有找到对应的组织级别枚举", porg.getLevel())); } //parentOrgIds.indexOf(porg.getOrgId()为当前orgId在pids中的位置,得到之后,赋值给index字段,treeset会利用这个字段进行排序 - ResiEventTargetLevelResultDTO pLevel = new ResiEventTargetLevelResultDTO(porg.getLevel(), levelName, porg.getOrgId(), porg.getPid(), porg.getPids(), parentOrgIds.indexOf(porg.getOrgId())); + ResiEventTargetLevelResultDTO pLevel = new ResiEventTargetLevelResultDTO(porg.getLevel(), + levelName, + porg.getOrgId(), + porg.getPid(), + porg.getPids(), + parentOrgIds.indexOf(porg.getOrgId())); targetLevels.add(pLevel); }); From 77176c0bf4f22ffe217d3779e353f5176e1dd001 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 24 Mar 2022 15:56:02 +0800 Subject: [PATCH 136/160] =?UTF-8?q?feign=20trix=E9=85=8D=E7=BD=AE=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B1=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-ext-server/src/main/resources/bootstrap.yml | 6 ++++++ .../epmet-heart-server/src/main/resources/bootstrap.yml | 6 ++++++ .../epmet-message-server/src/main/resources/bootstrap.yml | 6 ++++++ .../epmet-third-server/src/main/resources/bootstrap.yml | 8 +++++++- .../gov-access-server/src/main/resources/bootstrap.yml | 8 +++++++- .../gov-org-server/src/main/resources/bootstrap.yml | 6 ++++++ .../epmet-user-server/src/main/resources/bootstrap.yml | 8 +++++++- 7 files changed, 45 insertions(+), 3 deletions(-) diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml index d4e3824a5d..be7215c750 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml @@ -93,6 +93,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml index 31db2a802b..0f10a78167 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml @@ -111,6 +111,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index 84dd154e10..1c4e2f2bfd 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -113,6 +113,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml index 67b1a2740e..573b117d9d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml @@ -93,6 +93,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 @@ -171,4 +177,4 @@ thread: queueCapacity: @thread.threadPool.queue-capacity@ keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ threadNamePrefix: @thread.threadPool.thread-name-prefix@ - rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml index 94f07d888b..2e3c552976 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml @@ -112,6 +112,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 @@ -141,4 +147,4 @@ thread: queueCapacity: @thread.threadPool.queue-capacity@ keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ threadNamePrefix: @thread.threadPool.thread-name-prefix@ - rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml index 8039b75e00..c3883055da 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml @@ -127,6 +127,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 diff --git a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml index 37b078e18f..8636a8411e 100644 --- a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml +++ b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml @@ -132,6 +132,12 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 20 + maximumSize: 50 + maxQueueSize: 500 + queueSizeRejectionThreshold: 800 ribbon: ReadTimeout: 300000 @@ -175,4 +181,4 @@ thread: queueCapacity: @thread.threadPool.queue-capacity@ keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ threadNamePrefix: @thread.threadPool.thread-name-prefix@ - rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ From 1d70734941ac7a934cb084b79a76fd0f0e7c5c60 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 24 Mar 2022 17:51:07 +0800 Subject: [PATCH 137/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.?= =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=AF=BC=E5=85=A5-=E3=80=8B=E6=88=B7?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/IcHouseServiceImpl.java | 2 +- ...V0.0.27__resiImportTemplateLabelUpdate.sql | 2 ++ ...ic_resi_info_import_cid_for_easy_excel.xls | Bin 77824 -> 77824 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index b6d0585694..0835d6604e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java @@ -141,7 +141,7 @@ public class IcHouseServiceImpl extends BaseServiceImpl { OptionResultDTO dto = new OptionResultDTO(); dto.setValue(item.getId()); - dto.setLabel(item.getHouseName()); + dto.setLabel(item.getDoorName()); return dto; }).collect(Collectors.toList()); } diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql new file mode 100644 index 0000000000..28ae0153da --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql @@ -0,0 +1,2 @@ +-- 修改所属家庭项label为户号 +update ic_form_item set LABEL='户号' where LABEL='所属家庭'; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_import_cid_for_easy_excel.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_import_cid_for_easy_excel.xls index 3be61c72adaa78a260aac4f6b24eaf4c5cf50aa7..99376d01a939f088169b23d518de99aa810e6c33 100644 GIT binary patch delta 1997 zcmZvaYitx%6vxk$1j0nuNMtdh!9)~=1U^t$B=G?TunI`Q;<@{{P&AXdbANO0dHwHc zO(?Ai3@0gs1;ROkBgC8%OyiCP0)&lgZ z15>BezR7Q^s^=$}5C1TE@kp8mCy8t>8vxvXXb0Hka75Lp3W_mlvzztIiy;e-TWIz& z58AAJUt{*VvNJyCpthu7s1M)-jx~GneY4(g$=G()*T?hY`JjwU*66}Gc{(%Jb5KxH zP?Gfg!jeaE4^szr%(oQMK18bzZ&Frsa#eAq>Sb2i55ij(z2B6Hvd7`@s2-}hPcnzf zYs84zX&8~_%T&LSqWW=_)#J~~_&v&=K1Ut8NQ0CTDXWKf#WhP<^(hUs9_xNZkwaJpD>&<-8d+3#Tr6a|`r=1lmjU*g70in$L={g7z9N zqcw(!65F$K2b*!3Q0ma%&blUo)mw*ZO#LAC&J5_kC94x&kdoJ5laxrizR zxrsv96TUAUsn))0w@S$>j^n90-K-F?yBgU&LG>r7niRfqpYm)0=3fk)e zMN>sEUf?uAyg)unsp5Ho(*^MYXJ~KNow6GDz6!8-Bfx!aZo>rS2@&Q(6+YD%Y?&!M zc@DaobX1;WmLQ&^S`g1MTM!pvjvy|=TtQrfh@fnu8X_j?K>{620EVFsi`Ly(=3=E7 zXbaN1y=^kBoo!vLR6Dcn0b`rB)9p6WM(fcwk;8Uyq2Zp_nSq!5=+klb<@I}T&brG0B?N>;P@8c@L3v&Ztd%1zl&iA z!!jHe53=Rh9G^L3MLMWNGg}QS1=)yJ39=J42yzgu7UU#aBgjScvNq^Mk=OM3MF8DT z03ZBJHT$>6M?VNJu`SVUo$(jqmpSE9!ZEWp-9AJV6Y z=017TT%?JxUXYEbNsyiBH9-!d=2%k}Ys}u=m-&>9C(3$axqaDq#c^`YUuwmVtc1?C Yw!gk_-#KL7v# delta 2124 zcmZ{kd2Ccw6o=1!^Jd!F*LGg_kwh!nAQeSfY=;h&mZ1wRbcGq(N@Xcfc4d*;AevSY zdq}I;D3~TvjHKqNbx9nINYEHmXrzBMr8R~`ODZ7&MG-uArgNn*&SdU;-#yDczjN=M zmJzvSMD8osWS2;+y|%n08(hFYxAq)h{JHOc=W(wl2Mw~qa_~J(5D&?T=%HVQHW~Zq zY0;+Q8hJYAX%&1x>%voVDwfF#{w!zVOxdNjYF%2U#|vgRb{ZUb!k|mi(|T8L*#JHS z@Or!+kY{*CsGfMdVBlU#*wbT7r?_0>Lo{wMx?@Bs;V3=69n+dMVdb%o=!ysJ_AXUyjj%E6nM5%B-*?;n8B$;kZeO zbkAvyX6&}x6ODj5lIP?j(#d-=r^LOhZKjL0 z8?*8sG|Ird^?_v{*S;T61NnoJIZ*H{Oy0d@~rN(AQ*A1LY?r ziB;kUJ;&5D6)uLGi=JaoVqH~X!vgaA2MpwEfkG${WF;yTWTW?mg6u?oK@Ortf}BJ} zf?Pz!Xs-TSI#NTc|EWGPmdID%g24lRJiqK4LrMcc!zzFU>v(l|rlMGVCva0@G9Ibh z%}Ow%-Z!gMwKB8aE26vWe43F7Ii1@ZJXf_MvR1@RUv6U1AvTu=g0fQU&tkU$FyfMKB5 ztm?NHI9V>1wfSj$tF4H}OKn$Ju6m*U29vhzpVT}xc)-OBhAx1zZaP7S!^W*0>6&oY zc5131h>p&}h81F2F04)v7gjHb3!_cAt#3~W;=)!6;=&pQabZuZrM*E(O?#uwsPFCt z_~kf2tJ>Fd{=ZUIp{{q1b+riNrL3W_U(M3l{ySxvn1lD~-Z+3AUjazp0USOTb~^X@ zc;rxUd27)d^0Ovu7i1;cAjn44EXYo@QILaZlOQM2X7%wCv)qQ` zLjc!C0S;aam#}#-Cn~D|w&3)kY_>I`|I6W4qcrr}9cnJSXy?XbOq#C5nC!V4V{-2G z7?T4xCQpWLx|pU3m^%E5S>l(A&WDLPqm9%V8Jux2IGMz7{l-7~*U4-++R6gh*7a>1 z^Rew+mU!ly^^9nPh3-4uoA9ZS=#Oe4>=0xl+9}9Rw5z`@o^4C$sI+#bGe!P1v#`5A nHJ# Date: Thu, 24 Mar 2022 17:56:53 +0800 Subject: [PATCH 138/160] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.?= =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=AF=BC=E5=85=A5-=E3=80=8B=E6=88=B7?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ic_resi_info_cid_for_easy_excel.xlsx | Bin 25170 -> 25168 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xlsx index bb88725ee669eec8e404a2dbdfaf20943df9e261..3fc8d64c974fc70c80036c4fe6ed0a69445a7f63 100644 GIT binary patch delta 16807 zcmZv@Wk4KF(>98e5InfM26uONcZcBax=3(mgS$Jy-Q6L$y9RfMv$@~z{hssO=gg0* ztGa7ycV?=)x~r>a`oX9B!K>jQpifM2I$VKB5Ci}PnLb9W!HdAn+`Wy$@|+zh zA%{GVlplNR>Nc|pqK9^E5jh_BQzLbhJ*)gtdFLi6jn3+5#L4Ybz|EI-hR^C#2}@ki zh54$DD5ajm;3Fz1BYwDNuI%e(dlr2KhK@A3(c(G3t(u#WFQcwidt#(n6e%FiG!y22 zn%e?c87cCytoi+a9H+TT(%vg4GMfACxPqIepn0?WYaDGUQIT+k_(8OJc#9|ld zfnC*U8z`|OyU}wLG$P{Mhf9%C-tSBQ@@;tpiJxs-b?Z@Wq|4jp(q0hg$4!&_6h7$ zsQiu~?qJ|Num+L@0QweaL;v$FC}h&?ux*D{T!;wJGTM?^*Wu)p(_FawFYE?0c6uTS z2tS4{-Zs3C|ES&dD8)3ga6{I83J|n1N|V1}xoltm@da5^Wli*ncOpH znovv?kp1$LEsKMLou;tGfKb_rIR65_OA5qP3+0(ici=^H^_9zz0mX= zHhLXFhMXKG$Vb{w^B36!yp5?pXp5@s-JEWZ@^$X}B3(^lPzH#@HAVA&C?@q@Pz7rQ z0b1kA$H?_sUYPJuxXq)SMlpHCaR(Dp)SIObuF|&1=>6&f4n_1fQUG8;M-3bxGPDq! zprGONk1t?gVyr+VdTgKzG$sIyek%#Bv-k21!9LZHh)rso;(N-=#lvutZA)8nYG$Yu zr!U#q`r&Znp3TRbH4~CwQTg3BopTq}rp?bY`>ftsbO!F+O&qWQTem=0el325gJtIR z<5yr658&ec#b7mi`OnZZo!ku=-?v4c%qCudf>+1gEuEh1!ulzn9tq$&p%Md#2dL8b zK6y~%_N2$5JLst1B)rD}F4wBu$5p%+#GdY(vCBQw9uJY|9hgy;yYP=Nz2B{#`s&@? zpFG7rd+W>bJ66qmv=g5v#v7l-Rqn`3~)QGApYh`X+kB?*M?}JYBPFiR05dx}hcZ z);{?--@Thy`J%zK$+r4OqPV<*_{NH(8AmK7xKR)AeVliAFb=&uBkvxAf zXCL*6-KytZRO)d{G4Gec~C)Xg#GAWuCS|cs#TNv^{*C9iCH)5>&DsmCX5JJDMdJ zzVg#I0JVu47Q$@02oLV3QMwbEBKykE8o^~7l^Ezz_4I4G9IAwkui+xs-ZYMqfm39N zBbP1x#9yg9OSs(pns8bw;>AfLOy9~5RDtoI&;Tx^cUEEAKiN?t?fUhafc+I=fi9$n zt$L)JI97YwBGJ6oCGjQ*Y}e(v;&yCvCFLPFO!JEQnK)Jj$|Abht?}X$JJQp-aB0>; z&P+$*2wB%*2yB>P2XMc2Nm_r0E%G>4Zyn08_p{7=;7+*`s07_>nQz(Q8T5d*BS<-~7coqFMhV$+- zRspBc8{%SKLMLue!ScTa;2*XQ_0RVA;?CV3x`>Y5o=}gW{6FTAn`>7;-?n0k-H1iR z;g?N@`9%=1oQC5_L!z*q#^dbaxr~OXMJBPF^hr?8)o{&_)Ac0r^0H*YMKV0poXdC( zSoT7Qo8VhahWSJYu&#&WigB(cGiBkmWyqYaS0u@py)7tn-2i2l3i4{UsHw*FU$xUk zi?Gh>7b)VY#d)|IC7D2#Di;4#imp=pu5;$L1BR{C1KrX^3kot`z^%>CKJlLkEV zUWcb4^2g&o{Ee3ImSx51vqc{$(Bw2T(vw2Y`JWOgrL>Z7;9rZ+TrfXHj z`y)j7G6C=wS~&JzWZFrCRS4nHQcjotbCZ&Y1aT|aBR!DHJfvJ6l2+zqut-v8QF~j& zrI{%BvQh~_p#|OIPM2|Wld6b=R#JLxpoVxnUa|%jP*eT4|2J@0XpzCH@L?ZrO}Bk@ z@Vg^ElqYo3za>5deF^>>V!$B{p%cM1@gWwW)B9!aC_?(3@A&ZXH+l`VG4IxE?R^n> z5&k{2T@iUg{=K;^k*a(CJ(@F-sw(oi*5bbC;p7JwgDPWNn}u>sGXXy@EN0_j0+D-c zr|vkB5IiQ+@i>zZACuwFBJ$WygK;;gJ?NFKQ>})>X5ogJ&G*kRsepniD7aMLDrmS= zZ#xj>X$PX*&q0*yIf!y508x$vAj&>VIwD!WlFO8H@AiPhB@kppoP_pQ5P4gEmkE`lxxKm!FQ4JkfzS-@JfXACXLEq9 zI^8?pFpbqqD_nhB7UO)5_LY$T!}XQhmRZ@)9a?xaApC0Fo@f8xCJkG_j_dqAv4$;S zEB(#BNYx7eUK!}6{8ypY5GiAE()#0MQe&|YxlQB4+kK#oKJjhq!)s%`pos<|SayOm z03cj+z!v}l-@gF)7exL7>0hW3Bv!fk2RP)HNtXFgsL0xu@|zk4KU||5CEcc^rRR3y zZnM6u$KC3GLQB|?2@sy~CRdd7`UMRqbrCH{eB7~*Hc$D~0puj>c|Z*{eH7Y>gBOs- zOW2_d7jdd+5G4UJ3i0`_L6?tu(+SL_#JPg{5 zm2j4W(5q!}pz5l>y|Yc>=5g2LXgSdTRDrclkxCC9T71G)DizrLz?4A zk4w*@Bx2E*PH`tjy-T))pyR+_pdOP00EzSFfIxQ9DSFSaH3_5*$zm`wi1c)bZT44_ zyv~M2vi-NDU#xU9^VU~(yWAO|{9t)*U+wgh)7kN-$ z?n985MW9~Vg!d3pPHW-fDHE5Pz&)TCpvc@-^~3N;0{I*XTHwD{96S2B0FWt2zYSe| z+MpcBry4rzA@}+5pg@jS97CzHG1V!3=`nf*nYe|WxXa1LTjKO8N$#P&|ENjsVY>fV zBYn9xdSy@3(?>g`pc+W28IxTG6cJHvTJ3tS=Vcr0o(GA0IQJ@+;@pafI43;0C$jSg>(Z(9^&dGBy zI!57oQ#&0-AG9@N+QLvc4dpt2F;e$0TI>Bq8U4RVYw#Dp82-hRe{js`FI{f@7b8vn zqP6K?lraAV2g z${WLfRy2PXG(UeHwe&%Ofq5f?fnkBxIY15iuXR)?VGzdE>P^yVG?JAx`_e*|8q_S% zg(`*P=x94*4S_S|RxL`3Sf4K|BSc8r6&)qRE)X+jb!#ykk2=ZBoY`mtLUFD&MY61h zoe?}siGLM`g+tJlqtU;sB?e||SZ?2%#VjFkEdx=|hyipuZb;TZk`@g|$#~up&H_mS zHN2TH1seG}?WHLiM9Y3m^iY?b@(5>}0qJ=|)X}mYN(#b$gK_ptCAP=utRIQ>)x0~3 zh?c4G!U~}U<`tj;P*xQ$A*(b(WX8D=#Et*uTK;mCJ9x9Cu*1<2B0E0iJ8_&0Xc_c? z@Eg6!kVIc;$anX2kzqF$h;3|h=>hiZ z?UrTw3WLknbQv8bG2_1e@uK6xO(>U{*F6jtNh{au7C$mC0GX2xP>~)7NQChjP|k_$Yhd{iwEuwXAerW$pxf|dm+oiT z^dj3Mr3hXpn6?4vg5}8_&|Lp>pBuNkd*$)nhd0Wvlak4E*Ape&MOJI5=tptDr+gQV zBEUz(BU3>E)f?-rN&Gd_+rXD+=j%hl{QO~qNWMezfZ%$pSzoR1S!U=xS(JXiQLq)5 z0JZ3zJIRl!7ZoI9Erg>|QZ}x(FTK*QRE48~$$+7dCA)n8DNzSW4{aJ!uGlx!cgz0Uy%uu~fC2km2Bw$NG zDz8kCTI%(I$(4#L3-d_NM?WB8OYtWOSLKwv_}uM=C3jZwabL`tkH?~GSH^~bTxe5Q z9k($}=1`sf`WqhJ>7Or$j;Q-CkD3aE-GvNAjCkf;p~MbdyUZt92wVHB<;H|o^RcW< z3oX?rG>k*b$|FgM>^Cw1=Fx%pEdW;EQ<;3LN7=+eVi3*5tF&**P)Nx^PM$#^Y)PJp zI{2flacl*Ls+~igE;dz#R4NYDI)&Ny98S5>H9?~{BVava+_T*1j9`m}vO3IYj+7QI zRT{%0OvGxvlSvLEU3U{j490eJcz*EXd4ErQx${U!n#coXf+~#`1QOj|4Ir48`iE3c zy`q(CNA5x){k+wsz#R<#pNT|e74)q{L|IqEB1mU^&7*E*Sat5|g#c^(=HCH2_)ACK znGiTv?hU4!>73fNgtB;a%dr$OZaG=98TxuT(Y(TbH25WK%6cjdS&W~qnr=mxdkU|V z0;}Bkf63yV`OC}Uo&A`U#RHs$O@c_tZ!37Lx~?gE#9C>b+AHc5F-eUL;rWGUEB#NB z>9>c2{l9m7tamINH&QsYGcM4IBV`)otriy`eC?SFpr3oXe-B*#?*9!D-6@A*-A8vj~S8CK6#=O>o|dqfWPtuPwX`Wyz^MAhT>_33x=mAu>2>XZ0E7 zEz!iyW!%(#17kLK0paTpSPDXt=UI5V~J^M7YWEvwcnS zMDAhlG$N=+ZdQYZh_(o8+*^(%b`E=V{1&58liexZL4Ci|EMF(mvMsiK zaY?SW&JT9zNq-Gf0$4eh8A|6iJ&y|(Ns4K58eSn@jA?Ql&fKlcp0AwOMML~v-EnoJ z2X$!NDW$AQ)7Pb4QmdAIsp)Kf!aMY1j)RI8hWv)HA zK((h#;0xu)zlI>jx+{_y&=9oqk4FQl(WBSZ;{1RB)H`pG$*~p41Dy(UUDAK1hBz%0 zjI*JQBv~UAF3vgS=PHi$G;zo5Z3oAYwmeqt<VLHRM`S3(Ce|_STO4G+rg%k zS>F|}lzGD?L&S_V0iN!g0&|;P=_VPrhh(id-?B2F-XBh74{`1ow5*yK(qQwvUCHg# zzg1N(c+|Ws2t)C`EFk@tx+k2Wmtn#kzX6V90-Jw06S6Tu&v@7t2qb(6^>QMU*gQd# zit(GKN#K1eA(yK1n~7gZ_?6v2HnPkBT^e6)JF@&sTP&f;5ircsbzFGgvo5BFz8J7` zM`}Ext&6L?bE5~pIm5m|0SX$Yt!-P8=nsaKIA1Iy^>(aQQ{gZc6{utGI^hU#9OfL_H-c>|D369>COD_+J-c?9H359N; zh)D_QQ0@jrFDldi*x_m9&(!s}5EHtYuG0TSq_YdY<58rYxCpm1duUa!(a`cwrDOio zl$k$}Y+DNQTNMB^hR12RpI9YS*PiQqoY*;3m*>2f_yJL9Wxt4R@rSQYiN41Ox4$j1 z4l$+nP7x4|qjN`Mu*vwzJ!`v{f`H>O$bWmHz|2j%Bgt3Y*P%hvG3&V4P>7fV{pVWF z^Je%q;J^J}Ng|bIJIMH~k^c#F5*k6*br1$a0D837xy{R*v|R@iM=chy7iscU%*Rz> z!gs~ZZvXJxslkx8Zdg)@F1CaS|LE9Msa8Y!?2;y$7|K^l`(haXAOY>E9A^&gsT8LH z?MaJLOe}y^GAd$eY%o02|5!K!g;coA)9)h{fC4>;mZE4V9Y71Gt70e~fD5;#ycGlC z4D2R>0%(s)El3vfA8{6_6T0FlS1NELmM)qj6pO*#iwzN@zm)C9CHT%d#;kYqS7Nhv zb(LXXDzRAjNoeUzJTLq##u+8X{a$b*GQ+aqDCtGPjVLvxIz)WjGUKp9#<%#FmHo^9 zc8ocW&yLo?4?XfJ-bKzl)Hl;PYOfKVN3%436TJ1-0Cdpc zr>8SupAvddxzjW*f~0Z9bC8=@{+Qu;bkuzogxs9{%>nUcTY`9ShrkP&pmnhrULd0X zocS8)?rAu-V9X)IzUnhsH*T;UsOKXBE z(5Ql<>dPkD7%j1ubFFPh|TT~UU6{9ywxp^ zeDQM+Hh@~RDq9$;a9ve7!XNR20_z>-zYT1-DQ1ZRWME_n{}@;a876A(T;-LHgn6Ug z`ufYbp{kX?1MoK)I^e#mQ-YZ5iuH>qZ%&1oa<7SjO^}B`&gMs^@3B(CzJB|iFv<=1 z+X&0E>*IsLTb<-)E#x6rKqx2fv`7|Zm67RtfQ0@6>gU)iQ_7j)u`8B!T&)Brd)nx{ z>1x@Vp0IYJqC!}XwFcLQuC_MHfz%GTD|KE?JJ`8zK38!sV)tR8 zW8tx$Scpeo`v5f`48HtK4eg52Z3yofx z=XdG))E{9tfv_(kh}*6@NI%0&2w<2DZoVR2ISB5zc7Ce))G39AhEqs(y#YH{wCAIj z^XAY6LH^D(Cg!4*jozbia2Cl`g?XbtR&W1XYclj8GZLOF?+rNLhUu(ZKA#D+qu>Tq zXGgFIk&`|OQ(_oXap+LP3d^Ut4`!Odu9(C+ zfiIs-If8GSO!))9a6He&k~v$-a=^WtJE?gTWtUkqhb@gqo4GybJ6xqWMWZs)x{%38 z{wp0OB4O$93$&SXX7;>V?X_~kHx+gOjSn!EoQy3=1JF`tKwcX{wb14p9ZWTE`0VvXUt#h59A4kRHxpD0y5A@OJVT(P9C~tsiYR+PN?;rZWA6dyvNg#z6xqtESU# z0`M^Mw`LO52$$G6i4DUH+2Mujc$Dh|s}160*xgI9_ek>eer2I*W$Ly}i>QZ5GTF;N zi?L;H7#XK-pwOxK@{UMtiy)U?D3TJ*r4ajYa>R9@5kzrIc;mi zn`{7^U|$Eej<&y-n{XG+cla@KpZyq4CnOG>v7?|C6P*7@-~QJ!okUg0gaaB3tPAyT zx32@Ij)MR!@Yy<1&=jwl>Xt_71DVvYDdh%b&5(Jj)Wo|=L5_uSXHf?s_|dg07kOwS z5e;vio7*k>@xGHRbCf$}=uJq70DVtNC<}d0Oh_NyREbD(q&=8O;lxyIVZ?OcvC#c@XzSuJ_?fVbr5PqNtx&n~dT72xjf@tH)4}=ZC8W zBQyedPf6jTs2Ov+(V>gbQk1sRAUM#P3%fHQ+@ZUt7Z3xbBNjT6ME@)VC5cKe<|m1k zEdn)@MB$d|Lgp-isP}o~@g(QL?l%fiYfg4PK5oRT zoAMZu*Ql|qZ@CtAF9l5xG4!L(j_$M@=%iWgV?6p+kH)wn5qFn=H2Mbkt`Q$3J)QHK z&+>$}a!~OefO2%I@OEu7?eh%njNK`Kd0-_SAz<<67N?Zx3|M5_TktL-zR4-p*P&*o zwNjIDyxkSY!x+cI=Hc$O`h&D;d&qfb22UhIonejP+{X4niUHToN6N3bEwAar4!Fs& z);@3BN87gLtLIH;z&}V2gNewgesCCQPG6-)5XuDjGC%(1Jao>gv7psK-UA)9Jf{c$ z1O(9I0HlSNJKm}ZQ!!EdP&hj_1^73-j_{;6G2fh6GAX|ej${?br|+73G1iiq zRWbbd>on@jMeUHS3t=eVA`m+_VF}V5FVJcLoD7Kt-&~v@v+;w-%Ikd}4Q39D&!MNZ zpPUbODtJrpe#h(>pm|VFJ@PN|5nvZu|4~7V658b=RZyBktr(WuR2bo)lD~AY2RV(d z{#~ox+)vxFb67}kU`A9<63UH)mQ!<{4QyM1S1g9fr*;Yv86A%A`gj#@@!v68HHX^) zBwqakPTy59LP%|`NY6e#XD$inDp|L0YOG+Aj0q_3)OC2n-B2TaAiTbE&cJY=X}+DS z+!>Tp0j|a(phHb!%DiX1akh(j;f)*3%rSNx3bcatVnZ1NKgi%BAm%0a{KD>(ar`ec zy{vOkE`ILwwyqRwkQX+)q7QkYHVSD z!~N!@OeLNa$H2}3{h%e(Nl*~HAQmiFm{YvTH7&tNNL?}-vGFJ3o<9<&vaECopgWpdH%df>Heq1QEGbIuF)t1)GTT&!%EGh+j^P+YQL1fnC39?}YJpkou-3{%b_D zG^&`wq>`CTfStx2R9P0z@3;0gX8!fI-<~8n=Z4`lceRUfB-AoKRiaV-oj~7W$?VY~`1=63Bq`f>_KA z1rGRX3T)t1zbZ?mEs$g4p-r!_t*ybIligOG#o?97aXBms1=A0tw(v#o)Dri(W{%6rs zcgq|Kp&it~tu|RdX{m?@Z(eyixfOg!QAE*U@x$7=va0aso@|I@8%UX0d9NpCB^^&52;aE^_LsLTPy zJE1o;P-QR+LIKUA6O5)N6!BHbJScYQ@InFG8@R}Z54b3fTmo)*C_09n@|JPBHKb;% z;*s!9(M)Q2(RlVp3XJ6kW2(J#Kjnqi%4r%5Jq+ZdPT-VriZ<+hk9j6;WmA8&MBz#W z#iUP*X+X=HOi&D&MFq6>Irz&74{#MrlG9h+C7#)PJt3mvdLH) zL{MlM2x^Vm6;?M{YR$B+@QrcS?|eEC*tGe<>jw<|A$rqK9Efghbfeh&BxD*L6t?E2 zvgVZI6ek+EyX8cC7qKOB0I&8K#x-5tn$6@)WajGAi$|r6pUn*0t3Gs*0_j`6%W@!i z@COt!bPz><#cZ;`u4sVfI{{FDg)4ODoFCm2%z~U4w$*Rmpsrxz_Dc6P&_~tY z(hfOnmk|^_ZrPP_+u@A84|N#;_WSm=@Oz&@X7tyD(Hi=FYH!GluavW~wX$|^WT|Ut zsidaVfT7q;t0N(r-^gj{q+#G>s5m0-sxQ2z{#bj0{a1sI<{ zD<;ZitV>F@bILFC{ZKth?9C;~B|wv>bX+U_iRlsm={WCr=9@~f?mM8dm5S~CD$Dy0 zj6UORV?gD}I(*^-01mOIJldV#Oj%XWu@+1XW731K=aq$+2KDMVun5_|Y<3jd&wm;1 zKacXx%;jQF3sx~vZti@U|8**RI-BcwGt6iMEg3~Q(Hn0|Xh4fWxlU>_m#WJa8_o1O z!%?X;6e4m`&B@gmC2uc`6CEPfpt?dI!yV*kYnGVG_cq=tJ!~6jyF2;^|Mu3vy-Hk^5KCqEnt_B9};Pt79J5EksHe5cvuimHG(4 zF;>Tk4YjuM0DPTKv9;8CM)$_gC-?C8<;_367b}~&i^K3_WxhSnM@sDJK9rcqbuTWN zp+{%X)($eG>N#6zM<8TaHgSy6iAyzV;#DSZq^Eg zod~Q--cncunt393&(tW8YuOR^9&=cE7yh`THsQc}07QL-bW-Qz`CYP~V1~I(EiW_r!_jyT)=YGKEn5@F4B9$sHvA%y;sWY~pRO8bx{e+OpQis>uhP;vq$X=-g^bX3S+*6b(Y{%-LG$S<`ly zug;uDC}^R!x<7xzop*B$y^PtaFA-NbIzrbfoq}U4|EyBSz0@e>Xq*@C(9J_N9qocS zJ=s6=>e!g3*+1R?1@@ucp#3Wew@lp*8Cc8!5C_;;>`V!#-Fbb5AJntg2eNT}*mNwP zT@eX2tuA|<->13i-94I@TNft@y)GtjS!ca2U%UIt&2I~s88~|$pJ{swnCZvpDItz5 z{A#XvsT5yf8ux5ijgD$1+WTcaGJ%cGN<~*8CR=dO(0mb1^E5@FdVECrRt9tDVy$H9 z?F}$65V;>~)Nrh2n7Pw_U-CxMzB+{Yet(JLxh0+mcTKjq`AW>a{}I>+r_rCP^>L8$z6|aiFwhvXC2@ z(~ucT$Wr=5RJr&ZNfwS$P>Pi(-OlKz=NyZzuPKt`2TX!4ltQ&zjlKJhMv~Y(=X(=T zLuzbRC<^l>0iuGrKKDV|>Vwd}Tu^}cGetkwJJjVt26NM|;RW%wy{4`qM2vaIIDOl4 z%(svF*+|y)Fl3EDer*ewFW18ml(k?nKEca8hqSo8)j{i-lMW7?1lT5;#AcfJIWp=h zuG`awGSTwSJ*FcOETJ~g>J3J%(ua>89?zM_N8Qyft#Pq=Ip#Vpf(Q7U4k!SR;*Cbx z)uR;`OQX+FI^bkljR*d!x!EI>k`+>5847WXH;1LDx}zecy-Hy{EG!OUg6N1=zWSdy zNciR}@yT@Xa1$w0JY9z=_2d2^t8XYZK8u3q_h#1M9Rs1HOjjoAxP=J+aoBM zjgIz#(~;SrZkz-KlW5-ZFgkoHlYK+fQtkc(TSMHqz;?@U*jN_4tS}k=3EayeYU319X&#aA!lZrtsoCrr;_9@8$!DF&U`v>!MM>xm z$93vb>B2W^?4@8a?~q-99NL+c-Nh`F>$Pch##cTPl`oJAVP(iauzw&*rwuQFJ@_Lo zWJv9<8N#=VLGmL*D342yxWtL^qD&R-Uq$gQ7n(j{d+rxxchB**<`T_uJ8TqA)fdk8 zg3GI{Gtsq3RNb@;Nm`p3DZdZb!(4z7*SmFhr3pUO%yV^`Wpu*>NObJb8|%R|Tf>#Q zkzjG7345(bFM$O_xJN?#dff_bB#R=(-ck0IBgz{A)1Nou(OUQ3u!%94PsE8};`9yT z(02NH!BlZW=)+$daTaoPljP|&5ooVxRY_=>T(;F8uBWA~hXTLBj$_suh9&RkEdH3G z;@4Mjub>zP_bYh7n4g{+PZgNBeq=}+#pNat zcOA|#1bPt&?8IeJx=|QZY9RLh`Gp4TPHXozjRdgi!J2V)RjJ5g?g=GU_wYb`Ht5*l zWh^dKE{K=P3O?HS_Ce|%$|3AekseRCd?tho3W(W&P zCP_s@CwSNLFB> zG4bdTs$&FrzrVg7w@F^W&h{X)D;nN}#6@7>+9Y=t*-+Op@C$qlbv#`Vj%V?8K0fx{ z82FZ5;#wQ(i55t6FlrX$!6jyu4ktf*4%MkTwP_+rWAVg$3#9jO@3k zyJdjMq?QYx$9KgU(L8XZ)+5(yQ3>I#o%1OJKER-7gk7<80|C}))|KePYym%`_jO<$ zIv*0jY9bMW=@>MH!U8dQAL%A4^9_JMW%KRVSSqhmU|KcbFlLAA{W5l!{w<9fj^>TR z`Q*o~>HVd9-OIxPp>NM>L{)(_U&3BBY&PJAB5xH;J5`jBuley2DWVwWx1*tFNx|=@ zSp|B6c8;zWw1oH9zAnd*yeZW}EJ(VZAf(&C`BDAKx{?L1z6lekb_5RNwr~b^?qaR$ zmqJ3P{=5rG1k{uRF8fwK|Ku0L&z+*?b)gUX9Uh;!Zgzqm^zL2Uzx>K=UpLRr%Jv0# zUOk@P!Cqv29KH|aC*N%HZbOO2Ccse7qS+HaqkJ<-Hbg*6UHudlIIkCI+rXk3g&<^9Wlcx*;YsK7vpq#Z8qURM$vet!rO(>iAu8+lg>2|O-MdNMmhT7qIxT|Dp6=cKR*WS;1$83u z;f=1=y%hL9V$JNoIGi@a@jVU&+SeIo9kNt)Wp&m5c%0(V#oGQ?W0ykVKrwD*W9w8q zY<5*6P9-14mq%957ff$*DU=!p<#&I`q_+;XfDXlNl~nDZ@7t6wmD(ou1{zI&3e|mO z%CY7v#Ty!$)aF;fB<+9BDZdmOB9HH(2Q12urd_ZFeQB0d?|A~ z154b9``7&ZGiCbh;V3fky41bIMu`#K)eAkqhmJXYau-x%>RMu>DnH;M`|PYGy>w5L zgwphag2jJrbc0Z4Z+r8lY1P^Ng7PbAiz;&}a6$$Xd;_>I!vx^=mBc`jQy2pzT+lp@HS%E#-_@*G6Emd>%#_Q<#?oCHgvZh;+D6QtBt**6 z)0F%mJQxagoBlW?o-kI3XW!0S?~k}2pYmm{F&P&$7vuT-EVeF~VKtgpV}#}@t+DQ< zpe^tlzVy_LPa`$M1L8)y0EDvmh^Fr4_^riCTf$c3|A3bQ`j|>vh%!5ZnSiab)PNy} za&d!n3ZVMoUZP6fgRN(Sg^zS3VO+6kxhTMgy`xQ;WJ+Ui%DLcuBrJ34cHHq~9y=yA z%j(A7r|dzmiVb-o+vMo<4^~xJ_7Z`f4r3$bFNWXCbfPFOZV)iKgOF)&Lf-`-Wxp>* zBkI_56zpO%zvwTDS)ciQM?qH(j4Qw)r<5vM&U%?tgU} zPOq;{1oDaa3Kg9xmN1Mm-y$J0X5Nd1@bLq{&J>3ErlTPsgR(k_5bpqPp+4(Ib8rw3 zt$iLxS)C4Z7tTXUA{T~Kf9}OebsbV>OBD@DydSNm&jwyj@!`Zndv$F%*Z8*1F9zE# zITPhg2{4%RgTJi|yo`)%asw48Yu#t0ZV~)1gc^NV;yZ!j1|D%xFFL{TP#X}B_|ygV zWXw(W=!!2ATW|8u-^&1u5ifwBeqhs;P*y&anOFgz2+3xVW}9EUk9qC>5Z-!RO3fpm zSKl|kCiO zZhbX5`hwDh6gzepzC{xA2y5K@nb&-&J8x^iwm%E33g|x!g%u5e>JQL_Cv*Zd@nGFK zQ#Nbd>PbjQ_8((J4Pw1D^JAS0*u%MEMKh5^N?eX0-RAkd284w%_|Fk?^XC~F@}e^FmFZa(rR#VLGTiSr^1=sD6C;j_w3 zL^QkR%BYiFSg8@8dWv51{3)?Hyo|OtFYdu>zg=LC5s(hZ(t?ur`i`=6oGNBmY>ok5 zlo}7J5(ibKq$2kZNl)cafA@l^shMSo?3S9M7i?^#6J83XpTH18!xkhXG2UAoqz(H# zO9JIf(#Wm(qx{@~mH!*aPaiNu(52w)L`Dw7z#JYgq%&vo_w7TeQFU+4Rh_1q=BAhJ z$3}CJ0(iEeAh-?D?l&}kcJMu!LUSq5;)D3QMY6Akq(AMu%!A5j) z;y$6HWu%%K0UaV34vVzO(SA)I+i$f6#B9@Y0X*3i+#38cD}I-{KguY^=kMc-i^)ey zpM5;@0PR?(OnsZ~4$!Q?q$ldl;tc+HdI=oOvS_o<-w)of$7tL5G%R^o)i}->@0JV< zDn&*YV&Lk~Ars2bO{1yMA%kf4EN##`)3y=Lh(BG0lEm3P5>g1B?ht{Vj_#%i3*ZFo z4J}a^eT6`|Wi9rKG#SZfX9@5C42OzWrnb(&{W71e5pbdOdoh@T=s)K6_)4yXIvA)qP_3Jx{Qq(P)wf3+#D@n8(?H`NV z_2iMTcI#X?<*i)i(ynu^|9)sOF*yTB%dBJzi!Efch$v+Xi>_qjQLx4&(y?|U_Q6k# z)(flk&*Jn#Z3_C1|{Dk?b z9zG}#LH?C5h98RD5hBaSr4#(7lS;*$G@Z?u)u(utRM*h>`J}?JQl;z5l75oBEQg{4 z<|kDZd4=soivrnhwzmuybzqDE5v5V-Rs6V};kS8uL1e+MH$nfac3__ZWp=hafj}mn zA2-*li__z=>DBDW0cHQt4kasKV2`qY@SqqtH1#EJLZKLJ;7OGj9QqMf({+tH>iZW( z9tHFnNr($H=8CV?&w!=05%$gleb zc3|Z&K_a;p?(Ul95+M^}qH176-s3-u?pzW0^QLdUt;NywAUt+HVdQ4nkLx2C} z9I)1Vj9p;Ue}fGCH^{($gADvPKCifezm2#^aUj9X6WXMHJ@=Qd)Y*31)+fL0x5mn| ze(B?yr?+$F@c{e*rnbN)`E6%9&l}pGxY2GizuTGXX1!ium-Qfuu#NVmq{^mx ze(7>0bY+hwBJ2T^0axvjeXN+-mh=R(x_Ct`oU+c2DF?<(69eCI`iG2hSO-jT`Uk(K zMGn=2-VbYX+;BHUzP@fRIjLLIF)Bfk1Y9*MGX_;Mm;uxVZOKBcN_7GWZHY`XxO@8a z53hkV8S+}}M_AtrCjS;y?KdDzw^`-07qc_u`}?&Q52*J5?gajOx5H95BJ&S87}zT$ z7#Pz3gsI)_ove-R?XCX?s-uAl)~kQdX$Sej=Dt`BJuQZC2G>O2F?%g}E!vP{G?0^0 zJG;vmVe2gyhSnrB{1k@ciLwpGPl{SFpm3V8XIjoJz3N_<@*@`z$U5{bl)XRD-wNVL z`O;g0Kx<6_mBKwvUT@x~!H~_T9V#d(s<+1yVf%>jrFq%&F$bTi^ChiDF9%$8X&T6E zgB{|)i$_#5C@gy?m3##zr3b`R#|LCH784rMBqPW8k~R2l$18Trx5@al*U3UDVs#1z z+;<#`Y>^UYw~87shN$V)e%iF1Bi?$ubj*HycFDKWo<6D&wsY1iuyp?v)4%Sg9T=vV zEH=e->^T#XG+#fiYQ6V9C2XzN2$9B>7W->{sI(Q2LLhc-nU(8_J#q^8MhN)x2Z*Ep zZL;gnU~$LFj315Hw|22x%uOd+YCZ+!zIbkKdL<2~Ki@R;`63nU#VJRGc+=&_nA8zf z-iG=go$kF|7(^a?(F@c~*Wh9PSmkX1ey1dGHsIy!n~r~EfR6Y)JWCGwu1<@`=k836 zw0SULC8b#GflZJYGA(HU4fa{6)4005P#8ZLr8)_%x?jC?jfDj!)gq#Q8kqv;IVOZU z>n4O+O)*Q<%XPGVMXiReK7FZk)aZl)mjE*A3WD1M9d%j2fxtpt;Qu+C&!@+Y`}bft z1;{GkA;7@Cf~?~21rA08!W>|No*=>lXnzc}p`j=P4uJ*+?9s#loreB<~Me30inSO?_nC|GQ$K0t5Sd_WbYlKf2a|LHd-?|7?^1f9a!x69NbHxxr5p4A>#Q zasoLG$Z`K|o&UL46X;>U3yuYBFd)YL&w1?sIrZ@$DN*2+0WIFYPlf!a{T&&oXoL=w zGepPxzq$U1|5ow<$}a#35n(_BQw)*u{yQW0ude@no+zAu1eZbD{*yWRZ*4yb{}CcI zLdX42_S?UOLVyZJw0QqXllgc14%I(O%8k(R{$@e^lLYbq`QHlk{|H@ye(67Zn*Y|c P3M4kBg@M%l`xO5V)u-6H delta 16828 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 Q`az^7pJ1T%{yxe70jqzIbN~PV From 397bcaca2fe14be44559d116e1d9833801570cf5 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 24 Mar 2022 22:29:11 +0800 Subject: [PATCH 139/160] =?UTF-8?q?=E6=88=B7=E5=8F=B7-=E3=80=8B=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V0.0.13__changeHomeColumeName.sql | 2 ++ ...V0.0.27__resiImportTemplateLabelUpdate.sql | 2 -- .../ic_resi_info_cid_for_easy_excel.xlsx | Bin 25168 -> 25164 bytes ...ic_resi_info_import_cid_for_easy_excel.xls | Bin 77824 -> 77824 bytes 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql delete mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql new file mode 100644 index 0000000000..b70fd29096 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql @@ -0,0 +1,2 @@ +-- 修改所属家庭项label为户号 +update ic_form_item set LABEL='房间号' where LABEL='所属家庭'; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql deleted file mode 100644 index 28ae0153da..0000000000 --- a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.27__resiImportTemplateLabelUpdate.sql +++ /dev/null @@ -1,2 +0,0 @@ --- 修改所属家庭项label为户号 -update ic_form_item set LABEL='户号' where LABEL='所属家庭'; \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xlsx index 3fc8d64c974fc70c80036c4fe6ed0a69445a7f63..5a2c56972a0cd0c6c9dd250bce898be9044926e2 100644 GIT binary patch delta 9968 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�E-6ZoAOk-RK2b+wpxswA88)%g06R~a>Tc|q!+u# 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 Xp9|~d?9_jz%tOd6n30|h|0@3v7k>W| delta 9896 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 CiQ|$0 diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_import_cid_for_easy_excel.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_import_cid_for_easy_excel.xls index 99376d01a939f088169b23d518de99aa810e6c33..af52e02e95fc8b747617864bd1c6ddb1e129f178 100644 GIT binary patch delta 1236 zcmZuuYitx%6h3F>&g|~YzPH(#-R(ZWRKOUTih%?}cWt}=u%VSl5lVroX+u)6RDy|y zglbZyZHkejZK9+E(;o=Y)Qrt454$2_NTd=$@dwh@A8II%(pa%rt#@X(R;8KDxnJgc z+;h&fj(@dA7VkV>Qyz?LOO zpaA?dte7g@QYO?G_a)V0UYk{I9+z&p9CT=2_Q5=BdIPgJzUlMzs68q$N1mNgHPop( z-(AWnqmMl9CA8BSLodDV)I#omyp4^6@xeH-6_z(dgPe8FvX_8QlF|XP7OT-Mr$$#@ z*2HM1xT}~-RX^3cV(8*rg6=py7T>DMsF>>9mI4K{i3feYpc>@8hUpEymxNmm+`GBu zoQtA|=Z9#gJLnD0y7T?eekDwNEPB=LQ8=0F&Ou+hbN_==#$WCujJ4DXWyaCKlBIZ? zEl#W77)9G{|Rd99%iUfbzN zS@e;}fa!MNX!T&{@v8qO=wN(ovUa?@E%}tx`tNid)*UF1U=bCTo3Sf-t)Y$O(akp| za)BkAUTXY*U>Mqd%dwqJpYFbwjo!_%i#B~R4?92?_${mHW_hJH4jzE$Wp~>_ z<^c$H{>ZYib=?_32tP?5_8m2bHmnqd`7EYce)xrWT{k_BRF#k8l70 delta 1168 zcmZuvZD?C%6h800?@i3T`MilYH%Z&nft?j;oI(fg$7<4o5=>U7uB#<=%1Vb5-9-Et znsim>I_JlZE`Rz%QCYV^S9sBgUoE(a6NTXhis*XlKqZsfRaa~+i|5{S!!Is5C+9rp zdCqw*w`B2>#U~ae`NUKYE=!-{yd1$6C5|N?$0hnLa~+$wiLKG`0l$?E z>`)AB=MC=l@Sy|%xR4~pGNM8TX-$2p&iX?RSH;)1HXZ*I0A z0x_Icqtu=D*)gD{oXHJZlaouD%bsN>ULe-QN_B%%5f%>6-ix&$z^kE9Su1P6Jq{N1 zx>ywRj%LamWd;WPwtl}i#Ul8UHyZO@VGayTCMT1?*E;uvagtE|GI|D@JDNL8fGGzJ zVbRx&6*a(unDnJcF;CINUulQe!5-HF%ujWz?KY-f))@_j49%eX;*JhE^+&Pb)!pqY zwe801h%D$fPSzpI;Y`+-b?C9ol5%icmUi#?gfd(X|+ z1=nnTYT)03aoDv`NB2GW@nio*!%KB^_2v`*gC50Gv?YVHnQZiDpbultvd6(S=UmwX zVBm(%B25ex5_rDTM6GKT8^^Y;HHrjm?fqh)tEjkA82~R}vf84`#J<)Iu(})b)tuOt zz2Nq1;Gr%9jUJCj3~oFwNx@BoAHhN)Ct5cBB1sdyB47Pd!kNC4>h%u*>>LER=OKGW z6bgZ``o@z0+lB!C+(W%3v14a7%F@_3lBGB{atFnQk$ELedpNSUZWN6#e8%MA7eQFH z{j%P-a#gGhuw@jW_ByHjA&LiX($%Af0e%|?cttop@%GChd8T3$Uz63np8$lu062Eq zSv&o~XhQwyI{@VefH!}12v2`=D#Xrp8nv&*zpYlgmi$ zB-Hm{awp_#X87DY5%i_ T4pnxnVtZU{Yi02|=63%DTSIa- From 2b9de618538f40ffe7606e40552d81ca6b7f29f7 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 25 Mar 2022 09:03:54 +0800 Subject: [PATCH 140/160] import --- .../java/com/epmet/dto/ImportGeneralDTO.java | 5 ++++ .../model/ImportBuildingInfoListener.java | 18 ++++++++----- .../epmet/model/ImportHouseInfoListener.java | 25 ++++++++++++------- .../model/ImportNeighborHoodInfoListener.java | 18 ++++++++----- 4 files changed, 45 insertions(+), 21 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java index 9039cda6ef..1d4419e661 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java @@ -138,6 +138,11 @@ public class ImportGeneralDTO implements Serializable { private Boolean existStatus = false; + /** + * 错误信息添加状态 + */ + private Boolean addStatus = false; + /** * 楼栋重复状态 */ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java index 6c1963888a..d4d9bde5b2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java @@ -142,10 +142,13 @@ public class ImportBuildingInfoListener extends AnalysisEventListener existList = groupByBuildingExistStatus.get(true); if (!CollectionUtils.isEmpty(existList)){ existList.forEach(e -> { - nums.add(e.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + if (!e.getAddStatus()){ + nums.add(e.getNum()); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + e.setAddStatus(true); + } }); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index 60b609752c..f54eb2fa7f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -210,13 +210,17 @@ public class ImportHouseInfoListener extends AnalysisEventListener collect = needInsertList.stream().collect(Collectors.groupingBy(n -> n.getBuildingUnitId() + "_" + n.getDoorName(), Collectors.counting())); collect.forEach((k,v) -> { - if (Integer.valueOf(v.toString()).compareTo(1) > 0){ + if (Integer.valueOf(v.toString()).compareTo(1) != 0){ for (ImportGeneralDTO r : needInsertList) { if (k.equals(r.getBuildingUnitId()+"_"+r.getDoorName())){ - // 集合里重复的 - nums.add(r.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); - r.setExistStatus(true); + // 只添加没添加过的 + if (!r.getAddStatus()){ + // 集合里重复的 + nums.add(r.getNum()); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + r.setExistStatus(true); + r.setAddStatus(true); + } } } } @@ -227,10 +231,13 @@ public class ImportHouseInfoListener extends AnalysisEventListener { for (ImportGeneralDTO n : needInsertList) { if ((n.getBuildingUnitId()+"_"+n.getDoorName()).equals(e)){ - // 库里存在的 - nums.add(n.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); - n.setExistStatus(true); + if (!n.getAddStatus()){ + // 库里存在的 + nums.add(n.getNum()); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + n.setExistStatus(true); + n.setAddStatus(true); + } } } }); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java index 2e326c20f0..2cafbe5f4c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java @@ -136,10 +136,13 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener 0){ for (ImportGeneralDTO r : needDisposeList) { if (k.equals(r.getAgencyName() + "_" + r.getGridName() + "_" + r.getNeighborHoodName())){ - // 集合里重复的 - nums.add(r.getNum()); - disposeErrorMsg(info, ImportErrorMsgConstants.EXIST_ERROR); - r.setExistStatus(true); + if (!r.getAddStatus()){ + // 集合里重复的 + nums.add(r.getNum()); + disposeErrorMsg(info, ImportErrorMsgConstants.EXIST_ERROR); + r.setExistStatus(true); + r.setAddStatus(true); + } } } } @@ -152,8 +155,11 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener existList = groupByBuildingExistStatus.get(true); if (!CollectionUtils.isEmpty(existList)){ existList.forEach(e -> { - nums.add(e.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + if (!e.getAddStatus()){ + nums.add(e.getNum()); + disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + e.setAddStatus(true); + } }); } List notExistList = groupByBuildingExistStatus.get(false); From e505c9d5ee73ffea1e625f97abb238395128301b Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 25 Mar 2022 09:30:04 +0800 Subject: [PATCH 141/160] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V0.0.13__changeHomeColumeName.sql | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql deleted file mode 100644 index b70fd29096..0000000000 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__changeHomeColumeName.sql +++ /dev/null @@ -1,2 +0,0 @@ --- 修改所属家庭项label为户号 -update ic_form_item set LABEL='房间号' where LABEL='所属家庭'; \ No newline at end of file From 6ced9dbd0ea3e333d7ed1553b685687048f6f577 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 25 Mar 2022 09:57:58 +0800 Subject: [PATCH 142/160] =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E6=80=A7?= =?UTF-8?q?=E5=88=AB=E3=80=81=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E5=87=BA=E7=94=9F=E6=97=A5=E6=9C=9F=E7=9A=84=E5=A1=AB=E5=86=99?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E8=B0=83=E6=95=B4=E4=B8=BA=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E8=AF=81=E5=8F=B7=E3=80=81=E6=80=A7=E5=88=AB=E3=80=81=E5=87=BA?= =?UTF-8?q?=E7=94=9F=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V0.0.17__update_sort_idcard.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__update_sort_idcard.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__update_sort_idcard.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__update_sort_idcard.sql new file mode 100644 index 0000000000..9d383f58d9 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__update_sort_idcard.sql @@ -0,0 +1,12 @@ +UPDATE ic_form_list_item +SET SORT = '5' +WHERE + FORM_ITEM_ID IN ( SELECT i.id FROM ic_form_item i WHERE i.LABEL LIKE '%身份证%' AND i.DEL_FLAG = '0' ) + AND DEL_FLAG = '0'; + +UPDATE ic_form_list_item +SET SORT = '6' +WHERE + FORM_ITEM_ID IN ( SELECT i.id FROM ic_form_item i WHERE i.LABEL LIKE '%性别%' AND i.DEL_FLAG = '0' ) + AND DEL_FLAG = '0'; + \ No newline at end of file From 5bb10bda1b0bd54b0099660727b38c47164376ea Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 09:59:28 +0800 Subject: [PATCH 143/160] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E6=88=BF=E4=B8=BB=E5=BF=85=E5=A1=AB=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V0.0.13__ic_house_remove_owner.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql new file mode 100644 index 0000000000..edf66e716e --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql @@ -0,0 +1,4 @@ +ALTER TABLE `epmet_gov_org`.`ic_house` + MODIFY COLUMN `OWNER_NAME` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '房主姓名' AFTER `RENT_FLAG`, + MODIFY COLUMN `OWNER_PHONE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '房主电话' AFTER `OWNER_NAME`, + MODIFY COLUMN `OWNER_ID_CARD` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '房主身份证号' AFTER `OWNER_PHONE`; From bd74456861ddbdad57f49a0546d71722ba5ccc24 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 10:04:00 +0800 Subject: [PATCH 144/160] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8E=BB=E6=8E=89=E6=88=BF=E4=B8=BB=E5=BF=85?= =?UTF-8?q?=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/form/IcHouseFormDTO.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java index 58376e2032..fb679755d7 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseFormDTO.java @@ -87,19 +87,16 @@ public class IcHouseFormDTO implements Serializable { /** * 房主姓名 */ - @NotBlank(message = "房主姓名不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) private String ownerName; /** * 房主电话 */ - @NotBlank(message = "房主电话不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) private String ownerPhone; /** * 房主身份证号 */ - @NotBlank(message = "房主身份证号不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) private String ownerIdCard; -} \ No newline at end of file +} From caa7b4b4b269e5d92fd0cc7029ac316c95f99f06 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 25 Mar 2022 10:12:16 +0800 Subject: [PATCH 145/160] =?UTF-8?q?import=20=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/model/ImportBuildingInfoListener.java | 6 ++++-- .../main/java/com/epmet/model/ImportHouseInfoListener.java | 6 ++++-- .../com/epmet/model/ImportNeighborHoodInfoListener.java | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java index d4d9bde5b2..1de117ca35 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java @@ -145,7 +145,8 @@ public class ImportBuildingInfoListener extends AnalysisEventListener { if (!e.getAddStatus()){ nums.add(e.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + BuildingInfoModel buildingInfoModel = ConvertUtils.sourceToTarget(e, BuildingInfoModel.class); + disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.EXIST_ERROR); e.setAddStatus(true); } }); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index f54eb2fa7f..ea8c98c040 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -217,7 +217,8 @@ public class ImportHouseInfoListener extends AnalysisEventListener { if (!e.getAddStatus()){ nums.add(e.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); + NeighborHoodInfoModel neighborHoodInfoModel = ConvertUtils.sourceToTarget(e, NeighborHoodInfoModel.class); + disposeErrorMsg(neighborHoodInfoModel,ImportErrorMsgConstants.EXIST_ERROR); e.setAddStatus(true); } }); From 9bc9b52705001f84a00fa117ad7d34d19498f534 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 25 Mar 2022 10:13:58 +0800 Subject: [PATCH 146/160] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=A1=A8=E5=A4=B4=20=E6=89=80=E5=B1=9E?= =?UTF-8?q?=E6=88=BF=E5=B1=8B=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IcFormItemServiceImpl.java | 9 +++++++++ .../db/migration/V0.0.17__updateSuoShuJiaTing.sql | 1 + 2 files changed, 10 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java index 3afb6df67e..e7afee12c9 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java @@ -71,6 +71,15 @@ public class IcFormItemServiceImpl extends BaseServiceImpl result=baseDao.queryTableHeaderList(formDto.getCustomerId(),formDto.getFormCode()); + + for (TableHeaderResultDTO column : result) { + if ("HOME_ID".equals(column.getColumnName())) { + // web界面table + column.setLabel("所属房屋"); + break; + } + } + if(!CollectionUtils.isEmpty(result)){ list.addAll(result); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql new file mode 100644 index 0000000000..9b4cfd165c --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql @@ -0,0 +1 @@ +update ic_form_item set LABEL='房间号' where LABEL='所属家庭'; \ No newline at end of file From 329a1b422c9ccb20195c85fa00ebb0fef361fd94 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 25 Mar 2022 10:18:03 +0800 Subject: [PATCH 147/160] =?UTF-8?q?flyway=E7=BC=96=E5=8F=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...__updateSuoShuJiaTing.sql => V0.0.18__updateSuoShuJiaTing.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/{V0.0.17__updateSuoShuJiaTing.sql => V0.0.18__updateSuoShuJiaTing.sql} (100%) diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.18__updateSuoShuJiaTing.sql similarity index 100% rename from epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.17__updateSuoShuJiaTing.sql rename to epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.18__updateSuoShuJiaTing.sql From 38c55669a2a4e6947e95cea3dc09475cc0388ee1 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 10:21:42 +0800 Subject: [PATCH 148/160] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8E=BB=E6=8E=89=E6=88=BF=E4=B8=BB=E5=BF=85?= =?UTF-8?q?=E5=A1=AB=E7=89=88=E6=9C=AC=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._house_remove_owner.sql => V0.0.14__ic_house_remove_owner.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/{V0.0.13__ic_house_remove_owner.sql => V0.0.14__ic_house_remove_owner.sql} (100%) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.14__ic_house_remove_owner.sql similarity index 100% rename from epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.13__ic_house_remove_owner.sql rename to epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.14__ic_house_remove_owner.sql From 1c75cc55eafd2666eced02c7a9303f23a8b7c889 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 25 Mar 2022 10:30:48 +0800 Subject: [PATCH 149/160] =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=BD=95=E5=85=A5?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E9=A1=BA=E5=BA=8F=E8=B0=83=E6=95=B4=E4=B8=BA?= =?UTF-8?q?=EF=BC=9A=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E3=80=81=E6=80=A7?= =?UTF-8?q?=E5=88=AB=E3=80=81=E5=87=BA=E7=94=9F=E6=97=A5=E6=9C=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V0.0.19__update_addform_idcard_sort.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.19__update_addform_idcard_sort.sql diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.19__update_addform_idcard_sort.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.19__update_addform_idcard_sort.sql new file mode 100644 index 0000000000..5305539887 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.19__update_addform_idcard_sort.sql @@ -0,0 +1,2 @@ +update ic_form_item set SORT='8',UPDATED_TIME=NOW() where LABEL='身份证号' and DEL_FLAG='0'; +update ic_form_item set SORT='9' ,UPDATED_TIME=NOW() where LABEL='性别' and DEL_FLAG='0'; \ No newline at end of file From 6778b9da7b1b9817d968863db141819fa18a5fae Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 11:17:23 +0800 Subject: [PATCH 150/160] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/datareport/controller/screen/IndexController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java index 1e4a67a0b9..4a566e9226 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/IndexController.java @@ -156,7 +156,7 @@ public class IndexController { /** * @param formDTO - * @Description 数字社区:数据分析-动力网格 + * @Description 数字社区:数据分析-动力网格 数据由市北服务端自己添加的 * @author sun */ @PostMapping("advancedbranchrank-shibei") From 759ada723697b59eea50ae75355533a0c8bb69bb Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 25 Mar 2022 12:15:21 +0800 Subject: [PATCH 151/160] =?UTF-8?q?=E5=8E=BB=E6=8E=89compose=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=E6=B3=A8=E9=87=8A=E6=8E=89=E7=9A=84image:?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml | 1 - .../epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml | 1 - .../epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml | 1 - 3 files changed, 3 deletions(-) diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml index 4f5d73ca1a..7e1ef5224e 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-dev.yml @@ -2,7 +2,6 @@ version: "3.7" services: epmet-oss-server: container_name: epmet-oss-server-dev -# image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-dev/epmet-oss-server:0.3.2 image: 192.168.1.140:5000/epmet-cloud-dev/epmet-oss-server:version_placeholder ports: - "8083:8083" diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml index 2ae17d5c59..c839bb22b4 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-prod.yml @@ -2,7 +2,6 @@ version: "3.7" services: epmet-oss-server: container_name: epmet-oss-server-prod -# image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-test/epmet-oss-server:0.3.2 image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-oss-server:0.3.40 ports: - "8083:8083" diff --git a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml index f4abefb2dd..3a849e0e50 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml @@ -2,7 +2,6 @@ version: "3.7" services: epmet-oss-server: container_name: epmet-oss-server-test -# image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-test/epmet-oss-server:0.3.2 image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-oss-server:version_placeholder ports: - "8083:8083" From ed2033d26d7c24fbad0cefaed6d4316c1fc7f468 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 25 Mar 2022 13:59:33 +0800 Subject: [PATCH 152/160] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=AD=98=E5=9C=A8=E7=9A=84=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/ImportGeneralDTO.java | 2 + .../dto/result/ExistHouseInfoResultDTO.java | 19 ++++++ .../java/com/epmet/dao/IcBuildingDao.java | 3 +- .../main/java/com/epmet/dao/IcHouseDao.java | 26 +++----- .../epmet/model/ImportHouseInfoListener.java | 62 +++++++++++-------- .../com/epmet/service/IcHouseService.java | 26 +++----- .../service/impl/IcHouseServiceImpl.java | 30 ++++----- .../main/resources/mapper/IcBuildingDao.xml | 7 ++- .../src/main/resources/mapper/IcHouseDao.xml | 44 +++++++++++++ 9 files changed, 140 insertions(+), 79 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExistHouseInfoResultDTO.java diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java index 9039cda6ef..fb2490aff2 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java @@ -138,6 +138,8 @@ public class ImportGeneralDTO implements Serializable { private Boolean existStatus = false; + private Boolean addStatus = false; + /** * 楼栋重复状态 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExistHouseInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExistHouseInfoResultDTO.java new file mode 100644 index 0000000000..561925a7c1 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ExistHouseInfoResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/3/25 10:46 + * @DESC + */ +@Data +public class ExistHouseInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -6350975846409029631L; + + private String name; + private String houseId; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 87ee60fcd4..787bf47679 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -22,6 +22,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.result.BaseInfoFamilyBuildingResultDTO; import com.epmet.dto.result.BuildingResultDTO; +import com.epmet.dto.result.ExistHouseInfoResultDTO; import com.epmet.dto.result.UpdateBuildingHouseNumResultDTO; import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.IcBuildingEntity; @@ -161,7 +162,7 @@ public interface IcBuildingDao extends BaseDao { * @author zxc * @date 2022/2/14 5:32 下午 */ - List selectExistHouse(@Param("ids")List ids); + List selectExistHouse(@Param("ids")List ids); /** * Desc: 查询客户下户数为空的 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 28c0014f19..f4b4a2c402 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -1,24 +1,8 @@ -/** - * Copyright 2018 人人开源 https://www.renren.io - *

- * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - *

- * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - *

- * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - package com.epmet.dao; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.NeighborHoodManageDelResultDTO; import com.epmet.entity.IcHouseEntity; @@ -100,4 +84,12 @@ public interface IcHouseDao extends BaseDao { */ List selectHouseNames(@Param("ids")List ids); + /** + * Desc: 批量更新房屋信息 + * @param houses + * @author zxc + * @date 2022/3/25 10:22 + */ + void houseUpdate(@Param("houses") List houses); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index 60b609752c..b837534082 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -15,6 +15,7 @@ import com.epmet.dao.IcBuildingDao; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.ImportInfoFormDTO; import com.epmet.dto.form.ImportTaskCommonFormDTO; +import com.epmet.dto.result.ExistHouseInfoResultDTO; import com.epmet.dto.result.ImportResultDTO; import com.epmet.dto.result.UpdateBuildingHouseNumResultDTO; import com.epmet.entity.IcHouseEntity; @@ -48,6 +49,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); + List needUpdateList = new ArrayList<>(); String gridName = null; String agencyName = null; @@ -125,21 +127,6 @@ public class ImportHouseInfoListener extends AnalysisEventListener ids = needInsertList.stream().filter(n -> StringUtils.isNotBlank(n.getBuildingUnitId())).map(m -> m.getBuildingUnitId() + "_" + m.getDoorName()).distinct().collect(Collectors.toList()); + List existHouses = icBuildingDao.selectExistHouse(ids); Map collect = needInsertList.stream().collect(Collectors.groupingBy(n -> n.getBuildingUnitId() + "_" + n.getDoorName(), Collectors.counting())); collect.forEach((k,v) -> { - if (Integer.valueOf(v.toString()).compareTo(1) > 0){ + if (Integer.valueOf(v.toString()).compareTo(1) != 0){ for (ImportGeneralDTO r : needInsertList) { if (k.equals(r.getBuildingUnitId()+"_"+r.getDoorName())){ // 集合里重复的 - nums.add(r.getNum()); + /*nums.add(r.getNum()); disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); - r.setExistStatus(true); + r.setExistStatus(true);*/ + if (!r.getAddStatus()){ + for (ExistHouseInfoResultDTO existHouse : existHouses) { + if (existHouse.getName().equals(r.getBuildingUnitId()+"_"+r.getDoorName())){ + r.setHouseId(existHouse.getHouseId()); + break; + } + } + needUpdateList.add(r); + r.setAddStatus(true); + r.setExistStatus(true); + } } } } }); - // 根据单元ID_doorName查询已存在的 - List ids = needInsertList.stream().filter(n -> StringUtils.isNotBlank(n.getBuildingUnitId())).map(m -> m.getBuildingUnitId() + "_" + m.getDoorName()).distinct().collect(Collectors.toList()); - List existHouses = icBuildingDao.selectExistHouse(ids); existHouses.forEach(e -> { for (ImportGeneralDTO n : needInsertList) { - if ((n.getBuildingUnitId()+"_"+n.getDoorName()).equals(e)){ + if ((n.getBuildingUnitId()+"_"+n.getDoorName()).equals(e.getName())){ // 库里存在的 - nums.add(n.getNum()); - disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); - n.setExistStatus(true); +// nums.add(n.getNum()); +// disposeErrorMsg(info,ImportErrorMsgConstants.EXIST_ERROR); +// n.setExistStatus(true); + if (!n.getAddStatus()){ + n.setHouseId(e.getHouseId()); + needUpdateList.add(n); + n.setAddStatus(true); + n.setExistStatus(true); + } } } }); @@ -238,6 +242,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener> groupByExistStatus = needInsertList.stream().collect(Collectors.groupingBy(ImportGeneralDTO::getExistStatus)); List importGeneralDTOS = groupByExistStatus.get(false); houseInsert(importGeneralDTOS); + houseUpdate(needUpdateList); // 清除 needDisposeList = new ArrayList<>(); needInsertList = new ArrayList<>(); @@ -576,4 +581,11 @@ public class ImportHouseInfoListener extends AnalysisEventListener houses){ + if (!CollectionUtils.isEmpty(houses)){ + icHouseService.houseUpdate(houses); + } + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java index 66f02d80fa..e2110550bf 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java @@ -1,20 +1,3 @@ -/** - * Copyright 2018 人人开源 https://www.renren.io - *

- * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - *

- * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - *

- * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; @@ -22,6 +5,7 @@ import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.IcHouseDTO; +import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.entity.IcHouseEntity; @@ -124,4 +108,12 @@ public interface IcHouseService extends BaseService { */ List getHouseList(TokenDto tokenDto, HouseFormDTO formDTO); + /** + * Desc: 批量更新房屋信息 + * @param houses + * @author zxc + * @date 2022/3/25 10:22 + */ + void houseUpdate(List houses); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index 0835d6604e..0e32dbef1e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java @@ -1,20 +1,3 @@ -/** - * Copyright 2018 人人开源 https://www.renren.io - *

- * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - *

- * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - *

- * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -33,6 +16,7 @@ import com.epmet.dao.IcHouseDao; import com.epmet.dto.IcHouseDTO; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.result.HouseListResultDTO; import com.epmet.entity.IcHouseEntity; @@ -235,4 +219,16 @@ public class IcHouseServiceImpl extends BaseServiceImpl houses) { + baseDao.houseUpdate(houses); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index c2482d86af..190f93904a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -335,8 +335,11 @@ - + SELECT + CONCAT(BUILDING_UNIT_ID,'_',DOOR_NAME) AS name, + ID AS houseId + FROM ic_house WHERE DEL_FLAG = '0' AND CONCAT(BUILDING_UNIT_ID,'_',DOOR_NAME) IN ( diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 4a53158d3e..b8f3bfef66 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -26,6 +26,50 @@ + + + UPDATE ic_house + + + + when id = #{h.houseId} then #{h.houseType} + + + + + when id = #{h.houseId} then #{h.purpose} + + + + + when id = #{h.houseId} then #{h.rentFlag} + + + + + when id = #{h.houseId} then #{h.ownerName} + + + + + when id = #{h.houseId} then #{h.ownerPhone} + + + + + when id = #{h.houseId} then #{h.ownerIdCard} + + + UPDATED_TIME = NOW() + + WHERE DEL_FLAG = '0' + AND ID IN ( + + #{h.houseId} + + ) + + IFNULL(cg.longitude,ca.longitude) longitude, - IFNULL(cg.latitude,ca.latitude) latitude + IFNULL(cg.latitude,ca.latitude) latitude, + ca.organization_name FROM customer_grid cg - INNER JOIN customer_agency ca ON ca.pid = '0' AND ca.customer_id = cg.customer_id + INNER JOIN customer_agency ca ON (ca.ID = cg.PID AND ca.customer_id = cg.customer_id) WHERE cg.del_flag = '0' AND ca.del_flag = '0' From e7dbb236b8134077ce38178f72d1c23a02afcc92 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 25 Mar 2022 15:15:45 +0800 Subject: [PATCH 158/160] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=88=B7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/model/ImportHouseInfoListener.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index b837534082..f69987a7b6 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -531,13 +531,16 @@ public class ImportHouseInfoListener extends AnalysisEventListener list = icBuildingDao.selectHouseTotalIsNull(formDTO.getCustomerId()); + /** + * 2022-03-25 又根据要求,注释更新ic_building户数 + */ + /*List list = icBuildingDao.selectHouseTotalIsNull(formDTO.getCustomerId()); if (!CollectionUtils.isEmpty(list)){ List houseNum = icBuildingDao.selectHouseNum(list); if (!CollectionUtils.isEmpty(houseNum)){ icBuildingDao.allUpdateHouseNum(houseNum); } - } + }*/ // 删除缓存 icHouseRedis.delTemporaryCacheGrids(formDTO.getCustomerId(), formDTO.getUserId()); icHouseRedis.delTemporaryCacheNeighBorHood(formDTO.getCustomerId(), formDTO.getUserId()); From f8d9e871fbb7c38b5910c3ec43f8e16398893d1b Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 15:17:13 +0800 Subject: [PATCH 159/160] =?UTF-8?q?grid=E7=BC=93=E5=AD=98=E4=B8=8D?= =?UTF-8?q?=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/CustomerGridDao.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index bfbf419b42..1008b61af9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -756,8 +756,7 @@ cg.mobile, IFNULL(cg.longitude,ca.longitude) longitude, - IFNULL(cg.latitude,ca.latitude) latitude, - ca.organization_name + IFNULL(cg.latitude,ca.latitude) latitude FROM customer_grid cg INNER JOIN customer_agency ca ON (ca.ID = cg.PID AND ca.customer_id = cg.customer_id) From ca40bfca12ad2648c27cc53a7ec66635ab466d5a Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 25 Mar 2022 15:24:54 +0800 Subject: [PATCH 160/160] =?UTF-8?q?grid=E7=BC=93=E5=AD=98=E4=B8=8D?= =?UTF-8?q?=E5=AF=B9=E6=B7=BB=E5=8A=A0=E7=BB=84=E7=BB=87=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/CustomerGridDao.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml index 1008b61af9..a40150167b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml @@ -756,7 +756,8 @@ cg.mobile, IFNULL(cg.longitude,ca.longitude) longitude, - IFNULL(cg.latitude,ca.latitude) latitude + IFNULL(cg.latitude,ca.latitude) latitude, + ca.ORGANIZATION_NAME agencyName FROM customer_grid cg INNER JOIN customer_agency ca ON (ca.ID = cg.PID AND ca.customer_id = cg.customer_id)