Browse Source

看板0605

master
zy_Java 5 years ago
parent
commit
4906b00d35
  1. 15
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  2. 2
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java
  3. 2
      tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java
  4. 19
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  5. 116
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  6. 10
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  7. 24
      tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml
  8. 74
      util/src/test/java/com/ccsens/util/Base64Test.java

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

@ -2,6 +2,7 @@ package com.ccsens.tall.bean.vo;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -318,7 +319,19 @@ public class TaskVo {
private String projectName; private String projectName;
} }
@ApiModel("查找看板信息")
@ApiModel("看板信息")
@Data
public static class KanBan{
@ApiModelProperty("状态code")
private Integer code;
@ApiModelProperty("状态名字")
private String typeName;
@ApiModelProperty("任务列表")
private com.github.pagehelper.PageInfo<KanBanTask> taskList;
}
@ApiModel("看板信息任务列表")
@Data @Data
public static class KanBanTask{ public static class KanBanTask{
@ApiModelProperty("任务id") @ApiModelProperty("任务id")

2
tall/src/main/java/com/ccsens/tall/persist/dao/TaskSubTimeDao.java

@ -15,4 +15,6 @@ public interface TaskSubTimeDao extends ProTaskSubTimeMapper{
void clearTaskRealTime(@Param("projectId")Long projectId); void clearTaskRealTime(@Param("projectId")Long projectId);
List<TaskVo.KanBanTask> getKanbanTake(@Param("projectId")Long projectId, @Param("roleId")Long roleId,@Param("type") Integer type,@Param("memberId")Long memberId); List<TaskVo.KanBanTask> getKanbanTake(@Param("projectId")Long projectId, @Param("roleId")Long roleId,@Param("type") Integer type,@Param("memberId")Long memberId);
List<TaskVo.KanBanTask> getKanbanTakeByType(@Param("projectId")Long projectId, @Param("roleId")Long roleId, @Param("type")Integer type);
} }

2
tall/src/main/java/com/ccsens/tall/service/ITaskSubTimeService.java

@ -18,7 +18,7 @@ public interface ITaskSubTimeService {
void clearTaskRealTime(Long projectId); void clearTaskRealTime(Long projectId);
PageInfo<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception; List<TaskVo.KanBan> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception;
void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception; void changeKanbanTake(Long currentUserId, TaskDto.ChangeKanbanTask changeKanbanTask) throws Exception;
} }

19
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -193,6 +193,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(subTimeMember)) { if (ObjectUtil.isNotNull(subTimeMember)) {
task.setRealEndTime(subTimeMember.getRealFinishTime()); task.setRealEndTime(subTimeMember.getRealFinishTime());
task.setProcess(subTimeMember.getComplatedStatus()); task.setProcess(subTimeMember.getComplatedStatus());
}else if(task.getProcess() > 2){
task.setRealEndTime((long) 0);
task.setProcess(0);
} }
} }
//二级任务配置 //二级任务配置
@ -263,6 +266,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(subTimeMember)) { if (ObjectUtil.isNotNull(subTimeMember)) {
normalTask.setProcess(subTimeMember.getComplatedStatus()); normalTask.setProcess(subTimeMember.getComplatedStatus());
normalTask.setRealEndTime(subTimeMember.getRealFinishTime()); normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
}else if(normalTask.getProcess() > 2){
normalTask.setRealEndTime((long) 0);
normalTask.setProcess(0);
} }
} }
//任务配置 //任务配置
@ -531,11 +537,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
// //处理查询到的任务的插件 // //处理查询到的任务的插件
// managePlugin(currentUserId,task.getExecutorRole(),taskDetail); // managePlugin(currentUserId,task.getExecutorRole(),taskDetail);
//任务的完成状态 //任务的完成状态
if(taskDetail.getProcess() == 0) { if(taskDetail.getProcess() != 2) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
if (ObjectUtil.isNotNull(subTimeMember)) { if (ObjectUtil.isNotNull(subTimeMember)) {
taskDetail.setProcess(subTimeMember.getComplatedStatus()); taskDetail.setProcess(subTimeMember.getComplatedStatus());
taskDetail.setRealEndTime(subTimeMember.getRealFinishTime()); taskDetail.setRealEndTime(subTimeMember.getRealFinishTime());
}else if(taskDetail.getProcess() > 2){
taskDetail.setRealEndTime((long) 0);
taskDetail.setProcess(0);
} }
} }
@ -557,11 +566,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
// //处理查询到的任务的插件 // //处理查询到的任务的插件
// managePlugin(currentUserId,task.getExecutorRole(),taskDetail); // managePlugin(currentUserId,task.getExecutorRole(),taskDetail);
//任务的完成状态 //任务的完成状态
if(taskDetail.getProcess() == 0) { if(taskDetail.getProcess() != 2) {
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId()); ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
if (ObjectUtil.isNotNull(proSubTimeMember)) { if (ObjectUtil.isNotNull(proSubTimeMember)) {
groupTask.setProcess(proSubTimeMember.getComplatedStatus()); groupTask.setProcess(proSubTimeMember.getComplatedStatus());
groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime()); groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
}else if(taskDetail.getProcess() > 2){
taskDetail.setRealEndTime((long) 0);
taskDetail.setProcess(0);
} }
} }
@ -762,6 +774,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(proSubTimeMember)) { if (ObjectUtil.isNotNull(proSubTimeMember)) {
normalTask.setProcess(proSubTimeMember.getComplatedStatus()); normalTask.setProcess(proSubTimeMember.getComplatedStatus());
normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime()); normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
}else if(normalTask.getProcess() > 2){
normalTask.setRealEndTime((long) 0);
normalTask.setProcess(0);
} }
} }
ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole()); ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());

