Browse Source

Merge branch 'dev_memo' into dev

master
zhaoqifeng 3 years ago
parent
commit
150593ae62
  1. 34
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MemosToRemindFormDTO.java
  2. 42
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MemosToRemindResultDTO.java
  3. 23
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/DelPartyServiceCenterResultDTO.java
  4. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPartyServiceCenterController.java
  5. 27
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPartyServiceCenterDao.java
  6. 52
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPartyServiceCenterServiceImpl.java
  7. 49
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml
  8. 115
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java
  9. 80
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttrDTO.java
  10. 120
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java
  11. 91
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java
  12. 89
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java
  13. 79
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java
  14. 29
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java
  15. 34
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyDetailFromDTO.java
  16. 47
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoDifficultyFormDTO.java
  17. 25
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoWorkDiaryFormDTO.java
  18. 12
      epmet-module/gov-project/gov-project-server/pom.xml
  19. 12
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/MemoConstant.java
  20. 72
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttachmentController.java
  21. 106
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java
  22. 198
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java
  23. 183
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java
  24. 175
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java
  25. 16
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttachmentDao.java
  26. 32
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java
  27. 28
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java
  28. 30
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java
  29. 30
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java
  30. 78
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java
  31. 52
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java
  32. 73
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoConcernEntity.java
  33. 52
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java
  34. 38
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java
  35. 98
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java
  36. 98
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java
  37. 78
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java
  38. 88
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java
  39. 78
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoWorkDiaryService.java
  40. 123
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java
  41. 125
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java
  42. 157
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java
  43. 161
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java
  44. 156
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java
  45. 86
      epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.21__create_memo_table.sql
  46. 8
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml
  47. 96
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml
  48. 53
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml
  49. 58
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml
  50. 37
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml
  51. BIN
      epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx
  52. BIN
      epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx
  53. BIN
      epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx

34
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;
}

42
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;
}

23
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;
}

2
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");

27
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<IcPartyServiceCenterEnt
List<AllMattersResultDTO> getAllMattersByOrgId(@Param("matterIds")List<String> matterIds);
/**
* Desc: 根据党群服务中心查询可预约事项ID
* @param centerIds
* @author zxc
* @date 2022/3/15 9:33 上午
*/
List<String> selectMatterByIds(@Param("centerIds")List<String> centerIds);
/**
* Desc: 根据事项ID查询预约记录
* @param matterIds
* @author zxc
* @date 2022/3/15 9:46 上午
*/
List<DelPartyServiceCenterResultDTO> selectAppointmentList(@Param("matterIds")List<String> matterIds);
/**
* Desc: 删除可预约事项
* @param centerIds
* @author zxc
* @date 2022/3/15 1:37 下午
*/
void delMatters(@Param("centerIds")List<String> centerIds);
}

52
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,54 @@ public class IcPartyServiceCenterServiceImpl extends BaseServiceImpl<IcPartyServ
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
List<String> centerIds = Arrays.asList(ids);
List<String> matterIds = baseDao.selectMatterByIds(centerIds);
if (CollectionUtils.isEmpty(matterIds)){
baseDao.deleteBatchIds(centerIds);
}else {
List<DelPartyServiceCenterResultDTO> appointmentList = baseDao.selectAppointmentList(matterIds);
if (CollectionUtils.isEmpty(appointmentList)){
baseDao.deleteBatchIds(centerIds);
baseDao.delMatters(centerIds);
}else {
List<String> names = new ArrayList<>();
Map<String, List<DelPartyServiceCenterResultDTO>> 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("、")) + "存在未来时间的预约事项,不允许删除");
throw new EpmetException(EpmetErrorCode.MATTER_EXISTS_APPOINTMENT_ERROR.getCode());
}
baseDao.deleteBatchIds(centerIds);
baseDao.delMatters(centerIds);
}
}
}
public boolean getMatterAppointmentList(List<DelPartyServiceCenterResultDTO> 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<String> 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();
}
/**

49
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPartyServiceCenterDao.xml

@ -118,4 +118,53 @@
</foreach>
)
</select>
<!-- 根据党群服务中心查询可预约事项ID -->
<select id="selectMatterByIds" resultType="java.lang.String">
SELECT
ID
FROM ic_party_service_center_matter
WHERE DEL_FLAG = 0
AND PARTY_SERVICE_CENTER_ID IN (
<foreach collection="centerIds" item="centerId" separator=",">
#{centerId}
</foreach>
)
</select>
<!-- 根据事项ID查询预约记录 -->
<select id="selectAppointmentList" resultType="com.epmet.dto.result.DelPartyServiceCenterResultDTO">
SELECT
r.APPOINTMENT_DATE AS date,
r.MATTER_ID AS matterId,
r.TIME_ID AS timeId,
m.START_TIME AS startTime,
m.END_TIME AS endTime,
c.CENTER_NAME
FROM ic_matter_appointment_record r
INNER JOIN ic_party_service_center_matter m ON (m.ID = r.MATTER_ID AND m.DEL_FLAG = 0)
INNER JOIN ic_party_service_center c ON (c.id = m.PARTY_SERVICE_CENTER_ID AND c.DEL_FLAG = 0)
WHERE r.DEL_FLAG = 0
AND r.`STATUS` = 'appointing'
AND STR_TO_DATE(r.APPOINTMENT_DATE,'%Y-%m-%d') >= DATE_FORMAT(NOW(),'%Y-%m-%d')
AND r.MATTER_ID IN (
<foreach collection="matterIds" item="matterId" separator=",">
#{matterId}
</foreach>
)
</select>
<!-- 删除可预约事项 -->
<update id="delMatters">
UPDATE ic_party_service_center_matter
SET del_flag = 1,
UPDATED_TIME = NOW()
WHERE DEL_FLAG = 0
AND PARTY_SERVICE_CENTER_ID IN (
<foreach collection="centerIds" item="centerId" separator=",">
#{centerId}
</foreach>
)
</update>
</mapper>

115
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoAttachmentDTO.java

@ -0,0 +1,115 @@
package com.epmet.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
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;
/**
* 主键
*/
@JsonIgnore
private String id;
/**
* 客户ID
*/
@JsonIgnore
private String customerId;
/**
* REMIND_MSG.ID 业务(工作日志难点堵点人员关怀)表Id
*/
@JsonIgnore
private String remindMsgId;
/**
* 文件名
*/
private String fileName;
/**
* 附件名uuid随机生成
*/
private String attachmentName;
/**
* 文件大小单位b
*/
private Integer attachmentSize;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
/**
* 附件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 语音或视频时长,
*/
private Integer duration;
/**
* 排序字段
*/
@JsonIgnore
private Integer sort;
/**
* 删除标记 0未删除1已删除
*/
@JsonIgnore
private String delFlag;
/**
* 乐观锁
*/
@JsonIgnore
private Integer revision;
/**
* 创建人
*/
@JsonIgnore
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
@JsonIgnore
private String updatedBy;
/**
* 更新时间
*/
@JsonIgnore
private Date updatedTime;
}

