Browse Source

Merge branch 'dev_issue_project' into dev

dev_shibei_match
sunyuchao 6 years ago
parent
commit
76af696022
  1. 6
      epmet-module/gov-issue/gov-issue-client/pom.xml
  2. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShiftProjectFormDTO.java
  3. 8
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java
  4. 77
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  5. 91
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectRelatedPersonnelDTO.java
  6. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TickStaffFormDTO.java
  7. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
  8. 94
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectRelatedPersonnelController.java
  9. 44
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectRelatedPersonnelDao.java
  10. 61
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectRelatedPersonnelEntity.java
  11. 68
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ProjectRelatedPersonnelExcel.java
  12. 47
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/redis/ProjectRelatedPersonnelRedis.java
  13. 95
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectRelatedPersonnelService.java
  14. 42
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
  15. 104
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectRelatedPersonnelServiceImpl.java
  16. 24
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  17. 30
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml

6
epmet-module/gov-issue/gov-issue-client/pom.xml

@ -17,5 +17,11 @@
<artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>resi-group-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ShiftProjectFormDTO.java

@ -1,6 +1,7 @@
package com.epmet.dto.form;
import com.epmet.dto.IssueDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -38,6 +39,10 @@ public class ShiftProjectFormDTO implements Serializable {
* token中工作人员Id
*/
private String staffId;
/**
* 话题对象信息
*/
private ResiTopicDTO topicDTO ;
}

8
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java

@ -10,6 +10,10 @@ public interface UserMessageConstant {
* 消息标题
*/
String ISSUE_TITLE = "您有一条议题消息";
/**
* 项目跟踪-消息标题
*/
String PROJECT_TITLE = "您有一条项目消息";
/**
* 议题关闭时选择已解决
@ -26,5 +30,9 @@ public interface UserMessageConstant {
*/
String ISSUE_SHIFT_PROJECT_MSG = "您好,您发表的话题\"%s\"的问题,已由%s部门处理,请查看。";
/**
* 议题转项目消息模板
*/
String PROJECT_RESLOVED_MSG = "您好。您收到一条【%s】的新信息,请您尽快处理。";
}

