Browse Source

Merge branch 'pt' of https://gitee.com/ccsens_s/ccsenscloud into pt

master
zhizhi wu 5 years ago
parent
commit
8010eaa26e
  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. 92
      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 com.fasterxml.jackson.annotation.JsonIgnore;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -318,7 +319,19 @@ public class TaskVo {
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
public static class KanBanTask{
@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);
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);
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;
}

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

@ -193,6 +193,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(subTimeMember)) {
task.setRealEndTime(subTimeMember.getRealFinishTime());
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)) {
normalTask.setProcess(subTimeMember.getComplatedStatus());
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);
//任务的完成状态
if(taskDetail.getProcess() == 0) {
if(taskDetail.getProcess() != 2) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
if (ObjectUtil.isNotNull(subTimeMember)) {
taskDetail.setProcess(subTimeMember.getComplatedStatus());
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);
//任务的完成状态
if(taskDetail.getProcess() == 0) {
if(taskDetail.getProcess() != 2) {
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
if (ObjectUtil.isNotNull(proSubTimeMember)) {
groupTask.setProcess(proSubTimeMember.getComplatedStatus());
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)) {
normalTask.setProcess(proSubTimeMember.getComplatedStatus());
normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
}else if(normalTask.getProcess() > 2){
normalTask.setRealEndTime((long) 0);
normalTask.setProcess(0);
}
}
ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());

92
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.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
@Slf4j
@Service
@ -154,7 +152,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
}
//不需要全部成员点完成,直接修改任务状态
if(taskDetail.getFinishNeedAll() == 0){
if (taskDetail.getFinishNeedAll() == 0) {
taskSubTime.setRealEndTime(now);
taskSubTime.setComplatedStatus(subTimeId.getCompletedStatus());
taskSubTimeDao.updateByPrimaryKeySelective(taskSubTime);
@ -448,16 +446,87 @@ public class TaskSubTimeService implements ITaskSubTimeService {
* @return 任务列表
*/
@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);
if (ObjectUtil.isNull(member)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
}
//TODO 暂时确定三个状态
Map<Integer, String> typeMap = new HashMap<>();
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);
List<TaskVo.KanBanTask> kanBanTaskList = taskSubTimeDao.getKanbanTake(projectId,roleId,type,member.getId());
// return new PageInfo<>(vos);
return new PageInfo<>(kanBanTaskList);
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)) {
throw new BaseException(CodeEnum.NOT_TASK);
}
if (changeKanbanTask.getType() <= 2) {
TaskDto.TaskSubTimeId subTimeId = new TaskDto.TaskSubTimeId();
subTimeId.setId(changeKanbanTask.getId());
subTimeId.setCompletedStatus(changeKanbanTask.getType());
finishTask(currentUserId,subTimeId);
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 = "")
@ApiImplicitParams({
@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")
})
@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 = false)Long roleId,
@RequestParam(required = true)Integer type,
@RequestParam(required = false)Integer type,
@RequestParam(required = false)Integer page,
@RequestParam(required = false)Integer pageSize) throws Exception {
page = page == null ? 1 : page;
pageSize = pageSize == null ? 10 : pageSize;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
PageInfo<TaskVo.KanBanTask> kanbanTaskList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize);
return JsonResponse.newInstance().ok(kanbanTaskList);
List<TaskVo.KanBan> kanbanList = subTimeService.getKanbanTake(currentUserId,projectId,roleId,type,page,pageSize);
return JsonResponse.newInstance().ok(kanbanList);
}
@ApiOperation(value = "看板上修改任务信息", notes = "")

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

@ -76,4 +76,28 @@
)
)
</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>

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

@ -38,8 +38,76 @@ public class Base64Test {
@Test
public void test02() throws Exception {
String s = "";
String[] projectIds = s.split(",");
System.out.println(projectIds.toString());
String[] strings = new String[]{"1590997352223",
"1591545600000",
"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