80
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;
}

120
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java

@ -0,0 +1,120 @@
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;
/**
* 备忘录-人文关怀
*
* @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)
*/
@NotBlank(message = "ID不能为空", groups = { UpdateGroup.class })
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 关怀类型
*/
private String concernType;
/**
* 关怀对象
*/
@NotBlank(message = "关怀人员不能为空", groups = { AddGroup.class, UpdateGroup.class })
private String resiName;
/**
* 关怀对象电话
*/
private String phone;
/**
* 关怀对象地址
*/
private String address;
/**
* 关怀事项
*/
@NotBlank(message = "关怀事项不能为空", groups = { AddGroup.class, UpdateGroup.class })
private String content;
/**
* 预计关怀时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date scheduledTime;
/**
* 实际执行时间(预留字段)
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date actualTime;
/**
* 状态 0未完成 1已完成
*/
private Integer status;
/**
* 提醒时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date remindTime;
/**
* 删除标识0.未删除 1.已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 操作人
*/
private String createdBy;
/**
* 创建时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 附件
*/
private List<MemoAttachmentDTO> attachmentList;
}

91
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoDifficultyDTO.java

@ -0,0 +1,91 @@
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;
/**
* 备忘录-难点读点
*
* @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;
/**
* 预计处理时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date scheduledTime;
/**
* 提醒时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date remindTime;
/**
* 删除标识0.未删除 1.已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
private List<MemoAttachmentDTO> attachmentList;
}

89
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoWorkDiaryDTO.java

@ -0,0 +1,89 @@
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;
/**
* 备忘录-工作日志
*
* @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)
*/
@NotBlank(message = "ID不能为空", groups = { UpdateGroup.class })
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 工作事项
*/
private String workType;
/**
* 内容
*/
@NotBlank(message = "内容不能为空", groups = { AddGroup.class, UpdateGroup.class })
private String content;
/**
* 提醒时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date remindTime;
/**
* 删除标识0.未删除 1.已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
/**
* 附件
*/
private List<MemoAttachmentDTO> attachmentList;
}

79
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/AddMemoDifficultyFromDTO.java

@ -0,0 +1,79 @@
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 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;
/**
* 解决方式
*/
@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;
/**
* 提醒时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date remindTime;
/**
* 创建时间
*/
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date createdTime;
/**
* 附件集合
*/
private List<MemoAttachmentDTO> attachmentList;
//token中客户ID
private String customerId;
//token中用户Id
private String userId;
}

29
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;
}

34
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;
}

47
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;
/**
* 起始创建时间Y-%m-%d
*/
@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;
}

25
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;
}

12
epmet-module/gov-project/gov-project-server/pom.xml

@ -148,6 +148,18 @@
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<resources>

12
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";
}

72
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<PageData<MemoAttachmentDTO>> page(@RequestParam Map<String, Object> params){
PageData<MemoAttachmentDTO> page = memoAttachmentService.page(params);
return new Result<PageData<MemoAttachmentDTO>>().ok(page);
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<MemoAttachmentDTO> get(@PathVariable("id") String id){
MemoAttachmentDTO data = memoAttachmentService.get(id);
return new Result<MemoAttachmentDTO>().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();
}
}

106
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoAttrController.java

