Browse Source

lwbs

recovery
wang0018 4 years ago
parent
commit
58f9bf2583
  1. 4
      tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java
  2. 3
      tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java
  3. 7
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  4. 3
      tall/src/main/java/com/ccsens/tall/persist/dao/IInputDocDao.java
  5. 3
      tall/src/main/java/com/ccsens/tall/service/IInputDocService.java
  6. 142
      tall/src/main/java/com/ccsens/tall/service/InputDocService.java
  7. 7
      tall/src/main/java/com/ccsens/tall/web/LwbsController.java
  8. 4
      tall/src/main/resources/application-dev.yml
  9. 4
      tall/src/main/resources/application.yml
  10. 101
      tall/src/main/resources/mapper_dao/IInputDocDao.xml

4
tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java

@ -31,6 +31,10 @@ public class LwbsDto {
@NotNull
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("完成状态 0全部,1完成,2未完成")
private Integer process = 0;
@ApiModelProperty("优先级排序 0无 1倒叙(优先级高的在前) 2正序")
private Integer priority = 0;
@ApiModelProperty("任务等级")
private Byte level=(byte)2;
}

3
tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java

@ -44,9 +44,8 @@ public class LwbsVo {
private Long id;
@ApiModelProperty("项目名称")
private String name;
@ApiModelProperty("所有的任务")
@ApiModelProperty("普通任务")
private List<SelByProjectIdToTaskVo> list;
}
}

7
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -61,7 +61,12 @@ public class TaskVo {
private int delay;
@ApiModelProperty("状态:0-未开始,1-进行中,2-已完成")
private int process;
@ApiModelProperty("所属项目id")
private Long projectId;
@ApiModelProperty("所属项目名称")
private String projectName;
@ApiModelProperty("项目下得全局任务")
private List<NormalTask> normalTaskList;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")

3
tall/src/main/java/com/ccsens/tall/persist/dao/IInputDocDao.java

@ -2,6 +2,7 @@ package com.ccsens.tall.persist.dao;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -10,5 +11,5 @@ import java.util.List;
@Repository
public interface IInputDocDao {
List<LwbsVo.SelByProjectIdToTasksVo> selectById(@Param("param") LwbsDto.SelByProjectIdToTaskDto param, @Param("userId") Long userId);
List<TaskVo.NormalTask> selectByCompany(@Param("param") LwbsDto.SelByProjectIdToTaskDto param, @Param("userId") Long userId);
}

3
tall/src/main/java/com/ccsens/tall/service/IInputDocService.java

@ -2,11 +2,12 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import java.util.List;
public interface IInputDocService {
List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId);
List<LwbsVo.SelByProjectIdToTasksVo> selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId);
TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId);
}

142
tall/src/main/java/com/ccsens/tall/service/InputDocService.java

