diff --git a/cloudutil/src/main/resources/application-util-greenvalley.yml b/cloudutil/src/main/resources/application-util-greenvalley.yml index fbe68f19..fec399c5 100644 --- a/cloudutil/src/main/resources/application-util-greenvalley.yml +++ b/cloudutil/src/main/resources/application-util-greenvalley.yml @@ -19,7 +19,8 @@ eureka: client: service-url: # 指定eureka server通信地址,注意/eureka/小尾巴不能少 - defaultZone: http://admin:admin@82.156.116.247:7010/eureka/ +# defaultZone: http://admin:admin@82.156.116.247:7010/eureka/ + defaultZone: http://admin:admin@49.232.6.143:7010/eureka/ instance: # 是否注册IP到eureka server,如不指定或设为false,那就回注册主机名到eureka server prefer-ip-address: true diff --git a/pom.xml b/pom.xml index 886f407b..8b68ec59 100644 --- a/pom.xml +++ b/pom.xml @@ -9,10 +9,10 @@ cloudutil util tall - ht - game - mt - wisdomcar + + + + beneficiation @@ -20,7 +20,7 @@ tcm - ocr + diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java index 79878781..f70908d5 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ChartDto.java @@ -16,10 +16,8 @@ public class ChartDto { @NotNull @ApiModelProperty("项目id") private Long projectId; - @NotEmpty @ApiModelProperty("开始日期") private String start; - @NotEmpty @ApiModelProperty("结束日期") private String end; @ApiModelProperty("角色id") diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java index 661014e6..9e1dc234 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java @@ -14,12 +14,23 @@ public class LwbsDto { @Data @ApiModel("查询lwbs的任务") public static class SelByUserIdToComProject{ - @NotNull @ApiModelProperty("开始时间") private Long startTime; - @NotNull @ApiModelProperty("结束时间") private Long endTime; + public Long getStartTime() { + if(startTime == null){ + return DateUtil.beginOfWeek(new Date()).getTime(); + } + return startTime; + } + + public Long getEndTime() { + if(startTime == null){ + return DateUtil.endOfWeek(new Date()).getTime(); + } + return endTime; + } } @Data @ApiModel("查询lwbs的任务") diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java index e13f9595..19e24be8 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java @@ -103,6 +103,8 @@ public class ProjectDto { private String detailPath; @ApiModelProperty("项目关联pims域内的导航栏信息 0无关联 1例会系统 2财务系统 3课程") private Integer pimsNavType; + @ApiModelProperty("项目样式 0 胶囊 1列表") + private Byte style; public Integer getSelectTaskType(){ if(ObjectUtil.isNull(selectType)) { diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java index 164884a8..02ee937d 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/ProjectMessageDto.java @@ -1,5 +1,6 @@ package com.ccsens.tall.bean.dto; +import cn.hutool.core.date.DateUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,6 +8,7 @@ import lombok.Data; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; +import java.util.Date; /** * @description: @@ -45,6 +47,10 @@ public class ProjectMessageDto { @NotNull @ApiModelProperty("项目ID") private Long projectId; + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; @ApiModelProperty("第几页") @Min(value = 1) private int pageNum = 1; @@ -52,6 +58,21 @@ public class ProjectMessageDto { @Min(value = 1) @Max(value=100) private int pageSize = 10; + + + public Long getStartTime() { + if(startTime == null){ + return DateUtil.beginOfWeek(new Date()).getTime(); + } + return startTime; + } + + public Long getEndTime() { + if(startTime == null){ + return DateUtil.endOfWeek(new Date()).getTime(); + } + return endTime; + } } @Data diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java index 204a9a18..04fe6dca 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java @@ -1,5 +1,6 @@ package com.ccsens.tall.bean.dto; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.ccsens.util.exception.BaseException; import io.swagger.annotations.ApiImplicitParam; @@ -286,6 +287,45 @@ public class TaskDto { private Integer type; } + + @ApiModel("查看看板信息") + @Data + public static class QueryKanbanTask { + @NotNull(message = "项目id不能为空") + @ApiModelProperty("项目id") + private Long projectId; + @ApiModelProperty("角色id 不传则查找全部") + private Long roleId; + @ApiModelProperty("任务状态 0未开始 1进行中 2已完成") + private Integer type; + @ApiModelProperty("页数") + private Integer page = 1; + @ApiModelProperty("每页数量") + private Integer pageSize = 10; + @ApiModelProperty("排序方式 0时间排序 1优先级排序 没有则默认时间排序") + private Integer orderType = 0; + @ApiModelProperty("排序方式 0倒序 1正序 默认倒序") + private Integer order = 0; + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; + + public Long getStartTime() { + if(startTime == null){ + return DateUtil.beginOfWeek(new Date()).getTime(); + } + return startTime; + } + + public Long getEndTime() { + if(startTime == null){ + return DateUtil.endOfWeek(new Date()).getTime(); + } + return endTime; + } + } + @Data @ApiModel("修改任务配置") public static class UpdateTaskConfig{ diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java index 86b0f7c1..ab4af806 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java @@ -93,6 +93,8 @@ public class InputDocVo { public static class DeliverHistory{ @ApiModelProperty("交付物历史记录的id") private Long id; + @ApiModelProperty("输入输出文档名") + private String deliverName; @ApiModelProperty("成员id") private Long memberId; @ApiModelProperty("成员名称") diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java index a2d4e62d..043f67a8 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/MessageVo.java @@ -281,4 +281,100 @@ public class MessageVo { .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Deliverable.value,deliverName)); return inform; } + + /** + * 添加角色 + */ + public static Inform addRoleComment(Long userId,String userName,Long projectId,String projectName,String roleName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName)); + return inform; + } + + /** + * 修改角色 + */ + public static Inform updateRoleComment(Long userId,String userName,Long projectId,String projectName,String roleName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName)); + return inform; + } + + /** + * 删除角色 + */ + public static Inform delRoleComment(Long userId,String userName,Long projectId,String projectName,String roleName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName)); + return inform; + } + + /** + * 添加成员 + */ + public static Inform saveMember(Long userId,String userName,Long projectId,String projectName,String memberName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)); + return inform; + } + + /** + * 删除成员 + */ + public static Inform delMember(Long userId,String userName,Long projectId,String projectName,String memberName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)); + return inform; + } + + /** + * 修改成员 + */ + public static Inform updateMember(Long userId,String userName,Long projectId,String projectName,String memberName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName)); + return inform; + } + + /** + * 添加项目 + */ + public static Inform saveWbs(Long userId,String userName,Long projectId,String projectName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))); + return inform; + } + + /** + * 修改项目 + */ + public static Inform updateProject(Long userId,String userName,Long projectId,String projectName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))); + return inform; + } + + /** + * 删除项目 + */ + public static Inform delProject(Long userId,String userName,Long projectId,String projectName) { + MessageVo.Inform inform = new MessageVo.Inform(projectId, userId); + inform.appendMessage(new MessageVo.Message(WebConstant.TemplateParam.Operator.value, userName)) + .appendMessage(new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value, projectName, WebConstant.Message.TYPE_LINK, Message.getProjectSettings(projectId))); + return inform; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java index dfccc08e..3a7d8eb1 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectMessageVo.java @@ -39,7 +39,7 @@ public class ProjectMessageVo { private Byte readStatus; @ApiModelProperty("消息内容") List messages; - @JsonFormat(pattern="yyyy-MM-dd HH:mm") + @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8") @ApiModelProperty("发送时间") private Date createTime; } @@ -53,7 +53,7 @@ public class ProjectMessageVo { private Long operationId; @ApiModelProperty("消息内容") List messages; - @JsonFormat(pattern="yyyy-MM-dd HH:mm") + @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8") @ApiModelProperty("发送时间") private Date createTime; } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java index 81364a5c..65e081ae 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/RoleVo.java @@ -36,8 +36,22 @@ public class RoleVo { private String name; @ApiModelProperty("角色排序") private Integer sequence; - @ApiModelProperty("是否是pm 是pm;true 不是pm; false ") + @ApiModelProperty("是否是pm 是pm;true 不是pm; false") private Boolean isPM; + @ApiModelProperty("是否是变身后 0否 1是") + private Integer imitation=0; + @ApiModelProperty("该角色是否显示") + private Boolean isShow = true; + @ApiModelProperty("当前用户是否属于该角色") + private Boolean mine; + @ApiModelProperty("是否是项目虚拟的角色 0否 1是") + private Integer projectRole=0; + @ApiModelProperty("关联项目的id") + private Integer relevanceProjectId; + @ApiModelProperty("关联项目的名称") + private Integer relevanceProjectName; + @ApiModelProperty("是否是当前角色的奖惩干系人") + private Boolean stakeholder = false; } @Data @ApiModel("添加时返回成员信息") diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java index 150514c9..34178a93 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java @@ -52,4 +52,12 @@ public interface ProMemberDao extends ProMemberMapper{ * @return */ List queryMembersByProjectId(@Param("projectId")Long projectId); + + /** + * 通过userId和项目id查询memberId + * @param projectIdList 全部的项目id + * @param currentUserId userId + * @return 返回所有的成员id + */ + List getIdByUserIdAndProjectId(@Param("projectIdList")List projectIdList, @Param("currentUserId")Long currentUserId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index fa532290..7dd46322 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -91,7 +91,7 @@ public interface ProRoleDao extends ProRoleMapper{ * @param projectId * @return */ - List selectSecondRolesShowByRoleId(@Param("projectId") Long projectId,@Param("roleIdList") List roleIdList); + List selectSecondRolesShowByRoleId(@Param("projectId") Long projectId,@Param("memberId") Long memberId); // /** // * 查找项目下的所有成员的名字用“,”分隔 diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java index 83968aea..d55e593d 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysOperationDao.java @@ -35,12 +35,19 @@ public interface SysOperationDao extends SysOperationMapper { */ List queryContent(@Param("operationId") Long operationId); +// /** +// * 查询项目动态 +// * @param param +// * @return +// */ +// List queryProjectMsg(ProjectMessageDto.ProjectMsg param); + /** * 查询项目动态 - * @param param + * @param projectIdList * @return */ - List queryProjectMsg(ProjectMessageDto.ProjectMsg param); + List queryProjectMsg(@Param("projectIdList") List projectIdList); /** * 查询任务下的输入输入文档消息id diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java index a55d650a..d1b0738b 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysProjectDao.java @@ -28,24 +28,24 @@ public interface SysProjectDao extends SysProjectMapper{ List selectRelevanceProject(@Param("projectId")Long projectId); - List getExecutorChart(@Param("projectId")Long projectId,@Param("type")Integer type,@Param("process")Integer process, + List getExecutorChart(@Param("projectIdList")List projectIdList,@Param("type")Integer type,@Param("process")Integer process, @Param("roleIdList")List roleIdList,@Param("beginTime")Long beginTime,@Param("endTime")Long endTime); - List getCompleteTaskByTime(@Param("projectId")Long projectId,@Param("roleIdList")List roleIdList, + List getCompleteTaskByTime(@Param("projectIdList")List projectIdList,@Param("roleIdList")List roleIdList, @Param("beginTime")Long beginTime,@Param("endTime")Long endTime); - List getProjectTrend(@Param("projectId")Long projectId, @Param("start")Long start, @Param("end")Long end, + List getProjectTrend(@Param("projectIdList")List projectIdList, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId,@Param("allMemberId")Long allMemberId); - ChartVo.ProjectOverview getOverview(@Param("projectId")Long projectId, @Param("beginTime")Long beginTime,@Param("endTime")Long endTime,@Param("roleIdList")List roleIdList); + ChartVo.ProjectOverview getOverview(@Param("projectIdList")List projectIdList, @Param("beginTime")Long beginTime,@Param("endTime")Long endTime,@Param("roleIdList")List roleIdList); - List getBurnoutFigure(@Param("projectId")Long projectId, + List getBurnoutFigure(@Param("projectIdList")List projectIdList, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId,@Param("allMemberId")Long allMemberId,@Param("type") Integer type); // Integer getTaskTotalByProjectId(@Param("projectId")Long projectId, @Param("start")Long start, @Param("end")Long end, @Param("roleId")Long roleId); - ChartVo.ProjectOverview getOverviewByToDay(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime,@Param("roleIdList")List roleIdList); + ChartVo.ProjectOverview getOverviewByToDay(@Param("projectIdList")List projectIdList, @Param("startTime")Long startTime, @Param("endTime")Long endTime,@Param("roleIdList")List roleIdList); /** * 根据父项目id查找项目,不包含当前项目 @@ -63,4 +63,13 @@ public interface SysProjectDao extends SysProjectMapper{ * @return */ List queryByUserId(@Param("startTime")Long startTime,@Param("endTime")Long endTime, @Param("userId")Long userId); + + /** + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param userId userId + * @return + */ + List queryProjectIdByUserId(@Param("startTime")Long startTime,@Param("endTime") Long endTime, @Param("userId")Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index 6db91149..c104d575 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -53,7 +53,7 @@ public interface TaskDetailDao extends ProTaskDetailMapper { * @param parentTaskId * @return */ - List getTaskByParentId(@Param("parentTaskId")Long parentTaskId,@Param("milestone")Integer milestone,@Param("beginTime")Long beginTime,@Param("endTime")Long endTime); + List getTaskByParentId(@Param("parentTaskId")Long parentTaskId,@Param("milestone")String milestone,@Param("beginTime")Long beginTime,@Param("endTime")Long endTime); /** * LWBS 查询其他任务 diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java index b191ad15..6fdcd970 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java @@ -14,10 +14,10 @@ public interface TaskSubTimeDao extends ProTaskSubTimeMapper{ void clearTaskRealTime(@Param("projectId")Long projectId); - List getKanbanTake(@Param("userId")Long userId,@Param("projectId")Long projectId, @Param("roleId")Long roleId, - @Param("type") Integer type,@Param("memberId")Long memberId,@Param("orderType")Integer orderType,@Param("order")Integer order); + List getKanbanTake(@Param("userId")Long userId,@Param("projectIdList")List projectIdList, @Param("roleId")Long roleId, + @Param("type") Integer type,@Param("memberIdList")List memberIdList,@Param("orderType")Integer orderType,@Param("order")Integer order); - List getKanbanTakeByType(@Param("userId")Long userId,@Param("projectId")Long projectId, @Param("roleId")Long roleId, + List getKanbanTakeByType(@Param("userId")Long userId,@Param("projectIdList")List projectIdList, @Param("roleId")Long roleId, @Param("type")Integer type,@Param("orderType")Integer orderType,@Param("order")Integer order); List queryMinutesTaskByTime(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime); diff --git a/tall/src/main/java/com/ccsens/tall/service/ChartService.java b/tall/src/main/java/com/ccsens/tall/service/ChartService.java index 4654df03..4d4bbed7 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ChartService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ChartService.java @@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -34,11 +35,25 @@ public class ChartService implements IChartService{ */ @Override public ChartVo.ExecutorChart getExecutorChart(Long currentUserId,ChartDto.ChartsExecutorDto executor) { - SysProject sysProject = sysProjectDao.selectByPrimaryKey(executor.getProjectId()); - if(ObjectUtil.isNull(sysProject)){ - throw new BaseException(CodeEnum.NOT_PROJECT); + + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(executor.getProjectId())){ + Long startTime = executor.getBeginTime() == null ? DateUtil.beginOfWeek(new Date()).getTime() : executor.getBeginTime(); + Long endTime = executor.getEndTime() == null ? DateUtil.endOfWeek(new Date()).getTime() : executor.getEndTime(); + + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(startTime,endTime,currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(executor.getProjectId()); } - List executorChartList = sysProjectDao.getExecutorChart(executor.getProjectId(),executor.getType(), executor.getProcess(), + +// SysProject sysProject = sysProjectDao.selectByPrimaryKey(executor.getProjectId()); +// if(ObjectUtil.isNull(sysProject)){ +// throw new BaseException(CodeEnum.NOT_PROJECT); +// } + List executorChartList = sysProjectDao.getExecutorChart(projectIdList,executor.getType(), executor.getProcess(), executor.getRoleList(),executor.getBeginTime(),executor.getEndTime()); ChartVo.ExecutorChart executorChart = new ChartVo.ExecutorChart(); executorChart.setType(executor.getType()); @@ -54,8 +69,21 @@ public class ChartService implements IChartService{ */ @Override public List getCompleteTaskByTime(Long currentUserId, ChartDto.ChartsCompleteDto completeDto) { + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(completeDto.getProjectId())){ + Long startTime = completeDto.getBeginTime() == null ? DateUtil.beginOfWeek(new Date()).getTime() : completeDto.getBeginTime(); + Long endTime = completeDto.getEndTime() == null ? DateUtil.endOfWeek(new Date()).getTime() : completeDto.getEndTime(); + + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(startTime,endTime,currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(completeDto.getProjectId()); + } + //查找所有角色及任务数量 - List completeTaskNumList = sysProjectDao.getCompleteTaskByTime(completeDto.getProjectId(),completeDto.getRoleList(), + List completeTaskNumList = sysProjectDao.getCompleteTaskByTime(projectIdList,completeDto.getRoleList(), completeDto.getBeginTime(),completeDto.getEndTime()); return completeTaskNumList; } @@ -68,15 +96,26 @@ public class ChartService implements IChartService{ */ @Override public List getProjectTrend(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto) { - Long start = DateUtil.parse(projectTrendDto.getStart()).getTime(); - Long end = DateUtil.parse(projectTrendDto.getEnd()).getTime(); + Long start = projectTrendDto.getStart() != null ? DateUtil.parse(projectTrendDto.getStart()).getTime() : DateUtil.beginOfWeek(new Date()).getTime(); + Long end = projectTrendDto.getEnd() != null ? DateUtil.parse(projectTrendDto.getEnd()).getTime() : DateUtil.endOfWeek(new Date()).getTime(); + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(projectTrendDto.getProjectId())){ + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(start,end,currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(projectTrendDto.getProjectId()); + } + + //获取“全体成员”角色 ProRole allMember = proRoleService.getAllMember(projectTrendDto.getProjectId()); Long allMemberId = null; if (ObjectUtil.isNotNull(allMember)) { allMemberId = allMember.getId(); } - List projectTrendVoList = sysProjectDao.getProjectTrend(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId(),allMemberId); + List projectTrendVoList = sysProjectDao.getProjectTrend(projectIdList,start,end,projectTrendDto.getRoleId(),allMemberId); return projectTrendVoList; } @@ -88,13 +127,26 @@ public class ChartService implements IChartService{ */ @Override public ChartVo.ProjectOverview getOverview(Long currentUserId, ChartDto.ChartsOverviewDto overview) throws Exception { + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(overview.getProjectId())){ + Long startTime = overview.getBeginTime() == null ? DateUtil.beginOfWeek(new Date()).getTime() : overview.getBeginTime(); + Long endTime = overview.getEndTime() == null ? DateUtil.endOfWeek(new Date()).getTime() : overview.getEndTime(); + + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(startTime,endTime,currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(overview.getProjectId()); + } + //获取全部的数据 - ChartVo.ProjectOverview projectOverview = sysProjectDao.getOverview(overview.getProjectId(),overview.getBeginTime(),overview.getEndTime(),overview.getRoleList()); + ChartVo.ProjectOverview projectOverview = sysProjectDao.getOverview(projectIdList,overview.getBeginTime(),overview.getEndTime(),overview.getRoleList()); //获取当天零点和二十四点的时间 Long startTime = DateUtil.beginOfDay(new Date()).getTime(); Long endTime = DateUtil.endOfDay(new Date()).getTime(); //获取当天的数据 - ChartVo.ProjectOverview projectOverview1 = sysProjectDao.getOverviewByToDay(overview.getProjectId(),startTime,endTime,overview.getRoleList()); + ChartVo.ProjectOverview projectOverview1 = sysProjectDao.getOverviewByToDay(projectIdList,startTime,endTime,overview.getRoleList()); //将数据整合在一起 projectOverview.setTodayCompleted(projectOverview1.getTodayCompleted() == null ? 0 : projectOverview1.getTodayCompleted()); projectOverview.setToday(projectOverview1.getToday()); @@ -109,8 +161,22 @@ public class ChartService implements IChartService{ */ @Override public List getBurnoutFigure(Long currentUserId, ChartDto.ProjectTrendDto projectTrendDto) { - Long start = DateUtil.parse(projectTrendDto.getStart()).getTime(); - Long end = DateUtil.parse(projectTrendDto.getEnd()).getTime(); +// Long start = DateUtil.parse(projectTrendDto.getStart()).getTime(); +// Long end = DateUtil.parse(projectTrendDto.getEnd()).getTime(); + + Long start = projectTrendDto.getStart() != null ? DateUtil.parse(projectTrendDto.getStart()).getTime() : DateUtil.beginOfWeek(new Date()).getTime(); + Long end = projectTrendDto.getEnd() != null ? DateUtil.parse(projectTrendDto.getEnd()).getTime() : DateUtil.endOfWeek(new Date()).getTime(); + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(projectTrendDto.getProjectId())){ + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(start,end,currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(projectTrendDto.getProjectId()); + } + + //获取“全体成员”角色 ProRole allMember = proRoleService.getAllMember(projectTrendDto.getProjectId()); Long allMemberId = null; @@ -118,7 +184,7 @@ public class ChartService implements IChartService{ allMemberId = allMember.getId(); } //获取任务总数(如果type传1 查询规定条件内的任务总数,若传null,则按天分组查找) - List totalList = sysProjectDao.getBurnoutFigure(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId(),allMemberId,1); + List totalList = sysProjectDao.getBurnoutFigure(projectIdList,start,end,projectTrendDto.getRoleId(),allMemberId,1); //理想 AtomicReference idealTotal = new AtomicReference<>(); BigDecimal idealTotalInt = new BigDecimal(0); @@ -133,7 +199,7 @@ public class ChartService implements IChartService{ realTotal.set(totalList.get(0).getTotalDay()); } //按天获取信息 - List burnoutFigureList = sysProjectDao.getBurnoutFigure(projectTrendDto.getProjectId(),start,end,projectTrendDto.getRoleId(),allMemberId,null); + List burnoutFigureList = sysProjectDao.getBurnoutFigure(projectIdList,start,end,projectTrendDto.getRoleId(),allMemberId,null); if(CollectionUtil.isNotEmpty(burnoutFigureList)){ //每天理想完成数,总数/天数=每天理想完成数 BigDecimal idealFinish = idealTotalInt.divide(BigDecimal.valueOf(burnoutFigureList.size()),1,BigDecimal.ROUND_HALF_UP); diff --git a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java index 592731e8..a7d7c7a2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java @@ -87,6 +87,8 @@ public class ExcelService implements IExcelService { private ProPluginConfigDao proPluginConfigDao; @Resource private ProTaskDeliverMapper proTaskDeliverMapper; + @Resource + private RobotService robotService; @Override @@ -106,6 +108,8 @@ public class ExcelService implements IExcelService { userAttention.setUserId(currentUserId); userAttentionDao.insertSelective(userAttention); } + //发送消息 + robotService.saveWbsRobotSend(currentUserId,sysProject); return selectByProjectId(currentUserId, sysProject); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java b/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java index bd5733c5..497d1379 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IInputDocService.java @@ -3,42 +3,39 @@ package com.ccsens.tall.service; import com.ccsens.tall.bean.dto.InputDocDto; import com.ccsens.tall.bean.dto.LwbsDto; import com.ccsens.tall.bean.vo.InputDocVo; -import com.ccsens.tall.bean.vo.LwbsVo; import com.ccsens.tall.bean.vo.TaskVo; -import com.ccsens.util.bean.dto.QueryDto; -import com.github.pagehelper.Page; import com.github.pagehelper.PageInfo; import java.util.List; public interface IInputDocService { - /** - * 查询 该人参加得所有的项目 - * @param param - * @param userId - * @return - */ - List selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId); - - /** - * 查询 该人参加的项目(把项目当成一级任务)及项目下的二级任务 - * @param param - * @param userId - * @return - */ - TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId); +// /** +// * 查询 该人参加得所有的项目 +// * @param param +// * @param userId +// * @return +// */ +// List selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId); +// +// /** +// * 查询 该人参加的项目(把项目当成一级任务)及项目下的二级任务 +// * @param param +// * @param userId +// * @return +// */ +// TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId); /** * 查询二级任务下的所有的子任务 - * @param param - * @param userId - * @return + * @param param 查询条件 + * @param userId userId + * @return 返回任务列表 */ List selByTwoTaskId(LwbsDto.SelByProjectIdToTaskDto param, Long userId,Long taskId); /** * 根据任务id查询输入文档 * @param params 任务id - * @return + * @return 返回输入文档 */ List findDocByTask(InputDocDto.FindDocByTask params); @@ -97,7 +94,7 @@ public interface IInputDocService { * 删除输入文档下所有的文件 * @param param 输入文档id */ - void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId); + void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) throws Exception; /** * 查看交付物的历史记录 diff --git a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java index 22917a3c..9c33b346 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProMemberService.java @@ -46,7 +46,7 @@ public interface IProMemberService { * @param currentUserId userId * @param deleteMember 被删除的成员的id */ - void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember); + void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) throws Exception; /** * 修改成员的信息 diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index b58f3717..af736db7 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -40,9 +40,9 @@ public interface IProRoleService { void deleteRoleByProjectId(Long projectId) throws Exception; - RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole); + RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception; - ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole); + ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) throws Exception; ProjectVo.RoleInfo saveMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember); @@ -53,7 +53,7 @@ public interface IProRoleService { * @param projectId 项目id * @return 返回一级任务和里程碑 */ - List queryByProjectVirtualRole(RoleDto.ProjectId projectId); + List queryByProjectVirtualRole(RoleDto.ProjectId projectId); /** * 修改该用户关注的角色(是否展示) @@ -74,7 +74,7 @@ public interface IProRoleService { * @param param * @return */ - RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param); + RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) throws Exception; void queryRoleIsShows(QueryDto param); diff --git a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java index a0ed1c20..4caf8d57 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java @@ -31,7 +31,7 @@ public interface IProjectService { ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto,String token); - ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token); + ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) throws Exception; ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize,Integer page,String token); diff --git a/tall/src/main/java/com/ccsens/tall/service/IRobotService.java b/tall/src/main/java/com/ccsens/tall/service/IRobotService.java index e7eddc6a..18247148 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IRobotService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IRobotService.java @@ -18,85 +18,113 @@ public interface IRobotService { /** * 添加任务消息 - * @param currentUserId - * @param project - * @param taskName - * @param executorId + * @param currentUserId 登录用户id + * @param project 项目 + * @param taskName 任务名称 + * @param executorId 负责人 */ void addTaskRobotSend(Long currentUserId, SysProject project, String taskName, Long executorId) throws Exception; /** * 删除任务消息 - * @param currentUserId - * @param taskDetail + * @param currentUserId 登录用户id + * @param taskDetail 任务详情 */ void deleteTaskRobotSend(Long currentUserId, ProTaskDetail taskDetail) throws Exception; /** * 修改任务信息 - * @param currentUserId - * @param normalTask + * @param currentUserId 登录用户id + * @param normalTask 任务 */ void changeTaskRobotSend(Long currentUserId, TaskVo.NormalTask normalTask) throws Exception; /** * 上传交付物信息 - * @param currentUserId - * @param subTimeId + * @param currentUserId 登录用户id + * @param subTimeId 分解任务id */ void addDeliverRobotSend(Long currentUserId,String deliverName, Long subTimeId,SysProject project) throws Exception; /** * 删除交付物信息 - * @param currentUserId - * @param name - * @param subTimeId + * @param currentUserId 登录用户id + * @param name 交付物名称 + * @param subTimeId 分解任务id */ void deleteDeliverRobotSend(Long currentUserId, String name, Long subTimeId) throws Exception; /** * 检查交付物信息 - * @param currentUserId - * @param task - * @param userIdSet - * @param name + * @param currentUserId 当前登录用户id + * @param task 任务 + * @param userIdSet 上传用户id + * @param name 交付物名称 */ void checkDeliverRobotSend(Long currentUserId, ProTaskDetail task, Long userIdSet, String name,Boolean flag) throws Exception; /** * 评论任务信息 - * @param userId - * @param proTaskDetail + * @param userId 用户id + * @param proTaskDetail 项目详情 */ void addCommentRobotSend(Long userId, ProTaskDetail proTaskDetail) throws Exception; /** * 上传输入文档的文件消息记录 - * @param currentUserId - * @param task - * @param deliverable - * @throws Exception + * @param currentUserId 登录用户id + * @param task 任务详情 + * @param deliverable 交付物 + * @throws Exception 异常 */ void uploadForDocRobotSend(Long currentUserId,ProTaskDetail task,String deliverable) throws Exception; /** * 删除输入文档中的文件消息记录 - * @param userId - * @param taskDetail - * @param name + * @param userId 登录用户id + * @param taskDetail 任务详情 + * @param name 交付物名称 * @throws Exception */ void delDocRobotSend(Long userId, ProTaskDetail taskDetail, String name) throws Exception; /** * 修改输入文档中的备注 消息记录 - * @param userId - * @param taskDetail - * @param name - * @throws Exception + * @param userId 登录用户id + * @param taskDetail 任务详情 + * @param name 交付物名称 + * @throws Exception 异常 */ void updateRemarkRobotSend(Long userId, ProTaskDetail taskDetail, String name) throws Exception; + /** + * 添加角色 消息记录 + * @param currentUserId 当前用户id + * @param projectId 项目id + * @param roleName 角色名称 + */ + void addRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception; + + /** + * 修改角色 消息记录 + * @param currentUserId 当前用户id + * @param projectId 项目id + * @param roleName 角色名称 + * @param roleId 角色id + * @throws Exception 异常 + */ + void updateRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception; + + /** + * 删除角色 + * @param userId 用户id + * @param projectId 项目id + * @param name 角色名称 + * @param id 角色id + * @throws Exception 异常 + */ + void delRoleRobotSend(Long userId, Long projectId, String name, Long id) throws Exception; + /** * 查询模板 * @param code @@ -110,5 +138,53 @@ public interface IRobotService { */ void sendRemindByRobot(TaskVo.RemindTask taskRemind,String content) throws Exception; + /** + * 增加成员 消息 + * @param userId 当前用户id + * @param projectId 项目id + * @param memberName 成员名称 + * @param id 成员id + */ + void saveMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception; + /** + * 删除成员 + * @param userId 当前用户id + * @param projectId 项目id + * @param memberName 成员名称 + * @param id 成员id + */ + void delMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception; + + /** + * 修改成员 + * @param userId 当前用户id + * @param projectId 项目id + * @param memberName 成员名称 + * @param id 成员id + */ + void updateMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception; + + /** + * 添加项目 + * @param currentUserId 当前登录用户 + * @param sysProject 项目信息 + * @throws Exception 异常 + */ + void saveWbsRobotSend(Long currentUserId,SysProject sysProject) throws Exception; + + /** + * 修改i项目 + * @param currentUserId 当前登录用户id + * @param sysProject 项目信息 + * @throws Exception 异常 + */ + void updateProjectRobotSend(Long currentUserId,SysProject sysProject) throws Exception; + + /** + * 删除项目 + * @param currentUserId 当前登录用户id + * @param projectId 项目id + */ + void delProjectRobotSend(Long currentUserId,Long projectId) throws Exception; } diff --git a/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java index 21293951..53bd2b75 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java @@ -45,7 +45,7 @@ public interface ITaskDeliverService { * 删除输出文档下所有的文件 * @param param */ - void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId); + void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) throws Exception; /** * 修改输出文档下的备注信息 diff --git a/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java index 8472cd68..6998d6f5 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java @@ -19,8 +19,7 @@ public interface ITaskSubTimeService { void clearTaskRealTime(Long projectId); - List getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, - Integer page, Integer pageSize, Integer orderType, Integer order) throws Exception; + List getKanbanTake(Long currentUserId, TaskDto.QueryKanbanTask queryKanbanTask) throws Exception; void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception; diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index ec69d330..7215d756 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -1,7 +1,6 @@ package com.ccsens.tall.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; @@ -10,21 +9,16 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.InputDocDto; - import com.ccsens.tall.bean.dto.LwbsDto; import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.*; import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.mapper.*; - -import com.ccsens.tall.util.TaskUtil; - import com.ccsens.util.CodeEnum; import com.ccsens.util.JsonResponse; import com.ccsens.util.PropUtil; import com.ccsens.util.RestTemplateUtil; import com.ccsens.util.exception.BaseException; -import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -39,8 +33,6 @@ import java.util.*; @Service @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class InputDocService implements IInputDocService { - @Resource - public ProMemberMapper proMemberMapper; @Resource public SysProjectDao sysProjectDao; @Resource @@ -67,164 +59,158 @@ public class InputDocService implements IInputDocService { private ProDeliverHistoryRecordDao deliverHistoryRecordDao; @Resource private IProMemberService iProMemberService; - @Resource - private ProPluginConfigDao pluginConfigDao; - - @Override - public List selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId) { - List selByUserIdToComProjectVos =new ArrayList(); - //手动添加一个我的 - LwbsVo.SelByUserIdToComProjectVo mine =new LwbsVo.SelByUserIdToComProjectVo(); - mine.setName("我的"); - mine.setType(0); - mine.setId(userId); - selByUserIdToComProjectVos.add(mine); -// //查询普通项目 -// List projectVoList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId); -// selByUserIdToComProjectVos.addAll(projectVoList); - //查询中间的项目 - ProMemberExample proMemberExample=new ProMemberExample(); - proMemberExample.createCriteria().andRecStatusEqualTo((byte) 0).andUserIdEqualTo(userId); - List proMembers = proMemberMapper.selectByExample(proMemberExample); - List longList=new ArrayList(); - proMembers.forEach(proMember -> { - longList.add(proMember.getProjectId()); - }); - SysProjectExample sysProjectExample=new SysProjectExample(); - sysProjectExample.createCriteria().andRecStatusEqualTo((byte)0).andIdIn(longList).andBeginTimeLessThanOrEqualTo(param.getEndTime()).andEndTimeGreaterThanOrEqualTo(param.getStartTime()); - List sysProjects = sysProjectDao.selectByExample(sysProjectExample); - sysProjects.forEach(sysProject -> { - LwbsVo.SelByUserIdToComProjectVo selByUserIdToComProjectVo_zhongjian =new LwbsVo.SelByUserIdToComProjectVo(); - selByUserIdToComProjectVo_zhongjian.setName(sysProject.getName()); - selByUserIdToComProjectVo_zhongjian.setId(sysProject.getId()); - selByUserIdToComProjectVo_zhongjian.setType(1); - selByUserIdToComProjectVos.add(selByUserIdToComProjectVo_zhongjian); - }); - //手动添加一个其他 - LwbsVo.SelByUserIdToComProjectVo other =new LwbsVo.SelByUserIdToComProjectVo(); - other.setName("其他"); - other.setType(2); - selByUserIdToComProjectVos.add(other); - - return selByUserIdToComProjectVos; - } - - @Override - public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) { - TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo(); -// //查询其他 -// if (param.getQueryType() == 2){ -// List taskList = taskDetailDao.selectOtherTask(userId); -// //区分全局任务和普通任务 -// TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); -// List globalTaskList = new ArrayList<>(); -// //如果全局任务不为空 -// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ -// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); -// for (TaskVo.NormalTask normalTask : task.getGlobalTask()) { -// BeanUtil.copyProperties(normalTask,globalTask); -// globalTaskList.add(globalTask); -// } -// taskInfo.setGlobalTaskList(globalTaskList); -// } -// //如果普通任务不为空 -// if (CollectionUtil.isNotEmpty(task.getCommonTask())){ -// taskInfo.setNormalTaskList(task.getCommonTask()); -// } -// return taskInfo; -// } // -// if (param.getQueryType() == 0){ -// param.setId(null); -// } +// @Override +// public List selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId) { +// List selByUserIdToComProjectVos =new ArrayList(); +// //手动添加一个我的 +// LwbsVo.SelByUserIdToComProjectVo mine =new LwbsVo.SelByUserIdToComProjectVo(); +// mine.setName("我的"); +// mine.setType(0); +// mine.setId(userId); +// selByUserIdToComProjectVos.add(mine); +//// //查询普通项目 +//// List projectVoList = sysProjectDao.queryByUserId(param.getStartTime(),param.getEndTime(),userId); +//// selByUserIdToComProjectVos.addAll(projectVoList); +// //查询中间的项目 +// ProMemberExample proMemberExample=new ProMemberExample(); +// proMemberExample.createCriteria().andRecStatusEqualTo((byte) 0).andUserIdEqualTo(userId); +// List proMembers = proMemberMapper.selectByExample(proMemberExample); +// List longList=new ArrayList(); +// proMembers.forEach(proMember -> { +// longList.add(proMember.getProjectId()); +// }); +// SysProjectExample sysProjectExample=new SysProjectExample(); +// sysProjectExample.createCriteria().andRecStatusEqualTo((byte)0).andIdIn(longList).andBeginTimeLessThanOrEqualTo(param.getEndTime()).andEndTimeGreaterThanOrEqualTo(param.getStartTime()); +// List sysProjects = sysProjectDao.selectByExample(sysProjectExample); +// sysProjects.forEach(sysProject -> { +// LwbsVo.SelByUserIdToComProjectVo selByUserIdToComProjectVo_zhongjian =new LwbsVo.SelByUserIdToComProjectVo(); +// selByUserIdToComProjectVo_zhongjian.setName(sysProject.getName()); +// selByUserIdToComProjectVo_zhongjian.setId(sysProject.getId()); +// selByUserIdToComProjectVo_zhongjian.setType(1); +// selByUserIdToComProjectVos.add(selByUserIdToComProjectVo_zhongjian); +// }); +// //手动添加一个其他 +// LwbsVo.SelByUserIdToComProjectVo other =new LwbsVo.SelByUserIdToComProjectVo(); +// other.setName("其他"); +// other.setType(2); +// selByUserIdToComProjectVos.add(other); // -// //普通的任务和全局的 -// List normalTaskList1= iInputDocDao.selectByCompany(param,userId); +// return selByUserIdToComProjectVos; +// } // -// //给二级任务下添加子任务 -// //遍历项目 -// if(param.getId()!=null){ -// for (int i = 0; i < normalTaskList1.size(); i++) { -// //遍历任务 -// for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) { -// Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId(); -// //查询该任务下的子任务 -// List list = selByTwoTaskId(param, userId, taskId); -// //给二级任务添加子任务 -// if(CollectionUtil.isNotEmpty(list)){ -// // 第i个项目 i1个二级任务 添加二级任务的子任务 -// normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list); -// } -// } -// } -// } -// //拆分后得全局任务和普通任务 -// List globalTaskList = new ArrayList<>(); -// List normalTaskList = new ArrayList<>(); -// for (int i = 0; i < normalTaskList1.size(); i++) { -// //拆分项目下得普通任务和全局任务 -// List list= normalTaskList1.get(i).getSecondTasks(); -// //判断全局还是普通任务 -// TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess()); -// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ -// if(param.getId()==null) { -// //给全局任务下先存项目名称 -// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); -// BeanUtil.copyProperties(normalTaskList1.get(i), globalTask); -// globalTask.setNormalTaskList(task.getGlobalTask()); -// globalTaskList.add(globalTask); -// }else { -// //直接存二级任务信息 -// task.getGlobalTask().forEach(ac->{ -// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); -// BeanUtil.copyProperties(ac,globalTask); -// globalTask.setNormalTaskList(ac.getSecondTasks()); -// globalTaskList.add(globalTask); -// }); -// } -// } -// if(CollectionUtil.isNotEmpty(task.getCommonTask())){ -// if(param.getId()==null) { -// //给普通任务下先存项目 -// TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); -// BeanUtil.copyProperties(normalTaskList1.get(i), normalTask); -// normalTask.setSecondTasks(task.getCommonTask()); -// normalTaskList.add(normalTask); -// }else { -// //自查项目不要项目信息 -// task.getCommonTask().forEach(ac1->{ -// normalTaskList.add(ac1); -// }); -// } -// } -// } -// taskInfo.setGlobalTaskList(globalTaskList); -// taskInfo.setNormalTaskList(normalTaskList); -// for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) { -// if (null != normalTask.getDetailId()){ -// ProPluginConfigExample configExample = new ProPluginConfigExample(); -// configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0); -// List proPluginConfigs = pluginConfigDao.selectByExample(configExample); -// if (CollectionUtil.isNotEmpty(proPluginConfigs)){ -// ProPluginConfig config = proPluginConfigs.get(0); -// normalTask.setImportParam(config.getImportParam()); -// normalTask.setRoutineLocation(config.getRoutineLocation()); -// normalTask.setWebPath(config.getWebPath()); -// } -// } -// } - - return taskInfo; - } +// @Override +// public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) { +// TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo(); +//// //查询其他 +//// if (param.getQueryType() == 2){ +//// List taskList = taskDetailDao.selectOtherTask(userId); +//// //区分全局任务和普通任务 +//// TaskUtil.Task task = TaskUtil.splitTask(taskList, param.getStartTime(), param.getEndTime(), param.getProcess()); +//// List globalTaskList = new ArrayList<>(); +//// //如果全局任务不为空 +//// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ +//// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); +//// for (TaskVo.NormalTask normalTask : task.getGlobalTask()) { +//// BeanUtil.copyProperties(normalTask,globalTask); +//// globalTaskList.add(globalTask); +//// } +//// taskInfo.setGlobalTaskList(globalTaskList); +//// } +//// //如果普通任务不为空 +//// if (CollectionUtil.isNotEmpty(task.getCommonTask())){ +//// taskInfo.setNormalTaskList(task.getCommonTask()); +//// } +//// return taskInfo; +//// } +//// +//// if (param.getQueryType() == 0){ +//// param.setId(null); +//// } +//// +//// //普通的任务和全局的 +//// List normalTaskList1= iInputDocDao.selectByCompany(param,userId); +//// +//// //给二级任务下添加子任务 +//// //遍历项目 +//// if(param.getId()!=null){ +//// for (int i = 0; i < normalTaskList1.size(); i++) { +//// //遍历任务 +//// for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) { +//// Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId(); +//// //查询该任务下的子任务 +//// List list = selByTwoTaskId(param, userId, taskId); +//// //给二级任务添加子任务 +//// if(CollectionUtil.isNotEmpty(list)){ +//// // 第i个项目 i1个二级任务 添加二级任务的子任务 +//// normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list); +//// } +//// } +//// } +//// } +//// //拆分后得全局任务和普通任务 +//// List globalTaskList = new ArrayList<>(); +//// List normalTaskList = new ArrayList<>(); +//// for (int i = 0; i < normalTaskList1.size(); i++) { +//// //拆分项目下得普通任务和全局任务 +//// List list= normalTaskList1.get(i).getSecondTasks(); +//// //判断全局还是普通任务 +//// TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess()); +//// if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ +//// if(param.getId()==null) { +//// //给全局任务下先存项目名称 +//// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); +//// BeanUtil.copyProperties(normalTaskList1.get(i), globalTask); +//// globalTask.setNormalTaskList(task.getGlobalTask()); +//// globalTaskList.add(globalTask); +//// }else { +//// //直接存二级任务信息 +//// task.getGlobalTask().forEach(ac->{ +//// TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask(); +//// BeanUtil.copyProperties(ac,globalTask); +//// globalTask.setNormalTaskList(ac.getSecondTasks()); +//// globalTaskList.add(globalTask); +//// }); +//// } +//// } +//// if(CollectionUtil.isNotEmpty(task.getCommonTask())){ +//// if(param.getId()==null) { +//// //给普通任务下先存项目 +//// TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); +//// BeanUtil.copyProperties(normalTaskList1.get(i), normalTask); +//// normalTask.setSecondTasks(task.getCommonTask()); +//// normalTaskList.add(normalTask); +//// }else { +//// //自查项目不要项目信息 +//// task.getCommonTask().forEach(ac1->{ +//// normalTaskList.add(ac1); +//// }); +//// } +//// } +//// } +//// taskInfo.setGlobalTaskList(globalTaskList); +//// taskInfo.setNormalTaskList(normalTaskList); +//// for (TaskVo.NormalTask normalTask : taskInfo.getNormalTaskList()) { +//// if (null != normalTask.getDetailId()){ +//// ProPluginConfigExample configExample = new ProPluginConfigExample(); +//// configExample.createCriteria().andTaskIdEqualTo(normalTask.getDetailId()).andPlaceLocationEqualTo((byte) 0); +//// List proPluginConfigs = pluginConfigDao.selectByExample(configExample); +//// if (CollectionUtil.isNotEmpty(proPluginConfigs)){ +//// ProPluginConfig config = proPluginConfigs.get(0); +//// normalTask.setImportParam(config.getImportParam()); +//// normalTask.setRoutineLocation(config.getRoutineLocation()); +//// normalTask.setWebPath(config.getWebPath()); +//// } +//// } +//// } +// +// return taskInfo; +// } /** * 查询二级任务下的所有的子任务 - * - * @param param - * @param userId - * @return */ @Override public List selByTwoTaskId(LwbsDto.SelByProjectIdToTaskDto param, Long userId,Long taskId) { @@ -233,8 +219,6 @@ public class InputDocService implements IInputDocService { /** * 根据任务id查找输入文档 - * @param param 任务id - * @return */ @Override public List findDocByTask(InputDocDto.FindDocByTask param) { @@ -253,20 +237,8 @@ public class InputDocService implements IInputDocService { for (InputDocVo.Record record:docs.getRecords()){ if(ObjectUtil.isNotNull(record.getFileIds())) { try { - //拆分文件id - String[] split = record.getFileIds().split(","); - List splits =new ArrayList<>(Arrays.asList(split)); - if(split.length != 0){ - //获取文件项目的路径 - String requestUrl = PropUtil.filedeal; - //通过文件id查询文件信息 - String c = RestTemplateUtil.postBody1(requestUrl,splits); - JsonResponse> a = JSONObject.parseObject(c,JsonResponse.class); - if(ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())){ - List fileList = a.getData(); - record.setFileList(fileList); - } - } + List fileByFileIds = getFileByFileIds(record.getFileIds()); + record.setFileList(fileByFileIds); }catch (Exception e){ log.info("查询文件信息失败:{}", e); } @@ -278,6 +250,24 @@ public class InputDocService implements IInputDocService { return docByTasks; } + private List getFileByFileIds(String fileIds) { + List filePositions = new ArrayList<>(); + //拆分文件id + String[] split = fileIds.split(","); + List splits =new ArrayList<>(Arrays.asList(split)); + if(split.length != 0){ + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,splits); + JsonResponse> a = JSONObject.parseObject(c,JsonResponse.class); + if(ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())){ + filePositions = a.getData(); + } + } + return filePositions; + } + /** * 给输入文档上传文件 * @param param docId 文档id @@ -298,17 +288,17 @@ public class InputDocService implements IInputDocService { ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord(); //多文件添加 if (!ArrayUtil.isEmpty(param.getFileIds())){ - String fileIds = ""; + StringBuilder fileIds = new StringBuilder(); for (int i = 0; i < param.getFileIds().length; i++) { - fileIds = fileIds + param.getFileIds()[i]+","; + fileIds.append(param.getFileIds()[i]).append(","); } - fileIds = fileIds.substring(0,fileIds.length()-1); + fileIds = new StringBuilder(fileIds.substring(0, fileIds.length() - 1)); - proTaskInputRecord.setFileId(fileIds); + proTaskInputRecord.setFileId(fileIds.toString()); proTaskInputRecord.setInputDocId(param.getDocId()); proTaskInputRecord.setStatus((byte)1); - proTaskInputRecord.setId(snowflake.nextId()); proTaskInputRecord.setUserId(userId); + proTaskInputRecord.setId(snowflake.nextId()); proTaskInputRecord.setRemark(param.getRemark()); proTaskInputRecordMapper.insertSelective(proTaskInputRecord); historyRecord.setHistoryRemark(param.getRemark()); @@ -334,8 +324,8 @@ public class InputDocService implements IInputDocService { //通过输入文档id将输入文档表中的状态更改为已上传 ProTaskInputDoc proTaskInputDoc = new ProTaskInputDoc(); - proTaskInputDoc.setId(param.getDocId()); proTaskInputDoc.setIsUpload(1); + proTaskInputDoc.setId(param.getDocId()); proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc); } //查找项目id @@ -366,8 +356,6 @@ public class InputDocService implements IInputDocService { /** * 查看文档上传文件历史记录 - * @param param docId 文档id - * @return */ @Override public List viewDocHistory(InputDocDto.ViewDocHistory param) { @@ -409,7 +397,6 @@ public class InputDocService implements IInputDocService { /** * 添加输入文档 - * @param param */ @Override public void addDoc(InputDocDto.AddDoc param) { @@ -441,7 +428,6 @@ public class InputDocService implements IInputDocService { /** * 修改输入文档 - * @param param */ @Override public void updateDoc(InputDocDto.UpdateDoc param) { @@ -473,7 +459,6 @@ public class InputDocService implements IInputDocService { /** * 删除输入文档 - * @param param */ @Override public void delDoc(InputDocDto.DeleteDoc param) { @@ -500,7 +485,6 @@ public class InputDocService implements IInputDocService { /** * 删除输入文档中的文件 - * @param param */ @Override public void delDocOfFile(InputDocDto.DeleteDocOfFile param,Long userId) throws Exception{ @@ -556,7 +540,6 @@ public class InputDocService implements IInputDocService { /** * 修改上传文件的备注信息 - * @param param */ @Override public void updateDocOfRemark(InputDocDto.UpdateDocOfRemark param,Long userId) throws Exception{ @@ -596,8 +579,6 @@ public class InputDocService implements IInputDocService { /** * 查询历史记录(根据任务id) - * @param param - * @return */ @Override public PageInfo findDocRecordByTask(InputDocDto.FindDocRecordByTask param) { @@ -617,7 +598,7 @@ public class InputDocService implements IInputDocService { * @param param 输入文档id */ @Override - public void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) { + public void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param,Long userId) throws Exception { ProTaskInputRecordExample example = new ProTaskInputRecordExample(); example.createCriteria().andInputDocIdEqualTo(param.getDocId()).andRecStatusEqualTo((byte)0); List records = proTaskInputRecordMapper.selectByExample(example); @@ -626,7 +607,7 @@ public class InputDocService implements IInputDocService { example2.createCriteria().andInputDocIdEqualTo(param.getDocId()); ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord(); proTaskInputRecord.setRecStatus((byte)2); - proTaskInputRecordMapper.updateByExampleSelective(proTaskInputRecord,example2); + //文档 改回未上传状态 ProTaskInputDoc doc = new ProTaskInputDoc(); @@ -636,37 +617,43 @@ public class InputDocService implements IInputDocService { //将操作保存到历史信息记录表 //查找项目id - try { - ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(doc.getTaskDetailId()); - ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId()); - - //将操作记录添加到历史记录表中 - ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord(); - historyRecord.setId(snowflake.nextId()); - historyRecord.setDeliverId(doc.getId()); - historyRecord.setDeliverType((byte)0); - - historyRecord.setDoType((byte)6); - historyRecord.setMemberId(proMember.getId()); - deliverHistoryRecordDao.insertSelective(historyRecord); - }catch (Exception e){ - log.info("删除输入文档下所有文件记录",e); + ProTaskInputDoc inputDoc = proTaskInputDocMapper.selectByPrimaryKey(doc.getId()); + ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(inputDoc.getTaskDetailId()); + + ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId()); + //将操作记录添加到历史记录表中 + ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord(); + historyRecord.setId(snowflake.nextId()); + historyRecord.setDeliverId(doc.getId()); + historyRecord.setDeliverType((byte)0); + historyRecord.setDoType((byte)6); + historyRecord.setMemberId(proMember.getId()); + deliverHistoryRecordDao.insertSelective(historyRecord); + + //发送消息 + if (ObjectUtil.isNotNull(taskDetail)){ + robotService.delDocRobotSend(userId,taskDetail,inputDoc.getName()); } + proTaskInputRecordMapper.updateByExampleSelective(proTaskInputRecord,example2); } } /** * 查看交付物的历史记录 - * @param param - * @return */ @Override public PageInfo viewDeliverHistory(InputDocDto.DeliverHistory param) { //0为输出文档 if (0 == param.getDeliverType()) { PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List historyList = deliverHistoryRecordDao.findInputHistory(param.getDeliverId()); +// ProTaskInputDoc proTaskInputDoc = proTaskInputDocMapper.selectByPrimaryKey(param.getDeliverId()); +// if(ObjectUtil.isNotNull(proTaskInputDoc)){ +// historyList +// } + for (InputDocVo.DeliverHistory deliverHistory : historyList) { if (StrUtil.isNotBlank(deliverHistory.getFileIds())){ if (deliverHistory.getFileIds().contains(",")) { @@ -683,19 +670,19 @@ public class InputDocService implements IInputDocService { deliverHistory.setFileList(fileList); } } - } - }else{ - if (StrUtil.isNotBlank(deliverHistory.getFileIds())){ - List idList = new ArrayList<>(); - idList.add(deliverHistory.getFileIds()); - //获取文件项目的路径 - String requestUrl = PropUtil.filedeal; - //通过文件id查询文件信息 - String c = RestTemplateUtil.postBody1(requestUrl, idList); - JsonResponse> a = JSONObject.parseObject(c, JsonResponse.class); - if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) { - List fileList = a.getData(); - deliverHistory.setFileList(fileList); + }else{ + if (StrUtil.isNotBlank(deliverHistory.getFileIds())){ + List idList = new ArrayList<>(); + idList.add(deliverHistory.getFileIds()); + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl, idList); + JsonResponse> a = JSONObject.parseObject(c, JsonResponse.class); + if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) { + List fileList = a.getData(); + deliverHistory.setFileList(fileList); + } } } } @@ -723,19 +710,20 @@ public class InputDocService implements IInputDocService { deliverHistory.setFileList(fileList); } } - } - }else{ - if (StrUtil.isNotBlank(deliverHistory.getFileIds())){ - List idList = new ArrayList<>(); - idList.add(deliverHistory.getFileIds()); - //获取文件项目的路径 - String requestUrl = PropUtil.filedeal; - //通过文件id查询文件信息 - String c = RestTemplateUtil.postBody1(requestUrl, idList); - JsonResponse> a = JSONObject.parseObject(c, JsonResponse.class); - if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) { - List fileList = a.getData(); - deliverHistory.setFileList(fileList); + }else { + if (StrUtil.isNotBlank(deliverHistory.getFileIds())){ + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + List idList = new ArrayList<>(); + idList.add(deliverHistory.getFileIds()); + + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl, idList); + JsonResponse> a = JSONObject.parseObject(c, JsonResponse.class); + if (ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())) { + List fileList = a.getData(); + deliverHistory.setFileList(fileList); + } } } } diff --git a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java index 8986492e..bc9e5d46 100644 --- a/tall/src/main/java/com/ccsens/tall/service/LwbsService.java +++ b/tall/src/main/java/com/ccsens/tall/service/LwbsService.java @@ -135,5 +135,4 @@ public class LwbsService implements ILwbsService{ } return proTaskInfo; } - } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java index efd9750e..38039930 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java @@ -54,6 +54,8 @@ public class ProMemberService implements IProMemberService { private UserAttentionDao userAttentionDao; @Resource private SysImitationMapper imitationMapper; + @Resource + private RobotService robotService; @Override @@ -339,6 +341,10 @@ public class ProMemberService implements IProMemberService { userAttentionDao.insertSelective(userAttention); } } + + //发送系统消息 + robotService.saveMemberRobotSend(currentUserId,saveMember.getProjectId(),saveMember.getMemberName(),proMember.getId()); + } else { throw new BaseException(CodeEnum.NOT_POWER); } @@ -346,7 +352,7 @@ public class ProMemberService implements IProMemberService { } @Override - public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) { + public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) throws Exception { //查找要删除的成员 ProMember proMember = proMemberDao.selectByPrimaryKey(deleteMember.getMemberId()); if (ObjectUtil.isNull(proMember)) { @@ -357,6 +363,10 @@ public class ProMemberService implements IProMemberService { if (power < 2) { throw new BaseException(CodeEnum.NOT_POWER); } + + //发送系统消息 + robotService.delMemberRobotSend(currentUserId,proMember.getProjectId(),proMember.getNickname(),proMember.getId()); + //修改成员状态来删除 proMember.setRecStatus((byte) 2); proMemberDao.updateByPrimaryKeySelective(proMember); @@ -442,6 +452,9 @@ public class ProMemberService implements IProMemberService { proMember.setStakeholderId(stakeholderId); // } proMemberDao.updateByPrimaryKeySelective(proMember); + + //发送系统消息 + robotService.updateMemberRobotSend(currentUserId,proMember.getProjectId(),proMember.getNickname(),proMember.getId()); //查找被修改的成员的信息并返回 return proMemberDao.getMemberInfoByMemberId(updateMemberInfo.getMemberId()); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index f468cff6..d3ac19d3 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -74,6 +74,8 @@ public class ProRoleService implements IProRoleService { private ProRoleMapper proRoleMapper; @Resource private ProRoleExcludeMapper proRoleExcludeMapper; + @Resource + private RobotService robotService; @Override public void saveProRole(ProRole proRole) { proRoleDao.insertSelective(proRole); @@ -194,10 +196,12 @@ public class ProRoleService implements IProRoleService { //是否PM for (ProjectVo.RoleInfo memberRole : memberRoleList) { ProRole parentRole = proRoleDao.selectByPrimaryKey(memberRole.getParentId()); - if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) { - memberRole.setPm(true); - } else { - memberRole.setPm(false); + if(ObjectUtil.isNotNull(parentRole)) { + if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) { + memberRole.setPm(true); + } else { + memberRole.setPm(false); + } } } //奖惩干系人信息 @@ -369,6 +373,7 @@ public class ProRoleService implements IProRoleService { //查看角色展示列表中是否有数据 ProMemberRoleShowExample proMemberRoleShowExampleNew=new ProMemberRoleShowExample(); proMemberRoleShowExampleNew.createCriteria().andMemberIdEqualTo(memberId); + proMemberRoleShowExampleNew.setOrderByClause("sequence"); List proMemberRoleShowsNew = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExampleNew); List roleIds = new ArrayList<>(); @@ -376,9 +381,26 @@ public class ProRoleService implements IProRoleService { roleIds.add(roleShow.getRoleId()); } //查询二级角色 - memberRoleList = proRoleDao.selectSecondRolesShowByRoleId(projectId,roleIds); + memberRoleList = proRoleDao.selectSecondRolesShowByRoleId(projectId,memberId); //在show表查找可见的角色 + + // TODO 查找此项目的子项目 + SysProjectExample projectExample = new SysProjectExample(); + projectExample.createCriteria().andParentIdEqualTo(projectId); + List sysProjectList = sysProjectDao.selectByExample(projectExample); + if(CollectionUtil.isNotEmpty(sysProjectList)){ + sysProjectList.forEach(project -> { + ProjectVo.RoleInfo roleInfo = new ProjectVo.RoleInfo(); + roleInfo.setId(project.getId()); + roleInfo.setName(project.getName()); + roleInfo.setProjectRole((byte) 1); + roleInfo.setRelevanceProjectId(project.getId()); + roleInfo.setRelevanceProjectName(project.getName()); + memberRoleList.add(roleInfo); + }); + } + return memberRoleList; } @@ -469,7 +491,7 @@ public class ProRoleService implements IProRoleService { * 删除角色 */ @Override - public void deleteRole(Long userId, Long roleId) { + public void deleteRole(Long userId, Long roleId) throws Exception { ProRole role = proRoleDao.selectByPrimaryKey(roleId); //TODO 项目经理不能被删除 Integer i = proRoleDao.isPmByRoleId(roleId); @@ -482,6 +504,9 @@ public class ProRoleService implements IProRoleService { if (ObjectUtil.isNotNull(role)) { int power = selectPowerByRoleName(userId, role.getProjectId()); if (power > 1) { + //发送系统消息 + robotService.delRoleRobotSend(userId,role.getProjectId(),role.getName(),role.getId()); + //修改删除状态 role.setRecStatus(WebConstant.REC_STATUS.Deleted.value); proRoleDao.updateByPrimaryKeySelective(role); @@ -555,7 +580,7 @@ public class ProRoleService implements IProRoleService { @Override - public RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) { + public RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception { //检查操作者的权限 int power = selectPowerByRoleName(currentUserId, saveRole.getProjectId()); if (power < 2) { @@ -579,11 +604,14 @@ public class ProRoleService implements IProRoleService { RoleVo.RoleByProjectId roleInfo = new RoleVo.RoleByProjectId(); roleInfo.setRoleId(role.getId()); roleInfo.setRoleName(role.getName()); + + //发送系统消息 + robotService.addRoleRobotSend(currentUserId,saveRole.getProjectId(),saveRole.getRoleName(),roleInfo.getRoleId()); return roleInfo; } @Override - public ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) { + public ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) throws Exception { //查找角色 ProRole proRole = proRoleDao.selectByPrimaryKey(updateRole.getRoleId()); if (ObjectUtil.isNull(proRole)) { @@ -611,6 +639,9 @@ public class ProRoleService implements IProRoleService { } } proRoleDao.updateByPrimaryKeySelective(proRole); + + //发送系统消息 + robotService.updateRoleRobotSend(currentUserId,proRole.getProjectId(),updateRole.getRoleName(),updateRole.getRoleId()); return getRoleInfoByRoleId(proRole.getId()); } @@ -665,7 +696,9 @@ public class ProRoleService implements IProRoleService { } @Override +// public TaskVo.ProTaskInfo queryByProjectVirtualRole(RoleDto.ProjectId projectId) { public List queryByProjectVirtualRole(RoleDto.ProjectId projectId) { + TaskVo.ProTaskInfo proTaskInfo = new TaskVo.ProTaskInfo(); List taskList = new ArrayList<>(); //查找项目 SysProject project = sysProjectDao.selectByPrimaryKey(projectId.getProjectId()); @@ -689,7 +722,7 @@ public class ProRoleService implements IProRoleService { normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setSequence(sequence); - List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), 1,beginTime,endTime); + List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), "里程碑",beginTime,endTime); List secondList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(secondTaskList)) { secondTaskList.forEach(secondTask -> { @@ -704,6 +737,7 @@ public class ProRoleService implements IProRoleService { taskList.add(normalTask); }); } + proTaskInfo.setNormalTaskList(taskList); return taskList; } @@ -743,7 +777,7 @@ public class ProRoleService implements IProRoleService { } @Override - public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) { + public RoleVo.JueSeByProIdLists queryRoleShows(QueryDto param) throws Exception { RoleVo.JueSeByProIdLists jueSeByProIdLists=new RoleVo.JueSeByProIdLists(); //获取成员id Long memberId = queryMemberId(param.getParam().getProjectId(), param.getUserId()); @@ -758,18 +792,46 @@ public class ProRoleService implements IProRoleService { List proRoles = proRoleMapper.selectByExample(proRoleExample1); List jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList()); + //获取用户在项目中的角色 + List roleList = proMemberService.selectRolesByUserIdAndProjectId(param.getUserId(), param.getParam().getProjectId(), 0); + //查询已经添加的角色 List listBefor=proRoleDao.queryRoleShowslistAfter(memberId); List listBeforeId= listBefor.stream().map(action ->{return action.getId();}).collect(Collectors.toList()); for (int i = 0; i < listBefor.size(); i++) { + //是否项目经理 if(jili1.contains(listBefor.get(i).getId())){ listBefor.get(i).setIsPM(true); }else { listBefor.get(i).setIsPM(false); } + //当前用户是否属于该角色 + for (ProRole proRole : roleList) { + if (listBefor.get(i).getId().equals(proRole.getId())){ + listBefor.get(i).setMine(true); + }else{ + listBefor.get(i).setMine(false); + } + } } //查询未添加的角色 List listAfter=proRoleDao.queryRoleShowslistBefore(param.getParam().getProjectId(),listBeforeId); + for (int i = 0; i < listAfter.size(); i++) { + //是否项目经理 + if(jili1.contains(listAfter.get(i).getId())){ + listAfter.get(i).setIsPM(true); + }else { + listAfter.get(i).setIsPM(false); + } + //当前用户是否属于该角色 + for (ProRole proRole : roleList) { + if (listAfter.get(i).getId().equals(proRole.getId())){ + listAfter.get(i).setMine(true); + }else{ + listAfter.get(i).setMine(false); + } + } + } jueSeByProIdLists.setListAfter(listAfter); jueSeByProIdLists.setListBefore(listBefor); return jueSeByProIdLists; @@ -852,36 +914,65 @@ public class ProRoleService implements IProRoleService { */ @Override public void upRoleShowsOrder(QueryDto param) { - if(param.getParam().getRoleIds().size()<=1){ + if(ObjectUtil.isNull(param.getParam().getRoleIds()) || param.getParam().getRoleIds().size()<=1){ throw new BaseException(CodeEnum.ZUISHAOCHUANLIANGE); } + + //查找当前用户在项目内的成员信息 Long memberId=queryMemberId(param.getParam().getProjectId(),param.getUserId()); - ProRoleExample proRoleExample=new ProRoleExample(); - proRoleExample.createCriteria().andRecStatusEqualTo((byte)0).andNameEqualTo(WebConstant.ROLE_NAME.PM.value).andParentIdEqualTo(0L).andProjectIdEqualTo(param.getParam().getProjectId()); - //一级角色项目经理 - List jili=proRoleMapper.selectByExample(proRoleExample).stream().map(action->action.getId()).collect(Collectors.toList()); - //二级角色项目经理 - ProRoleExample proRoleExample1=new ProRoleExample(); - proRoleExample1.createCriteria().andRecStatusEqualTo((byte)0).andParentIdIn(jili); - List proRoles = proRoleMapper.selectByExample(proRoleExample1); - List jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList()); - for (int i = param.getParam().getRoleIds().size() - 1; i >= 0; i--) { - if(jili1.get(0).equals(param.getParam().getRoleIds().get(i))){ - param.getParam().getRoleIds().remove(i); - } + //根据memberID查找,改成员以前可以看见的所有角色。。。删除 + ProMemberRoleShowExample roleShowExample = new ProMemberRoleShowExample(); + roleShowExample.createCriteria().andMemberIdEqualTo(memberId); + List roleShowList = proMemberRoleShowMapper.selectByExample(roleShowExample); + if(CollectionUtil.isNotEmpty(roleShowList)){ + roleShowList.forEach(roleShow -> { + roleShow.setRecStatus((byte) 2); + proMemberRoleShowMapper.updateByPrimaryKeySelective(roleShow); + }); } - //先查出来在数据库中这几个数据中最大的序号是多少,然后再最大的上面进行加加操作 - ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); - proMemberRoleShowExample.createCriteria().andRoleIdIn(param.getParam().getRoleIds()).andRecStatusEqualTo((byte)0); - List proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); - Integer[] seq=new Integer[]{ proMemberRoleShows.stream().mapToInt(action->action.getSequence()).max().getAsInt()}; - param.getParam().getRoleIds().forEach(action->{ - ProMemberRoleShowExample proMemberRoleShowExample1=new ProMemberRoleShowExample(); - proMemberRoleShowExample1.createCriteria().andRecStatusEqualTo((byte)0).andMemberIdEqualTo(memberId).andRoleIdEqualTo(action); - ProMemberRoleShow proMemberRoleShow=new ProMemberRoleShow(); - proMemberRoleShow.setSequence(++seq[0]); - proMemberRoleShowMapper.updateByExampleSelective(proMemberRoleShow,proMemberRoleShowExample1); - }); + //根据前端传的数据,循环放入,并排序 + for (int i = 0; i < param.getParam().getRoleIds().size(); i++) { + Long roleId = param.getParam().getRoleIds().get(i); + ProMemberRoleShow proMemberRoleShow = new ProMemberRoleShow(); + proMemberRoleShow.setId(snowflake.nextId()); + proMemberRoleShow.setMemberId(memberId); + proMemberRoleShow.setRoleId(roleId); + proMemberRoleShow.setSequence(i); + proMemberRoleShowMapper.insertSelective(proMemberRoleShow); + } + + +// +// if(param.getParam().getRoleIds().size()<=1){ +// throw new BaseException(CodeEnum.ZUISHAOCHUANLIANGE); +// } +// Long memberId=queryMemberId(param.getParam().getProjectId(),param.getUserId()); +// ProRoleExample proRoleExample=new ProRoleExample(); +// proRoleExample.createCriteria().andRecStatusEqualTo((byte)0).andNameEqualTo(WebConstant.ROLE_NAME.PM.value).andParentIdEqualTo(0L).andProjectIdEqualTo(param.getParam().getProjectId()); +// //一级角色项目经理 +// List jili=proRoleMapper.selectByExample(proRoleExample).stream().map(action->action.getId()).collect(Collectors.toList()); +// //二级角色项目经理 +// ProRoleExample proRoleExample1=new ProRoleExample(); +// proRoleExample1.createCriteria().andRecStatusEqualTo((byte)0).andParentIdIn(jili); +// List proRoles = proRoleMapper.selectByExample(proRoleExample1); +// List jili1=proRoles.stream().map(action->action.getId()).collect(Collectors.toList()); +// for (int i = param.getParam().getRoleIds().size() - 1; i >= 0; i--) { +// if(jili1.get(0).equals(param.getParam().getRoleIds().get(i))){ +// param.getParam().getRoleIds().remove(i); +// } +// } +// //先查出来在数据库中这几个数据中最大的序号是多少,然后再最大的上面进行加加操作 +// ProMemberRoleShowExample proMemberRoleShowExample=new ProMemberRoleShowExample(); +// proMemberRoleShowExample.createCriteria().andRoleIdIn(param.getParam().getRoleIds()).andRecStatusEqualTo((byte)0); +// List proMemberRoleShows = proMemberRoleShowMapper.selectByExample(proMemberRoleShowExample); +// Integer[] seq=new Integer[]{ proMemberRoleShows.stream().mapToInt(action->action.getSequence()).max().getAsInt()}; +// param.getParam().getRoleIds().forEach(action->{ +// ProMemberRoleShowExample proMemberRoleShowExample1=new ProMemberRoleShowExample(); +// proMemberRoleShowExample1.createCriteria().andRecStatusEqualTo((byte)0).andMemberIdEqualTo(memberId).andRoleIdEqualTo(action); +// ProMemberRoleShow proMemberRoleShow=new ProMemberRoleShow(); +// proMemberRoleShow.setSequence(++seq[0]); +// proMemberRoleShowMapper.updateByExampleSelective(proMemberRoleShow,proMemberRoleShowExample1); +// }); } /** diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java index 79d7c53f..08ad8ce3 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectMessageService.java @@ -15,10 +15,7 @@ import com.ccsens.tall.bean.vo.MessageVo; import com.ccsens.tall.bean.vo.ProjectMessageVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.UserVo; -import com.ccsens.tall.persist.dao.ProMemberDao; -import com.ccsens.tall.persist.dao.SysAuthDao; -import com.ccsens.tall.persist.dao.SysMessageSendDao; -import com.ccsens.tall.persist.dao.SysOperationDao; +import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.mapper.SysOperationMessageMapper; import com.ccsens.tall.util.RobotUtil; import com.ccsens.tall.util.WxTemplateUtil; @@ -71,6 +68,8 @@ public class ProjectMessageService implements IProjectMessageService { private SysAuthDao sysAuthDao; @Resource private IUserService userService; + @Resource + private SysProjectDao sysProjectDao; @Resource private AmqpTemplate rabbitTemplate; @@ -367,8 +366,19 @@ public class ProjectMessageService implements IProjectMessageService { @Override public PageInfo queryProjectMsg(ProjectMessageDto.ProjectMsg param, Long userId) { + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(userId.equals(param.getProjectId())){ + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(param.getStartTime(),param.getEndTime(),userId); + }else { + //不是lwbs正常查询 + projectIdList.add(param.getProjectId()); + } + PageHelper.startPage(param.getPageNum(), param.getPageSize()); - List list = sysOperationDao.queryProjectMsg(param); +// List list = sysOperationDao.queryProjectMsg(param); + List list = sysOperationDao.queryProjectMsg(projectIdList); return new PageInfo<>(list); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java index 014bb798..687ccc86 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java @@ -80,6 +80,8 @@ public class ProjectService implements IProjectService { private SysAuthDao sysAuthDao; @Resource private SysProjectLabelDao sysProjectLabelDao; + @Resource + private RobotService robotService; @Override @@ -576,11 +578,14 @@ public class ProjectService implements IProjectService { proRoleDao.updateByPrimaryKeySelective(role); }); } + + //发送消息 + robotService.delProjectRobotSend(currentUserId,projectId); + //修改项目状态 project.setRecStatus(WebConstant.REC_STATUS.Deleted.value); sysProjectDao.updateByPrimaryKeySelective(project); - } else { throw new BaseException(CodeEnum.NOT_POWER); } @@ -624,6 +629,7 @@ public class ProjectService implements IProjectService { BeanUtil.copyProperties(oldProject, newProject); newProject.setId(snowflake.nextId()); newProject.setCreatorId(userId); + newProject.setName(oldProject.getName() + "-副本"); newProject.setTemplate((byte) 0); saveProject(newProject); //该用户关注新项目 @@ -892,7 +898,7 @@ public class ProjectService implements IProjectService { * 修改项目信息 */ @Override - public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) { + public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) throws Exception { //查找项目 SysProject project = sysProjectDao.selectByPrimaryKey(projectInfoDto.getId()); if (ObjectUtil.isNotNull(project)) { @@ -935,6 +941,8 @@ public class ProjectService implements IProjectService { project.setHighlight(projectInfoDto.getHighlight()); } sysProjectDao.updateByPrimaryKeySelective(project); + //发送消息 + robotService.updateProjectRobotSend(currentUserId,project); } else { throw new BaseException(CodeEnum.NOT_POWER); diff --git a/tall/src/main/java/com/ccsens/tall/service/RobotService.java b/tall/src/main/java/com/ccsens/tall/service/RobotService.java index 1ae86cf2..8b13ab1e 100644 --- a/tall/src/main/java/com/ccsens/tall/service/RobotService.java +++ b/tall/src/main/java/com/ccsens/tall/service/RobotService.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.MessageVo; +import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.util.RobotUtil; @@ -59,7 +60,7 @@ public class RobotService implements IRobotService{ public void robotMessage(OperateType operateType,RobotUtil.Message message){ //获取机器人信息 SysProjectRobotExample sysProjectRobotExample = new SysProjectRobotExample(); - sysProjectRobotExample.createCriteria().andProjectIdEqualTo( message.getProjectId()); + sysProjectRobotExample.createCriteria().andProjectIdEqualTo(message.getProjectId()); List sysProjectRobotList = sysProjectRobotDao.selectByExample(sysProjectRobotExample); if(CollectionUtil.isNotEmpty(sysProjectRobotList)){ sysProjectRobotList.forEach(sysProjectRobot -> { @@ -141,6 +142,23 @@ public class RobotService implements IRobotService{ return memberPhone; } + private String[] getMemberPhonesByProject(Long projectId) throws Exception { + String[] memberPhone = new String[]{}; + List memberList = proMemberService.selectMembersByProjectId(projectId); + if(CollectionUtil.isNotEmpty(memberList)){ + String[] phones = new String[memberList.size()]; + AtomicInteger i = new AtomicInteger(0); + memberList.forEach(proMember -> { + if(StrUtil.isNotEmpty(proMember.getPhone())) { + phones[i.get()] = proMember.getPhone(); + i.set(i.get() + 1); + } + }); + memberPhone = phones; + } + return memberPhone; + } + @Override public void finishTaskRobotSend(Long currentUserId,Long projectId, String projectName, String taskName,Long executorRoleId , int completedStatus) throws Exception { String userName = userService.getUserNameByUserId(currentUserId); @@ -253,11 +271,11 @@ public class RobotService implements IRobotService{ /** * 上传交付物信息 消息 - * @param currentUserId - * @param deliverName - * @param subTimeId - * @param project - * @throws Exception + * @param currentUserId 当前用户id + * @param deliverName 交付物名称 + * @param subTimeId 分解任务id + * @param project 项目 + * @throws Exception 异常 */ @Override public void addDeliverRobotSend(Long currentUserId, String deliverName, Long subTimeId,SysProject project) throws Exception { @@ -300,11 +318,15 @@ public class RobotService implements IRobotService{ public void deleteDeliverRobotSend(Long currentUserId, String deliverName, Long subTimeId) throws Exception { String userName = userService.getUserNameByUserId(currentUserId); String projectName = ""; + ProTaskDetail taskDetail = null; ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(subTimeId); if(ObjectUtil.isNull(proTaskSubTime)){ - throw new BaseException(CodeEnum.NOT_TASK); +// throw new BaseException(CodeEnum.NOT_TASK); + taskDetail = taskDetailDao.selectByPrimaryKey(subTimeId); + }else { + taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); } - ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if(ObjectUtil.isNull(taskDetail)){ throw new BaseException(CodeEnum.NOT_TASK); } @@ -334,11 +356,11 @@ public class RobotService implements IRobotService{ /** * 检查交付物 消息 - * @param currentUserId - * @param task - * @param uploadUserId - * @param deliverName - * @throws Exception + * @param currentUserId 当前登录用户id + * @param task 任务详情 + * @param uploadUserId 上传用户id + * @param deliverName 交付物名称 + * @throws Exception 异常 */ @Override public void checkDeliverRobotSend(Long currentUserId, ProTaskDetail task, Long uploadUserId, String deliverName,Boolean flag) throws Exception { @@ -436,7 +458,6 @@ public class RobotService implements IRobotService{ RobotUtil.setInform(inform); // 添加wx消息通知 RobotUtil.setWxTemplate(WxTemplateUtil.uploadFileForDoc(project.getId(), userName,project.getName(),task.getName(),deliverable)); - } /** @@ -477,10 +498,10 @@ public class RobotService implements IRobotService{ /** * 修改输入文档备注 消息记录 - * @param userId - * @param taskDetail - * @param name - * @throws Exception + * @param userId 当前用户id + * @param taskDetail 任务详情 + * @param name 交付物名称 + * @throws Exception 异常 */ @Override public void updateRemarkRobotSend(Long userId, ProTaskDetail taskDetail, String name) throws Exception { @@ -548,4 +569,288 @@ public class RobotService implements IRobotService{ + /** + *新增角色 系统消息 + */ + @Override + public void addRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception { + String userName = userService.getUserNameByUserId(currentUserId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByRoleId(roleId); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.addRoleComment(currentUserId, userName, project.getId(), project.getName(),roleName); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.addRole(project.getId(), userName,project.getName(),roleName)); + } + + /** + *修改角色 系统消息 + */ + @Override + public void updateRoleRobotSend(Long currentUserId, Long projectId, String roleName,Long roleId) throws Exception { + String userName = userService.getUserNameByUserId(currentUserId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,roleName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByRoleId(roleId); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.updateRoleComment(currentUserId, userName, project.getId(), project.getName(),roleName); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.updateRole(project.getId(), userName,project.getName(),roleName)); + } + + /** + *删除角色 系统消息 + */ + @Override + public void delRoleRobotSend(Long userId, Long projectId, String name, Long id) throws Exception { + String userName = userService.getUserNameByUserId(userId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.RoleName.value,name) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByRoleId(id); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.delRoleComment(userId, userName, project.getId(), project.getName(),name); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.delRole(project.getId(), userName,project.getName(),name)); + } + + /** + *添加成员 系统消息 + */ + @Override + public void saveMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception { + String userName = userService.getUserNameByUserId(userId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName) + ); + //获取角色内成员的手机号(给项目中所有成员发送消息) + String[] memberPhone = getMemberPhonesByProject(projectId); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.saveMember(userId, userName, project.getId(), project.getName(),memberName); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.saveMember(project.getId(), userName,project.getName(),memberName)); + } + + /** + *删除成员 系统消息 + */ + @Override + public void delMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception { + String userName = userService.getUserNameByUserId(userId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByProject(projectId); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.delMember(userId, userName, project.getId(), project.getName(),memberName); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.delMember(project.getId(), userName,project.getName(),memberName)); + } + + /** + *修改成员 系统消息 + */ + @Override + public void updateMemberRobotSend(Long userId, Long projectId, String memberName, Long id) throws Exception { + String userName = userService.getUserNameByUserId(userId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName), + new MessageVo.Message(WebConstant.TemplateParam.MemberName.value,memberName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByProject(projectId); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.updateMember(userId, userName, project.getId(), project.getName(),memberName); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.updateMember(project.getId(), userName,project.getName(),memberName)); + } + + /** + *添加项目 系统消息 + */ + @Override + public void saveWbsRobotSend(Long currentUserId,SysProject sysProject) throws Exception { + String userName = userService.getUserNameByUserId(currentUserId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(sysProject.getId()); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByProject(project.getId()); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.saveWbs(currentUserId,userName, project.getId(), project.getName()); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.saveWbs(project.getId(),userName,project.getName())); + } + + /** + *修改项目 系统消息 + */ + @Override + public void updateProjectRobotSend(Long currentUserId,SysProject sysProject) throws Exception { + String userName = userService.getUserNameByUserId(currentUserId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(sysProject.getId()); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByProject(project.getId()); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.updateProject(currentUserId,userName, project.getId(), project.getName()); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.updateProject(project.getId(),userName,project.getName())); + } + + /** + *删除项目 系统消息 + */ + @Override + public void delProjectRobotSend(Long currentUserId,Long projectId) throws Exception { + String userName = userService.getUserNameByUserId(currentUserId); + String projectName = ""; + SysProject project = sysProjectDao.selectByPrimaryKey(projectId); + if (ObjectUtil.isNotNull(project)){ + projectName = project.getName(); + } + + //生成消息 + RobotUtil.Message message = new RobotUtil.Message(project.getId()); + message.appendParams( + new MessageVo.Message(WebConstant.TemplateParam.Operator.value,userName), + new MessageVo.Message(WebConstant.TemplateParam.ProjectName.value,projectName) + ); + //获取角色内成员的手机号 + String[] memberPhone = getMemberPhonesByProject(project.getId()); + if(memberPhone.length != 0){ + message.appendMentionedMobileList(memberPhone); + } + RobotUtil.setRobotMessage(message); + + MessageVo.Inform inform = MessageVo.delProject(currentUserId,userName, project.getId(), project.getName()); + RobotUtil.setInform(inform); + // 添加wx消息通知 + RobotUtil.setWxTemplate(WxTemplateUtil.delProject(project.getId(),userName,project.getName())); + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java index f9e0d497..fb10ea91 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -130,8 +130,10 @@ public class TaskDeliverService implements ITaskDeliverService { if (CollectionUtil.isNotEmpty(postLogList)) { ProTaskDeliverPostLog postLog = postLogList.get(0); SysCommitedFile file = commitedFileDao.selectByPrimaryKey(postLog.getFileId()); -// deliverInfoByMvp.setUrl(WebConstant.TEST_URL_BASE + file.getPath()); - deliverInfoByMvp.setUrl(PropUtil.imgDomain + "/" + file.getPath()); + if(ObjectUtil.isNotNull(file)){ + deliverInfoByMvp.setUrl(PropUtil.imgDomain + "/" + file.getPath()); +// deliverInfoByMvp.setUrl(WebConstant.TEST_URL_BASE + file.getPath()) + }; ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample(); checkerExample.createCriteria().andDeliverPostLogIdEqualTo(postLog.getId()); @@ -263,7 +265,12 @@ public class TaskDeliverService implements ITaskDeliverService { historyRecord.setDeliverId(uploadDeliver.getDeliverId()); historyRecord.setDeliverType((byte)1); historyRecord.setDeliverRecordId(deliverPostLog.getId()); - historyRecord.setDoType((byte)0); + if(CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())){ + historyRecord.setDoType((byte)0); + }else { + historyRecord.setDoType((byte)5); + } + historyRecord.setMemberId(proMember.getId()); deliverHistoryRecordDao.insertSelective(historyRecord); } @@ -1144,7 +1151,7 @@ public class TaskDeliverService implements ITaskDeliverService { * @param param */ @Override - public void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) { + public void delAllFileOfDeliver(DeliverDto.DelAllFileOfDeliver param,Long userId) throws Exception { ProTaskDeliverPostLogExample example = new ProTaskDeliverPostLogExample(); example.createCriteria().andDeliverIdEqualTo(param.getDeliverId()); List proTaskDeliverPostLogs = deliverPostLogDao.selectByExample(example); @@ -1159,24 +1166,25 @@ public class TaskDeliverService implements ITaskDeliverService { taskDeliver.setIsUpload(0); taskDeliverDao.updateByPrimaryKeySelective(taskDeliver); - try { - //向交付物历史记录表中添加数据 - //查找成员 - ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(param.getDeliverId()); - ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId()); - ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId()); - //将操作记录添加到历史记录表中 - ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord(); - historyRecord.setId(snowflake.nextId()); - historyRecord.setDeliverId(param.getDeliverId()); - historyRecord.setDeliverType((byte)1); - - historyRecord.setDoType((byte)6); - historyRecord.setMemberId(proMember.getId()); - deliverHistoryRecordDao.insertSelective(historyRecord); - }catch (Exception e){ - log.info("删除交付下所有文件",e); - } + + //向交付物历史记录表中添加数据 + //查找成员 + ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(param.getDeliverId()); + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId()); + ProMember proMember = iProMemberService.selectByUserId(userId, taskDetail.getProjectId()); + //将操作记录添加到历史记录表中 + ProDeliverHistoryRecord historyRecord = new ProDeliverHistoryRecord(); + historyRecord.setId(snowflake.nextId()); + historyRecord.setDeliverId(param.getDeliverId()); + historyRecord.setDeliverType((byte)1); + + historyRecord.setDoType((byte)6); + historyRecord.setMemberId(proMember.getId()); + deliverHistoryRecordDao.insertSelective(historyRecord); + + + //用智能助手发送消息 + robotService.deleteDeliverRobotSend(userId,deliver.getName(),taskDetail.getId()); } } diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java index e2c01af2..7801cbf1 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java @@ -673,23 +673,32 @@ public class TaskSubTimeService implements ITaskSubTimeService { * 看板上查找任务信息 * * @param currentUserId userId - * @param projectId 项目id - * @param roleId 角色id - * @param type 任务状态 0未开始 1进行中 2已完成 - * @param page 页数 - * @param pageSize 每页数量 + * @param queryKanbanTask 查找条件 * @return 任务列表 */ @Override - public List getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, - Integer page, Integer pageSize, Integer orderType, Integer order) throws Exception { + public List getKanbanTake(Long currentUserId, TaskDto.QueryKanbanTask queryKanbanTask) throws Exception { + //验证当前是否是lwbs在调用接口,项目id和当前用户id一致时认为是lwbs + List projectIdList = new ArrayList<>(); + if(currentUserId.equals(queryKanbanTask.getProjectId())){ + //查找此用户所有的项目id + projectIdList = sysProjectDao.queryProjectIdByUserId(queryKanbanTask.getStartTime(),queryKanbanTask.getEndTime(),currentUserId); + }else { + //不是lwbs正常查询 + projectIdList.add(queryKanbanTask.getProjectId()); + } + + //查询该用户在每个项目下的member + List memberIdList = proMemberDao.getIdByUserIdAndProjectId(projectIdList,currentUserId); + + //返回的list List kanBans = new ArrayList<>(); - //查找此用户在任务下的成员 - ProMember member = proMemberService.selectByUserId(currentUserId, projectId); - if (ObjectUtil.isNull(member)) { - throw new BaseException(CodeEnum.NOT_MEMBER); - } +// //查找此用户在项目下的成员 +// ProMember member = proMemberService.selectByUserId(currentUserId, queryKanbanTask.getProjectId()); +// if (ObjectUtil.isNull(member)) { +// throw new BaseException(CodeEnum.NOT_MEMBER); +// } //TODO 暂时确定三个状态 Map typeMap = new HashMap<>(0); @@ -697,32 +706,32 @@ public class TaskSubTimeService implements ITaskSubTimeService { typeMap.put(1, "进行中"); typeMap.put(2, "已完成"); - if (ObjectUtil.isNull(type)) { + if (ObjectUtil.isNull(queryKanbanTask.getType())) { for (Map.Entry entry : typeMap.entrySet()) { log.info("key= " + entry.getKey() + " and value= " + entry.getValue()); TaskVo.KanBan kanBan = new TaskVo.KanBan(); kanBan.setCode(entry.getKey()); kanBan.setTypeName(entry.getValue()); - PageHelper.startPage(page, pageSize); + PageHelper.startPage(queryKanbanTask.getPage(), queryKanbanTask.getPageSize()); if (kanBan.getCode() <= 2) { - List kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectId, roleId, kanBan.getCode(), member.getId(),orderType,order); + List kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectIdList, queryKanbanTask.getRoleId(), kanBan.getCode(), memberIdList,queryKanbanTask.getOrderType(),queryKanbanTask.getOrder()); kanBan.setTaskList(new PageInfo<>(kanBanTaskList)); } else { - List kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectId, roleId, kanBan.getCode(),orderType,order); + List kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectIdList, queryKanbanTask.getRoleId(), kanBan.getCode(),queryKanbanTask.getOrderType(),queryKanbanTask.getOrder()); kanBan.setTaskList(new PageInfo<>(kanBanTaskList)); } kanBans.add(kanBan); } } else { TaskVo.KanBan kanBan = new TaskVo.KanBan(); - kanBan.setCode(type); - kanBan.setTypeName(typeMap.get(type)); - PageHelper.startPage(page, pageSize); + kanBan.setCode(queryKanbanTask.getType()); + kanBan.setTypeName(typeMap.get(queryKanbanTask.getType())); + PageHelper.startPage(queryKanbanTask.getPage(), queryKanbanTask.getPageSize()); if (kanBan.getCode() <= 2) { - List kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectId, roleId, type, member.getId(),orderType,order); + List kanBanTaskList = taskSubTimeDao.getKanbanTake(currentUserId,projectIdList, queryKanbanTask.getRoleId(), queryKanbanTask.getType(), memberIdList,queryKanbanTask.getOrderType(),queryKanbanTask.getOrder()); kanBan.setTaskList(new PageInfo<>(kanBanTaskList)); } else { - List kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectId, roleId, type,orderType,order); + List kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(currentUserId,projectIdList, queryKanbanTask.getRoleId(), queryKanbanTask.getType(),queryKanbanTask.getOrderType(),queryKanbanTask.getOrder()); kanBan.setTaskList(new PageInfo<>(kanBanTaskList)); } kanBans.add(kanBan); diff --git a/tall/src/main/java/com/ccsens/tall/service/UserService.java b/tall/src/main/java/com/ccsens/tall/service/UserService.java index 89ed0668..425aee03 100644 --- a/tall/src/main/java/com/ccsens/tall/service/UserService.java +++ b/tall/src/main/java/com/ccsens/tall/service/UserService.java @@ -536,16 +536,16 @@ public class UserService implements IUserService { auth.setIdentifier(identifier); auth.setCredential(credential); authDao.insertSelective(auth); -// //自动添加账号密码 -// String accountName = RandomStringUtils.random(8, WebConstant.RANDOM_STR); -// SysAuth accountAuth = new SysAuth(); -// accountAuth.setId(snowflake.nextId()); -// accountAuth.setUserId(user.getId()); -// accountAuth.setIdentifyType((byte) WebConstant.IDENTIFY_TYPE.Account.value); -// accountAuth.setIdentifier("USER_" + accountName); -// accountAuth.setSalt(ShiroKit.getRandomSalt(6)); -// accountAuth.setCredential(ShiroKit.md5("123456", accountAuth.getSalt())); -// authDao.insertSelective(accountAuth); + //自动添加账号密码 + String accountName = RandomStringUtils.random(8, WebConstant.RANDOM_STR); + SysAuth accountAuth = new SysAuth(); + accountAuth.setId(snowflake.nextId()); + accountAuth.setUserId(user.getId()); + accountAuth.setIdentifyType((byte) WebConstant.IDENTIFY_TYPE.Account.value); + accountAuth.setIdentifier("USER_" + accountName); + accountAuth.setSalt(ShiroKit.getRandomSalt(6)); + accountAuth.setCredential(ShiroKit.md5("123456", accountAuth.getSalt())); + authDao.insertSelective(accountAuth); return auth; } @@ -763,8 +763,14 @@ public class UserService implements IUserService { //将用户的昵称和头像复制到成员信息内 member.setAvatarUrl(user.getAvatarUrl()); member.setNickname(user.getNickname()); - memberDao.updateByPrimaryKeySelective(member); + + //用户关注这个项目 + UserAttention attention = new UserAttention(); + attention.setId(snowflake.nextId()); + attention.setUserId(userId); + attention.setProjectId(member.getProjectId()); + userAttentionDao.insertSelective(attention); } } } diff --git a/tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java b/tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java index 533a99cf..0586bbc3 100644 --- a/tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java +++ b/tall/src/main/java/com/ccsens/tall/util/WxTemplateUtil.java @@ -221,4 +221,130 @@ public class WxTemplateUtil { message.setData(data); return message; } + + /** + * 添加角色 + */ + public static WxTemplateMessage addRole(Long projectId, String userName,String projectName,String roleName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的新增了角色" + roleName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("新增角色")); + message.setData(data); + return message; + } + + /** + * 修改角色 + */ + public static WxTemplateMessage updateRole(Long projectId, String userName,String projectName,String roleName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的修改了角色" + roleName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改角色")); + message.setData(data); + return message; + } + + /** + * 删除角色 + */ + public static WxTemplateMessage delRole(Long projectId, String userName,String projectName,String roleName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的删除了角色" + roleName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除角色")); + message.setData(data); + return message; + } + + /** + * 添加成员 + */ + public static WxTemplateMessage saveMember(Long projectId, String userName,String projectName,String memberName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的添加了成员" + memberName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("添加成员")); + message.setData(data); + return message; + } + + /** + * 删除成员 + */ + public static WxTemplateMessage delMember(Long projectId, String userName,String projectName,String memberName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的删除了成员" + memberName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除成员")); + message.setData(data); + return message; + } + + /** + * 修改成员 + */ + public static WxTemplateMessage updateMember(Long projectId, String userName,String projectName,String memberName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "在项目《"+projectName+"》内的修改了成员" + memberName)); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改成员")); + message.setData(data); + return message; + } + + /** + * 添加项目 + */ + public static WxTemplateMessage saveWbs(Long projectId, String userName,String projectName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "添加了项目《"+projectName+"》")); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("添加项目")); + message.setData(data); + return message; + } + + /** + * 修改项目 + */ + public static WxTemplateMessage updateProject(Long projectId, String userName,String projectName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "修改了项目《"+projectName+"》")); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("修改项目")); + message.setData(data); + return message; + } + + /** + * 删除项目 + */ + public static WxTemplateMessage delProject(Long projectId, String userName,String projectName) { + WxTemplateMessage message = getWxTemplateMessage(projectId); + message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); + WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); + data.setFirst(new WxTemplateMessage.TemplateSettings("")); + data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "删除了项目《"+projectName+"》")); + data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除项目")); + message.setData(data); + return message; + } } diff --git a/tall/src/main/java/com/ccsens/tall/web/DeliverController.java b/tall/src/main/java/com/ccsens/tall/web/DeliverController.java index 38f0b47f..d4db45b5 100644 --- a/tall/src/main/java/com/ccsens/tall/web/DeliverController.java +++ b/tall/src/main/java/com/ccsens/tall/web/DeliverController.java @@ -188,10 +188,11 @@ public class DeliverController { return JsonResponse.newInstance().ok(queryDeliverByTaskIds); } + @OperateType(value = 8) @MustLoginTall @ApiOperation(value = "删除输出文档下所有的文件", notes = "m:删除输出文档下所有的文件") @RequestMapping(value = "/delAllFileOfDeliver", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse delAllFileOfDeliver(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse delAllFileOfDeliver(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("删除输出文档下所有的文件:{}",params); deliverService.delAllFileOfDeliver(params.getParam(),params.getUserId()); log.info("删除输出文档下所有的文件"); diff --git a/tall/src/main/java/com/ccsens/tall/web/ExcelController.java b/tall/src/main/java/com/ccsens/tall/web/ExcelController.java index 9ecc7afe..f58fa66b 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ExcelController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ExcelController.java @@ -7,6 +7,7 @@ import com.ccsens.tall.service.IExportWbsService; import com.ccsens.util.JsonResponse; import com.ccsens.util.UploadFileUtil_Servlet3; import com.ccsens.util.WebConstant; +import com.ccsens.util.annotation.OperateType; import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -31,6 +32,7 @@ public class ExcelController { @Resource private IExportWbsService exportWbsService; + @OperateType(value = 1) @ApiOperation(value = "导入WBS",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx") @ApiImplicitParams({ @ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file") diff --git a/tall/src/main/java/com/ccsens/tall/web/InputDocController.java b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java index 1b0245a5..0ceb6cbc 100644 --- a/tall/src/main/java/com/ccsens/tall/web/InputDocController.java +++ b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java @@ -140,10 +140,11 @@ public class InputDocController { return JsonResponse.newInstance().ok(docRecordByTask); } + @OperateType(value = 16) @MustLoginTall @ApiOperation(value = "删除输入文档下所有的文件", notes = "1007:删除输入文档下所有的文件") @RequestMapping(value = "/delAllRecordOfTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse delAllRecordOfTask(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse delAllRecordOfTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("删除输入文档下所有的文件:{}",params); iInputDocService.delAllRecordOfTask(params.getParam(),params.getUserId()); log.info("删除输入文档下所有的文件"); diff --git a/tall/src/main/java/com/ccsens/tall/web/LwbsController.java b/tall/src/main/java/com/ccsens/tall/web/LwbsController.java index 2a7199a6..ebb06f88 100644 --- a/tall/src/main/java/com/ccsens/tall/web/LwbsController.java +++ b/tall/src/main/java/com/ccsens/tall/web/LwbsController.java @@ -33,7 +33,7 @@ public class LwbsController { private ILwbsService lwbsService; @MustLoginTall - @ApiOperation(value = "查询当前用户参加的所有的项目", notes = "1007:输出") + @ApiOperation(value = "查询当前用户参加的所有的项目", notes = "zy 重写") @RequestMapping(value = "/selByUserIdToComProject", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse> selByUserIdToComProject(@ApiParam @Validated @RequestBody QueryDto params) { log.info("输出某人下的所有的项目:{}",params); @@ -43,7 +43,7 @@ public class LwbsController { return JsonResponse.newInstance().ok(selBylwbs); } @MustLoginTall - @ApiOperation(value = "查询当前用户参加的项目的所有的任务", notes = "1007:输出") + @ApiOperation(value = "查询当前用户参加的项目的所有的任务", notes = "zy 重写") @RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto params) { log.info("查询某人下参加的项目的所有的任务:{}",params); diff --git a/tall/src/main/java/com/ccsens/tall/web/MemberController.java b/tall/src/main/java/com/ccsens/tall/web/MemberController.java index 2f6fd750..0ca2cfb3 100644 --- a/tall/src/main/java/com/ccsens/tall/web/MemberController.java +++ b/tall/src/main/java/com/ccsens/tall/web/MemberController.java @@ -7,6 +7,7 @@ import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.service.IProMemberService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; +import com.ccsens.util.annotation.OperateType; import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; @@ -34,7 +35,7 @@ public class MemberController { @Resource private IProMemberService proMemberService; - + @OperateType(value = 20) @ApiOperation(value = "添加成员",notes = "") @ApiImplicitParams({ }) @@ -47,6 +48,7 @@ public class MemberController { return JsonResponse.newInstance().ok(memberInfo); } + @OperateType(value = 21) @ApiOperation(value = "删除成员",notes = "") @ApiImplicitParams({ }) @@ -58,6 +60,7 @@ public class MemberController { return JsonResponse.newInstance().ok(); } + @OperateType(value = 22) @ApiOperation(value = "修改成员信息",notes = "") @ApiImplicitParams({ }) diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java index 3e8bb488..9258d8d9 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -10,6 +10,7 @@ import com.ccsens.tall.service.IProTaskDetailService; import com.ccsens.tall.service.IProjectService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; +import com.ccsens.util.annotation.OperateType; import io.jsonwebtoken.Claims; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -230,6 +231,7 @@ public class ProjectController { //============================================================== + @OperateType(value = 23) @ApiOperation(value = "删除项目(修改状态)", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "projectId", value = "项目id", required = true, paramType = "query") @@ -255,6 +257,7 @@ public class ProjectController { return JsonResponse.newInstance().ok(projectInfo); } + @OperateType(value = 2) @ApiOperation(value = "修改项目信息", notes = "") @ApiImplicitParams({ }) diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index 1ca21552..5b9fe80a 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -12,6 +12,7 @@ import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.service.IProRoleService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; +import com.ccsens.util.annotation.OperateType; import com.ccsens.util.bean.dto.QueryDto; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; @@ -35,6 +36,7 @@ public class RoleController { @Resource private IProRoleService proRoleService; + @OperateType(value = 18) @ApiOperation(value = "删除角色",notes = "") @ApiImplicitParams({ }) @@ -46,6 +48,7 @@ public class RoleController { return JsonResponse.newInstance().ok(); } + @OperateType(value = 17) @ApiOperation(value = "添加角色",notes = "") @ApiImplicitParams({ }) @@ -57,6 +60,7 @@ public class RoleController { return JsonResponse.newInstance().ok(roleInfo); } + @OperateType(value = 19) @ApiOperation(value = "修改角色信息",notes = "") @ApiImplicitParams({ }) @@ -97,7 +101,7 @@ public class RoleController { public JsonResponse> queryByProjectVirtualRole(HttpServletRequest request, @ApiParam @Validated @RequestBody RoleDto.ProjectId projectId) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - List taskListByProjectIdList = proRoleService.queryByProjectVirtualRole(projectId); + List taskListByProjectIdList = proRoleService.queryByProjectVirtualRole(projectId); return JsonResponse.newInstance().ok(taskListByProjectIdList); } @@ -123,7 +127,7 @@ public class RoleController { @MustLoginTall @ApiOperation(value = "获取该成员的角色信息和未添加的角色信息",notes = "") @RequestMapping(value = "/queryRoleShows", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryRoleShows(@ApiParam @Validated @RequestBody QueryDto param){ + public JsonResponse queryRoleShows(@ApiParam @Validated @RequestBody QueryDto param) throws Exception { log.info("传入参数:{}", param); RoleVo.JueSeByProIdLists jueSeByProIdLists=proRoleService.queryRoleShows(param); return JsonResponse.newInstance().ok(jueSeByProIdLists); diff --git a/tall/src/main/java/com/ccsens/tall/web/TaskController.java b/tall/src/main/java/com/ccsens/tall/web/TaskController.java index 4bdab28d..4a6ae85a 100644 --- a/tall/src/main/java/com/ccsens/tall/web/TaskController.java +++ b/tall/src/main/java/com/ccsens/tall/web/TaskController.java @@ -1,5 +1,6 @@ package com.ccsens.tall.web; +import cn.hutool.core.date.DateUtil; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.vo.TaskVo; @@ -16,6 +17,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Slf4j @@ -149,29 +151,45 @@ public class TaskController { @ApiOperation(value = "看板上查找任务信息", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "projectId", value = "项目id 必填", required = true, paramType = "query"), - @ApiImplicitParam(name = "type", value = "任务状态 0未开始 1进行中 2已完成", required = true, paramType = "query"), - @ApiImplicitParam(name = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query"), - @ApiImplicitParam(name = "orderType", value = "排序方式 0时间排序 1优先级排序 没有则默认时间排序",paramType = "query",dataType = "string"), - @ApiImplicitParam(name = "order", value = "排序方式 0倒序 1正序 默认倒序",paramType = "query") }) - @RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + @RequestMapping(value = "kanban", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse> getKanbanTake(HttpServletRequest request, - @RequestParam(required = true)Long projectId, - @RequestParam(required = false)Long roleId, - @RequestParam(required = false)Integer type, - @RequestParam(required = false)Integer page, - @RequestParam(required = false)Integer pageSize, - @RequestParam(required = false)Integer orderType, - @RequestParam(required = false)Integer order) throws Exception { - page = page == null ? 1 : page; - pageSize = pageSize == null ? 10 : pageSize; - orderType = orderType == null ? 0 : orderType; - order = order == null ? 0 : order; + @ApiParam @Validated @RequestBody TaskDto.QueryKanbanTask queryKanbanTask) throws Exception { + Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - List kanbanList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize,orderType,order); + List kanbanList = subTimeService.getKanbanTake(currentUserId,queryKanbanTask); return JsonResponse.newInstance().ok(kanbanList); } +// @ApiOperation(value = "看板上查找任务信息", notes = "") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "projectId", value = "项目id 必填", required = true, paramType = "query"), +// @ApiImplicitParam(name = "type", value = "任务状态 0未开始 1进行中 2已完成", required = true, paramType = "query"), +// @ApiImplicitParam(name = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query"), +// @ApiImplicitParam(name = "orderType", value = "排序方式 0时间排序 1优先级排序 没有则默认时间排序",paramType = "query",dataType = "string"), +// @ApiImplicitParam(name = "order", value = "排序方式 0倒序 1正序 默认倒序",paramType = "query") +// }) +// @RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse> getKanbanTake(HttpServletRequest request, +// @RequestParam(required = true)Long projectId, +// @RequestParam(required = false)Long roleId, +// @RequestParam(required = false)Integer type, +// @RequestParam(required = false)Integer page, +// @RequestParam(required = false)Integer pageSize, +// @RequestParam(required = false)Integer orderType, +// @RequestParam(required = false)Integer order, +// @RequestParam(required = false)Long startTime, +// @RequestParam(required = false)Long endTime) throws Exception { +// page = page == null ? 1 : page; +// pageSize = pageSize == null ? 10 : pageSize; +// orderType = orderType == null ? 0 : orderType; +// order = order == null ? 0 : order; +// startTime = startTime == null ? DateUtil.beginOfWeek(new Date()).getTime() : startTime; +// endTime = endTime == null ? DateUtil.endOfWeek(new Date()).getTime() : endTime; +// +// Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); +// List kanbanList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize,orderType,order); +// return JsonResponse.newInstance().ok(kanbanList); +// } @ApiOperation(value = "看板上修改任务信息", notes = "") @ApiImplicitParams({ diff --git a/tall/src/main/resources/application-greenvalley.yml b/tall/src/main/resources/application-greenvalley.yml index aea6965e..f6f7264a 100644 --- a/tall/src/main/resources/application-greenvalley.yml +++ b/tall/src/main/resources/application-greenvalley.yml @@ -12,9 +12,9 @@ spring: type: com.alibaba.druid.pool.DruidDataSource rabbitmq: host: 127.0.0.1 - password: 111111 + password: sd12345 port: 5672 - username: admin + username: yu redis: database: 0 host: 127.0.0.1 @@ -31,10 +31,17 @@ swagger: enable: true eureka: instance: - ip-address: 82.156.116.247 -gatewayUrl: http://82.156.116.247 /gateway/ -notGatewayUrl: http://82.156.116.247 / -smsCode: 1 +# ip-address: 82.156.116.247 + ip-address: 49.232.6.143 + + +# 平台信息 0绿谷 1创时代 +platforms: 1 file: - domain: http://82.156.116.247 /gateway/tall/v1.0/ - imgDomain: http://82.156.116.247 /gateway/tall/v1.0/uploads \ No newline at end of file + path: /home/wikiwiki/uploads/ + domain: https://www.sxwikionline.com/gateway/wiki/ + imgDomain: https://www.sxwikionline.com/gateway/wiki/uploads/upload/ + +#gatewayUrl: http://82.156.116.247 /gateway/ +#notGatewayUrl: http://82.156.116.247 / +smsCode: 1 diff --git a/tall/src/main/resources/banner.txt b/tall/src/main/resources/banner.txt index 759c9b00..57a9c224 100644 --- a/tall/src/main/resources/banner.txt +++ b/tall/src/main/resources/banner.txt @@ -1,21 +1,35 @@ -// _ooOoo_ -// o8888888o -// 88" . "88 -// (| -_- |) -// O\ = /O -// ____/`---'\____ -// . ' \\| |// `. -// / \\||| : |||// \ -// / _||||| -:- |||||- \ -// | | \\\ - /// | | -// | \_| ''\---/'' | | -// \ .-\__ `-` ___/-. / -// ___`. .' /--.--\ `. . __ -// ."" '< `.___\_<|>_/___.' >'"". -// | | : `- \`.;`\ _ /`;.`/ - ` : | | -// \ \ `-. \_ __\ /__ _/ .-` / / -// ======`-.____`-.___\_____/___.-`____.-'====== -// `=---=' -// -// ............................................. -// 佛祖保佑 永无BUG \ No newline at end of file + ++++++++ ++++++++++ + ++++++ ++++++++++++++ ++++++++++++++ ++++++++++ + ++ ++++++++++++++++++++++ ++++ + ++++++ ++++ ++++++ ++++++ + ++++++++ ++++ ++++ ++++++++++ + ++++++++++ ++ ++++ ++++++++++ + ++++++++++++ ++ ++ ++++++++++++ + ++++++++++++++ ++ ++ ++++++++++++++ + ++++++++++++++++ ++ ++ ++++++++++++++++ + ++++++++++++++++++ ++++++++++++++ ++++++++++++++ ++++++++++++++++++ + ++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++ + ++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++ + ++++++++++++++++++++++++ ++++++++++ ++++++++++++ ++++++++++++++++++++++++ + ++++++++++++++++++ ++++++++ ++++++++++ ++++++++++++++++++ + ++++++++++++++++ ++++++++ ++++++++++ ++++++++++++++++ + ++++++++++++++++ ++++++++ ++++++++ ++++++++++++++ + ++++++++++++++ ++++++++ ++++++ ++++++++++++++ + ++++++++++++++ ++++++++ ++++++++ ++++++++++++++ + ++++++++++++++ ++++++++ ++++++++ ++++++++++++ + ++ ++++++++ ++++++++ ++++++++ ++++++++ ++ + ++ ++++++++ ++++++ ++++++ ++++++++ ++ + ++ ++++++++ ++++++++ ++++++++ ++++++++ ++ + ++ ++++++++ ++++++++ ++++++++ ++++++++ ++ + ++ ++++++++ ++++++++ ++++++++ ++++++++ ++ + ++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++ + ++ ++++++++++++++++++++++++++ ++++++++++++++++++++++++++ ++ + ++ ++++++++++++++++++ ++++++++++++++++++ ++ + ++ ++++++++++ ++++++++++++++ ++++++++++++ ++ + ++ ++++++++++ ++ + ++++ ++++++ ++++ + ++++ ++ ++++ + ++++++++ ++++++++ + ++++++++++++++++++++++++++ + + \ No newline at end of file diff --git a/tall/src/main/resources/banner2.txt b/tall/src/main/resources/banner2.txt new file mode 100644 index 00000000..759c9b00 --- /dev/null +++ b/tall/src/main/resources/banner2.txt @@ -0,0 +1,21 @@ +// _ooOoo_ +// o8888888o +// 88" . "88 +// (| -_- |) +// O\ = /O +// ____/`---'\____ +// . ' \\| |// `. +// / \\||| : |||// \ +// / _||||| -:- |||||- \ +// | | \\\ - /// | | +// | \_| ''\---/'' | | +// \ .-\__ `-` ___/-. / +// ___`. .' /--.--\ `. . __ +// ."" '< `.___\_<|>_/___.' >'"". +// | | : `- \`.;`\ _ /`;.`/ - ` : | | +// \ \ `-. \_ __\ /__ _/ .-` / / +// ======`-.____`-.___\_____/___.-`____.-'====== +// `=---=' +// +// ............................................. +// 佛祖保佑 永无BUG \ No newline at end of file diff --git a/tall/src/main/resources/druid-greenvalley.yml b/tall/src/main/resources/druid-greenvalley.yml index 4f9d2b2e..193bb4ed 100644 --- a/tall/src/main/resources/druid-greenvalley.yml +++ b/tall/src/main/resources/druid-greenvalley.yml @@ -15,7 +15,8 @@ spring: maxWait: 60000 minEvictableIdleTimeMillis: 300000 minIdle: 5 - password: 6ba13d9930a6ad888a3704376c920a75 + password: +# password: 6ba13d9930a6ad888a3704376c920a75 poolPreparedStatements: true servletLogSlowSql: true servletLoginPassword: 111111 @@ -27,7 +28,7 @@ spring: testOnReturn: false testWhileIdle: true timeBetweenEvictionRunsMillis: 60000 - url: jdbc:mysql://49.232.6.143:3306/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true + url: jdbc:mysql://127.0.0.1/tall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true username: root validationQuery: SELECT 1 FROM DUAL - env: CCSENS_GREENVALLEY \ No newline at end of file + env: CCSENS_ENTERPRISE \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml b/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml index 6936cc95..a621ce5c 100644 --- a/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml +++ b/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml @@ -18,11 +18,12 @@ FROM t_pro_deliver_history_record AS pdhr LEFT JOIN t_pro_role AS pr ON pdhr.role_id = pr.id and pr.rec_status = 0 - LEFT JOIN t_pro_task_input_record AS ptir ON ptir.id = pdhr.deliver_record_id and ptir.rec_status = 0 + LEFT JOIN t_pro_task_input_record AS ptir ON ptir.id = pdhr.deliver_record_id LEFT JOIN t_pro_member AS pm ON pm.id = pdhr.member_id and pm.rec_status = 0 WHERE pdhr.deliver_id = #{deliverId} and pdhr.rec_status = 0 + ORDER BY pdhr.created_at DESC \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProMemberDao.xml b/tall/src/main/resources/mapper_dao/ProMemberDao.xml index 5e2c6916..d7be6c8f 100644 --- a/tall/src/main/resources/mapper_dao/ProMemberDao.xml +++ b/tall/src/main/resources/mapper_dao/ProMemberDao.xml @@ -333,4 +333,16 @@ m.rec_status = 0 GROUP BY m.id + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 0099670b..e8f91887 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -141,13 +141,15 @@ from t_pro_role pr LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id LEFT JOIN t_pro_member m ON mr.member_id = m.id + LEFT JOIN t_pro_member_role_show AS rs ON rs.role_id = pr.id and rs.rec_status =0 where pr.project_id = #{projectId} AND - pr.id in - - #{role} - + rs.member_id = #{memberId} + + + + and (SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole') AND @@ -156,6 +158,7 @@ pr.rec_status = 0 AND (mr.rec_status = 0 or mr.rec_status is null) AND (m.rec_status = 0 or m.rec_status is null) + ORDER BY rs.sequence - select id,name,sequence + select + id,name,sequence from t_pro_role tpr where tpr.rec_status=0 and tpr.project_id=#{param1} and tpr.parent_id !=0 + and (SELECT name FROM t_pro_role pr WHERE tpr.parent_id = pr.id) in ('PM','Member') + and tpr.name not IN('观众', 'MVP') and tpr.id not in diff --git a/tall/src/main/resources/mapper_dao/SysOperationDao.xml b/tall/src/main/resources/mapper_dao/SysOperationDao.xml index 3e5efd15..6aeae11f 100644 --- a/tall/src/main/resources/mapper_dao/SysOperationDao.xml +++ b/tall/src/main/resources/mapper_dao/SysOperationDao.xml @@ -66,6 +66,17 @@ ORDER BY sort + + + + + + + + + + + @@ -454,9 +462,13 @@ GROUP BY st.task_detail_id ) t on t.sTaskId = td.id WHERE - td.project_id = #{projectId} - and td.`level` in (1,2,3) + and + td.project_id in + + #{id} + + AND td.end_time > #{beginTime} @@ -495,10 +507,13 @@ GROUP BY st.task_detail_id ) t on t.sTaskId = td.id WHERE - td.project_id = #{projectId} - and td.`level` in (2,3) and + td.project_id in + + #{id} + + and td.begin_time < #{endTime} and td.end_time > #{startTime} @@ -540,7 +555,10 @@ d.executor_role = #{roleId} and - d.project_id = #{projectId} + d.project_id in + + #{id} + group by FROM_UNIXTIME(m.real_finish_time/1000,'%Y-%m-%d') ) t on t.finishTime = FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d') WHERE @@ -552,7 +570,10 @@ d.executor_role = #{roleId} and - d.project_id = #{projectId} + d.project_id in + + #{id} + group by FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d') @@ -587,4 +608,19 @@ and p.begin_time < #{endTime} GROUP BY p.id + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index 46c7d388..e8cdbddd 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -657,6 +657,7 @@ s.rec_status = 0 and d.executor_role = #{userId} AND d.project_id = 0 + order by s.begin_time )t LEFT JOIN t_pro_task_show ts on t.tDetailId = ts.task_detail_id and ts.rec_status = 0 @@ -717,9 +718,11 @@ AND s.end_time >= #{startTime} AND d.Level = 2 + order by s.begin_time )t LEFT JOIN t_pro_task_show ts on t.tDetailId = ts.task_detail_id and ts.rec_status = 0 + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml b/tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml index e2831abd..a220a531 100644 --- a/tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml @@ -65,61 +65,54 @@ s.end_time as taskEndTime, if(a.rId is not null or r.`name` = '全体成员',1,0) as mine FROM - t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id + t_pro_task_detail d + LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id LEFT JOIN t_pro_role r on r.id = d.executor_role LEFT JOIN - ( - SELECT - count(m.id) as mid, - s.id as sId - FROM - t_pro_sub_time_member m LEFT JOIN t_pro_task_sub_time s on m.task_sub_time_id = s.id - WHERE - m.member_id = #{memberId} - and - m.rec_status = 0 - )t on t.sId = s.id + ( + SELECT + count(m.id) as mid, + s.id as sId + FROM + t_pro_sub_time_member m LEFT JOIN t_pro_task_sub_time s on m.task_sub_time_id = s.id + WHERE + m.rec_status = 0 + and m.member_id in + + #{id} + + )t on t.sId = s.id LEFT JOIN - ( - SELECT - r.id as rId - FROM - t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id - LEFT JOIN t_pro_member m on mr.member_id = m.id - WHERE - m.user_id = #{userId} - and m.rec_status = 0 - and r.rec_status = 0 - ) a on a.rId = r.id - + ( + SELECT + r.id as rId + FROM + t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id + LEFT JOIN t_pro_member m on mr.member_id = m.id + WHERE + m.user_id = #{userId} + and m.rec_status = 0 + and r.rec_status = 0 + ) a on a.rId = r.id WHERE - d.project_id = #{projectId} - and d.rec_status = 0 - and - d.level != 0 - and - d.level != 1 + and d.project_id in + + #{id} + + and d.level != 0 + and d.level != 1 - and - r.id = #{roleId} + and r.id = #{roleId} + and s.complated_status = #{type} + and FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') < NOW() and - s.complated_status = #{type} - and - FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') < NOW() - and - ( - ( - d.finish_need_all = 0 - ) - or - ( - d.finish_need_all = 1 - and - t.mid > 0 - ) - ) + ( + ( d.finish_need_all = 0 ) + or + ( d.finish_need_all = 1 and t.mid > 0 ) + ) ORDER BY s.begin_time DESC @@ -128,7 +121,6 @@ d.priority DESC ,s.begin_time DESC - - select trc.id, - trc.`code`, - trc.`name`, - tq.id AS id2, - tq.question - FROM - t_report_code trc, t_question tq - WHERE - trc.LEVEL = 1 - AND trc.rec_status =0 - and tq.CODE = trc.CODE - AND tq.rec_status = 0 - order by trc.sort,tq.sort - + + + \ No newline at end of file diff --git a/tcm/src/main/resources/mapper_dao/QuestionHospitalDao.xml b/tcm/src/main/resources/mapper_dao/QuestionHospitalDao.xml index 27b59fb7..09ac148a 100644 --- a/tcm/src/main/resources/mapper_dao/QuestionHospitalDao.xml +++ b/tcm/src/main/resources/mapper_dao/QuestionHospitalDao.xml @@ -1,6 +1,24 @@ + + insert into t_question_hospital(id, question_id, hospital_id, fill_type) values + + (#{item.id}, #{item.questionId}, #{item.hospitalId}, #{item.fillType}) + + + + update t_question_hospital set rec_status = 2 + where + + (question_id = #{delItem.questionId} and hospital_id in + + #{item} + + and rec_status = 0 + ) + + select @@ -105,14 +107,14 @@ - insert into t_patient_information (id, hospitalization, inpatient_id, - input_status, hospital_id, user_id, - created_at, update_at, rec_status - ) - values (#{id,jdbcType=BIGINT}, #{hospitalization,jdbcType=VARCHAR}, #{inpatientId,jdbcType=BIGINT}, - #{inputStatus,jdbcType=TINYINT}, #{hospitalId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, - #{createdAt,jdbcType=TIMESTAMP}, #{updateAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} - ) + insert into t_patient_information (id, hospitalization, code, + inpatient_id, age, input_status, + hospital_id, user_id, created_at, + update_at, rec_status) + values (#{id,jdbcType=BIGINT}, #{hospitalization,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, + #{inpatientId,jdbcType=BIGINT}, #{age,jdbcType=INTEGER}, #{inputStatus,jdbcType=TINYINT}, + #{hospitalId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, + #{updateAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) insert into t_patient_information @@ -123,9 +125,15 @@ hospitalization, + + code, + inpatient_id, + + age, + input_status, @@ -152,9 +160,15 @@ #{hospitalization,jdbcType=VARCHAR}, + + #{code,jdbcType=VARCHAR}, + #{inpatientId,jdbcType=BIGINT}, + + #{age,jdbcType=INTEGER}, + #{inputStatus,jdbcType=TINYINT}, @@ -190,9 +204,15 @@ hospitalization = #{record.hospitalization,jdbcType=VARCHAR}, + + code = #{record.code,jdbcType=VARCHAR}, + inpatient_id = #{record.inpatientId,jdbcType=BIGINT}, + + age = #{record.age,jdbcType=INTEGER}, + input_status = #{record.inputStatus,jdbcType=TINYINT}, @@ -220,7 +240,9 @@ update t_patient_information set id = #{record.id,jdbcType=BIGINT}, hospitalization = #{record.hospitalization,jdbcType=VARCHAR}, + code = #{record.code,jdbcType=VARCHAR}, inpatient_id = #{record.inpatientId,jdbcType=BIGINT}, + age = #{record.age,jdbcType=INTEGER}, input_status = #{record.inputStatus,jdbcType=TINYINT}, hospital_id = #{record.hospitalId,jdbcType=BIGINT}, user_id = #{record.userId,jdbcType=BIGINT}, @@ -237,9 +259,15 @@ hospitalization = #{hospitalization,jdbcType=VARCHAR}, + + code = #{code,jdbcType=VARCHAR}, + inpatient_id = #{inpatientId,jdbcType=BIGINT}, + + age = #{age,jdbcType=INTEGER}, + input_status = #{inputStatus,jdbcType=TINYINT}, @@ -264,7 +292,9 @@ update t_patient_information set hospitalization = #{hospitalization,jdbcType=VARCHAR}, + code = #{code,jdbcType=VARCHAR}, inpatient_id = #{inpatientId,jdbcType=BIGINT}, + age = #{age,jdbcType=INTEGER}, input_status = #{inputStatus,jdbcType=TINYINT}, hospital_id = #{hospitalId,jdbcType=BIGINT}, user_id = #{userId,jdbcType=BIGINT}, diff --git a/tcm/src/main/resources/mapper_raw/QuestionMapper.xml b/tcm/src/main/resources/mapper_raw/QuestionMapper.xml index 516816c4..ff0d3f91 100644 --- a/tcm/src/main/resources/mapper_raw/QuestionMapper.xml +++ b/tcm/src/main/resources/mapper_raw/QuestionMapper.xml @@ -8,6 +8,7 @@ + @@ -77,8 +78,8 @@ - id, question, code, sort, units, type, reference_lower, reference_upper, relevance_option_id, - search_criteria, remark, operator, created_at, updated_at, rec_status + id, question, code, sort, units, type, fill_status, reference_lower, reference_upper, + relevance_option_id, search_criteria, remark, operator, created_at, updated_at, rec_status