77
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -402,7 +402,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
}
/**
* @Description 关闭议题议题转项目时给话题创建人和议题发起人发送消息
* @Description 关闭议题时给话题创建人和议题发起人发送消息
* @author sun
*/
private Result saveUserMessageList(ResiTopicDTO topicDTO, String messageContent, IssueEntity entity) {
@ -480,20 +480,28 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
}
formDTO.setIssueDTO(ConvertUtils.sourceToTarget(entity, IssueDTO.class));
//2:调用gov-project服务,新增项目各业务表初始数据
//2:调用resi-group查询话题创建人数据(目前议题来源只有来自话题),为了到项目服务初始数据以及发送消息使用
Result<ResiTopicDTO> resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId());
if (!resultTopicDTO.success() || null == resultTopicDTO.getData()) {
throw new RenException(IssueConstant.SELECT_TOPIC_EXCEPTION);
}
ResiTopicDTO topicDTO = resultTopicDTO.getData();
formDTO.setTopicDTO(topicDTO);
//3:调用gov-project服务,新增项目各业务表初始数据
Result<IssueProjectResultDTO> resultDTO = govProjectFeignClient.issueShiftProject(formDTO);
if (!resultDTO.success() || null == resultDTO.getData()) {
throw new RenException(IssueConstant.GOV_PRJECT_EXCEPTION);
}
IssueProjectResultDTO issueProjectResultDTO = resultDTO.getData();
//3:更新议题相关业务表数据
//3.1:更新议题表数据
//4:更新议题相关业务表数据
//4.1:更新议题表数据
entity.setIssueStatus(IssueConstant.ISSUE_SHIFT_PROJECT);
entity.setShiftedTime(issueProjectResultDTO.getShiftedTime());
baseDao.updateById(entity);
//3.2:议题处理进展表新增数据
//4.2:议题处理进展表新增数据
IssueProcessEntity processEntity = new IssueProcessEntity();
processEntity.setIssueId(entity.getId());
processEntity.setIssueStatus(IssueConstant.ISSUE_SHIFT_PROJECT);
@ -502,30 +510,63 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
processEntity.setOrgName(issueProjectResultDTO.getOrgName());
issueProcessDao.insert(processEntity);
//3.3:议题项目关系表新增数据
//4.3:议题项目关系表新增数据
IssueProjectRelationEntity relationEntity = new IssueProjectRelationEntity();
relationEntity.setIssueId(entity.getId());
relationEntity.setProjectId(issueProjectResultDTO.getProjectId());
issueProjectRelationDao.insert(relationEntity);
//4:调用epmet-message服务,给居民端话题创建人和议题发起人发送消息
//4.1:调用resi-group查询话题创建人数据(目前议题来源只有来自话题)
Result<ResiTopicDTO> resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId());
if (!resultTopicDTO.success() || null == resultTopicDTO.getData()) {
throw new RenException(IssueConstant.SELECT_TOPIC_EXCEPTION);
}
ResiTopicDTO topicDTO = resultTopicDTO.getData();
//4.2:创建消息模板
String messageContent = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, topicDTO.getTopicContent(), issueProjectResultDTO.getOrgName());
//4.3:调用服务,发送消息
if (!saveUserMessageList(topicDTO, messageContent, entity).success()) {
//5:调用epmet-message服务,给居民端话题创建人、议题发起人以及政府端工作人员发送消息
if (!shiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) {
throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION);
}
//5:缓存中网格下表决中的议题总数减1
//6:缓存中网格下表决中的议题总数减1
govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId());
}
/**
* @Description 议题转项目时给话题创建人议题发起人勾选的工作人员分别推送消息
* @author sun
*/
private Result shiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) {
List<UserMessageFormDTO> msgList = new ArrayList<>();
//1:创建话题发起人、议题发表人消息对象
UserMessageFormDTO msgDTO = new UserMessageFormDTO();
msgDTO.setCustomerId(entity.getCustomerId());
msgDTO.setGridId(entity.getGridId());
msgDTO.setApp(AppClientConstant.APP_RESI);
msgDTO.setTitle(UserMessageConstant.ISSUE_TITLE);
String topicIssueMessage = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, formDTO.getTopicDTO().getTopicContent(), issueProjectResultDTO.getOrgName());
msgDTO.setMessageContent(topicIssueMessage);
msgDTO.setReadFlag(ReadFlagConstant.UN_READ);
UserMessageFormDTO msgIssue = ConvertUtils.sourceToTarget(msgDTO,UserMessageFormDTO.class);
msgDTO.setUserId(formDTO.getTopicDTO().getCreatedBy());
msgList.add(msgDTO);
msgIssue.setUserId(entity.getCreatedBy());
msgList.add(msgIssue);
//2:创建项目工作人员消息对象
String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESLOVED_MSG, entity.getIssueTitle());
//所选人员如果即在部门下又在网格下则只发一条消息
Map<String,String> map = new HashMap<>();
formDTO.getStaffList().forEach(staff->{
if(!map.containsKey(staff.getStaffId())){
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(entity.getCustomerId());
msg.setGridId("*");
msg.setApp(AppClientConstant.APP_GOV);
msg.setTitle(UserMessageConstant.PROJECT_TITLE);
msg.setMessageContent(projectStaffMessage);
msg.setReadFlag(ReadFlagConstant.UN_READ);
msg.setUserId(staff.getStaffId());
msgList.add(msg);
map.put(staff.getStaffId(),staff.getStaffId());
}
});
return messageFeignClient.saveUserMessageList(msgList);
}
/**
* @Description
* @param issueListForm

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

@ -0,0 +1,91 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
@Data
public class ProjectRelatedPersonnelDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键 唯一标识
*/
private String id;
/**
* 项目ID
*/
private String projectId;
/**
* 所属端 居民端用户resi政府端工作人员gov运营端工作人员oper
*/
private String app;
/**
* 网格ID app=resi时此列为gridId,其他情况暂定 *
*/
private String gridId;
/**
* 用户ID
*/
private String userId;
/**
* 删除标识
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

2
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TickStaffFormDTO.java

@ -29,7 +29,7 @@ public class TickStaffFormDTO implements Serializable {
*/
private String gridId;
@NotBlank(message = "内部备注不能为空")
@NotBlank(message = "工作人员Id不能为空")
private String staffId;
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java