@ -0,0 +1,106 @@
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;
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.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;
/**
* 备忘录-属性表
*
* @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<PageData<MemoAttrDTO>> page(@RequestParam Map<String, Object> params) {
PageData<MemoAttrDTO> page = memoAttrService.page(params);
return new Result<PageData<MemoAttrDTO>>().ok(page);
}
@RequestMapping(value = "{id}", method = {RequestMethod.POST, RequestMethod.GET})
public Result<MemoAttrDTO> get(@PathVariable("id") String id) {
MemoAttrDTO data = memoAttrService.get(id);
return new Result<MemoAttrDTO>().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();
}
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
@PostMapping("memosToRemind")
public Result<List<MemosToRemindResultDTO>> memosToRemind(@LoginUser TokenDto tokenDTO, @RequestBody MemosToRemindFormDTO formDTO) {
formDTO.setUserId(tokenDTO.getUserId());
return new Result<List<MemosToRemindResultDTO>>().ok(memoAttrService.memosToRemind(formDTO));
}
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
@PostMapping("memoTime")
public Result<List<String>> memoTime(@LoginUser TokenDto tokenDTO) {
return new Result<List<String>>().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();
}
}

198
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java

@ -0,0 +1,198 @@
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.exception.ExceptionUtils;
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;
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.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;
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.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
/**
* 备忘录-人文关怀
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Slf4j
@RestController
@RequestMapping("memoConcern")
public class MemoConcernController {
@Autowired
private MemoConcernService memoConcernService;
@RequestMapping("page")
public Result<PageData<MemoConcernDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
PageData<MemoConcernDTO> page = memoConcernService.page(formDTO);
return new Result<PageData<MemoConcernDTO>>().ok(page);
}
@RequestMapping(method = {RequestMethod.POST,RequestMethod.GET})
public Result<MemoConcernDTO> get(@RequestBody MemoConcernFormDTO formDTO){
MemoConcernDTO data = memoConcernService.get(formDTO);
return new Result<MemoConcernDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
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(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
memoConcernService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
memoConcernService.delete(ids);
return new Result();
}
@PostMapping("/{id}/exportWord")
public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception {
String templateFilePath = loadTemplate("memo_concern_export_template.docx");
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 + "的关怀项目", "未找到该关怀项目");
}
Map<String, Object> 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", new Integer(0).equals(data.getStatus()) ? "未完成" : "已完成");
XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map);
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");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("人员关怀详情", "UTF-8") + suffix);
ServletOutputStream fos = null;
try {
fos = response.getOutputStream();
doc.write(fos);
} finally {
if (fos != null) {
fos.close();
}
}
}
/**
* 加载模板
* @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.createDirectories(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;
}
}

183
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoDifficultyController.java

@ -0,0 +1,183 @@
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.exception.ExceptionUtils;
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;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.MemoDifficultyDTO;
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;
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.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
/**
* 备忘录-难点读点
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Slf4j
@RestController
@RequestMapping("memoDifficulty")
public class MemoDifficultyController {
@Autowired
private MemoDifficultyService memoDifficultyService;
@RequestMapping("page")
public Result<PageData<MemoDifficultyDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody MemoDifficultyFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
PageData<MemoDifficultyDTO> page = memoDifficultyService.page(formDTO);
return new Result<PageData<MemoDifficultyDTO>>().ok(page);
}
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET})
public Result<MemoDifficultyDTO> get(@PathVariable("id") String id){
MemoDifficultyDTO data = memoDifficultyService.get(id);
return new Result<MemoDifficultyDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
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(@LoginUser TokenDto tokenDTO, @RequestBody AddMemoDifficultyFromDTO dto){
dto.setCustomerId(tokenDTO.getCustomerId());
memoDifficultyService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
memoDifficultyService.delete(ids);
return new Result();
}
@PostMapping("detail")
public Result<AddMemoDifficultyFromDTO> detail(@RequestBody MemoDifficultyDetailFromDTO fromDTO){
ValidatorUtils.validateEntity(fromDTO, MemoDifficultyDetailFromDTO.Detail.class);
return new Result<AddMemoDifficultyFromDTO>().ok(memoDifficultyService.detail(fromDTO));
}
@PostMapping("/{id}/exportWord")
public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception {
String templateFilePath = loadTemplate("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<String, Object> 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(templateFilePath, map);
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");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("难点堵点详情", "UTF-8") + suffix);
ServletOutputStream fos = null;
try {
fos = response.getOutputStream();
doc.write(fos);
} finally {
if (fos != null) {
fos.close();
}
}
}
/**
* 加载模板
* @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.createDirectories(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;
}
}

175
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoWorkDiaryController.java

@ -0,0 +1,175 @@
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.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.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.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;
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.net.URLEncoder;
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;
/**
* 备忘录-工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Slf4j
@RestController
@RequestMapping("memoWorkDiary")
public class MemoWorkDiaryController {
@Autowired
private MemoWorkDiaryService memoWorkDiaryService;
@RequestMapping("page")
public Result<PageData<MemoWorkDiaryDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody MemoWorkDiaryFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
PageData<MemoWorkDiaryDTO> page = memoWorkDiaryService.page(formDTO);
return new Result<PageData<MemoWorkDiaryDTO>>().ok(page);
}
@RequestMapping(method = {RequestMethod.POST,RequestMethod.GET})
public Result<MemoWorkDiaryDTO> get(@RequestBody MemoWorkDiaryFormDTO formDTO){
MemoWorkDiaryDTO data = memoWorkDiaryService.get(formDTO);
return new Result<MemoWorkDiaryDTO>().ok(data);
}
@NoRepeatSubmit
@PostMapping("save")
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(@LoginUser TokenDto tokenDto, @RequestBody MemoWorkDiaryDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
memoWorkDiaryService.update(dto);
return new Result();
}
@PostMapping("delete")
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
memoWorkDiaryService.delete(ids);
return new Result();
}
@PostMapping("/{id}/exportWord")
public void exportWord(@PathVariable("id") String id, HttpServletResponse response) throws Exception {
String templateFilePath = loadTemplate("memo_work_diary_export_template.docx");
MemoWorkDiaryFormDTO form = new MemoWorkDiaryFormDTO();
form.setId(id);
MemoWorkDiaryDTO data = memoWorkDiaryService.get(form);
Map<String, Object> map = BeanUtil.beanToMap(data);
String createTimeStr = DateUtils.format(data.getCreatedTime(), "yyyy年MM月dd日 HH:mm");
map.put("createTime", createTimeStr);
XWPFDocument doc = WordExportUtil.exportWord07(templateFilePath, map);
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");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;fileName=" + URLEncoder.encode("工作日志详情", "UTF-8") + suffix);
ServletOutputStream fos = null;
try {
fos = response.getOutputStream();
doc.write(fos);
} finally {
if (fos != null) {
fos.close();
}
}
}
/**
* 加载模板
* @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.createDirectories(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;
}
}

16
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<MemoAttachmentEntity> {
}

32
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoAttrDao.java

@ -0,0 +1,32 @@
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;
/**
* 备忘录-属性表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Mapper
public interface MemoAttrDao extends BaseDao<MemoAttrEntity> {
/**
* @Author sun
* @Description 查询提醒内容列表有时间的按时间查询没有的查询当前日期之前的数据
**/
List<MemosToRemindResultDTO> memosToRemind(@Param("remindTime") String remindTime, @Param("userId") String userId);
/**
* @Author sun
* @Description 查询某个人当前日期之后当日0点之前待提醒时间节点列表
**/
List<String> memoTime(@Param("userId") String userId);
}

