Browse Source

20220228

ptos
zy_Java 3 years ago
parent
commit
cda9769489
  1. 9
      src/main/java/com/ccsens/ptccsens/api/DebugController.java
  2. 5
      src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java
  3. 22
      src/main/java/com/ccsens/ptccsens/bean/message/NotificationMessageDto.java
  4. 51
      src/main/java/com/ccsens/ptccsens/bean/message/RemindMessageDto.java
  5. 38
      src/main/java/com/ccsens/ptccsens/bean/message/RingMessageDto.java
  6. 35
      src/main/java/com/ccsens/ptccsens/bean/message/StatusMessageDto.java
  7. 2
      src/main/java/com/ccsens/ptccsens/bean/vo/DeliverVo.java
  8. 6
      src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java
  9. 21
      src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java
  10. 9
      src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskSubDao.java
  11. 79
      src/main/java/com/ccsens/ptccsens/service/DeliverService.java
  12. 117
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  13. 14
      src/main/resources/mapper_dao/ProRoleDao.xml
  14. 103
      src/main/resources/mapper_dao/ProTaskDetailDao.xml
  15. 19
      src/main/resources/mapper_dao/ProTaskSubDao.xml

9
src/main/java/com/ccsens/ptccsens/api/DebugController.java

@ -2,24 +2,30 @@ package com.ccsens.ptccsens.api;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.ptccsens.bean.po.*; import com.ccsens.ptccsens.bean.po.*;
import com.ccsens.ptccsens.persist.dao.PluDeliverDao; import com.ccsens.ptccsens.persist.dao.PluDeliverDao;
import com.ccsens.ptccsens.persist.dao.ProTaskPluginDao; import com.ccsens.ptccsens.persist.dao.ProTaskPluginDao;
import com.ccsens.ptccsens.persist.dao.ProTaskSubDao; import com.ccsens.ptccsens.persist.dao.ProTaskSubDao;
import com.ccsens.ptccsens.util.Constant;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.RestTemplateUtil;
import com.ccsensptos.tallsdk.bean.vo.TallPluginVo; import com.ccsensptos.tallsdk.bean.vo.TallPluginVo;
import com.ccsensptos.tallsdk.util.Constant;
import com.ccsensptos.tallsdk.util.PluginUtil; import com.ccsensptos.tallsdk.util.PluginUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Api(tags = "DEBUG" , description = "DebugController | ") @Api(tags = "DEBUG" , description = "DebugController | ")
@ -70,7 +76,6 @@ public class DebugController {
// //
// }); // });
// } // }
return JsonResponse.newInstance().ok("测试"); return JsonResponse.newInstance().ok("测试");
} }

5
src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java

@ -73,6 +73,8 @@ public class DeliverDto {
@NotNull(message = "请选择检查人") @NotNull(message = "请选择检查人")
@ApiModelProperty("检查人id") @ApiModelProperty("检查人id")
private List<Long> checkerList; private List<Long> checkerList;
@ApiModelProperty("消息id")
private Long msgId;
} }
@Data @Data
@ -90,7 +92,8 @@ public class DeliverDto {
private String remark; private String remark;
@ApiModelProperty("分数") @ApiModelProperty("分数")
private BigDecimal score; private BigDecimal score;
@ApiModelProperty("消息id")
private Long msgId;
} }

22
src/main/java/com/ccsens/ptccsens/bean/message/NotificationMessageDto.java

@ -0,0 +1,22 @@
package com.ccsens.ptccsens.bean.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* @author
*/
@Data
public class NotificationMessageDto {
/**消息类型*/
private String type;
private String event;
/**消息内容*/
private String content;
public NotificationMessageDto(){
setType("Notification");
}
}

51
src/main/java/com/ccsens/ptccsens/bean/message/RemindMessageDto.java