@ -1,14 +1,18 @@
package com.ccsens.tall.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.po.ProMember;
import com.ccsens.tall.bean.po.ProMemberExample;
import com.ccsens.tall.bean.po.SysProject;
import com.ccsens.tall.bean.po.SysProjectExample;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.IInputDocDao;
import com.ccsens.tall.persist.mapper.ProMemberMapper;
import com.ccsens.tall.persist.mapper.SysProjectMapper;
import com.ccsens.tall.util.TaskUtil;
import com.rabbitmq.client.TopologyRecoveryException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -57,9 +61,141 @@ public class InputDocService implements IInputDocService {
}
@Override
public List<LwbsVo.SelByProjectIdToTasksVo> selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
List<LwbsVo.SelByProjectIdToTasksVo> se= iInputDocDao.selectById(param,userId);
public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo();
//普通的任务和全局的
List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId);
//拆分后得全局任务和普通任务
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
for (int i = 0; i < normalTaskList1.size(); i++) {
//拆分项目下得普通任务和全局任务
List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks();
TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess());
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
//给全局任务下先存项目名称
TaskVo.GlobalTask globalTask=new TaskVo.GlobalTask();
BeanUtil.copyProperties(normalTaskList1.get(i),globalTask);
globalTask.setNormalTaskList(task.getGlobalTask());
globalTaskList.add(globalTask);
}
if(CollectionUtil.isNotEmpty(task.getCommonTask())){
//给普通任务下先存项目
TaskVo.NormalTask normalTask =new TaskVo.NormalTask();
BeanUtil.copyProperties(normalTaskList1.get(i),normalTask);
normalTask.setSecondTasks(task.getCommonTask());
normalTaskList.add(normalTask);
}
}
taskInfo.setGlobalTaskList(globalTaskList);
taskInfo.setNormalTaskList(normalTaskList);
return se;
// List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
// List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
// TaskVo.GlobalTask globalTask;
// //从普通和全局任务中拆分开是普通和全局任务
// TaskUtil.Task task = TaskUtil.splitTask(normalTaskList1, param.getStartTime(), param.getEndTime(), param.getProcess());
// if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
// for (TaskVo.NormalTask global : task.getGlobalTask()) {
// globalTask = new TaskVo.GlobalTask();
// BeanUtil.copyProperties(global, globalTask);
// globalTaskList.add(globalTask);
// }
// }
// if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
// if (param.getPriority() == 0) {
// normalTaskList = sortTaskTime(task.getCommonTask());
// } else {
// normalTaskList = task.getCommonTask();
// }
// }
// taskInfo.setGlobalTaskList(globalTaskList);
// taskInfo.setNormalTaskList(normalTaskList);
return taskInfo;
}
private List<TaskVo.NormalTask> sortTaskTime(List<TaskVo.NormalTask> commonTask) {
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> secondTaskVoList;
Set<Long> longSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(commonTask)) {
for (TaskVo.NormalTask secondTaskVo : commonTask) {
longSet.add(secondTaskVo.getBeginTime());
longSet.add(secondTaskVo.getEndTime());
}
List<Long> timeList = new ArrayList<>(longSet);
for (int i = 0; i < timeList.size(); i++) {
for (int j = 0; j < timeList.size() - i - 1; j++) {
if (timeList.get(j) > timeList.get(j + 1)) {
Long r = timeList.get(j);
timeList.set(j, timeList.get(j + 1));
timeList.set(j + 1, r);
}
}
}
int sequence = 1;
for (int i = 0; i < timeList.size() - 1; i++) {
TaskVo.NormalTask normalTask;
secondTaskVoList = new ArrayList<>();
Long startTime = timeList.get(i);
Long endTime = timeList.get(i + 1);
for (TaskVo.NormalTask secondTaskVo : commonTask) {
if (secondTaskVo.getTimeStatus() == 1) {
if (secondTaskVo.getBeginTime().longValue() == startTime.longValue()) {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setEndTime(null);
normalTask.setSequence(sequence);
sequence++;
normalTaskList.add(normalTask);
}
continue;
}
if (secondTaskVo.getTimeStatus() == 2) {
if (secondTaskVo.getEndTime().longValue() == endTime.longValue()) {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setBeginTime(null);
normalTask.setSequence(sequence);
sequence++;
normalTaskList.add(normalTask);
}
continue;
}
if (secondTaskVo.getBeginTime() < startTime && secondTaskVo.getEndTime() <= endTime && secondTaskVo.getEndTime() > startTime) {
secondTaskVo.setBeginTime(startTime);
secondTaskVoList.add(secondTaskVo);
} else if (secondTaskVo.getBeginTime() >= startTime && secondTaskVo.getEndTime() <= endTime) {
secondTaskVoList.add(secondTaskVo);
} else if (secondTaskVo.getBeginTime() >= startTime && secondTaskVo.getBeginTime() < endTime && secondTaskVo.getEndTime() > endTime) {
secondTaskVo.setEndTime(endTime);
secondTaskVoList.add(secondTaskVo);
} else if (secondTaskVo.getBeginTime() < startTime && secondTaskVo.getEndTime() > endTime) {
secondTaskVo.setBeginTime(startTime);
secondTaskVo.setEndTime(endTime);
secondTaskVoList.add(secondTaskVo);
}
}
if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
if (secondTaskVoList.size() == 1) {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVoList.get(0), normalTask);
normalTask.setSequence(sequence);
sequence++;
normalTaskList.add(normalTask);
} else {
normalTask = new TaskVo.NormalTask();
normalTask.setBeginTime(startTime);
normalTask.setEndTime(endTime);
normalTask.setSecondTasks(secondTaskVoList);
normalTask.setSequence(sequence);
sequence++;
normalTaskList.add(normalTask);
}
}
}
}
return normalTaskList;
}
}

7
tall/src/main/java/com/ccsens/tall/web/LwbsController.java

@ -5,6 +5,7 @@ import com.ccsens.tall.annotation.MustLoginTall;
import com.ccsens.tall.bean.dto.InputDocDto;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IInputDocService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
@ -38,12 +39,12 @@ public class LwbsController {
log.info("输出某人下的所有的项目成功");
return JsonResponse.newInstance().ok(selBylwbs);
}
@MustLogin
@MustLoginTall
@ApiOperation(value = "查询某人下参加的项目的所有的任务", notes = "1007:输出")
@RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<LwbsVo.SelByProjectIdToTasksVo>> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
public JsonResponse<TaskVo.ProTaskInfo> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
log.info("查询某人下参加的项目的所有的任务:{}",params);
List<LwbsVo.SelByProjectIdToTasksVo> selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
TaskVo.ProTaskInfo selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
log.info("查询某人下参加的项目的所有的任务");
return JsonResponse.newInstance().ok(selBylwbs);
}