28
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java

@ -0,0 +1,28 @@
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;
/**
* 备忘录-人文关怀
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Mapper
public interface MemoConcernDao extends BaseDao<MemoConcernEntity> {
/**
* 查询列表
*
* @Param formDTO
* @Return {@link List < MemoConcernDTO>}
* @Author zhaoqifeng
* @Date 2022/3/15 15:31
*/
List<MemoConcernDTO> getPage(MemoConcernFormDTO formDTO);
}

30
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoDifficultyDao.java

@ -0,0 +1,30 @@
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;
/**
* 备忘录-难点读点
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Mapper
public interface MemoDifficultyDao extends BaseDao<MemoDifficultyEntity> {
/**
* 难点堵点查询列表
* @Author sun
*/
List<MemoDifficultyDTO> getPage(MemoDifficultyFormDTO formDTO);
AddMemoDifficultyFromDTO selectByDifficutyId(@Param("id") String id);
}

30
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoWorkDiaryDao.java

@ -0,0 +1,30 @@
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;
/**
* 备忘录-工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Mapper
public interface MemoWorkDiaryDao extends BaseDao<MemoWorkDiaryEntity> {
/**
* 查询列表
*
* @Param formDTO
* @Return {@link List< MemoWorkDiaryDTO>}
* @Author zhaoqifeng
* @Date 2022/3/15 15:31
*/
List<MemoWorkDiaryDTO> getPage(MemoWorkDiaryFormDTO formDTO);
}

78
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttachmentEntity.java

@ -0,0 +1,78 @@
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;
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 业务(工作日志难点堵点人员关怀)表Id
*/
private String remindMsgId;
/**
* 文件名
*/
private String fileName;
/**
* 附件名uuid随机生成
*/
private String attachmentName;
/**
* 文件大小单位b
*/
private Integer attachmentSize;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
/**
* 附件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 语音或视频时长,
*/
private Integer duration;
/**
* 排序字段
*/
private Integer sort;
/**
* 物理删除
*/
@TableField(fill = FieldFill.INSERT)
private String delFlag;
}

52
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoAttrEntity.java

@ -0,0 +1,52 @@
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;
/**
* 备忘录-属性表
*
* @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;
/**
* 提醒时间
*/
@TableField(value="REMIND_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP)
private Date remindTime;
/**
* 业务类型 人员关怀concern难点堵点difficulty工作日志work_diary
*/
private String type;
/**
* 阅读标记1 已读0未读
*/
private Integer readFlag;
/**
* 接收人ID
*/
private String receiver;
}

73
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.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;
/**
* 备忘录-人文关怀
*
* @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 phone;
/**
* 关怀对象地址
*/
private String address;
/**
* 关怀事项
*/
private String content;
/**
* 预计关怀时间
*/
@TableField(value="SCHEDULED_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP)
private Date scheduledTime;
/**
* 实际执行时间(预留字段)
*/
@TableField(value="ACTUAL_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP)
private Date actualTime;
/**
* 状态 0未完成 1已完成
*/
private Integer status;
}

52
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoDifficultyEntity.java

@ -0,0 +1,52 @@
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;
/**
* 备忘录-难点读点
*
* @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;
/**
* 预计处理时间
*/
@TableField(value="SCHEDULED_TIME",updateStrategy = FieldStrategy.IGNORED,jdbcType = JdbcType.TIMESTAMP)
private Date scheduledTime;
}

38
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/MemoWorkDiaryEntity.java

@ -0,0 +1,38 @@
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;
}

98
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttachmentService.java

@ -0,0 +1,98 @@
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<MemoAttachmentEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<MemoAttachmentDTO>
* @author generator
* @date 2022-03-15
*/
PageData<MemoAttachmentDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<MemoAttachmentDTO>
* @author generator
* @date 2022-03-15
*/
List<MemoAttachmentDTO> list(Map<String, Object> 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);
/**
* 根据备忘录ID查询附件
*
* @Param memoId
* @Return {@link List< MemoAttachmentDTO>}
* @Author zhaoqifeng
* @Date 2022/3/15 15:56
*/
List<MemoAttachmentDTO> getListByMemoId(String memoId);
/**
* 根据备忘录ID删除附件
*
* @Param memoId
* @Return
* @Author zhaoqifeng
* @Date 2022/3/15 15:57
*/
void deleteByMemoId(String memoId);
}

98
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoAttrService.java

@ -0,0 +1,98 @@
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;
import java.util.Map;
/**
* 备忘录-属性表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
public interface MemoAttrService extends BaseService<MemoAttrEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<MemoAttrDTO>
* @author generator
* @date 2022-03-15
*/
PageData<MemoAttrDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<MemoAttrDTO>
* @author generator
* @date 2022-03-15
*/
List<MemoAttrDTO> list(Map<String, Object> 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);
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
List<MemosToRemindResultDTO> memosToRemind(MemosToRemindFormDTO formDTO);
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
List<String> memoTime(String userId);
/**
* @Author sun
* @Description 书记日志-提醒列表-我知道了
**/
void setReaded(String memoId);
}