116
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -25,9 +25,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
@Slf4j @Slf4j
@Service @Service
@ -73,7 +71,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* 完成任务 * 完成任务
* *
* @param currentUserId userId * @param currentUserId userId
* @param subTimeId 任务日期id * @param subTimeId 任务日期id
* @throws Exception 任务详情 * @throws Exception 任务详情
*/ */
@Override @Override
@ -154,7 +152,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember); proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
} }
//不需要全部成员点完成,直接修改任务状态 //不需要全部成员点完成,直接修改任务状态
if(taskDetail.getFinishNeedAll() == 0){ if (taskDetail.getFinishNeedAll() == 0) {
taskSubTime.setRealEndTime(now); taskSubTime.setRealEndTime(now);
taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus()); taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus());
taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime); taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime);
@ -203,7 +201,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* 开始任务 * 开始任务
* *
* @param currentUserId userid * @param currentUserId userid
* @param startTaskDto 开始任务 * @param startTaskDto 开始任务
* @throws Exception void * @throws Exception void
*/ */
@Override @Override
@ -280,7 +278,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* 结束其他进行中的任务 * 结束其他进行中的任务
* *
* @param roleId 角色id * @param roleId 角色id
* @param time 时间 * @param time 时间
*/ */
private void completeTask(Long subTaskId, Long roleId, Long time) { private void completeTask(Long subTaskId, Long roleId, Long time) {
List<ProTaskSubTime> proTaskSubTimeList = taskSubTimeDao.getUnderwayTaskByRoleId(subTaskId, roleId); List<ProTaskSubTime> proTaskSubTimeList = taskSubTimeDao.getUnderwayTaskByRoleId(subTaskId, roleId);
@ -440,24 +438,95 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* 看板上查找任务信息 * 看板上查找任务信息
* *
* @param currentUserId userId * @param currentUserId userId
* @param projectId 项目id * @param projectId 项目id
* @param roleId 角色id * @param roleId 角色id
* @param type 任务状态 0未开始 1进行中 2已完成 * @param type 任务状态 0未开始 1进行中 2已完成
* @param page 页数 * @param page 页数
* @param pageSize 每页数量 * @param pageSize 每页数量
* @return 任务列表 * @return 任务列表
*/ */
@Override @Override
public PageInfo<TaskVo.KanBanTask> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception { public List<TaskVo.KanBan> getKanbanTake(Long currentUserId, Long projectId, Long roleId, Integer type, Integer page, Integer pageSize) throws Exception {
//返回的list
List<TaskVo.KanBan> kanBans = new ArrayList<>();
//查找此用户在任务下的成员 //查找此用户在任务下的成员
ProMember member = proMemberService.selectByUserId(currentUserId, projectId); ProMember member = proMemberService.selectByUserId(currentUserId, projectId);
if (ObjectUtil.isNull(member)) { if (ObjectUtil.isNull(member)) {
throw new BaseException(CodeEnum.NOT_MEMBER); throw new BaseException(CodeEnum.NOT_MEMBER);
} }
PageHelper.startPage(page, pageSize);
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId,roleId,type,member.getId()); //TODO 暂时确定三个状态
// return new PageInfo<>(vos); Map<Integer, String> typeMap = new HashMap<>();
return new PageInfo<>(kanBanTaskList); typeMap.put(0, "未开始");
typeMap.put(1, "进行中");
typeMap.put(2, "已完成");
if (ObjectUtil.isNull(type)) {
for (Map.Entry<Integer, String> entry : typeMap.entrySet()) {
System.out.println("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);
if (kanBan.getCode() <= 2) {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan.getCode(), member.getId());
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
} else {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(projectId, roleId, kanBan.getCode());
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);
if (kanBan.getCode() <= 2) {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId, roleId, type, member.getId());
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
} else {
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTakeByType(projectId, roleId, type);
kanBan.setTaskList(new PageInfo<>(kanBanTaskList));
}
kanBans.add(kanBan);
}
// if (ObjectUtil.isNull(type)) {
//
// TaskVo.KanBan kanBan0 = new TaskVo.KanBan();
// kanBan0.setCode(0);
// kanBan0.setTypeName("未开始");
// PageHelper.startPage(page, pageSize);
// List<TaskVo.KanBanTask> kanBanTaskList0 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan0.getCode(), member.getId());
// kanBan0.setTaskList(new PageInfo<>(kanBanTaskList0));
//
// TaskVo.KanBan kanBan1 = new TaskVo.KanBan();
// kanBan1.setCode(1);
// kanBan1.setTypeName("进行中");
// List<TaskVo.KanBanTask> kanBanTaskList1 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan1.getCode(), member.getId());
// kanBan1.setTaskList(new PageInfo<>(kanBanTaskList1));
//
// TaskVo.KanBan kanBan2 = new TaskVo.KanBan();
// kanBan2.setCode(2);
// kanBan2.setTypeName("已完成");
// List<TaskVo.KanBanTask> kanBanTaskList2 = taskSubTimeDao.getKanbanTake(projectId, roleId, kanBan2.getCode(), member.getId());
// kanBan2.setTaskList(new PageInfo<>(kanBanTaskList2));
//
// kanBans.add(kanBan0);
// kanBans.add(kanBan1);
// kanBans.add(kanBan2);
//
// } else {
// TaskVo.KanBan kanBan = new TaskVo.KanBan();
// kanBan.setCode(type);
// kanBan.setTypeName(typeMap.get(type));
// PageHelper.startPage(page, pageSize);
// List<TaskVo.KanBanTask> kanBanTaskList0 = taskSubTimeDao.getKanbanTake(projectId, roleId, type, member.getId());
// kanBan.setTaskList(new PageInfo<>(kanBanTaskList0));
// kanBans.add(kanBan);
// }
return kanBans;
} }
/** /**
@ -473,9 +542,14 @@ public class TaskSubTimeService implements ITaskSubTimeService {
if (ObjectUtil.isNull(proTaskSubTime)) { if (ObjectUtil.isNull(proTaskSubTime)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
} }
TaskDto.TaskSubTimeId subTimeId = new TaskDto.TaskSubTimeId(); if (changeKanbanTask.getType() <= 2) {
subTimeId.setId(changeKanbanTask.getId()); TaskDto.TaskSubTimeId subTimeId = new TaskDto.TaskSubTimeId();
subTimeId.setCompletedStatus(changeKanbanTask.getType()); subTimeId.setId(changeKanbanTask.getId());
finishTask(currentUserId,subTimeId); subTimeId.setCompletedStatus(changeKanbanTask.getType());
finishTask(currentUserId, subTimeId);
} else {
proTaskSubTime.setComplatedStatus(changeKanbanTask.getType());
taskSubTimeDao.updateByPrimaryKeySelective(proTaskSubTime);
}
} }
} }

10
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -125,21 +125,21 @@ public class TaskController {
@ApiOperation(value = "看板上查找任务信息", notes = "") @ApiOperation(value = "看板上查找任务信息", notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id 必填", required = true, paramType = "query"), @ApiImplicitParam(name = "projectId", value = "项目id 必填", required = true, paramType = "query"),
@ApiImplicitParam(name = "type", value = "必填 任务状态 0未开始 1进行中 2已完成", 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 = "roleId", value = "角色id 不传则查找全部", required = true, paramType = "query")
}) })
@RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "kanban", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<PageInfo<TaskVo.KanBanTask>> getKanbanTake(HttpServletRequest request, public JsonResponse<List<TaskVo.KanBan>> getKanbanTake(HttpServletRequest request,
@RequestParam(required = true)Long projectId, @RequestParam(required = true)Long projectId,
@RequestParam(required = false)Long roleId, @RequestParam(required = false)Long roleId,
@RequestParam(required = true)Integer type, @RequestParam(required = false)Integer type,
@RequestParam(required = false)Integer page, @RequestParam(required = false)Integer page,
@RequestParam(required = false)Integer pageSize) throws Exception { @RequestParam(required = false)Integer pageSize) throws Exception {
page = page == null ? 1 : page; page = page == null ? 1 : page;
pageSize = pageSize == null ? 10 : pageSize; pageSize = pageSize == null ? 10 : pageSize;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
PageInfo<TaskVo.KanBanTask> kanbanTaskList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize); List<TaskVo.KanBan> kanbanList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize);
return JsonResponse.newInstance().ok(kanbanTaskList); return JsonResponse.newInstance().ok(kanbanList);
} }
@ApiOperation(value = "看板上修改任务信息", notes = "") @ApiOperation(value = "看板上修改任务信息", notes = "")

24
tall/src/main/resources/mapper_dao/TaskSubTimeDao.xml

@ -76,4 +76,28 @@
) )
) )
</select> </select>
<select id="getKanbanTakeByType" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.TaskVo$KanBanTask">
SELECT
d.id as taskDetailId,
s.id as id,
d.name as taskName,
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime
FROM
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
WHERE
d.project_id = #{projectId}
and
d.level != 0
<if test="roleId != null">
and
r.id = #{roleId}
</if>
and
s.complated_status = #{type}
</select>
</mapper> </mapper>

74
util/src/test/java/com/ccsens/util/Base64Test.java

@ -38,8 +38,76 @@ public class Base64Test {
@Test @Test
public void test02() throws Exception { public void test02() throws Exception {
String s = ""; String[] strings = new String[]{"1590997352223",
String[] projectIds = s.split(","); "1591545600000",
System.out.println(projectIds.toString()); "1592150400000",
"1592755200000",
"1593360000000",
"1593964800000",
"1594569600000",
"1595174400000",
"1595779200000",
"1596384000000",
"1596988800000",
"1597593600000",
"1598198400000",
"1598803200000",
"1599408000000",
"1600012800000",
"1600617600000",
"1601222400000",
"1601827200000",
"1602432000000",
"1603036800000",
"1603641600000",
"1604246400000",
"1604851200000",
"1605456000000",
"1606060800000",
"1606665600000",
"1607270400000",
"1607875200000",
"1608480000000",
"1609084800000"
};
String[] strings1 = new String[]{
"1591315200000",
"1591574400000",
"1592179200000",
"1592784000000",
"1593388800000",
"1593993600000",
"1594598400000",
"1595203200000",
"1595808000000",
"1596412800000",
"1597017600000",
"1597622400000",
"1598227200000",
"1598832000000",
"1599436800000",
"1600041600000",
"1600646400000",
"1601251200000",
"1601856000000",
"1602460800000",
"1603065600000",
"1603670400000",
"1604275200000",
"1604880000000",
"1605484800000",
"1606089600000",
"1606694400000",
"1607299200000",
"1607904000000",
"1608508800000",
"1609113600000"
};
for(int i = 0 ;i<strings.length;i++){
System.out.println( DateUtil.date(Long.valueOf(strings[i])) + "===" + DateUtil.date(Long.valueOf(strings1[i])));
}
} }
} }

Loading…
Cancel
Save