4
tall/src/main/resources/application-dev.yml

@ -11,8 +11,8 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: 192.168.0.99
# host: 127.0.0.1
# host: 192.168.0.99
host: 127.0.0.1
password: guest
port: 5672
username: guest

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: test
include: util-test,common
active: dev
include: util-dev,common

101
tall/src/main/resources/mapper_dao/IInputDocDao.xml

@ -1,45 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.tall.persist.dao.IInputDocDao">
<resultMap id="ii" type="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTasksVo">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="list" ofType="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTaskVo">
<result column="beginTime" property="startTime"/>
<result column="endTime" property="endTime"/>
<result column="cha" property="cha"/>
<result column="milestone" property="milestone"/>
<resultMap id="ass" type="com.ccsens.tall.bean.vo.TaskVo$NormalTask">
<id property="projectId" column="pId"/>
<result property="projectName" column="pName"/>
<result property="description" column="pDescription"/>
<result property="beginTime" column="pBeginTime"/>
<result property="endTime" column="pEndTime"/>
<result property="duration" column="pDuration"/>
<collection property="secondTasks" ofType="com.ccsens.tall.bean.vo.TaskVo$NormalTask">
<result property="detailId" column="task_id"/>
<result property="id" column="times_id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="beginTime" column="begin_time_sub_time"/>
<result property="endTime" column="end_time_sub_time"/>
<result property="duration" column="duration"/>
<result property="cycle" column="cycle"/>
<result property="priority" column="priority"/>
<result property="milestone" column="milestone"/>
<result property="hasGroup" column="has_group"/>
</collection>
</resultMap>
<select id="selectById" resultMap="ii">
<select id="selectByCompany" resultMap="ass">
SELECT
tptd.project_id AS id,
tptd.`name`,
tptd.description,
tptst.begin_time as beginTime,
tptst.end_time as endTime,
( tptst.end_time - tptst.begin_time ) / 1000 / 3600 AS cha,
tptd.milestone
tsp.id AS pId,
tsp.`name` AS pName,
tsp.description AS pDescription,
tsp.begin_time as pBeginTime,
tsp.end_time as pEndTime,
(tsp.end_time-tsp.begin_time)/1000/3600 as pDuration,
tptdt.id as task_id,
tptdt.name,
tptdt.description,
tptdt.begin_time_sub_time,
tptdt.end_time_sub_time,
(tptdt.end_time_sub_time-tptdt.begin_time_sub_time)/1000/3600 as duration,
tptdt.cycle,
tptdt.priority,
tptdt.milestone,
tptdt.has_group,
tptdt.times_id
FROM
t_pro_task_detail tptd,
t_pro_task_sub_time tptst
t_sys_project tsp
INNER JOIN t_pro_member tpm ON tpm.project_id = tsp.id AND tpm.user_id = #{userId} and tpm.rec_status=0
<if test="param.id!=null">
and tpm.project_id=#{param.id}
</if>
LEFT JOIN (
SELECT
tptd.*,
tptst.begin_time AS begin_time_sub_time,
tptst.end_time AS end_time_sub_time,
tptst.id as times_id
FROM
t_pro_task_detail tptd
LEFT JOIN t_pro_task_sub_time tptst ON tptd.id = tptst.task_detail_id
AND tptst.rec_status = 0
WHERE
tptd.`level` = 2
AND tptd.rec_status = 0
tptd.rec_status = 0
AND tptd.`level` = 2
AND tptst.begin_time &lt;= #{param.endTime} AND tptst.end_time &gt;= #{param.startTime}
AND tptd.executor_role IN (
SELECT
tpmr.role_id
FROM
t_pro_member_role tpmr
t_pro_member_role tpmr,
t_pro_member tpm
WHERE
tpmr.rec_status = 0
AND tpmr.member_id IN ( SELECT id FROM t_pro_member tpm WHERE tpm.user_id = #{userId} AND tpm.rec_status = 0 )
tpm.rec_status = 0
AND tpmr.rec_status = 0
AND tpm.user_id = #{userId} UNION
SELECT
tpr.id
FROM
t_pro_role tpr
WHERE
tpr.rec_status = 0
AND tpr.NAME = '全体成员'
)
AND tptst.task_detail_id = tptd.id
and tptst.begin_time&lt;= #{param.startTime}
and tptst.end_time &gt;= #{param.endTime}
<if test="param.id != null">
and tptd.project_id=#{param.id}
) tptdt ON tptdt.project_id = tsp.id
WHERE
tsp.rec_status = 0
AND tsp.begin_time &lt;= #{param.endTime} AND tsp.end_time &gt;= #{param.startTime}
<if test="param.id!=null">
and tsp.id =#{param.id}
</if>
</select>
</mapper>
Loading…
Cancel
Save