78
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.dto.form.MemoConcernFormDTO;
import com.epmet.entity.MemoConcernEntity;
import java.util.List;
/**
* 备忘录-人文关怀
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
public interface MemoConcernService extends BaseService<MemoConcernEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<MemoConcernDTO>
* @author generator
* @date 2022-03-15
*/
PageData<MemoConcernDTO> page(MemoConcernFormDTO formDTO);
/**
* 默认查询
*
* @param params
* @return java.util.List<MemoConcernDTO>
* @author generator
* @date 2022-03-15
*/
List<MemoConcernDTO> list(MemoConcernFormDTO formDTO);
/**
* 单条查询
*
* @param id
* @return MemoConcernDTO
* @author generator
* @date 2022-03-15
*/
MemoConcernDTO get(MemoConcernFormDTO formDTO);
/**
* 默认保存
*
* @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);
}

88
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoDifficultyService.java

@ -0,0 +1,88 @@
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.dto.form.MemoDifficultyFormDTO;
import com.epmet.dto.form.MemoDifficultyDetailFromDTO;
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<MemoDifficultyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<MemoDifficultyDTO>
* @author generator
* @date 2022-03-15
*/
PageData<MemoDifficultyDTO> page(MemoDifficultyFormDTO formDTO);
/**
* 默认查询
*
* @param params
* @return java.util.List<MemoDifficultyDTO>
* @author generator
* @date 2022-03-15
*/
List<MemoDifficultyDTO> list(Map<String, Object> 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(AddMemoDifficultyFromDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-03-15
*/
void update(AddMemoDifficultyFromDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-03-15
*/
void delete(String[] ids);
/**
* 详情接口
* @author generator
* @date 2022-03-15
*/
AddMemoDifficultyFromDTO detail(MemoDifficultyDetailFromDTO fromDTO);
}

78
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.dto.form.MemoWorkDiaryFormDTO;
import com.epmet.entity.MemoWorkDiaryEntity;
import java.util.List;
/**
* 备忘录-工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
public interface MemoWorkDiaryService extends BaseService<MemoWorkDiaryEntity> {
/**
* 默认分页
*
* @param formDTO
* @return PageData<MemoWorkDiaryDTO>
* @author generator
* @date 2022-03-15
*/
PageData<MemoWorkDiaryDTO> page(MemoWorkDiaryFormDTO formDTO);
/**
* 默认查询
*
* @param formDTO
* @return java.util.List<MemoWorkDiaryDTO>
* @author generator
* @date 2022-03-15
*/
List<MemoWorkDiaryDTO> list(MemoWorkDiaryFormDTO formDTO);
/**
* 单条查询
*
* @param formDTO
* @return MemoWorkDiaryDTO
* @author generator
* @date 2022-03-15
*/
MemoWorkDiaryDTO get(MemoWorkDiaryFormDTO formDTO);
/**
* 默认保存
*
* @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);
}

123
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttachmentServiceImpl.java

@ -0,0 +1,123 @@
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;
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.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;
/**
* 备忘录-附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Service
public class MemoAttachmentServiceImpl extends BaseServiceImpl<MemoAttachmentDao, MemoAttachmentEntity> implements MemoAttachmentService {
@Override
public PageData<MemoAttachmentDTO> page(Map<String, Object> params) {
IPage<MemoAttachmentEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, MemoAttachmentDTO.class);
}
@Override
public List<MemoAttachmentDTO> list(Map<String, Object> params) {
List<MemoAttachmentEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, MemoAttachmentDTO.class);
}
private QueryWrapper<MemoAttachmentEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<MemoAttachmentEntity> 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));
}
/**
* 根据备忘录ID查询附件
*
* @param memoId
* @Param memoId
* @Return {@link List< MemoAttachmentDTO>}
* @Author zhaoqifeng
* @Date 2022/3/15 15:56
*/
@Override
public List<MemoAttachmentDTO> getListByMemoId(String memoId) {
LambdaQueryWrapper<MemoAttachmentEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MemoAttachmentEntity::getRemindMsgId, memoId);
wrapper.orderByAsc(MemoAttachmentEntity::getSort);
List<MemoAttachmentEntity> 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<MemoAttachmentEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MemoAttachmentEntity::getRemindMsgId, memoId);
baseDao.delete(wrapper);
}
}

125
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoAttrServiceImpl.java

@ -0,0 +1,125 @@
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.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;
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
@Slf4j
public class MemoAttrServiceImpl extends BaseServiceImpl<MemoAttrDao, MemoAttrEntity> implements MemoAttrService {
@Override
public PageData<MemoAttrDTO> page(Map<String, Object> params) {
IPage<MemoAttrEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, MemoAttrDTO.class);
}
@Override
public List<MemoAttrDTO> list(Map<String, Object> params) {
List<MemoAttrEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, MemoAttrDTO.class);
}
private QueryWrapper<MemoAttrEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<MemoAttrEntity> 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));
}
/**
* @Author sun
* @Description 书记日志-待提醒弹框-提醒内容列表
**/
@Override
public List<MemosToRemindResultDTO> memosToRemind(MemosToRemindFormDTO formDTO) {
//1.查询提醒内容列表,有时间的按时间查询,没有的查询当前日期之前的数据
List<MemosToRemindResultDTO> resultList = baseDao.memosToRemind(formDTO.getRemindTime(), formDTO.getUserId());
return resultList;
}
/**
* @Author sun
* @Description 书记日志-待提醒时间列表
**/
@Override
public List<String> memoTime(String userId) {
List<String> resultList = baseDao.memoTime(userId);
return resultList;
}
/**
* @Author sun
* @Description 书记日志-提醒列表-我知道了
**/
@Override
public void setReaded(String memoId) {
MemoAttrEntity entity = baseDao.selectById(memoId);
if (null == entity) {
log.warn(String.format("书记日志-提醒列表-修改阅读状态失败,提醒记录不存在,提醒记录Id", memoId));
}
entity.setReadFlag(NumConstant.ONE);
if (baseDao.updateById(entity) < NumConstant.ONE) {
log.warn(String.format("书记日志-提醒列表-修改阅读状态失败,提醒记录Id", memoId));
}
}
}

