Browse Source

人员关怀

dev
zhaoqifeng 3 years ago
parent
commit
4dffdf1ded
  1. 11
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/MemoConcernDTO.java
  2. 29
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/MemoConcernFormDTO.java
  3. 23
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/MemoConcernController.java
  4. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/MemoConcernDao.java
  5. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java
  6. 127
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/MemoConcernServiceImpl.java
  7. 45
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/MemoConcernDao.xml

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

@ -1,9 +1,11 @@
package com.epmet.dto; package com.epmet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -55,11 +57,13 @@ public class MemoConcernDTO implements Serializable {
/** /**
* 计划执行时间 * 计划执行时间
*/ */
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date scheduledTime; private Date scheduledTime;
/** /**
* 实际执行时间 * 实际执行时间
*/ */
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date actualTime; private Date actualTime;
/** /**
@ -70,6 +74,7 @@ public class MemoConcernDTO implements Serializable {
/** /**
* 提醒时间 * 提醒时间
*/ */
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date remindTime; private Date remindTime;
/** /**
@ -90,6 +95,7 @@ public class MemoConcernDTO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern="yyyy-MM-dd HH:mm")
private Date createdTime; private Date createdTime;
/** /**
@ -101,5 +107,8 @@ public class MemoConcernDTO implements Serializable {
* 更新时间 * 更新时间
*/ */
private Date updatedTime; private Date updatedTime;
/**
* 附件
*/
private List<MemoAttachmentDTO> attachmentList;
} }

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

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

@ -2,10 +2,12 @@ package com.epmet.controller;
import cn.afterturn.easypoi.word.WordExportUtil; import cn.afterturn.easypoi.word.WordExportUtil;
import cn.hutool.core.bean.BeanUtil; 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.aop.NoRepeatSubmit;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData; 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.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.AssertUtils;
@ -14,7 +16,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.MemoConcernDTO; import com.epmet.dto.MemoConcernDTO;
import com.epmet.dto.MemoWorkDiaryDTO; import com.epmet.dto.form.MemoConcernFormDTO;
import com.epmet.service.MemoConcernService; import com.epmet.service.MemoConcernService;
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -41,31 +43,36 @@ public class MemoConcernController {
private MemoConcernService memoConcernService; private MemoConcernService memoConcernService;
@RequestMapping("page") @RequestMapping("page")
public Result<PageData<MemoConcernDTO>> page(@RequestParam Map<String, Object> params){ public Result<PageData<MemoConcernDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernFormDTO formDTO){
PageData<MemoConcernDTO> page = memoConcernService.page(params); formDTO.setUserId(tokenDto.getUserId());
PageData<MemoConcernDTO> page = memoConcernService.page(formDTO);
return new Result<PageData<MemoConcernDTO>>().ok(page); return new Result<PageData<MemoConcernDTO>>().ok(page);
} }
@RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) @RequestMapping(method = {RequestMethod.POST,RequestMethod.GET})
public Result<MemoConcernDTO> get(@PathVariable("id") String id){ public Result<MemoConcernDTO> get(@RequestBody MemoConcernFormDTO formDTO){
MemoConcernDTO data = memoConcernService.get(id); MemoConcernDTO data = memoConcernService.get(formDTO);
return new Result<MemoConcernDTO>().ok(data); return new Result<MemoConcernDTO>().ok(data);
} }
@NoRepeatSubmit @NoRepeatSubmit
@PostMapping("save") @PostMapping("save")
public Result save(@RequestBody MemoConcernDTO dto){ public Result save(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernDTO dto){
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
dto.setCreatedBy(tokenDto.getUserId());
memoConcernService.save(dto); memoConcernService.save(dto);
return new Result(); return new Result();
} }
@NoRepeatSubmit @NoRepeatSubmit
@PostMapping("update") @PostMapping("update")
public Result update(@RequestBody MemoConcernDTO dto){ public Result update(@LoginUser TokenDto tokenDto, @RequestBody MemoConcernDTO dto){
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
dto.setCustomerId(tokenDto.getCustomerId());
memoConcernService.update(dto); memoConcernService.update(dto);
return new Result(); return new Result();
} }

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

@ -1,9 +1,13 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.MemoConcernDTO;
import com.epmet.dto.form.MemoConcernFormDTO;
import com.epmet.entity.MemoConcernEntity; import com.epmet.entity.MemoConcernEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 备忘录-人文关怀 * 备忘录-人文关怀
* *
@ -12,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface MemoConcernDao extends BaseDao<MemoConcernEntity> { 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);
} }

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/MemoConcernService.java

