From 0663b09b349ea8bdbd9cef24ca371eddad28bf8e Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 15:10:39 +0800 Subject: [PATCH 1/9] =?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 2/9] =?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 3/9] . --- .../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 4/9] =?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 c40df4938eeb0200dd960d51001f45abe5f43a6a Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:11:59 +0800 Subject: [PATCH 5/9] =?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 1f9dd227e5306ac9d8bd8851a6b382cc5e101175 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:18:09 +0800 Subject: [PATCH 6/9] .. --- .../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 7a3c88a495d9ee89d31d7b4e8d0f6908d5ff58c4 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Mar 2022 16:40:50 +0800 Subject: [PATCH 7/9] .. --- .../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 8/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=201.=E5=A4=87?= =?UTF-8?q?=E5=BF=98=E5=BD=95-=E4=BA=BA=E5=91=98=E5=85=B3=E6=80=80?= =?UTF-8?q?=E3=80=81=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9=E3=80=81=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=97=A5=E5=BF=97=E7=9A=84word=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=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 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 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 9/9] =?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");