@ -0,0 +1,51 @@
package com.ccsens.ptccsens.bean.message;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.message.BaseMessageDto;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* @author
*/
@Data
public class RemindMessageDto {
/**消息类型*/
private String type;
private String event;
/**消息内容*/
private Data data;
public RemindMessageDto(){
setType("Remind");
}
@Setter
@Getter
public static class Data{
private String projectId;
private String roleId;
private String taskId;
private String pluginId;
//日常0 定期1
private byte taskType = 0;
private String remark;
}
public RemindMessageDto(Long projectId,Long roleId,Long taskId,Long pluginId,Byte taskType,String remark){
this();
Data d = new Data();
d.setProjectId(projectId.toString());
d.setRoleId(roleId.toString());
d.setTaskId(taskId.toString());
d.setPluginId(pluginId.toString());
d.setRemark(remark);
if(ObjectUtil.isNotNull(taskType)){
d.setTaskType(taskType);
}
setData(d);
}
}

38
src/main/java/com/ccsens/ptccsens/bean/message/RingMessageDto.java

@ -0,0 +1,38 @@
package com.ccsens.ptccsens.bean.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* @author
*/
@Data
public class RingMessageDto {
/**消息类型*/
private String type;
private String event;
/**消息内容*/
private Data data;
public RingMessageDto(){
setType("Ring");
}
@Setter
@Getter
public static class Data{
private String projectId;
private String projectName;
private String content;
}
public RingMessageDto(Long projectId,String projectName,String content){
this();
Data d = new Data();
d.setProjectId(projectId.toString());
d.setProjectName(projectName);
d.setContent(content);
setData(d);
}
}

35
src/main/java/com/ccsens/ptccsens/bean/message/StatusMessageDto.java

@ -0,0 +1,35 @@
package com.ccsens.ptccsens.bean.message;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/**
* @author
*/
@Data
public class StatusMessageDto {
/**消息类型*/
private String type;
private String event;
/**消息内容*/
private Data data;
public StatusMessageDto(){
}
@Setter
@Getter
public static class Data{
private String msgId;
}
public StatusMessageDto(String type,Long msgId){
this();
this.type = type;
Data d = new Data();
d.setMsgId(msgId.toString());
setData(d);
}
}

2
src/main/java/com/ccsens/ptccsens/bean/vo/DeliverVo.java

@ -17,7 +17,7 @@ public class DeliverVo {
@ApiModel("查询任务下的交付物信息") @ApiModel("查询任务下的交付物信息")
public static class DeliverOfTask{ public static class DeliverOfTask{
@ApiModelProperty("交付物id") @ApiModelProperty("交付物id")
private Long deliverId; private String deliverId;
@ApiModelProperty("交付物名字") @ApiModelProperty("交付物名字")
private String deliverName; private String deliverName;
@ApiModelProperty("交付物提交记录id") @ApiModelProperty("交付物提交记录id")

6
src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java

@ -66,4 +66,10 @@ public interface ProRoleDao extends ProRoleMapper {
*/ */
Integer isPmByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId); Integer isPmByUserId(@Param("userId")Long userId, @Param("projectId")Long projectId);
/**
* 通过分解后的任务id查询任务所属的角色信息
* @param taskSubId 分解任务id
* @return 返回角色id
*/
List<Long> getRoleIdBySubTaskId(@Param("taskSubId")Long taskSubId);
} }

21
src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java

@ -96,4 +96,25 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @return 返回pwbs * @return 返回pwbs
*/ */
List<TallProjectVo.ProjectInfo> queryPwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId, @Param("parentId")Long parentId); List<TallProjectVo.ProjectInfo> queryPwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId, @Param("parentId")Long parentId);
/**
* 分页查找定期任务
* @param roleId 角色id
* @return 返回任务列表
*/
List<TallTaskVo.QueryTask> pageQueryRegularTask(@Param("roleId")Long roleId, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType);
/**
* 通过分解任务id查找任务关联的交付物插件id
* @param taskSubId 分解任务id
* @return 返回任务插件关联id
*/
Long getDeliverPluginIdBySubTaskId(@Param("taskSubId")Long taskSubId);
/**
* 通过分解任务id判断任务是日常还是定期
* @param taskSubId 分解任务id
* @return 任务状态
*/
Byte getTaskTypeBySubTaskId(@Param("taskSubId")Long taskSubId);
} }

