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
+ p.id
+ FROM
+ t_sys_project p
+ LEFT JOIN t_sys_user_attention a on p.id = a.project_id and a.rec_status = 0
+ LEFT JOIN t_pro_member m on m.project_id = p.id and m.rec_status = 0
+ WHERE
+ a.user_id = #{userId}
+ and m.user_id = #{userId}
+ and p.rec_status = 0
+ and p.end_time > #{startTime}
+ 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
-
@@ -157,10 +149,13 @@
and r.rec_status = 0
) t on t.rId = r.id
WHERE
- d.project_id = #{projectId}
- and
d.rec_status = 0
and
+ d.project_id in
+
+ #{id}
+
+ and
d.level != 0
and
d.level != 1
diff --git a/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java b/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java
index d46b4e23..52fe382c 100644
--- a/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java
+++ b/tcm/src/main/java/com/ccsens/tcm/api/ImportController.java
@@ -1,22 +1,14 @@
package com.ccsens.tcm.api;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.ccsens.cloudutil.feign.TallFeignClient;
-import com.ccsens.tcm.bean.po.CommonFile;
-import com.ccsens.tcm.bean.vo.FileVo;
import com.ccsens.tcm.service.IImportService;
-import com.ccsens.tcm.uitl.Constant;
import com.ccsens.util.*;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.File;
-import java.util.List;
/**
* @author 逗
@@ -48,8 +40,8 @@ public class ImportController {
@ApiOperation(value = "导入病史相关",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ApiImplicitParams({})
- @RequestMapping(value = "/BSXG", method = RequestMethod.POST)
- public JsonResponse importBsxg(@RequestParam(required = true) Part file) throws Exception{
+ @RequestMapping(value = "/specialCode", method = RequestMethod.POST)
+ public JsonResponse importCode(@RequestParam(required = true) Part file, String code) throws Exception{
//1.上传文件
String allowedExts = "xls,xlsx";
@@ -57,13 +49,13 @@ public class ImportController {
String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
File excelFile = new File(dir+path);
- importService.importBsxg(excelFile, Constant.Report.CODE_BSXG);
+ importService.importQuestion(excelFile, code);
log.info("导入病史相关成功");
return JsonResponse.newInstance().ok();
}
- @ApiOperation(value = "导入病史相关",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
+ @ApiOperation(value = "导入全部试题",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ApiImplicitParams({})
@RequestMapping(value = "/all", method = RequestMethod.POST)
public JsonResponse importAll(@RequestParam(required = true) Part file) throws Exception{
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java b/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
index 2e67898d..f2baa89e 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/dto/PatientDto.java
@@ -5,10 +5,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
+import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
@@ -20,14 +17,16 @@ public class PatientDto {
@Data
@ApiModel("保存患者基本信息")
public static class SavePatient {
-// @ApiModelProperty("住院号")
-// private String hospitalization;
+ @NotBlank(message = "请输入住院号")
+ @ApiModelProperty("住院号")
+ private String hospitalization;
+ @NotNull(message = "请选择对照组")
@ApiModelProperty("对照组id")
private Long inpatientId;
@ApiModelProperty("录入状态:0:新建 1:数据搜集中 2数据搜集完成 3数据搜集超时 4:废弃")
private Byte inputStatus=0;
- @ApiModelProperty("医院id")
- private Long hospitalId;
+// @ApiModelProperty("医院id")
+// private Long hospitalId;
}
@Data
@ApiModel("查询患者基本信息")
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java b/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java
index 3959982a..944966e5 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/dto/QuestionDto.java
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
+import java.util.List;
/**
* @author 逗
@@ -22,4 +23,18 @@ public class QuestionDto {
@ApiModelProperty("第几次录入信息,默认为0查询第一次")
private Integer nums = 0;
}
+
+
+ @Data
+ public static class QuestionHospitalDel{
+ private Long questionId;
+ private List hospitalIds;
+
+ public QuestionHospitalDel(){}
+
+ public QuestionHospitalDel(Long questionId, List hospitalIds) {
+ this.questionId = questionId;
+ this.hospitalIds = hospitalIds;
+ }
+ }
}
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformation.java b/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformation.java
index 058118f3..3b1e7515 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformation.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformation.java
@@ -8,8 +8,12 @@ public class PatientInformation implements Serializable {
private String hospitalization;
+ private String code;
+
private Long inpatientId;
+ private Integer age;
+
private Byte inputStatus;
private Long hospitalId;
@@ -40,6 +44,14 @@ public class PatientInformation implements Serializable {
this.hospitalization = hospitalization == null ? null : hospitalization.trim();
}
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code == null ? null : code.trim();
+ }
+
public Long getInpatientId() {
return inpatientId;
}
@@ -48,6 +60,14 @@ public class PatientInformation implements Serializable {
this.inpatientId = inpatientId;
}
+ public Integer getAge() {
+ return age;
+ }
+
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+
public Byte getInputStatus() {
return inputStatus;
}
@@ -104,7 +124,9 @@ public class PatientInformation implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", hospitalization=").append(hospitalization);
+ sb.append(", code=").append(code);
sb.append(", inpatientId=").append(inpatientId);
+ sb.append(", age=").append(age);
sb.append(", inputStatus=").append(inputStatus);
sb.append(", hospitalId=").append(hospitalId);
sb.append(", userId=").append(userId);
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformationExample.java b/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformationExample.java
index 7d344070..a88221d9 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformationExample.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/po/PatientInformationExample.java
@@ -235,6 +235,76 @@ public class PatientInformationExample {
return (Criteria) this;
}
+ public Criteria andCodeIsNull() {
+ addCriterion("code is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeIsNotNull() {
+ addCriterion("code is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeEqualTo(String value) {
+ addCriterion("code =", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeNotEqualTo(String value) {
+ addCriterion("code <>", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeGreaterThan(String value) {
+ addCriterion("code >", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeGreaterThanOrEqualTo(String value) {
+ addCriterion("code >=", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeLessThan(String value) {
+ addCriterion("code <", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeLessThanOrEqualTo(String value) {
+ addCriterion("code <=", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeLike(String value) {
+ addCriterion("code like", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeNotLike(String value) {
+ addCriterion("code not like", value, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeIn(List values) {
+ addCriterion("code in", values, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeNotIn(List values) {
+ addCriterion("code not in", values, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeBetween(String value1, String value2) {
+ addCriterion("code between", value1, value2, "code");
+ return (Criteria) this;
+ }
+
+ public Criteria andCodeNotBetween(String value1, String value2) {
+ addCriterion("code not between", value1, value2, "code");
+ return (Criteria) this;
+ }
+
public Criteria andInpatientIdIsNull() {
addCriterion("inpatient_id is null");
return (Criteria) this;
@@ -295,6 +365,66 @@ public class PatientInformationExample {
return (Criteria) this;
}
+ public Criteria andAgeIsNull() {
+ addCriterion("age is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeIsNotNull() {
+ addCriterion("age is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeEqualTo(Integer value) {
+ addCriterion("age =", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeNotEqualTo(Integer value) {
+ addCriterion("age <>", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeGreaterThan(Integer value) {
+ addCriterion("age >", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeGreaterThanOrEqualTo(Integer value) {
+ addCriterion("age >=", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeLessThan(Integer value) {
+ addCriterion("age <", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeLessThanOrEqualTo(Integer value) {
+ addCriterion("age <=", value, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeIn(List values) {
+ addCriterion("age in", values, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeNotIn(List values) {
+ addCriterion("age not in", values, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeBetween(Integer value1, Integer value2) {
+ addCriterion("age between", value1, value2, "age");
+ return (Criteria) this;
+ }
+
+ public Criteria andAgeNotBetween(Integer value1, Integer value2) {
+ addCriterion("age not between", value1, value2, "age");
+ return (Criteria) this;
+ }
+
public Criteria andInputStatusIsNull() {
addCriterion("input_status is null");
return (Criteria) this;
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/po/Question.java b/tcm/src/main/java/com/ccsens/tcm/bean/po/Question.java
index 4c0c06db..b7d8b274 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/po/Question.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/po/Question.java
@@ -17,6 +17,8 @@ public class Question implements Serializable {
private Byte type;
+ private Byte fillStatus;
+
private BigDecimal referenceLower;
private BigDecimal referenceUpper;
@@ -85,6 +87,14 @@ public class Question implements Serializable {
this.type = type;
}
+ public Byte getFillStatus() {
+ return fillStatus;
+ }
+
+ public void setFillStatus(Byte fillStatus) {
+ this.fillStatus = fillStatus;
+ }
+
public BigDecimal getReferenceLower() {
return referenceLower;
}
@@ -169,6 +179,7 @@ public class Question implements Serializable {
sb.append(", sort=").append(sort);
sb.append(", units=").append(units);
sb.append(", type=").append(type);
+ sb.append(", fillStatus=").append(fillStatus);
sb.append(", referenceLower=").append(referenceLower);
sb.append(", referenceUpper=").append(referenceUpper);
sb.append(", relevanceOptionId=").append(relevanceOptionId);
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/po/QuestionExample.java b/tcm/src/main/java/com/ccsens/tcm/bean/po/QuestionExample.java
index 907ca748..a1b1e772 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/po/QuestionExample.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/po/QuestionExample.java
@@ -496,6 +496,66 @@ public class QuestionExample {
return (Criteria) this;
}
+ public Criteria andFillStatusIsNull() {
+ addCriterion("fill_status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusIsNotNull() {
+ addCriterion("fill_status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusEqualTo(Byte value) {
+ addCriterion("fill_status =", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusNotEqualTo(Byte value) {
+ addCriterion("fill_status <>", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusGreaterThan(Byte value) {
+ addCriterion("fill_status >", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusGreaterThanOrEqualTo(Byte value) {
+ addCriterion("fill_status >=", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusLessThan(Byte value) {
+ addCriterion("fill_status <", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusLessThanOrEqualTo(Byte value) {
+ addCriterion("fill_status <=", value, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusIn(List values) {
+ addCriterion("fill_status in", values, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusNotIn(List values) {
+ addCriterion("fill_status not in", values, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusBetween(Byte value1, Byte value2) {
+ addCriterion("fill_status between", value1, value2, "fillStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andFillStatusNotBetween(Byte value1, Byte value2) {
+ addCriterion("fill_status not between", value1, value2, "fillStatus");
+ return (Criteria) this;
+ }
+
public Criteria andReferenceLowerIsNull() {
addCriterion("reference_lower is null");
return (Criteria) this;
diff --git a/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java
index e552ee1c..be8fe277 100644
--- a/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java
+++ b/tcm/src/main/java/com/ccsens/tcm/bean/vo/QuestionVo.java
@@ -117,8 +117,10 @@ public class QuestionVo {
private int sort;
@ApiModelProperty("备注")
private String remark;
- @ApiModelProperty("记录类型 0:只记录1次数据,1:记录3次,分别为0,14,90天 ,2:记录两次,分别是180,365")
- private byte reportType;
+// @ApiModelProperty("记录类型 0:只记录1次数据,1:记录3次,分别为0,14,90天 ,2:记录两次,分别是180,365")
+// private byte reportType;
+ @ApiModelProperty("记录天数列表")
+ private List reportTypes;
@ApiModelProperty("题目信息")
private List questionVos;
@ApiModelProperty("子类型")
diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java
index 99536266..e7e67403 100644
--- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java
+++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionDao.java
@@ -59,4 +59,20 @@ public interface QuestionDao extends QuestionMapper {
List queryQuestion();
List queryQuestion1();
+
+ /**
+ * 根据code和医院查询试题
+ * @param code 试题编码
+ * @param sort 排序
+ * @param hospitalIds 医院ID
+ * @return 试题
+ */
+ Question getByCodeAndHospitals(@Param("code") String code, @Param("sort") int sort, @Param("hospitalIds") List hospitalIds);
+
+ /**
+ * 查询记录时间
+ * @param code code
+ * @return 记录时间
+ */
+ List queryTimesByCode(@Param("code") String code);
}
diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionHospitalDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionHospitalDao.java
index 2caecca5..e1017ab6 100644
--- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionHospitalDao.java
+++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/QuestionHospitalDao.java
@@ -1,5 +1,6 @@
package com.ccsens.tcm.persist.dao;
+import com.ccsens.tcm.bean.dto.QuestionDto;
import com.ccsens.tcm.bean.po.QuestionHospital;
import com.ccsens.tcm.persist.mapper.QuestionHospitalMapper;
import org.apache.ibatis.annotations.Param;
@@ -14,4 +15,16 @@ public interface QuestionHospitalDao extends QuestionHospitalMapper {
* @return 医院ID
*/
List queryAll(@Param("type") Byte type);
+
+ /**
+ * 批量删除
+ * @param questionHospitalDelList 试题ID 和医院ID
+ */
+ void deleteBatch(@Param("list") List questionHospitalDelList);
+
+ /**
+ * 批量添加
+ * @param questionHospitals 试题ID和医院ID
+ */
+ void insertBatch(@Param("list") List questionHospitals);
}
diff --git a/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java b/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java
index 13c5f1e9..66359188 100644
--- a/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java
+++ b/tcm/src/main/java/com/ccsens/tcm/persist/dao/ReportCodeDao.java
@@ -1,5 +1,6 @@
package com.ccsens.tcm.persist.dao;
+import com.ccsens.tcm.bean.po.QuestionRecordTime;
import com.ccsens.tcm.bean.po.ReportCode;
import com.ccsens.tcm.bean.vo.QuestionVo;
import com.ccsens.tcm.persist.mapper.ReportCodeMapper;
@@ -37,4 +38,10 @@ public interface ReportCodeDao extends ReportCodeMapper {
* @return
*/
List queryCodeAll();
+
+ /**
+ * 存储关联关系
+ * @param recordTimes 题目记录时间表
+ */
+ void insertTimesBatch(@Param("list") List recordTimes);
}
diff --git a/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java b/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java
index ed1213d6..cd4c1566 100644
--- a/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java
+++ b/tcm/src/main/java/com/ccsens/tcm/service/IImportService.java
@@ -21,7 +21,7 @@ public interface IImportService {
* @param excelFile excel文件
* @param codeBsxg sheet名
*/
- void importBsxg(File excelFile, String codeBsxg) throws Exception;
+ void importQuestion(File excelFile, String codeBsxg) throws Exception;
/**
* 更新redis内的试题
diff --git a/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java b/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java
index 7ac5069b..a2b232e3 100644
--- a/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java
+++ b/tcm/src/main/java/com/ccsens/tcm/service/ImportService.java
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.StrUtil;
import com.ccsens.tcm.bean.dto.CodeVo;
+import com.ccsens.tcm.bean.dto.QuestionDto;
import com.ccsens.tcm.bean.po.*;
import com.ccsens.tcm.bean.vo.QuestionVo;
import com.ccsens.tcm.persist.dao.QuestionDao;
@@ -15,6 +16,7 @@ import com.ccsens.tcm.persist.mapper.QuestionRecordTimeMapper;
import com.ccsens.tcm.uitl.Constant;
import com.ccsens.util.*;
import com.ccsens.util.exception.BaseException;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -58,27 +60,31 @@ public class ImportService implements IImportService {
List