157
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java

@ -0,0 +1,157 @@
package com.epmet.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.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 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;
/**
* 备忘录-人文关怀
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Service
public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, MemoConcernEntity> implements MemoConcernService {
@Resource
private MemoAttrService memoAttrService;
@Resource
private MemoAttachmentService memoAttachmentService;
@Override
public PageData<MemoConcernDTO> page(MemoConcernFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<MemoConcernDTO> list = baseDao.getPage(formDTO);
PageInfo<MemoConcernDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<MemoConcernDTO> list(MemoConcernFormDTO formDTO) {
List<MemoConcernDTO> list = baseDao.getPage(formDTO);
return list;
}
@Override
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<MemoAttachmentDTO> attachmentList = memoAttachmentService.getListByMemoId(formDTO.getId());
dto.setAttachmentList(attachmentList);
}
//更新阅读状态
if (NumConstant.ONE_STR.equals(formDTO.getReadFlag())) {
MemoAttrDTO memoAttrDTO = memoAttrService.get(formDTO.getId());
memoAttrDTO.setReadFlag(NumConstant.ONE);
memoAttrDTO.setUpdatedTime(null);
memoAttrService.update(memoAttrDTO);
}
return dto;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(MemoConcernDTO dto) {
MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class);
insert(entity);
//保存属性
MemoAttrDTO attr = ConvertUtils.sourceToTarget(dto, MemoAttrDTO.class);
attr.setId(entity.getId());
attr.setType(MemoConstant.CONCERN);
attr.setReadFlag(NumConstant.ZERO);
attr.setReceiver(dto.getCreatedBy());
memoAttrService.save(attr);
//删除原来的附件
memoAttachmentService.deleteByMemoId(entity.getId());
//保存新的照片
if (CollectionUtils.isNotEmpty(dto.getAttachmentList())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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
@Transactional(rollbackFor = Exception.class)
public void update(MemoConcernDTO dto) {
MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class);
updateById(entity);
//时间有变动时保存属性,readFlag变为0
MemoAttrDTO attr = memoAttrService.get(dto.getId());
if (dto.getRemindTime() != attr.getRemindTime()) {
attr.setRemindTime(dto.getRemindTime());
attr.setReadFlag(NumConstant.ZERO);
attr.setUpdatedTime(null);
memoAttrService.update(attr);
}
//删除原来的附件
memoAttachmentService.deleteByMemoId(entity.getId());
//保存新的照片
if (CollectionUtils.isNotEmpty(dto.getAttachmentList())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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<String> list = Arrays.asList(ids);
baseDao.deleteBatchIds(list);
memoAttrService.delete(ids);
list.forEach(id -> {
//删除附件
memoAttachmentService.deleteByMemoId(id);
});
}
}

161
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoDifficultyServiceImpl.java

@ -0,0 +1,161 @@
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;
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;
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 oracle.sql.NUMBER;
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;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* 备忘录-难点读点
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Service
public class MemoDifficultyServiceImpl extends BaseServiceImpl<MemoDifficultyDao, MemoDifficultyEntity> implements MemoDifficultyService {
@Autowired
private MemoAttrService memoAttrService;
@Autowired
private MemoAttachmentService memoAttachmentService;
@Override
public PageData<MemoDifficultyDTO> page(MemoDifficultyFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<MemoDifficultyDTO> list = baseDao.getPage(formDTO);
PageInfo<MemoDifficultyDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<MemoDifficultyDTO> list(Map<String, Object> params) {
List<MemoDifficultyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, MemoDifficultyDTO.class);
}
private QueryWrapper<MemoDifficultyEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<MemoDifficultyEntity> 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(AddMemoDifficultyFromDTO dto) {
//1.新增难点堵点数据
MemoDifficultyEntity entity = ConvertUtils.sourceToTarget(dto, MemoDifficultyEntity.class);
insert(entity);
//2.新增备忘录记录数据
MemoAttrEntity memoAttr = new MemoAttrEntity();
memoAttr.setId(entity.getId());
memoAttr.setCustomerId(dto.getCustomerId());
memoAttr.setRemindTime(dto.getRemindTime());
memoAttr.setType("difficulty");
memoAttr.setReceiver(dto.getUserId());
memoAttrService.insert(memoAttr);
//3.新增难点堵点附件数据
if (CollectionUtils.isNotEmpty(dto.getAttachmentList())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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
@Transactional(rollbackFor = Exception.class)
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())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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.判断更新提醒记录表提醒时间
MemoAttrDTO memoAttr = new MemoAttrDTO();
memoAttr.setId(dto.getId());
memoAttr.setRemindTime(dto.getRemindTime());
memoAttr.setReadFlag(NumConstant.ZERO);
memoAttrService.update(memoAttr);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
baseDao.deleteBatchIds(Arrays.asList(ids));
memoAttrService.delete(ids);
for (String id : ids) {
//物理删除附件
memoAttachmentService.deleteByMemoId(id);
}
}
@Override
public AddMemoDifficultyFromDTO detail(MemoDifficultyDetailFromDTO fromDTO) {
//0.判断已读,则修改已读标记
if (fromDTO.getReadFlag() == NumConstant.ONE) {
memoAttrService.setReaded(fromDTO.getId());
}
//1.查询难点堵点主表数据
AddMemoDifficultyFromDTO resultDTO = baseDao.selectByDifficutyId(fromDTO.getId());
//2.查询对应附件数据
List<MemoAttachmentDTO> attachmentList = memoAttachmentService.getListByMemoId(fromDTO.getId());
resultDTO.setAttachmentList(attachmentList);
return resultDTO;
}
}

156
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoWorkDiaryServiceImpl.java

@ -0,0 +1,156 @@
package com.epmet.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.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;
/**
* 备忘录-工作日志
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-03-15
*/
@Service
public class MemoWorkDiaryServiceImpl extends BaseServiceImpl<MemoWorkDiaryDao, MemoWorkDiaryEntity> implements MemoWorkDiaryService {
@Resource
private MemoAttrService memoAttrService;
@Resource
private MemoAttachmentService memoAttachmentService;
@Override
public PageData<MemoWorkDiaryDTO> page(MemoWorkDiaryFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<MemoWorkDiaryDTO> list = baseDao.getPage(formDTO);
PageInfo<MemoWorkDiaryDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<MemoWorkDiaryDTO> list(MemoWorkDiaryFormDTO formDTO) {
List<MemoWorkDiaryDTO> list = baseDao.getPage(formDTO);
return list;
}
@Override
public MemoWorkDiaryDTO get(MemoWorkDiaryFormDTO formDTO) {
MemoWorkDiaryEntity entity = baseDao.selectById(formDTO.getId());
MemoWorkDiaryDTO dto = ConvertUtils.sourceToTarget(entity, MemoWorkDiaryDTO.class);
if (null != dto) {
//获取提醒时间
MemoAttrDTO memoAttr = memoAttrService.get(formDTO.getId());
if (null != memoAttr) {
dto.setRemindTime(memoAttr.getRemindTime());
}
//获取附件列表
List<MemoAttachmentDTO> attachmentList = memoAttachmentService.getListByMemoId(formDTO.getId());
dto.setAttachmentList(attachmentList);
}
//更新阅读状态
if (NumConstant.ONE_STR.equals(formDTO.getReadFlag())) {
MemoAttrDTO memoAttrDTO = memoAttrService.get(formDTO.getId());
memoAttrDTO.setReadFlag(NumConstant.ONE);
memoAttrDTO.setUpdatedTime(null);
memoAttrService.update(memoAttrDTO);
}
return dto;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(MemoWorkDiaryDTO dto) {
MemoWorkDiaryEntity entity = ConvertUtils.sourceToTarget(dto, MemoWorkDiaryEntity.class);
insert(entity);
//保存属性
MemoAttrDTO attr = ConvertUtils.sourceToTarget(dto, MemoAttrDTO.class);
attr.setId(entity.getId());
attr.setType(MemoConstant.WORK_DIARY);
attr.setReadFlag(NumConstant.ZERO);
attr.setReceiver(dto.getCreatedBy());
memoAttrService.save(attr);
//删除原来的附件
memoAttachmentService.deleteByMemoId(entity.getId());
//保存新的照片
if (CollectionUtils.isNotEmpty(dto.getAttachmentList())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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
@Transactional(rollbackFor = Exception.class)
public void update(MemoWorkDiaryDTO dto) {
MemoWorkDiaryEntity entity = ConvertUtils.sourceToTarget(dto, MemoWorkDiaryEntity.class);
updateById(entity);
//时间有变动时保存属性,readFlag变为0
MemoAttrDTO attr = memoAttrService.get(dto.getId());
if (dto.getRemindTime() != attr.getRemindTime()) {
attr.setRemindTime(dto.getRemindTime());
attr.setReadFlag(NumConstant.ZERO);
attr.setUpdatedTime(null);
memoAttrService.update(attr);
}
//删除原来的附件
memoAttachmentService.deleteByMemoId(entity.getId());
//保存新的照片
if (CollectionUtils.isNotEmpty(dto.getAttachmentList())) {
AtomicInteger i = new AtomicInteger(NumConstant.ZERO);
List<MemoAttachmentEntity> 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 注解)
List<String> list = Arrays.asList(ids);
baseDao.deleteBatchIds(list);
memoAttrService.delete(ids);
list.forEach(id -> {
//删除附件
memoAttachmentService.deleteByMemoId(id);
});
}
}

86
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='备忘录-工作日志';

8
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttachmentDao.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MemoAttachmentDao">
</mapper>

96
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoAttrDao.xml

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MemoAttrDao">
<select id="memosToRemind" resultType="com.epmet.dto.result.MemosToRemindResultDTO">
SELECT a.memoId, a.remindTime, a.type, a.typeName, a.content FROM (
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'人员关怀' typeName,
mc.content content
FROM
memo_attr ma
INNER JOIN memo_concern mc ON ma.type = 'concern' AND ma.id = mc.id
WHERE
ma.del_flag = '0'
AND mc.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
UNION ALL
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'难点堵点' typeName,
md.content content
FROM
memo_attr ma
INNER JOIN memo_difficulty md ON ma.type = 'difficulty' AND ma.id = md.id
WHERE
ma.del_flag = '0'
AND md.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
UNION ALL
SELECT
ma.id memoId,
ma.remind_time remindTime,
ma.type type,
'工作日志' typeName,
mwd.content content
FROM
memo_attr ma
INNER JOIN memo_work_diary mwd ON ma.type = 'work_diary' AND ma.id = mwd.id
WHERE
ma.del_flag = '0'
AND mwd.del_flag = '0'
AND ma.read_flag = '0'
AND ma.receiver = #{userId}
<choose>
<when test='remindTime != "" and remindTime != null'>
AND ma.remind_time = #{remindTime}
</when>
<otherwise>
AND ma.remind_time <![CDATA[<=]]> NOW()
</otherwise>
</choose>
) a ORDER BY a.remindTime ASC
</select>
<select id="memoTime" resultType="java.lang.String">
SELECT DISTINCT
DATE_FORMAT(remind_time, '%Y-%m-%d %H:%i') remindTime
FROM
memo_attr
WHERE
del_flag = '0'
AND receiver = #{userId}
AND remind_time > NOW()
AND remind_time <![CDATA[<]]> CURDATE() + 1
ORDER BY remind_time ASC
</select>
</mapper>

53
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MemoConcernDao">
<select id="getPage" resultType="com.epmet.dto.MemoConcernDTO">
SELECT
a.ID,
a.CONCERN_TYPE,
a.RESI_NAME,
a.PHONE,
a.ADDRESS,
a.CONTENT,
a.SCHEDULED_TIME,
a.ACTUAL_TIME,
a.STATUS,
b.REMIND_TIME,
a.CREATED_TIME
FROM memo_concern a
INNER JOIN memo_attr b ON a.ID = b.ID AND b.DEL_FLAG = '0'
WHERE
a.DEL_FLAG = '0'
AND a.CREATED_BY = #{userId}
<if test='null != content and "" != content'>
AND a.CONTENT LIKE concat('%', #{content}, '%')
</if>
<if test='null != resiName and "" != resiName'>
AND a.RESI_NAME LIKE concat('%', #{resiName}, '%')
</if>
<if test='null != concernType and "" != concernType'>
AND a.CONCERN_TYPE LIKE concat('%', #{concernType}, '%')
</if>
<if test='null != status and "" != status'>
AND a.STATUS = #{status}
</if>
<if test='null != startTime and "" != startTime'>
AND DATE_FORMAT(a.CREATED_TIME, "%Y-%m-%d") &gt;= #{startTime}
</if>
<if test='null != endTime and "" != endTime'>
AND DATE_FORMAT(a.CREATED_TIME, "%Y-%m-%d") &lt;= #{endTime}
</if>
<if test='null != scheduledStartTime and "" != scheduledStartTime'>
AND DATE_FORMAT(a.SCHEDULED_TIME, "%Y-%m-%d") &gt;= #{scheduledStartTime}
</if>
<if test='null != scheduledEndTime and "" != scheduledEndTime'>
AND DATE_FORMAT(a.SCHEDULED_TIME, "%Y-%m-%d") &lt;= #{scheduledEndTime}
</if>
ORDER BY a.CREATED_TIME DESC
</select>
</mapper>

58
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoDifficultyDao.xml

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MemoDifficultyDao">
<select id="getPage" resultType="com.epmet.dto.MemoDifficultyDTO">
SELECT
md.id,
md.customer_id,
md.content,
md.resolve_way,
md.remark,
md.scheduled_time,
md.created_time,
ma.remind_time
FROM
memo_difficulty md
INNER JOIN memo_attr ma ON md.id = ma.id and ma.del_flag = '0'
WHERE
md.del_flag = '0'
AND md.created_by = #{userId}
<if test='null != content and "" != content'>
AND md.content LIKE concat('%', #{content}, '%')
</if>
<if test='null != scheduledStartTime and "" != scheduledStartTime'>
AND DATE_FORMAT(md.scheduled_time, "%Y-%m-%d") &gt;= #{scheduledStartTime}
</if>
<if test='null != scheduledEndTime and "" != scheduledEndTime'>
AND DATE_FORMAT(md.scheduled_time, "%Y-%m-%d") &lt;= #{scheduledEndTime}
</if>
<if test='null != startTime and "" != startTime'>
AND DATE_FORMAT(md.created_time, "%Y-%m-%d") &gt;= #{startTime}
</if>
<if test='null != endTime and "" != endTime'>
AND DATE_FORMAT(md.created_time, "%Y-%m-%d") &lt;= #{endTime}
</if>
ORDER BY md.created_time DESC
</select>
<select id="selectByDifficutyId" resultType="com.epmet.dto.form.AddMemoDifficultyFromDTO">
SELECT
md.id,
md.customer_id,
md.content,
md.resolve_way,
md.remark,
md.scheduled_time,
md.created_time,
ma.remind_time
FROM
memo_difficulty md
INNER JOIN memo_attr ma ON md.id = ma.id and ma.del_flag = '0'
WHERE
md.del_flag = '0'
AND md.id = #{id}
</select>
</mapper>

37
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoWorkDiaryDao.xml

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MemoWorkDiaryDao">
<select id="getPage" resultType="com.epmet.dto.MemoWorkDiaryDTO">
SELECT
a.ID,
a.CUSTOMER_ID,
a.WORK_TYPE,
a.CONTENT,
b.REMIND_TIME,
a.CREATED_TIME
FROM memo_work_diary a
INNER JOIN memo_attr b ON a.ID = b.ID AND b.DEL_FLAG = '0'
WHERE
a.DEL_FLAG = '0'
AND a.CREATED_BY = #{userId}
<if test='null != content and "" != content'>
AND a.CONTENT LIKE concat('%', #{content}, '%')
</if>
<if test='null != workType and "" != workType'>
AND a.WORK_TYPE LIKE concat('%', #{workType}, '%')
</if>
<if test='null != startTime and "" != startTime'>
AND DATE_FORMAT(a.CREATED_TIME, "%Y-%m-%d") &gt;= #{startTime}
</if>
<if test='null != endTime and "" != endTime'>
AND DATE_FORMAT(a.CREATED_TIME, "%Y-%m-%d") &lt;= #{endTime}
</if>
ORDER BY a.CREATED_TIME DESC
</select>
</mapper>

BIN
epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_concern_export_template.docx

Binary file not shown.

BIN
epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_difficulty_export_template.docx

Binary file not shown.

BIN
epmet-module/gov-project/gov-project-server/src/main/resources/templates/memo_work_diary_export_template.docx

Binary file not shown.
Loading…
Cancel
Save