9
src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskSubDao.java

@ -40,4 +40,13 @@ public interface ProTaskSubDao extends ProTaskSubMapper {
* @param taskDetailId 任务详情id * @param taskDetailId 任务详情id
*/ */
void deleteOldSubTask(@Param("taskDetailId") Long taskDetailId); void deleteOldSubTask(@Param("taskDetailId") Long taskDetailId);
/**
* 查询规定时间时进行的任务的开始时间
* @param timeNode 时间点
* @param roleId 角色id
* @return 返回开始时间
*/
Long getTimeByProgressTask(@Param("timeNode")Long timeNode, @Param("roleId")Long roleId);
} }

79
src/main/java/com/ccsens/ptccsens/service/DeliverService.java

@ -4,6 +4,9 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ccsens.ptccsens.bean.dto.DeliverDto; import com.ccsens.ptccsens.bean.dto.DeliverDto;
import com.ccsens.ptccsens.bean.message.NotificationMessageDto;
import com.ccsens.ptccsens.bean.message.RemindMessageDto;
import com.ccsens.ptccsens.bean.message.StatusMessageDto;
import com.ccsens.ptccsens.bean.po.*; import com.ccsens.ptccsens.bean.po.*;
import com.ccsens.ptccsens.bean.vo.DeliverVo; import com.ccsens.ptccsens.bean.vo.DeliverVo;
import com.ccsens.ptccsens.persist.dao.*; import com.ccsens.ptccsens.persist.dao.*;
@ -12,14 +15,19 @@ import com.ccsens.ptccsens.persist.mapper.PluDeliverRecordCheckMapper;
import com.ccsens.ptccsens.persist.mapper.PluDeliverRecordFileMapper; import com.ccsens.ptccsens.persist.mapper.PluDeliverRecordFileMapper;
import com.ccsens.ptccsens.persist.mapper.PluDeliverRecordMapper; import com.ccsens.ptccsens.persist.mapper.PluDeliverRecordMapper;
import com.ccsens.ptccsens.util.BasicsCodeError; import com.ccsens.ptccsens.util.BasicsCodeError;
import com.ccsens.util.bean.message.common.MessageConstant;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.ccsensptos.tallsdk.util.MessageUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; 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 javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @author AUSU * @author AUSU
@ -34,12 +42,18 @@ public class DeliverService implements IDeliverService {
@Resource @Resource
private ProTaskSubDao taskSubDao; private ProTaskSubDao taskSubDao;
@Resource @Resource
private ProTaskDetailDao proTaskDetailDao;
@Resource
private ProDeliverDao deliverDao; private ProDeliverDao deliverDao;
@Resource @Resource
private ProRoleTaskDao roleTaskDao; private ProRoleTaskDao roleTaskDao;
@Resource @Resource
private ProRoleMemberDao roleMemberDao; private ProRoleMemberDao roleMemberDao;
@Resource @Resource
private ProRoleDao proRoleDao;
@Resource
private ProMemberDao proMemberDao;
@Resource
private Snowflake snowflake; private Snowflake snowflake;
@Resource @Resource
private PluDeliverDao pluDeliverDao; private PluDeliverDao pluDeliverDao;
@ -76,6 +90,7 @@ public class DeliverService implements IDeliverService {
pluDeliver.setName(param.getDeliverName()); pluDeliver.setName(param.getDeliverName());
pluDeliverDao.insertSelective(pluDeliver); pluDeliverDao.insertSelective(pluDeliver);
} }
//TODO 发送消息
} }
@ -114,13 +129,35 @@ public class DeliverService implements IDeliverService {
}); });
} }
//添加检查人信息 //添加检查人信息
List<String> phoneList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(param.getCheckerList())){ if(CollectionUtil.isNotEmpty(param.getCheckerList())){
param.getCheckerList().forEach(checkerId ->{ param.getCheckerList().forEach(checkerId ->{
PluDeliverRecordCheck recordCheck = new PluDeliverRecordCheck(); //查询检查人的成员信息
recordCheck.setId(snowflake.nextId()); ProMember proMember = proMemberDao.selectByPrimaryKey(checkerId);
recordCheck.setCheckerId(checkerId); if(ObjectUtil.isNotNull(proMember)){
recordCheck.setDeliverRecordId(deliverRecord.getId()); phoneList.add(proMember.getPhone());
deliverRecordCheckMapper.insertSelective(recordCheck);
PluDeliverRecordCheck recordCheck = new PluDeliverRecordCheck();
recordCheck.setId(snowflake.nextId());
recordCheck.setCheckerId(checkerId);
recordCheck.setDeliverRecordId(deliverRecord.getId());
deliverRecordCheckMapper.insertSelective(recordCheck);
}
});
}
//----------------消息------------------------
//获取任务的角色信息
List<Long> roleIdList = proRoleDao.getRoleIdBySubTaskId(pluDeliver.getTaskSubId());
//查询任务是定期还是日常
Byte taskType = proTaskDetailDao.getTaskTypeBySubTaskId(pluDeliver.getTaskSubId());
//查询当前任务的交付物插件id
Long pluginId = proTaskDetailDao.getDeliverPluginIdBySubTaskId(pluDeliver.getTaskSubId());
if(CollectionUtil.isNotEmpty(roleIdList)){
roleIdList.forEach(roleId -> {
//生成消息内容
RemindMessageDto remindMessageDto = new RemindMessageDto(param.getProjectId(),roleId,pluDeliver.getTaskSubId(),pluginId,taskType,"提交交付物");
//TODO 发送消息
MessageUtil.sendToUser(phoneList,null,remindMessageDto);
}); });
} }
} }
@ -154,6 +191,38 @@ public class DeliverService implements IDeliverService {
checkLog.setScore(param.getScore()); checkLog.setScore(param.getScore());
checkLog.setTime(System.currentTimeMillis()); checkLog.setTime(System.currentTimeMillis());
checkLogMapper.insertSelective(checkLog); checkLogMapper.insertSelective(checkLog);
//----------------消息------------------------
//获取提交人的userId
List<String> userIdList = new ArrayList<>();
ProMember proMember = proMemberDao.selectByPrimaryKey(deliverRecord.getMemberId());
if(ObjectUtil.isNotNull(proMember)){
userIdList.add(proMember.getPhone());
}
NotificationMessageDto remindMessageDto = new NotificationMessageDto();
remindMessageDto.setContent("XXX交付物检查");
//TODO 发送消息(暂定是通知)
MessageUtil.sendToUser(userIdList,null,remindMessageDto);
// //查找交付物信息
// PluDeliver pluDeliver = pluDeliverDao.selectByPrimaryKey(deliverRecord.getDeliverId());
// //获取任务的角色信息
// List<Long> roleIdList = proRoleDao.getRoleIdBySubTaskId(pluDeliver.getTaskSubId());
// //查询当前任务的交付物插件id
// Long pluginId = proTaskDetailDao.getDeliverPluginIdBySubTaskId(pluDeliver.getTaskSubId());
// if(CollectionUtil.isNotEmpty(roleIdList)){
// roleIdList.forEach(roleId -> {
// //生成消息内容
// NotificationMessageDto remindMessageDto = new NotificationMessageDto();
// remindMessageDto.setContent("XXX交付物检查");
// //TODO 发送消息(暂定是通知)
// MessageUtil.sendToUser(userIdSet,remindMessageDto);
// });
// }
//TODO 修改消息状态(已处理)
if(ObjectUtil.isNotNull(param.getMsgId())){
StatusMessageDto statusMessageDto = new StatusMessageDto(MessageConstant.ClientMessageType.SetMsgSuccess.name(),param.getMsgId());
MessageUtil.sendToUser(userIdList,null,statusMessageDto);
}
} }
@Override @Override

