diff --git a/tall/pom.xml b/tall/pom.xml
index 20a55616..2fae96dc 100644
--- a/tall/pom.xml
+++ b/tall/pom.xml
@@ -24,6 +24,7 @@
com.ccsens
1.0-SNAPSHOT
+
diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java
index b55d77e2..2dee9811 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java
@@ -16,6 +16,10 @@ public class ProShow implements Serializable {
private Byte duration;
+ private Byte isShowMvp;
+
+ private Byte createTask;
+
private Date createdAt;
private Date updatedAt;
@@ -72,6 +76,22 @@ public class ProShow implements Serializable {
this.duration = duration;
}
+ public Byte getIsShowMvp() {
+ return isShowMvp;
+ }
+
+ public void setIsShowMvp(Byte isShowMvp) {
+ this.isShowMvp = isShowMvp;
+ }
+
+ public Byte getCreateTask() {
+ return createTask;
+ }
+
+ public void setCreateTask(Byte createTask) {
+ this.createTask = createTask;
+ }
+
public Date getCreatedAt() {
return createdAt;
}
@@ -108,6 +128,8 @@ public class ProShow implements Serializable {
sb.append(", filter=").append(filter);
sb.append(", timeShow=").append(timeShow);
sb.append(", duration=").append(duration);
+ sb.append(", isShowMvp=").append(isShowMvp);
+ sb.append(", createTask=").append(createTask);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java
index dd8878df..587899b9 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java
@@ -475,6 +475,126 @@ public class ProShowExample {
return (Criteria) this;
}
+ public Criteria andIsShowMvpIsNull() {
+ addCriterion("is_show_mvp is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpIsNotNull() {
+ addCriterion("is_show_mvp is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpEqualTo(Byte value) {
+ addCriterion("is_show_mvp =", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpNotEqualTo(Byte value) {
+ addCriterion("is_show_mvp <>", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpGreaterThan(Byte value) {
+ addCriterion("is_show_mvp >", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpGreaterThanOrEqualTo(Byte value) {
+ addCriterion("is_show_mvp >=", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpLessThan(Byte value) {
+ addCriterion("is_show_mvp <", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpLessThanOrEqualTo(Byte value) {
+ addCriterion("is_show_mvp <=", value, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpIn(List values) {
+ addCriterion("is_show_mvp in", values, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpNotIn(List values) {
+ addCriterion("is_show_mvp not in", values, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpBetween(Byte value1, Byte value2) {
+ addCriterion("is_show_mvp between", value1, value2, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andIsShowMvpNotBetween(Byte value1, Byte value2) {
+ addCriterion("is_show_mvp not between", value1, value2, "isShowMvp");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskIsNull() {
+ addCriterion("create_task is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskIsNotNull() {
+ addCriterion("create_task is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskEqualTo(Byte value) {
+ addCriterion("create_task =", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskNotEqualTo(Byte value) {
+ addCriterion("create_task <>", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskGreaterThan(Byte value) {
+ addCriterion("create_task >", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskGreaterThanOrEqualTo(Byte value) {
+ addCriterion("create_task >=", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskLessThan(Byte value) {
+ addCriterion("create_task <", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskLessThanOrEqualTo(Byte value) {
+ addCriterion("create_task <=", value, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskIn(List values) {
+ addCriterion("create_task in", values, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskNotIn(List values) {
+ addCriterion("create_task not in", values, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskBetween(Byte value1, Byte value2) {
+ addCriterion("create_task between", value1, value2, "createTask");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTaskNotBetween(Byte value1, Byte value2) {
+ addCriterion("create_task not between", value1, value2, "createTask");
+ return (Criteria) this;
+ }
+
public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null");
return (Criteria) this;
diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
index 8ac16927..dd0663d6 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
@@ -234,4 +234,10 @@ public class TaskVo {
private String name;
}
+ @Data
+ public static class TaskIdAndSubTimeIdByParentIdAndTime{
+ private Long taskId;
+ private Long subTimeId;
+ }
+
}
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 7a06db48..83e77360 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
@@ -30,4 +30,5 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
void selectTaskByDetailId(@Param("detailId") Long detailId);
+ TaskVo.TaskIdAndSubTimeIdByParentIdAndTime selectSubTimeByTaskParentIdAndTime(@Param("parentId")Long parentId, @Param("now")Long now);
}
diff --git a/tall/src/main/java/com/ccsens/tall/rabbitMQ/MessageTest.java b/tall/src/main/java/com/ccsens/tall/rabbitMQ/MessageTest.java
new file mode 100644
index 00000000..84c9fa2d
--- /dev/null
+++ b/tall/src/main/java/com/ccsens/tall/rabbitMQ/MessageTest.java
@@ -0,0 +1,25 @@
+package com.ccsens.tall.rabbitMQ;
+
+import com.ccsens.util.JacksonUtil;
+import com.ccsens.util.bean.message.common.InMessage;
+import com.ccsens.util.bean.message.common.MessageConstant;
+import com.ccsens.util.bean.message.common.ServerMessage;
+import com.ccsens.util.config.RabbitMQConfig;
+
+import org.springframework.amqp.core.AmqpTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class MessageTest {
+ @Autowired
+ private AmqpTemplate rabbitTemplate;
+
+ public void messageTest() throws Exception {
+ ServerMessage serverMessage = new ServerMessage();
+ serverMessage.setType("Ping");
+ InMessage inMessage = InMessage.newToServerMessage(MessageConstant.DomainType.Server,serverMessage);
+ String j = JacksonUtil.beanToJson(inMessage);
+ System.out.println(j);
+ //FixMe 发送到消息队列
+ rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,j);
+ }
+}
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 09864d63..3292dc93 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java
@@ -137,7 +137,9 @@ public class ExcelService implements IExcelService {
readPlugin(xssfWorkbook,taskDetails,proRoles);
return sysProject;
}
-
+ /**
+ * 添加项目
+ */
private void readProject(XSSFSheet wbsSheet, int projectInfoStart, int projectInfoEnd, Long currentUserId,SysProject sysProject) {
XSSFRow row = wbsSheet.getRow(projectInfoStart + 1);
String projectName = ExcelUtil.getCellValue(row.getCell(0));
@@ -182,6 +184,9 @@ public class ExcelService implements IExcelService {
}
}
+ /**
+ * 读取成员相关
+ */
private void readMember(XSSFSheet wbsSheet, XSSFSheet memberSheet, int memberStart, int memberEnd,
SysProject sysProject, List proRoles, List proMembers) throws Exception {
@@ -391,7 +396,9 @@ public class ExcelService implements IExcelService {
proRoles.add(proMemberRole);
}
- //判断集合是否为空,有没有相同内容
+ /**
+ * 判断集合是否为空,有没有相同内容
+ */
private boolean proMemberRoleExist(String memberRoleName,List proRoles) {
if (CollectionUtil.isNotEmpty(proRoles)) {
for (ProRole proMemberRole : proRoles) {
@@ -403,7 +410,9 @@ public class ExcelService implements IExcelService {
return false;
}
- //添加成员与奖惩干系人
+ /**
+ * 添加成员与奖惩干系人
+ */
private void memberWhitStakeholder(XSSFSheet memberSheet, Long stakeholderId, SysProject sysProject, List proMembers) throws Exception {
List stakeholderList = new ArrayList<>();
if (ObjectUtil.isNotNull(memberSheet)) {
@@ -529,6 +538,9 @@ public class ExcelService implements IExcelService {
return false;
}
+ /**
+ * 读取任务
+ */
private void readTask(XSSFWorkbook xssfWorkbook, XSSFSheet wbsSheet, int taskStart, int taskEnd,
Long currentUserId, SysProject sysProject, List taskDetails,
List proRoles, List proMembers) throws Exception {
@@ -565,24 +577,25 @@ public class ExcelService implements IExcelService {
for (int i = taskStart + 1; i <= taskEnd; i++) {
XSSFRow row = wbsSheet.getRow(i);
- String task1 = ExcelUtil.getCellValue(row.getCell(1));//一级任务名称
- String task2 = ExcelUtil.getCellValue(row.getCell(2));//二级任务名称
- String description = ExcelUtil.getCellValue(row.getCell(3));//任务描述
- String beginTime = ExcelUtil.getCellValue(row.getCell(4));//开始时间
- String endTime = ExcelUtil.getCellValue(row.getCell(5));//结束时间
-// String duration = ExcelUtil.getCellValue(row.getCell(6));//任务时长
- String repeat = ExcelUtil.getCellValue(row.getCell(7));//重复
- String subTaskCell = ExcelUtil.getCellValue(row.getCell(8));//子任务
- String subProject = ExcelUtil.getCellValue(row.getCell(9));//子项目
- String deliver = ExcelUtil.getCellValue(row.getCell(10));//交付物
- String executorRole = ExcelUtil.getCellValue(row.getCell(11));//负责人
- String checkerRole = ExcelUtil.getCellValue(row.getCell(12));//检查人
- String money = ExcelUtil.getCellValue(row.getCell(13));//即使奖惩
- String delay = ExcelUtil.getCellValue(row.getCell(14));//任务切换模式
- String delayTime = ExcelUtil.getCellValue(row.getCell(15));//延迟时间
- String loopTo = ExcelUtil.getCellValue(row.getCell(16));//跳转任务
- String loopTimes = ExcelUtil.getCellValue(row.getCell(17));//跳转次数
- String input = ExcelUtil.getCellValue(row.getCell(18));//输入文档
+ //一级任务名称
+ String task1 = ExcelUtil.getCellValue(row.getCell(1));
+ //二级任务名称
+ String task2 = ExcelUtil.getCellValue(row.getCell(2));
+ String description = ExcelUtil.getCellValue(row.getCell(3));
+ String beginTime = ExcelUtil.getCellValue(row.getCell(4));
+ String endTime = ExcelUtil.getCellValue(row.getCell(5));
+ String repeat = ExcelUtil.getCellValue(row.getCell(7));
+ String subTaskCell = ExcelUtil.getCellValue(row.getCell(8));
+ String subProject = ExcelUtil.getCellValue(row.getCell(9));
+ String deliver = ExcelUtil.getCellValue(row.getCell(10));
+ String executorRole = ExcelUtil.getCellValue(row.getCell(11));
+ String checkerRole = ExcelUtil.getCellValue(row.getCell(12));
+ String money = ExcelUtil.getCellValue(row.getCell(13));
+ String delay = ExcelUtil.getCellValue(row.getCell(14));
+ String delayTime = ExcelUtil.getCellValue(row.getCell(15));
+ String loopTo = ExcelUtil.getCellValue(row.getCell(16));
+ String loopTimes = ExcelUtil.getCellValue(row.getCell(17));
+ String input = ExcelUtil.getCellValue(row.getCell(18));
//二级任务名不能为空
// if(StrUtil.isEmpty(task2)){
// throw new BaseException(CodeEnum.WBS_NOT_TASK_NAME.addMsg(wbsSheet.getSheetName()+i));
@@ -624,7 +637,6 @@ public class ExcelService implements IExcelService {
taskDetail.setDescription(description);
taskDetail.setVirtual((byte) WebConstant.TASK_VIRTUAL.Normal.value);
taskDetail.setLevel((byte) WebConstant.TASK_LEVEL.SecondTask.value);
-// taskDetail.setGlobal((byte) 0);
taskDetail.setHasGroup((byte) 0);
taskDetail.setAllMember((byte) 1);
//子项目
@@ -637,26 +649,6 @@ public class ExcelService implements IExcelService {
projectService.updateProject(project);
}
}
- //交付物
- if (StrUtil.isNotEmpty(deliver)) {
- String str = "";
- if (deliver.length() > 4) {
- str = deliver.substring(0, 3);
- }
- if (str.equals("关联表")) {
- String subStr = deliver.substring(4);
- XSSFSheet subSheet = xssfWorkbook.getSheet(subStr);
- readSubSheet(subSheet, taskDetail.getId());
- } else {
- ProTaskDeliver taskDeliver = new ProTaskDeliver();
- taskDeliver.setId(snowflake.nextId());
- taskDeliver.setTaskDetailId(taskDetail.getId());
- taskDeliver.setName(deliver);
- taskDeliver.setIsInput(0);
- taskDeliver.setIsFinal(1);
- taskDeliverService.saveDeliver(taskDeliver);
- }
- }
//负责人
if (CollectionUtil.isNotEmpty(proRoles)) {
Long executorRoleId = null;
@@ -675,7 +667,7 @@ public class ExcelService implements IExcelService {
if (CollectionUtil.isNotEmpty(proRoles)) {
Long checkerRoleId = null;
for (ProRole proRole : proRoles) {
- if (ObjectUtil.isNotNull(proRole.getParentId()) && proRole.getName().equals(executorRole)) {
+ if (ObjectUtil.isNotNull(proRole.getParentId()) && proRole.getName().equals(checkerRole)) {
checkerRoleId = proRole.getId();
taskDetail.setCheckerRole(checkerRoleId);
break;
@@ -731,39 +723,41 @@ public class ExcelService implements IExcelService {
} else {
taskDetail.setEndTime(sysProject.getEndTime());
}
- //重复
- if (StrUtil.isNotEmpty(repeat)) {//有重复就是全局任务
-// taskDetail.setGlobal((byte) 1);
+ //重复频率
+ if (StrUtil.isNotEmpty(repeat)) {
taskDetail.setCycle(repeat);
}
//子任务
- if (StrUtil.isNotEmpty(subTaskCell)) {//有子日程表
+ if (StrUtil.isNotEmpty(subTaskCell)) {
taskDetail.setHasGroup((byte) 1);
switch (subTaskCell){
case "值日表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "运动计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "前端学习计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "后台学习计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "硬件学习计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "方圆学习计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
case "全体学习计划表":
- getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers);
+ getSubTask(xssfWorkbook, subTaskCell, taskDetail,taskDetails,proMembers,deliver);
break;
default:
throw new BaseException(CodeEnum.WBS_SUB_TASK_ANALYSIS.addMsg(wbsSheet.getSheetName()+i));
}
+ }else{
+ //不是分组任务,直接添加交付物
+ readDeliverSheet(deliver,xssfWorkbook,taskDetail.getId());
}
//添加任务
proTaskDetailService.saveTaskDetail(taskDetail);
@@ -782,55 +776,24 @@ public class ExcelService implements IExcelService {
taskDetails.add(endTask);
}
- public void saveProTaskSubTime(List taskDetails) throws Exception {
- if (CollectionUtil.isNotEmpty(taskDetails)) {
- for (ProTaskDetail taskDetail : taskDetails) {
- //虚拟任务或一级任务不拆分
- if (taskDetail.getVirtual() == WebConstant.TASK_VIRTUAL.Virtual.value || taskDetail.getLevel() == 1) {
- continue;
- }
- //cycle为空或者组任务,只加一条数据
- if (StrUtil.isEmpty(taskDetail.getCycle()) || taskDetail.getHasGroup() == 1) {
- ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
- proTaskSubTime.setId(snowflake.nextId());
- proTaskSubTime.setTaskDetailId(taskDetail.getId());
- proTaskSubTime.setBeginTime(taskDetail.getBeginTime());
- proTaskSubTime.setEndTime(taskDetail.getEndTime());
- taskSubTimeService.saveProTaskSubTask(proTaskSubTime);
- } else {
- Date startDate = new Date(taskDetail.getBeginTime());
- Date endDate = new Date(taskDetail.getEndTime());
- List taskDateList =
- NatureToDate.generateDates(taskDetail.getCycle(), startDate, endDate);
- if (CollectionUtil.isEmpty(taskDateList)) {
- return;
- }
- for (CronConstant.TaskDate taskDate : taskDateList) {
- ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
- proTaskSubTime.setId(snowflake.nextId());
- proTaskSubTime.setTaskDetailId(taskDetail.getId());
- proTaskSubTime.setBeginTime(taskDate.getStartDate().getTime());
- proTaskSubTime.setEndTime(taskDate.getEndDate().getTime());
- taskSubTimeService.saveProTaskSubTask(proTaskSubTime);
- }
- }
- }
- }
- }
-
+ /**
+ * 读取子任务表
+ */
public void getSubTask(XSSFWorkbook xssfWorkbook, String sheetName, ProTaskDetail parentTaskDetail,
- List taskDetails, List proMembers) {
+ List taskDetails, List proMembers,String deliverCell) {
XSSFSheet subTaskSheet = xssfWorkbook.getSheet(sheetName);
Long startTime = parentTaskDetail.getBeginTime();
if (ObjectUtil.isNotNull(subTaskSheet)) {
String str = ExcelUtil.getCellValue(subTaskSheet.getRow(1).getCell(4));
for (int a = 2; a < subTaskSheet.getLastRowNum(); a++) {
- String nameCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(1));//任务名
- String beginCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(2));//开始时间
- String endCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(3));//结束时间
- String repeatCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(4));//重复时间、相对时间
- String memberCell = StringUtil.replaceComma(ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(6)));//成员
- String descriptionCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(8));//备注
+ String nameCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(1));
+ String beginCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(2));
+ String endCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(3));
+ //重复时间、相对时间
+ String repeatCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(4));
+ String memberCell = StringUtil.replaceComma(ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(6)));
+ //备注
+ String descriptionCell = ExcelUtil.getCellValue(subTaskSheet.getRow(a).getCell(8));
if (StrUtil.isNotEmpty(nameCell)) {
ProTaskDetail subTask = new ProTaskDetail();
BeanUtil.copyProperties(parentTaskDetail, subTask);
@@ -895,6 +858,9 @@ public class ExcelService implements IExcelService {
parentTaskDetail.setBeginTime(subTask.getBeginTime());
}
startTime = subTask.getEndTime();
+ //给每个子任务添加交付物
+ readDeliverSheet(deliverCell,xssfWorkbook,subTask.getId());
+
proTaskDetailService.saveTaskDetail(subTask);
taskDetails.add(subTask);
}
@@ -906,30 +872,91 @@ public class ExcelService implements IExcelService {
}
/**
- * //读取交付物表
- *
- * @param subSheet
- * @param taskId
+ * 分解任务时间
+ * @param taskDetails
+ * @throws Exception
+ */
+ public void saveProTaskSubTime(List taskDetails) throws Exception {
+ if (CollectionUtil.isNotEmpty(taskDetails)) {
+ for (ProTaskDetail taskDetail : taskDetails) {
+ //虚拟任务或一级任务不拆分
+ if (taskDetail.getVirtual() == WebConstant.TASK_VIRTUAL.Virtual.value || taskDetail.getLevel() == 1) {
+ continue;
+ }
+ //cycle为空或者组任务,只加一条数据
+ if (StrUtil.isEmpty(taskDetail.getCycle()) || taskDetail.getHasGroup() == 1) {
+ ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
+ proTaskSubTime.setId(snowflake.nextId());
+ proTaskSubTime.setTaskDetailId(taskDetail.getId());
+ proTaskSubTime.setBeginTime(taskDetail.getBeginTime());
+ proTaskSubTime.setEndTime(taskDetail.getEndTime());
+ taskSubTimeService.saveProTaskSubTask(proTaskSubTime);
+ } else {
+ Date startDate = new Date(taskDetail.getBeginTime());
+ Date endDate = new Date(taskDetail.getEndTime());
+ List taskDateList =
+ NatureToDate.generateDates(taskDetail.getCycle(), startDate, endDate);
+ if (CollectionUtil.isEmpty(taskDateList)) {
+ return;
+ }
+ for (CronConstant.TaskDate taskDate : taskDateList) {
+ ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
+ proTaskSubTime.setId(snowflake.nextId());
+ proTaskSubTime.setTaskDetailId(taskDetail.getId());
+ proTaskSubTime.setBeginTime(taskDate.getStartDate().getTime());
+ proTaskSubTime.setEndTime(taskDate.getEndDate().getTime());
+ taskSubTimeService.saveProTaskSubTask(proTaskSubTime);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 读取交付物表
*/
- private void readSubSheet(XSSFSheet subSheet, Long taskId) {
- for (int i = 2; i <= subSheet.getLastRowNum(); i++) {
- String deliver = ExcelUtil.getCellValue(subSheet.getRow(i).getCell(1));
- if (StrUtil.isNotEmpty(deliver)) {
+ private void readDeliverSheet(String deliverCell,XSSFWorkbook xssfWorkbook, Long taskId) {
+ if (StrUtil.isNotEmpty(deliverCell)) {
+ String str = "";
+ if (deliverCell.length() > 4) {
+ str = deliverCell.substring(0, 3);
+ }
+ if ("关联表".equals(str)) {
+ String subStr = deliverCell.substring(4);
+ XSSFSheet subSheet = xssfWorkbook.getSheet(subStr);
+ for (int i = 2; i <= subSheet.getLastRowNum(); i++) {
+ String deliver = ExcelUtil.getCellValue(subSheet.getRow(i).getCell(1));
+ if (StrUtil.isNotEmpty(deliver)) {
+ ProTaskDeliver taskDeliver = new ProTaskDeliver();
+ taskDeliver.setId(snowflake.nextId());
+ taskDeliver.setName(deliver);
+ taskDeliver.setTaskDetailId(taskId);
+ taskDeliver.setIsInput(0);
+ taskDeliver.setIsFinal(0);
+ if (i == subSheet.getLastRowNum()) {
+ taskDeliver.setIsFinal(1);
+ }
+ taskDeliverService.saveDeliver(taskDeliver);
+ }
+ }
+ } else {
ProTaskDeliver taskDeliver = new ProTaskDeliver();
taskDeliver.setId(snowflake.nextId());
- taskDeliver.setName(deliver);
taskDeliver.setTaskDetailId(taskId);
+ taskDeliver.setName(deliverCell);
taskDeliver.setIsInput(0);
- taskDeliver.setIsFinal(0);
- if (i == subSheet.getLastRowNum()) {
- taskDeliver.setIsFinal(1);
- }
+ taskDeliver.setIsFinal(1);
taskDeliverService.saveDeliver(taskDeliver);
}
}
}
- //插件
+ /**
+ * 读取插件
+ * @param xssfWorkbook
+ * @param taskDetails
+ * @param proRoles
+ */
private void readPlugin(XSSFWorkbook xssfWorkbook, List taskDetails, List proRoles) {
SysPluginExample pluginExample = new SysPluginExample();
pluginExample.clear();
@@ -991,6 +1018,13 @@ public class ExcelService implements IExcelService {
}
}
+ /**
+ * 返回信息
+ * @param currentUserId
+ * @param sysProject
+ * @return
+ * @throws Exception
+ */
public ProjectVo.ProjectInfo selectByProjectId(Long currentUserId, SysProject sysProject) throws Exception {
//返回参数
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
diff --git a/tall/src/main/java/com/ccsens/tall/service/IMessageService.java b/tall/src/main/java/com/ccsens/tall/service/IMessageService.java
index 390324bb..78adaba9 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IMessageService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/IMessageService.java
@@ -3,13 +3,14 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithCheckerDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithDeleteDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithUploadDto;
+import com.ccsens.util.bean.message.common.InMessage;
public interface IMessageService {
- void sendDeliverMessageWithUpload(DeliverMessageWithUploadDto uploadMessage) throws Exception;
+ void sendDeliverMessageWithUpload(InMessage inMessage) throws Exception;
//同步消息——Start
void sendSyncMessageWithStart(Long currentUserId, Long projectId, Long roleId, Long taskId, Long time, Long duration) throws Exception;
- void sendDeliverMessageWithChecker(DeliverMessageWithCheckerDto checkerDto)throws Exception;
+ void sendDeliverMessageWithChecker(InMessage inMessage)throws Exception;
- void sendDeliverMessageWithDelete(DeliverMessageWithDeleteDto deleteMessage)throws Exception;
+ void sendDeliverMessageWithDelete(InMessage inMessage)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 35e804d0..a8db51b3 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java
@@ -7,7 +7,7 @@ import com.ccsens.tall.bean.vo.TaskVo;
public interface ITaskSubTimeService {
void saveProTaskSubTask(ProTaskSubTime proTaskSubTime);
- void finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception;
+ TaskVo.NormalTask finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception;
void startTask(Long currentUserId, TaskDto.StartTask startTask) throws Exception;
diff --git a/tall/src/main/java/com/ccsens/tall/service/MessageService.java b/tall/src/main/java/com/ccsens/tall/service/MessageService.java
index 7c62e24a..d06af1eb 100644
--- a/tall/src/main/java/com/ccsens/tall/service/MessageService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/MessageService.java
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.dto.message.*;
import com.ccsens.tall.bean.vo.MemberVo;
import com.ccsens.util.JacksonUtil;
+import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.config.RabbitMQConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
@@ -65,27 +66,26 @@ public class MessageService implements IMessageService{
}
@Override
- public void sendDeliverMessageWithUpload(DeliverMessageWithUploadDto uploadMessage) throws Exception {
- System.out.println(JacksonUtil.beanToJson(message));
+ public void sendDeliverMessageWithUpload(InMessage inMessage) throws Exception {
+ System.out.println(JacksonUtil.beanToJson(inMessage));
//FixMe 发送到消息队列
- rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,
- JacksonUtil.beanToJson(message));
+ rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,JacksonUtil.beanToJson(inMessage));
}
@Override
- public void sendDeliverMessageWithChecker(DeliverMessageWithCheckerDto message) throws Exception {
- System.out.println(JacksonUtil.beanToJson(message));
+ public void sendDeliverMessageWithChecker(InMessage inMessage) throws Exception {
+ System.out.println(JacksonUtil.beanToJson(inMessage));
//FixMe 发送到消息队列
rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,
- JacksonUtil.beanToJson(message));
+ JacksonUtil.beanToJson(inMessage));
}
@Override
- public void sendDeliverMessageWithDelete(DeliverMessageWithDeleteDto message) throws Exception {
- System.out.println(JacksonUtil.beanToJson(message));
+ public void sendDeliverMessageWithDelete(InMessage inMessage) throws Exception {
+ System.out.println(JacksonUtil.beanToJson(inMessage));
//FixMe 发送到消息队列
rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1 ,
- JacksonUtil.beanToJson(message));
+ JacksonUtil.beanToJson(inMessage));
}
}
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 8fb92afb..5587fbcf 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
@@ -26,6 +26,8 @@ public class ProRoleService implements IProRoleService {
@Autowired
private ProRoleDao proRoleDao;
@Autowired
+ private ProShowDao proShowDao;
+ @Autowired
private ProMemberDao proMemberDao;
@Autowired
private ProMemberRoleDao memberRoleDao;
@@ -58,13 +60,29 @@ public class ProRoleService implements IProRoleService {
*/
@Override
public List getRolesByProjectIdAndUserId(Long projectId, Long currentUserId) throws Exception {
+
List memberRoleList = null;
- //1.查询二级角色(项目经理+项目成员+mvp)
- memberRoleList = getRealMemberRolesByProjectId(projectId);
//获取用户在项目中的角色
List roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, projectId);
+ //1.查询二级角色(项目经理+项目成员+mvp)
+ memberRoleList = getRealMemberRolesByProjectId(projectId);
if (CollectionUtil.isNotEmpty(memberRoleList)) {
+ //获取项目的配置(是否展示mvp)
+ ProShowExample showExample = new ProShowExample();
+ showExample.createCriteria().andProjectIdEqualTo(projectId);
+ List showList = proShowDao.selectByExample(showExample);
+ if(CollectionUtil.isNotEmpty(showList)){
+ if(showList.get(0).getIsShowMvp() == 0){
+ for(int i = 0 ; i < memberRoleList.size() ; i++){
+ ProjectVo.RoleInfo roleInfo = memberRoleList.get(i);
+ if(roleInfo.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.MVP.phase)){
+ memberRoleList.remove(i);
+ break;
+ }
+ }
+ }
+ }
if (CollectionUtil.isNotEmpty(roleList)) {
//用户是否只是关注者
Boolean isAttention = false;
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
index 949a7c24..7cdbfeea 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
@@ -394,7 +394,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
//检查人信息
taskDeliverByMVP.setChecker(proRoleService.selectRoleByCheckOrExecutor(task.getCheckerRole()));
//查找任务下的交付物
- taskDeliverByMVP.setDelivers(taskDeliverService.selectDeliverOrInputByTask(task.getId(), 0));
+ if(task.getHasGroup() == 0){
+ taskDeliverByMVP.setDelivers(taskDeliverService.selectDeliverOrInputByTask(task.getId(), 0));
+ }else {
+ Long now = System.currentTimeMillis();
+ TaskVo.TaskIdAndSubTimeIdByParentIdAndTime taskAndSubTime = taskDetailDao.selectSubTimeByTaskParentIdAndTime(task.getId(), now);
+ taskDeliverByMVP.setDelivers(taskDeliverService.selectDeliverOrInputByTask(taskAndSubTime.getTaskId(), 0));
+ }
//查找任务的输入文档
taskDeliverByMVP.setInputs(taskDeliverService.selectDeliverOrInputByTask(task.getId(), 1));
@@ -424,56 +430,101 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.NormalTask taskDetail = null;
if (ObjectUtil.isNotNull(subTime)) {
taskDetail = taskDetailDao.selectTaskByTaskId(subTime.getId(), subTime.getTaskDetailId());
- //修改任务的完成状态
- ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
- if (ObjectUtil.isNotNull(subTimeMember)) {
- taskDetail.setProcess(subTimeMember.getComplatedStatus());
- taskDetail.setRealEndTime(subTimeMember.getRealFinishTime());
- }
- //显示的日期格式和时长格式
- if(ObjectUtil.isNotNull(proShow)){
- taskDetail.setShowTimeFormat(proShow.getTimeShow());
- if(proShow.getDuration() == 1){
- taskDetail.setDuration(null);
+ if(ObjectUtil.isNotNull(taskDetail)) {
+ //修改任务的完成状态
+ ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
+ if (ObjectUtil.isNotNull(subTimeMember)) {
+ taskDetail.setProcess(subTimeMember.getComplatedStatus());
+ taskDetail.setRealEndTime(subTimeMember.getRealFinishTime());
}
- }else {
- taskDetail.setShowTimeFormat("MM-dd HH:mm");
- }
- //添加项目信息和插件信息
- normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail);
- if (ObjectUtil.isNotNull(taskDetail)) {
+ //显示的日期格式和时长格式
+ if (ObjectUtil.isNotNull(proShow)) {
+ taskDetail.setShowTimeFormat(proShow.getTimeShow());
+ if (proShow.getDuration() == 1) {
+ taskDetail.setDuration(null);
+ }
+ } else {
+ taskDetail.setShowTimeFormat("MM-dd HH:mm");
+ }
+ //添加项目信息和插件信息
+ normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail);
List groupTaskList = new ArrayList<>();
- groupTaskList = taskDetailDao.selectTaskByParentId(projectId, taskDetail.getDetailId());
- if (CollectionUtil.isNotEmpty(groupTaskList)) {
- for (TaskVo.NormalTask groupTask : groupTaskList) {
- //修改任务的完成状态
- ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
- if (ObjectUtil.isNotNull(proSubTimeMember)) {
- groupTask.setProcess(proSubTimeMember.getComplatedStatus());
- groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
- }
- //显示的日期格式和时长格式
- if(ObjectUtil.isNotNull(proShow)){
- groupTask.setShowTimeFormat(proShow.getTimeShow());
- if(proShow.getDuration() == 1){
- groupTask.setDuration(null);
+
+ //获取此任务的子任务
+ ProTaskDetailExample detailExample = new ProTaskDetailExample();
+ detailExample.createCriteria().andParentIdEqualTo(taskDetail.getDetailId());
+ List detailList = taskDetailDao.selectByExample(detailExample);
+ if(CollectionUtil.isNotEmpty(detailList)){
+ for(ProTaskDetail detail : detailList){
+ TaskVo.NormalTask groupTask = null;
+ Long subTimeId = taskDeliverService.isTaskOrSubTime(detail.getId());
+ if(ObjectUtil.isNotNull(subTimeId)){
+ groupTask = taskDetailDao.selectTaskByTaskId(subTimeId, detail.getId());
+ if(ObjectUtil.isNotNull(groupTask)){
+ //修改任务的完成状态
+ ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
+ if (ObjectUtil.isNotNull(proSubTimeMember)) {
+ groupTask.setProcess(proSubTimeMember.getComplatedStatus());
+ groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
+ }
+ //显示的日期格式和时长格式
+ if(ObjectUtil.isNotNull(proShow)){
+ groupTask.setShowTimeFormat(proShow.getTimeShow());
+ if(proShow.getDuration() == 1){
+ groupTask.setDuration(null);
+ }
+ }else {
+ groupTask.setShowTimeFormat("MM-dd HH:mm");
+ }
+ //添加项目信息和插件信息
+ normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask);
+ //修改返回时子任务的名字(“任务名+(xx和XX)”)
+ if (detail.getAllMember() == 0) {
+ groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
+ }
+ groupTaskList.add(groupTask);
}
- }else {
- groupTask.setShowTimeFormat("MM-dd HH:mm");
- }
- //添加项目信息和插件信息
- normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask);
- //修改返回时子任务的名字(“任务名+(xx和XX)”)
- ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(groupTask.getDetailId());
- if (proTaskDetail.getAllMember() == 0) {
- groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
}
-
}
taskDetail.setSecondTasks(new ArrayList<>());
taskDetail.getSecondTasks().addAll(groupTaskList);
}
+
}
+// if (ObjectUtil.isNotNull(taskDetail)) {
+//
+// List groupTaskList = new ArrayList<>();
+// groupTaskList = taskDetailDao.selectTaskByParentId(projectId, taskDetail.getDetailId());
+// if (CollectionUtil.isNotEmpty(groupTaskList)) {
+// for (TaskVo.NormalTask groupTask : groupTaskList) {
+// //修改任务的完成状态
+// ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
+// if (ObjectUtil.isNotNull(proSubTimeMember)) {
+// groupTask.setProcess(proSubTimeMember.getComplatedStatus());
+// groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
+// }
+// //显示的日期格式和时长格式
+// if(ObjectUtil.isNotNull(proShow)){
+// groupTask.setShowTimeFormat(proShow.getTimeShow());
+// if(proShow.getDuration() == 1){
+// groupTask.setDuration(null);
+// }
+// }else {
+// groupTask.setShowTimeFormat("MM-dd HH:mm");
+// }
+// //添加项目信息和插件信息
+// normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask);
+// //修改返回时子任务的名字(“任务名+(xx和XX)”)
+// ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(groupTask.getDetailId());
+// if (proTaskDetail.getAllMember() == 0) {
+// groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
+// }
+//
+// }
+// taskDetail.setSecondTasks(new ArrayList<>());
+// taskDetail.getSecondTasks().addAll(groupTaskList);
+// }
+// }
}
return taskDetail;
}
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 86c26f2a..f5f10094 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
@@ -32,6 +32,8 @@ public class ProjectService implements IProjectService {
@Autowired
private SysProjectDao sysProjectDao;
@Autowired
+ private ProShowDao proShowDao;
+ @Autowired
private ProRoleExcludeDao roleExcludeDao;
@Autowired
private ProRoleDao proRoleDao;
@@ -146,35 +148,6 @@ public class ProjectService implements IProjectService {
//查找此用户关注的项目
List projectList = sysProjectDao.findProjectIdByUserId(currentUserId, startMillisTime, endMillisTime);
projectInfoList = projectInfoByProject(projectList, currentUserId);
-// if(CollectionUtil.isNotEmpty(projectList)){
-// ProjectVo.ProjectInfo projectInfo = null;
-// for(SysProject project:projectList){
-// projectInfo = new ProjectVo.ProjectInfo();
-// BeanUtil.copyProperties(project,projectInfo);
-// projectInfo.setCreator(false);
-// projectInfo.setRoles(new ArrayList<>());
-// //是否是创建者
-// if(project.getCreatorId().longValue()==currentUserId.longValue()){
-// projectInfo.getRoles().add(WebConstant.ROLE_NAME.Creator.phase);
-// projectInfo.setCreator(true);
-// }
-// //本用户在项目中的角色
-// List proRoles = proRoleService.getProRoleByProjectIdAndUserId(project.getId(), currentUserId);
-// if (CollectionUtil.isNotEmpty(proRoles)) {
-// for (ProRole proRole : proRoles) {
-// projectInfo.getRoles().add(proRole.getDescription());
-// }
-// }
-// if(CollectionUtil.isEmpty(projectInfo.getRoles())){
-// projectInfo.getRoles().add(WebConstant.ROLE_NAME.Attention.phase);
-// }
-// //用户在项目中的最高权限
-// int power = proRoleService.selectPowerByRoleName(projectInfo.getRoles());
-// projectInfo.setPower(power);
-//
-// projectInfoList.add(projectInfo);
-// }
-// }
return projectInfoList;
}
@@ -205,6 +178,21 @@ public class ProjectService implements IProjectService {
//用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(currentUserId, project.getId());
projectInfo.setPower(power);
+ //获取项目配置
+ ProShowExample proShowExample = new ProShowExample();
+ proShowExample.createCriteria().andProjectIdEqualTo(project.getId());
+ List proShowList = proShowDao.selectByExample(proShowExample);
+ if (CollectionUtil.isNotEmpty(proShowList)) {
+ ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig();
+ projectConfig.setSlide(proShowList.get(0).getSlide());
+ projectConfig.setFilter(proShowList.get(0).getFilter());
+ projectInfo.setProjectConfig(projectConfig);
+ }else {
+ ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig();
+ projectConfig.setFilter(0);
+ projectConfig.setSlide(0);
+ projectInfo.setProjectConfig(projectConfig);
+ }
projectInfoList.add(projectInfo);
}
@@ -247,12 +235,17 @@ public class ProjectService implements IProjectService {
//获取项目配置
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId);
- List proShowList = new ArrayList<>();
+ List proShowList = proShowDao.selectByExample(proShowExample);
if (CollectionUtil.isNotEmpty(proShowList)) {
ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig();
projectConfig.setSlide(proShowList.get(0).getSlide());
projectConfig.setFilter(proShowList.get(0).getFilter());
projectInfo.setProjectConfig(projectConfig);
+ }else {
+ ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig();
+ projectConfig.setSlide(0);
+ projectConfig.setFilter(0);
+ projectInfo.setProjectConfig(projectConfig);
}
return projectInfo;
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 8908a25d..f2fdae70 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
@@ -15,14 +15,18 @@ import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*;
import com.ccsens.util.*;
+import com.ccsens.util.bean.message.common.InMessage;
+import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
+import java.math.BigDecimal;
import java.util.*;
@Slf4j
@@ -55,6 +59,8 @@ public class TaskDeliverService implements ITaskDeliverService {
private IMessageService messageService;
@Autowired
private Snowflake snowflake;
+ @Autowired
+ private AmqpTemplate rabbitTemplate;
@Override
public void saveDeliver(ProTaskDeliver taskDeliver) {
@@ -232,11 +238,18 @@ public class TaskDeliverService implements ITaskDeliverService {
}
//消息的内容
+ if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
+ for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
+ userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
+ }
+ }
+ Set userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(userIdList)) {
HashSet h = new HashSet<>(userIdList);
userIdList.clear();
userIdList.addAll(h);
for (Long userId : userIdList) {
+ userIdSet.add(userId.toString());
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
@@ -258,8 +271,12 @@ public class TaskDeliverService implements ITaskDeliverService {
uploadMessageData.setFile(uploadDeliver.getFileInfo());
uploadMessage.setData(uploadMessageData);
- uploadMessage.setReceivers(messageUserList);
- messageService.sendDeliverMessageWithUpload(uploadMessage);
+
+ String s = JacksonUtil.beanToJson(uploadMessage);
+ InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,null,s);
+ String j = JacksonUtil.beanToJson(inMessage);
+ System.out.println(j);
+ messageService.sendDeliverMessageWithUpload(inMessage);
} else {
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
}
@@ -277,15 +294,20 @@ public class TaskDeliverService implements ITaskDeliverService {
Long endTime = DateUtil.getYMD(cn.hutool.core.date.DateUtil.tomorrow()).getTime();
//判断传入的信息是详情id还是subTimeId
ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(id);
- ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(id);
- if (ObjectUtil.isNotNull(taskSubTime)) {
+ if(ObjectUtil.isNotNull(taskSubTime)){
subTimeId = taskSubTime.getId();
- } else if (ObjectUtil.isNotNull(taskDetail)) {
- Long now = System.currentTimeMillis();
- subTimeId = taskDetailDao.selectSubTimeByTaskIdAndTime(taskDetail.getId(), now);
-// if(ObjectUtil.isNotNull(subTime)){
-// subTimeId = subTime.getId();
-// }
+ }else {
+ ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(id);
+ if(ObjectUtil.isNotNull(taskDetail)){
+ Long now = System.currentTimeMillis();
+ if(taskDetail.getHasGroup() == 0){
+ subTimeId = taskDetailDao.selectSubTimeByTaskIdAndTime(taskDetail.getId(), now);
+ }
+ else {
+ TaskVo.TaskIdAndSubTimeIdByParentIdAndTime taskAndSubTime = taskDetailDao.selectSubTimeByTaskParentIdAndTime(taskDetail.getId(), now);
+ subTimeId = taskAndSubTime.getSubTimeId();
+ }
+ }
}
return subTimeId;
}
@@ -433,7 +455,10 @@ public class TaskDeliverService implements ITaskDeliverService {
List fileIds = taskDeliverDao.selectFileIdByDeliverId(deliver.getId(), subTimeId);
if (CollectionUtil.isNotEmpty(fileIds)) {
for (DeliverVo.FilePath filePath : fileIds) {
- filePath.setDeleteTime(filePath.getUpdateTime().getTime());
+ //删除时间
+ if("1".equalsIgnoreCase(filePath.getIsHistory())){
+ filePath.setDeleteTime(filePath.getUpdateTime().getTime());
+ }
//修改文件路径为可下载路径
filePath.setUrl(WebConstant.TEST_URL_BASE + filePath.getUrl());
if (ObjectUtil.isNotNull(filePath.getUploaderId())) {
@@ -499,6 +524,7 @@ public class TaskDeliverService implements ITaskDeliverService {
List messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser = null;
ProRole checkRole = null;
+ Set userIdSet = new HashSet<>();
//查找该用户在此项目的角色
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(checkDeliver.getDeliverId());
@@ -531,9 +557,7 @@ public class TaskDeliverService implements ITaskDeliverService {
}
}
}
- messageUser = new BaseMessageDto.MessageUser();
- messageUser.setUserId(postLog.getUserId());
- messageUserList.add(messageUser);
+ userIdSet.add(postLog.getUserId().toString());
checkRole = role;
// }
}
@@ -563,8 +587,10 @@ public class TaskDeliverService implements ITaskDeliverService {
checkerDtoData.setIsChecker(checkDeliver.getCheckStatus());
checkerDto.setData(checkerDtoData);
- checkerDto.setReceivers(messageUserList);
- messageService.sendDeliverMessageWithChecker(checkerDto);
+ String s = JacksonUtil.beanToJson(checkerDto);
+ InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,null,s);
+
+ messageService.sendDeliverMessageWithChecker(inMessage);
//检查完,返回数据
DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId());
@@ -719,11 +745,13 @@ public class TaskDeliverService implements ITaskDeliverService {
ProTaskDetail task = taskDetailDao.selectByPrimaryKey(deliver.getTaskDetailId());
ProRole role = proRoleDao.selectByPrimaryKey(task.getExecutorRole());
//发送消息
+ Set userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(userIdList)) {
HashSet h = new HashSet<>(userIdList);
userIdList.clear();
userIdList.addAll(h);
for (Long userId : userIdList) {
+ userIdSet.add(userId.toString());
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
@@ -748,8 +776,10 @@ public class TaskDeliverService implements ITaskDeliverService {
deleteMessageData.setUserId(currentUserId);
deleteMessage.setData(deleteMessageData);
- deleteMessage.setReceivers(messageUserList);
- messageService.sendDeliverMessageWithDelete(deleteMessage);
+ String s = JacksonUtil.beanToJson(deleteMessage);
+ InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,null,s);
+
+ messageService.sendDeliverMessageWithDelete(inMessage);
}
}
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 b12ae7f1..5e05b334 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
@@ -67,7 +67,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* @throws Exception
*/
@Override
- public void finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception {
+ public TaskVo.NormalTask finishTask(Long currentUserId, TaskDto.TaskSubTimeId subTimeId) throws Exception {
//查找taskSubTime
ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(subTimeId.getId());
if(ObjectUtil.isNull(taskSubTime)){
@@ -152,6 +152,9 @@ public class TaskSubTimeService implements ITaskSubTimeService {
proSubTimeMemberDao.insertSelective(subTimeMember);
}
}
+ //返回的任务详细信息
+ TaskVo.NormalTask normalTask = taskDetailService.getTaskInfoByTaskId(currentUserId,taskDetail.getProjectId(),subTimeId.getId());
+ return normalTask;
}
/**
* 该成员是否完成了此任务(返回成员对任务的完成情况)
diff --git a/tall/src/main/java/com/ccsens/tall/web/DebugController.java b/tall/src/main/java/com/ccsens/tall/web/DebugController.java
index 6481fa42..a801cf94 100644
--- a/tall/src/main/java/com/ccsens/tall/web/DebugController.java
+++ b/tall/src/main/java/com/ccsens/tall/web/DebugController.java
@@ -2,6 +2,7 @@ package com.ccsens.tall.web;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.JsonResponse;
+import com.ccsens.util.bean.message.client.AuthMessage;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant;
import com.ccsens.util.bean.message.common.ServerMessage;
@@ -16,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
+import java.util.HashSet;
+import java.util.Set;
@Api(tags = "DEBUG" , description = "DebugController | ")
@RestController
@@ -40,14 +43,25 @@ public class DebugController {
})
@RequestMapping(value="message",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse messageTest(HttpServletRequest request) throws Exception {
- ServerMessage serverMessage = new ServerMessage();
- serverMessage.setType("Ping");
- InMessage inMessage = InMessage.newToServerMessage(MessageConstant.DomainType.Server,serverMessage);
+// ServerMessage serverMessage = new ServerMessage();
+// serverMessage.setType("Ping");
+// InMessage inMessage = InMessage.newToServerMessage(MessageConstant.DomainType.Server,serverMessage);
+// String j = JacksonUtil.beanToJson(inMessage);
+// System.out.println(j);
+
+ String l = "测试222";
+ String to = "1175954520199532544";
+ Set s = new HashSet<>();
+ s.add(to);
+
+
+ InMessage inMessage = InMessage.newToUserMessage("1175954520199532544",s,null,null,l);
String j = JacksonUtil.beanToJson(inMessage);
System.out.println(j);
+
//FixMe 发送到消息队列
rabbitTemplate.convertAndSend(RabbitMQConfig.TALL_MESSAGE_1,j);
- return JsonResponse.newInstance().ok(j);
+ return JsonResponse.newInstance().ok();
}
}
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 86b32c7b..7202f8fb 100644
--- a/tall/src/main/java/com/ccsens/tall/web/TaskController.java
+++ b/tall/src/main/java/com/ccsens/tall/web/TaskController.java
@@ -28,11 +28,11 @@ public class TaskController {
@ApiImplicitParams({
})
@RequestMapping(value = "finish", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
- public JsonResponse finishTask(HttpServletRequest request, @Validated @RequestBody TaskDto.TaskSubTimeId task) throws Exception {
+ public JsonResponse finishTask(HttpServletRequest request, @Validated @RequestBody TaskDto.TaskSubTimeId task) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
- subTimeService.finishTask(currentUserId,task);
- return JsonResponse.newInstance().ok();
+ TaskVo.NormalTask normalTask = subTimeService.finishTask(currentUserId,task);
+ return JsonResponse.newInstance().ok(normalTask);
}
@ApiOperation(value = "开始节点",notes = "")
diff --git a/tall/src/main/java/com/ccsens/tall/web/UserController.java b/tall/src/main/java/com/ccsens/tall/web/UserController.java
index 1529bf40..fc01067a 100644
--- a/tall/src/main/java/com/ccsens/tall/web/UserController.java
+++ b/tall/src/main/java/com/ccsens/tall/web/UserController.java
@@ -194,9 +194,9 @@ public class UserController {
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
})
@RequestMapping(value = "claims",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
- public JsonResponse getNodeMessage(@RequestParam(required = true) String token) throws Exception {
+ public String getNodeMessage(@RequestParam(required = true) String token) throws Exception {
//验证token是否有效
- UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
+ String userId = null;
Claims claims = null;
boolean flag = false;
if (token != null) {
@@ -213,9 +213,9 @@ public class UserController {
}
}
if(flag){
- tokenToUserId.setId(Long.valueOf(claims.getSubject()));
+ userId = claims.getSubject();
}
- return JsonResponse.newInstance().ok(tokenToUserId);
+ return userId;
}
@ApiOperation(value = "根据token字符串获取userId",notes = "")
diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
index e8430ad6..0f25b165 100644
--- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
+++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
@@ -38,6 +38,11 @@
+
+
+
+
+
+
+
DELETE
diff --git a/tall/src/main/resources/mapper_raw/ProShowMapper.xml b/tall/src/main/resources/mapper_raw/ProShowMapper.xml
index fd1f746a..dff2ce20 100644
--- a/tall/src/main/resources/mapper_raw/ProShowMapper.xml
+++ b/tall/src/main/resources/mapper_raw/ProShowMapper.xml
@@ -8,6 +8,8 @@
+
+
@@ -71,7 +73,8 @@
- id, project_id, slide, filter, time_show, duration, created_at, updated_at, rec_status
+ id, project_id, slide, filter, time_show, duration, is_show_mvp, create_task, created_at,
+ updated_at, rec_status