@ -93,4 +93,12 @@ public interface ProjectConstant {
* 调用gov-org服务查询数据失败
*/
String UNHANDLED_EXCEPTION = "已转过其他部门,不能再次操作";
/**
* 调用user-message服务失败
*/
String SAVE_MSG_EXCEPTION = "发送消息失败";
/**
* 查询项目表数据失败
*/
String SELECT_PROJECT_EXCEPTION = "获取项目数据失败";
}

94
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectRelatedPersonnelController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
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.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.ProjectRelatedPersonnelDTO;
import com.epmet.excel.ProjectRelatedPersonnelExcel;
import com.epmet.service.ProjectRelatedPersonnelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
@RestController
@RequestMapping("projectrelatedpersonnel")
public class ProjectRelatedPersonnelController {
@Autowired
private ProjectRelatedPersonnelService projectRelatedPersonnelService;
@GetMapping("page")
public Result<PageData<ProjectRelatedPersonnelDTO>> page(@RequestParam Map<String, Object> params){
PageData<ProjectRelatedPersonnelDTO> page = projectRelatedPersonnelService.page(params);
return new Result<PageData<ProjectRelatedPersonnelDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<ProjectRelatedPersonnelDTO> get(@PathVariable("id") String id){
ProjectRelatedPersonnelDTO data = projectRelatedPersonnelService.get(id);
return new Result<ProjectRelatedPersonnelDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody ProjectRelatedPersonnelDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
projectRelatedPersonnelService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody ProjectRelatedPersonnelDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
projectRelatedPersonnelService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
projectRelatedPersonnelService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<ProjectRelatedPersonnelDTO> list = projectRelatedPersonnelService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, ProjectRelatedPersonnelExcel.class);
}
}

44
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectRelatedPersonnelDao.java

@ -0,0 +1,44 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ProjectRelatedPersonnelDTO;
import com.epmet.entity.ProjectRelatedPersonnelEntity;
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 2020-05-20
*/
@Mapper
public interface ProjectRelatedPersonnelDao extends BaseDao<ProjectRelatedPersonnelEntity> {
/**
* 查找项目关联人员
* @author zhaoqifeng
* @date 2020/5/20 13:45
* @param projectId
* @return java.util.List<com.epmet.dto.ProjectRelatedPersonnelDTO>
*/
List<ProjectRelatedPersonnelDTO> selectPersonnelListByProjectId(@Param("projectId") String projectId);
}

61
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectRelatedPersonnelEntity.java

@ -0,0 +1,61 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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 2020-05-20
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("project_related_personnel")
public class ProjectRelatedPersonnelEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 项目ID
*/
private String projectId;
/**
* 所属端 居民端用户resi政府端工作人员gov运营端工作人员oper
*/
private String app;
/**
* 网格ID app=resi时此列为gridId,其他情况暂定 *
*/
private String gridId;
/**
* 用户ID
*/
private String userId;
}

68
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ProjectRelatedPersonnelExcel.java