117
src/main/java/com/ccsens/ptccsens/service/TallService.java

@ -9,6 +9,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.ccsens.ptccsens.bean.dto.FinanceDto; import com.ccsens.ptccsens.bean.dto.FinanceDto;
import com.ccsens.ptccsens.bean.po.ProRole; import com.ccsens.ptccsens.bean.po.ProRole;
import com.ccsens.ptccsens.bean.po.ProTaskSub;
import com.ccsens.ptccsens.bean.po.ProUser; import com.ccsens.ptccsens.bean.po.ProUser;
import com.ccsens.ptccsens.bean.vo.DeliverVo; import com.ccsens.ptccsens.bean.vo.DeliverVo;
import com.ccsens.ptccsens.bean.vo.FinanceVo; import com.ccsens.ptccsens.bean.vo.FinanceVo;
@ -29,6 +30,8 @@ import com.ccsensptos.tallsdk.bean.vo.TallTaskVo;
import com.ccsensptos.tallsdk.bean.vo.TallTokenVo; import com.ccsensptos.tallsdk.bean.vo.TallTokenVo;
import com.ccsensptos.tallsdk.service.ITallService; import com.ccsensptos.tallsdk.service.ITallService;
import com.ccsensptos.tallsdk.util.TokenUtil; import com.ccsensptos.tallsdk.util.TokenUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -55,6 +58,8 @@ public class TallService implements ITallService {
@Resource @Resource
private ProTaskDetailDao taskDetailDao; private ProTaskDetailDao taskDetailDao;
@Resource @Resource
private ProTaskSubDao proTaskSubDao;
@Resource
private ProRoleDao roleDao; private ProRoleDao roleDao;
@Resource @Resource
private ProMemberDao memberDao; private ProMemberDao memberDao;
@ -248,14 +253,19 @@ public class TallService implements ITallService {
@Override @Override
public List<TallTaskVo.QueryTask> queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) { public List<TallTaskVo.QueryTask> queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) {
//TODO 通过token向tall获取用户信息, TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
// Long userId = null; if(ObjectUtil.isNull(userByToken)){
// throw new BaseException(CodeEnum.NOT_LOGIN);
// //查找当前角色是否有查看权限 }
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); //通过手机号获取用户在服务内的userId
// if (BooleanUtil.isFalse(isLook)) { ProUser user = new ProUser();
// throw new BaseException(CodeEnum.NO_POWER); if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
// } user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
List<Long> roleIds = new ArrayList<>(); List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId()); roleIds.add(param.getRoleId());
@ -264,19 +274,27 @@ public class TallService implements ITallService {
queryPluginForTask(permanentGlobalTask); queryPluginForTask(permanentGlobalTask);
//查询任务下的检查人 //查询任务下的检查人
queryCheckerOfTask(permanentGlobalTask); queryCheckerOfTask(permanentGlobalTask);
//TODO 查询插件展示信息
queryPluginShow(permanentGlobalTask,user.getId());
return permanentGlobalTask; return permanentGlobalTask;
} }
@Override @Override
public List<TallTaskVo.QueryTask> queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) { public List<TallTaskVo.QueryTask> queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) {
// //TODO 通过token向tall获取用户信息, TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
// Long userId = null; if(ObjectUtil.isNull(userByToken)){
// throw new BaseException(CodeEnum.NOT_LOGIN);
// //查找当前角色是否有查看权限 }
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); //通过手机号获取用户在服务内的userId
// if (BooleanUtil.isFalse(isLook)) { ProUser user = new ProUser();
// throw new BaseException(CodeEnum.NO_POWER); if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
// } user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
List<Long> roleIds = new ArrayList<>(); List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId()); roleIds.add(param.getRoleId());
//查询当前角色是否项目经理 //查询当前角色是否项目经理
@ -284,6 +302,9 @@ public class TallService implements ITallService {
queryPluginForTask(globalTask); queryPluginForTask(globalTask);
//查询任务下的检查人 //查询任务下的检查人
queryCheckerOfTask(globalTask); queryCheckerOfTask(globalTask);
//TODO 查询插件展示信息
queryPluginShow(globalTask,user.getId());
return globalTask; return globalTask;
} }
@ -480,7 +501,7 @@ public class TallService implements ITallService {
/** /**
* 查看定期任务和任务下的插件展示信息 * 查看定期任务和任务下的插件展示信息
* @param header token * @param token token
* @param param 查询条件 * @param param 查询条件
* @return 返回任务列表和对应的插件展示信息 * @return 返回任务列表和对应的插件展示信息
*/ */
@ -536,6 +557,8 @@ public class TallService implements ITallService {
queryPluginForTask(replenishTask); queryPluginForTask(replenishTask);
//查询任务下的检查人 //查询任务下的检查人
queryCheckerOfTask(replenishTask); queryCheckerOfTask(replenishTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user.getId());
return replenishTask; return replenishTask;
} }
queryPluginForTask(regularTask); queryPluginForTask(regularTask);
@ -573,6 +596,66 @@ public class TallService implements ITallService {
}); });
} }
} }
}
@Override
public PageInfo<TallTaskVo.QueryTask> pageQueryRegularTask(String token, TallTaskDto.PageQueryRegularTask param) {
//TODO 根据token获取用户信息
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
if(ObjectUtil.isNull(userByToken)){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//通过手机号获取用户在服务内的userId
ProUser user = new ProUser();
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//查询用的时间
Long queryTime = System.currentTimeMillis();
if(ObjectUtil.isNotNull(param.getTaskId())){
//根据任务id查找任务,以任务的开始时间当做查询的时间点
ProTaskSub proTaskSub = proTaskSubDao.selectByPrimaryKey(param.getTaskId());
if(ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L){
queryTime = proTaskSub.getPlanStartTime();
}
}else {
if(ObjectUtil.isNotNull(param.getTimeNode())){
//没有任务id则根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(),param.getRoleId());
if(ObjectUtil.isNotNull(startTime)){
queryTime = startTime;
}
}else {
//如果没有时间基准线则按当前时间查询查询任务
Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(),param.getRoleId());
if(ObjectUtil.isNotNull(startTime)){
queryTime = startTime;
}
}
}
//获取任务列表
PageHelper.startPage(param.getPageNum(),param.getPageSize());
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType());
if(param.getQueryType() == 0){
//向上查找任务顺序是倒的,需要改成正序
List<TallTaskVo.QueryTask> taskList = new ArrayList<>();
for (int i = regularTask.size() - 1; i >= 0; i--) {
taskList.add(regularTask.get(i));
}
regularTask = taskList;
}
//查询任务下的插件
queryPluginForTask(regularTask);
//查询任务下的检查人
queryCheckerOfTask(regularTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user.getId());
return new PageInfo<>(regularTask);
} }
} }