@ -3,10 +3,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.MemoConcernDTO; import com.epmet.dto.MemoConcernDTO;
import com.epmet.dto.form.MemoConcernFormDTO;
import com.epmet.entity.MemoConcernEntity; import com.epmet.entity.MemoConcernEntity;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 备忘录-人文关怀 * 备忘录-人文关怀
@ -24,7 +24,7 @@ public interface MemoConcernService extends BaseService<MemoConcernEntity> {
* @author generator * @author generator
* @date 2022-03-15 * @date 2022-03-15
*/ */
PageData<MemoConcernDTO> page(Map<String, Object> params); PageData<MemoConcernDTO> page(MemoConcernFormDTO formDTO);
/** /**
* 默认查询 * 默认查询
@ -34,7 +34,7 @@ public interface MemoConcernService extends BaseService<MemoConcernEntity> {
* @author generator * @author generator
* @date 2022-03-15 * @date 2022-03-15
*/ */
List<MemoConcernDTO> list(Map<String, Object> params); List<MemoConcernDTO> list(MemoConcernFormDTO formDTO);
/** /**
* 单条查询 * 单条查询
@ -44,7 +44,7 @@ public interface MemoConcernService extends BaseService<MemoConcernEntity> {
* @author generator * @author generator
* @date 2022-03-15 * @date 2022-03-15
*/ */
MemoConcernDTO get(String id); MemoConcernDTO get(MemoConcernFormDTO formDTO);
/** /**
* 默认保存 * 默认保存

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

@ -1,22 +1,31 @@
package com.epmet.service.impl; 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.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.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.MemoConstant;
import com.epmet.dao.MemoConcernDao; import com.epmet.dao.MemoConcernDao;
import com.epmet.dto.MemoAttachmentDTO;
import com.epmet.dto.MemoAttrDTO;
import com.epmet.dto.MemoConcernDTO; import com.epmet.dto.MemoConcernDTO;
import com.epmet.dto.form.MemoConcernFormDTO;
import com.epmet.entity.MemoAttachmentEntity;
import com.epmet.entity.MemoConcernEntity; import com.epmet.entity.MemoConcernEntity;
import com.epmet.service.MemoAttachmentService;
import com.epmet.service.MemoAttrService;
import com.epmet.service.MemoConcernService; import com.epmet.service.MemoConcernService;
import org.apache.commons.lang3.StringUtils; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/** /**
* 备忘录-人文关怀 * 备忘录-人文关怀
@ -27,36 +36,47 @@ import java.util.Map;
@Service @Service
public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, MemoConcernEntity> implements MemoConcernService { public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, MemoConcernEntity> implements MemoConcernService {
@Resource
private MemoAttrService memoAttrService;
@Resource
private MemoAttachmentService memoAttachmentService;
@Override @Override
public PageData<MemoConcernDTO> page(Map<String, Object> params) { public PageData<MemoConcernDTO> page(MemoConcernFormDTO formDTO) {
IPage<MemoConcernEntity> page = baseDao.selectPage( PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
getPage(params, FieldConstant.CREATED_TIME, false), List<MemoConcernDTO> list = baseDao.getPage(formDTO);
getWrapper(params) PageInfo<MemoConcernDTO> pageInfo = new PageInfo<>(list);
); return new PageData<>(list, pageInfo.getTotal());
return getPageData(page, MemoConcernDTO.class);
} }
@Override @Override
public List<MemoConcernDTO> list(Map<String, Object> params) { public List<MemoConcernDTO> list(MemoConcernFormDTO formDTO) {
List<MemoConcernEntity> entityList = baseDao.selectList(getWrapper(params)); List<MemoConcernDTO> list = baseDao.getPage(formDTO);
return list;
return ConvertUtils.sourceToTarget(entityList, MemoConcernDTO.class);
}
private QueryWrapper<MemoConcernEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<MemoConcernEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
} }
@Override @Override
public MemoConcernDTO get(String id) { public MemoConcernDTO get(MemoConcernFormDTO formDTO) {
MemoConcernEntity entity = baseDao.selectById(id); MemoConcernEntity entity = baseDao.selectById(formDTO.getId());
return ConvertUtils.sourceToTarget(entity, MemoConcernDTO.class); 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 = new MemoAttrDTO();
memoAttrDTO.setId(formDTO.getId());
memoAttrDTO.setReadFlag(NumConstant.ONE);
memoAttrService.update(memoAttrDTO);
}
return dto;
} }
@Override @Override
@ -64,6 +84,28 @@ public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, Memo
public void save(MemoConcernDTO dto) { public void save(MemoConcernDTO dto) {
MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class); MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class);
insert(entity); insert(entity);
//保存属性
MemoAttrDTO attr = ConvertUtils.sourceToTarget(dto, MemoAttrDTO.class);;
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 @Override
@ -71,6 +113,30 @@ public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, Memo
public void update(MemoConcernDTO dto) { public void update(MemoConcernDTO dto) {
MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class); MemoConcernEntity entity = ConvertUtils.sourceToTarget(dto, MemoConcernEntity.class);
updateById(entity); 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 @Override
@ -78,6 +144,13 @@ public class MemoConcernServiceImpl extends BaseServiceImpl<MemoConcernDao, Memo
public void delete(String[] ids) { public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解) // 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
List<String> list = Arrays.asList(ids);
baseDao.deleteBatchIds(list);
memoAttrService.delete(ids);
list.forEach(id -> {
//删除附件
memoAttachmentService.deleteByMemoId(id);
});
} }
} }

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

@ -3,6 +3,51 @@
<mapper namespace="com.epmet.dao.MemoConcernDao"> <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> </mapper>
Loading…
Cancel
Save