@ -0,0 +1,68 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
@Data
public class ProjectRelatedPersonnelExcel {
@Excel(name = "主键 唯一标识")
private String id;
@Excel(name = "项目ID")
private String projectId;
@Excel(name = "所属端 居民端用户resi、政府端工作人员gov、运营端工作人员oper")
private String app;
@Excel(name = "网格ID app=resi时,此列为gridId,其他情况暂定 *")
private String gridId;
@Excel(name = "用户ID")
private String userId;
@Excel(name = "删除标识")
private String delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

47
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/redis/ProjectRelatedPersonnelRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
@Component
public class ProjectRelatedPersonnelRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

95
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectRelatedPersonnelService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.ProjectRelatedPersonnelDTO;
import com.epmet.entity.ProjectRelatedPersonnelEntity;
import java.util.List;
import java.util.Map;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
public interface ProjectRelatedPersonnelService extends BaseService<ProjectRelatedPersonnelEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<ProjectRelatedPersonnelDTO>
* @author generator
* @date 2020-05-20
*/
PageData<ProjectRelatedPersonnelDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<ProjectRelatedPersonnelDTO>
* @author generator
* @date 2020-05-20
*/
List<ProjectRelatedPersonnelDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return ProjectRelatedPersonnelDTO
* @author generator
* @date 2020-05-20
*/
ProjectRelatedPersonnelDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-05-20
*/
void save(ProjectRelatedPersonnelDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-05-20
*/
void update(ProjectRelatedPersonnelDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-05-20
*/
void delete(String[] ids);
}

42
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java

@ -20,6 +20,7 @@ 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.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
@ -27,6 +28,8 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ProjectConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageConstant;
import com.epmet.dao.ProjectProcessDao;
import com.epmet.dao.ProjectStaffDao;
import com.epmet.dto.CustomerAgencyDTO;
@ -38,6 +41,7 @@ import com.epmet.entity.ProjectProcessEntity;
import com.epmet.entity.ProjectStaffEntity;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.feign.MessageFeignClient;
import com.epmet.redis.ProjectProcessRedis;
import com.epmet.service.ProjectProcessService;
import com.epmet.service.ProjectService;
@ -74,6 +78,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
private ProjectProcessDao projectProcessDao;
@Autowired
private ProjectStaffService projectStaffService;
@Autowired
private com.epmet.feign.MessageFeignClient messageFeignClient;
@Override
public PageData<ProjectProcessDTO> page(Map<String, Object> params) {
@ -245,6 +251,42 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
entityList.add(entity);
});
projectStaffService.insertBatch(entityList);
//4:调用epmet-message服务,给项目流转过程中的工作人员发送消息
if (!transferMessage(formDTO).success()) {
throw new RenException(ProjectConstant.SAVE_MSG_EXCEPTION);
}
}
/**
* @Description 项目流转给流转工作人员推送消息
* @author sun
*/
private Result transferMessage(TransferFormDTO formDTO) {
List<UserMessageFormDTO> msgList = new ArrayList<>();
ProjectEntity projectEntity = projectService.selectById(formDTO.getProjectId());
if (null == projectEntity) {
throw new RenException(ProjectConstant.SELECT_PROJECT_EXCEPTION);
}
//3:创建项目工作人员消息对象
//所选人员如果即在部门下又在网格下则只发一条消息
Map<String,String> map = new HashMap<>();
String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, projectEntity.getTitle());
formDTO.getStaffList().forEach(staff->{
if(!map.containsKey(staff.getStaffId())){
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(projectEntity.getCustomerId());
msg.setGridId("*");
msg.setApp(AppClientConstant.APP_GOV);
msg.setTitle(UserMessageConstant.PROJECT_TITLE);
msg.setMessageContent(projectStaffMessage);
msg.setReadFlag(ReadFlagConstant.UN_READ);
msg.setUserId(staff.getStaffId());
msgList.add(msg);
map.put(staff.getStaffId(),staff.getStaffId());
}
});
return messageFeignClient.saveUserMessageList(msgList);
}
/**

104
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectRelatedPersonnelServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.ProjectRelatedPersonnelDao;
import com.epmet.dto.ProjectRelatedPersonnelDTO;
import com.epmet.entity.ProjectRelatedPersonnelEntity;
import com.epmet.redis.ProjectRelatedPersonnelRedis;
import com.epmet.service.ProjectRelatedPersonnelService;
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;
/**
* 项目相关人员表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-05-20
*/
@Service
public class ProjectRelatedPersonnelServiceImpl extends BaseServiceImpl<ProjectRelatedPersonnelDao, ProjectRelatedPersonnelEntity> implements ProjectRelatedPersonnelService {
@Autowired
private ProjectRelatedPersonnelRedis projectRelatedPersonnelRedis;
@Override
public PageData<ProjectRelatedPersonnelDTO> page(Map<String, Object> params) {
IPage<ProjectRelatedPersonnelEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ProjectRelatedPersonnelDTO.class);
}
@Override
public List<ProjectRelatedPersonnelDTO> list(Map<String, Object> params) {
List<ProjectRelatedPersonnelEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ProjectRelatedPersonnelDTO.class);
}
private QueryWrapper<ProjectRelatedPersonnelEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<ProjectRelatedPersonnelEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ProjectRelatedPersonnelDTO get(String id) {
ProjectRelatedPersonnelEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ProjectRelatedPersonnelDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ProjectRelatedPersonnelDTO dto) {
ProjectRelatedPersonnelEntity entity = ConvertUtils.sourceToTarget(dto, ProjectRelatedPersonnelEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ProjectRelatedPersonnelDTO dto) {
ProjectRelatedPersonnelEntity entity = ConvertUtils.sourceToTarget(dto, ProjectRelatedPersonnelEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

24
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -20,6 +20,7 @@ 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.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -35,15 +36,13 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.ProjectEntity;
import com.epmet.entity.ProjectProcessEntity;
import com.epmet.entity.ProjectRelatedPersonnelEntity;
import com.epmet.entity.ProjectStaffEntity;
import com.epmet.feign.CommonFeignClient;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.ProjectRedis;
import com.epmet.service.CustomerProjectParameterService;
import com.epmet.service.ProjectProcessService;
import com.epmet.service.ProjectService;
import com.epmet.service.ProjectStaffService;
import com.epmet.service.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -76,6 +75,8 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private ProjectRelatedPersonnelService projectRelatedPersonnelService;
private final static String ONE_DAY = "<1";
@ -502,7 +503,20 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
});
projectStaffService.insertBatch(entityList);
//5:返回接口参数
//5:项目相关人员表初始数据
List<ProjectRelatedPersonnelEntity> list = new ArrayList<>();
ProjectRelatedPersonnelEntity entity1 = new ProjectRelatedPersonnelEntity();
entity1.setProjectId(projectEntity.getId());
entity1.setApp(AppClientConstant.APP_RESI);
entity1.setGridId(issueDTO.getGridId());
entity1.setUserId(formDTO.getTopicDTO().getCreatedBy());
ProjectRelatedPersonnelEntity entity2 = ConvertUtils.sourceToTarget(entity1,ProjectRelatedPersonnelEntity.class);
entity2.setUserId(issueDTO.getCreatedBy());
list.add(entity1);
list.add(entity2);
projectRelatedPersonnelService.insertBatch(list);
//6:返回接口参数
issueProjectResultDTO.setProjectId(projectEntity.getId());
issueProjectResultDTO.setOrgName(processEntity.getDepartmentName());
issueProjectResultDTO.setShiftedTime(projectEntity.getCreatedTime());

30
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml

@ -0,0 +1,30 @@
<?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.ProjectRelatedPersonnelDao">
<resultMap type="com.epmet.entity.ProjectRelatedPersonnelEntity" id="projectRelatedPersonnelMap">
<result property="id" column="ID"/>
<result property="projectId" column="PROJECT_ID"/>
<result property="app" column="APP"/>
<result property="gridId" column="GRID_ID"/>
<result property="userId" column="USER_ID"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectPersonnelListByProjectId" resultType="com.epmet.dto.ProjectRelatedPersonnelDTO">
SELECT
*
FROM
project_related_personnel
WHERE
DEL_FLAG = '0'
AND PROJECT_ID = #{projectId}
</select>
</mapper>
Loading…
Cancel
Save