14
src/main/resources/mapper_dao/ProRoleDao.xml

@ -120,4 +120,18 @@
and r.rec_status = 0 and r.rec_status = 0
and l.rec_status = 0 and l.rec_status = 0
</select> </select>
<select id="getRoleIdBySubTaskId" resultType="java.lang.Long">
SELECT
rt.role_id
FROM
t_pro_role_task rt,
t_pro_task_sub s
WHERE
rt.role_duty = 0
and rt.task_id = s.task_detail_id
and rt.rec_status = 0
and s.rec_status = 0
and s.id = #{taskSubId}
</select>
</mapper> </mapper>

103
src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -434,4 +434,107 @@
and s.plan_start_time &lt;= #{endTime} and s.plan_start_time &lt;= #{endTime}
and s.plan_end_time &gt;= #{startTime} and s.plan_end_time &gt;= #{startTime}
</select> </select>
<select id="pageQueryRegularTask" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$QueryTask">
SELECT
alltask.*
FROM
(
SELECT
ts.id,
td.id AS detailId,
td.`name`,
td.description,
ts.plan_start_time AS planStart,
ts.plan_duration,
ts.plan_end_time,
ts.real_end_time,
ts.real_start_time AS realStart,
ts.real_duration,
ts.task_status AS process,
tf.flow_type AS skip,
tf.jump_task_detail_id AS skipTaskId,
tpi.back_color AS backgroundColor,
tpi.round_corner AS borderRadius,
tpi.border AS border,
tpi.shadow AS shadow,
tpi.width AS width,
tpi.height AS height,
tpi.`row` AS `row`,
tpi.col AS col
FROM
t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub AS ts ON ts.task_detail_id = td.id
LEFT JOIN t_pro_task_flow AS tf ON tf.task_detail_id = td.id AND tf.rec_status = 0
LEFT JOIN t_pro_role_task AS rt ON rt.task_id = td.id
LEFT JOIN t_pro_task_panel_info AS tpi ON tpi.task_detail_id = td.id AND tpi.rec_status = 0
LEFT JOIN t_label_business AS lb ON td.id = lb.business_id
LEFT JOIN t_label AS l ON l.id = lb.label_id
LEFT JOIN t_label_type AS lt ON lt.id = l.label_type_id
WHERE
td.rec_status = 0
AND ts.rec_status = 0
AND lb.rec_status = 0
AND l.rec_status = 0
AND lt.rec_status = 0
AND rt.rec_status = 0
AND lb.business_type = 0
AND l.`level` = 3
AND lt.label_type = 1
AND ts.plan_start_time != 0
AND ts.plan_duration != 0
AND rt.role_id = #{roleId}
<if test="queryType == 0">
AND plan_start_time &lt; #{timeNode}
</if>
<if test="queryType == 1">
AND plan_start_time >= #{timeNode}
</if>
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
LEFT JOIN t_label_type AS lltt ON ll.label_type_id = lltt.id
WHERE
llbb.rec_status = 0
AND ll.rec_status = 0
AND lltt.rec_status = 0
AND lltt.label_type = 0
AND llbb.business_type = 0
AND ll.`level` >= #{timeUnit}
<if test="queryType == 0">
ORDER BY alltask.planStart DESC,id DESC
</if>
<if test="queryType == 1">
ORDER BY alltask.planStart,id
</if>
</select>
<select id="getDeliverPluginIdBySubTaskId" resultType="java.lang.Long">
SELECT
p.id
FROM
t_pro_task_plugin p,
t_pro_task_sub s
WHERE
p.task_detail_id = s.task_detail_id
and p.rec_status = 0
and s.rec_status = 0
and s.id = #{taskSubId}
and p.plugin_id = 15
limit 1
</select>
<select id="getTaskTypeBySubTaskId" resultType="java.lang.Byte">
SELECT
if(Max(l.`level`) = 3, 1,0) as taskType
FROM
t_pro_task_sub s,
t_label_business b,
t_label l
WHERE
s.id = #{taskSubId}
and s.task_detail_id = b.business_id
and b.label_id = l.id
and l.label_type_id = 2
and s.rec_status = 0
and b.rec_status = 0
and l.rec_status = 0
</select>
</mapper> </mapper>

19
src/main/resources/mapper_dao/ProTaskSubDao.xml

@ -59,5 +59,24 @@
AND s.plan_start_time &gt;= #{planTime} AND s.plan_start_time &gt;= #{planTime}
LIMIT 1 LIMIT 1
</select> </select>
<select id="getTimeByProgressTask" resultType="java.lang.Long">
SELECT
s.plan_start_time
FROM
t_pro_task_detail d,
t_pro_task_sub s,
t_pro_role_task r
WHERE
d.id = s.task_detail_id
and d.id = r.task_id
and r.role_id = #{roleId}
and s.plan_start_time &lt;= #{timeNode}
and s.plan_end_time &gt; #{timeNode}
and d.rec_status = 0
and s.rec_status = 0
and r.rec_status = 0
ORDER BY s.plan_start_time
limit 1
</select>
</mapper> </mapper>
Loading…
Cancel
Save