Browse Source

20220126展示任务列表

ptos
zy_Java 4 years ago
parent
commit
4c0f599055
  1. 20
      src/main/java/com/ccsens/ptccsens/persist/dao/ProProjectDao.java
  2. 18
      src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java
  3. 11
      src/main/java/com/ccsens/ptccsens/service/ImportService.java
  4. 151
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  5. 2
      src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java
  6. 4
      src/main/java/com/ccsens/ptccsens/util/Constant.java
  7. 1
      src/main/resources/application-dev.yml
  8. 2
      src/main/resources/application-prod.yml
  9. 4
      src/main/resources/application.yml
  10. 2
      src/main/resources/druid-dev.yml
  11. 29
      src/main/resources/mapper_dao/ProProjectDao.xml
  12. 44
      src/main/resources/mapper_dao/ProTaskDetailDao.xml
  13. 1
      src/main/resources/mapper_dao/ProTaskPluginDao.xml

20
src/main/java/com/ccsens/ptccsens/persist/dao/ProProjectDao.java

@ -0,0 +1,20 @@
package com.ccsens.ptccsens.persist.dao;
import com.ccsensptos.tallsdk.bean.vo.TallProjectVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* @author AUSU
*/
@Repository
public interface ProProjectDao {
/**
* 根据id查找项目信息
* @param projectId 项目id(任务详情id)
* @return 项目详情
*/
TallProjectVo.ProjectInfo findProjectById(@Param("projectId") Long projectId);
}

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

@ -4,6 +4,7 @@ import com.ccsens.ptccsens.bean.dto.TaskDto;
import com.ccsens.ptccsens.bean.po.ProTaskSub;
import com.ccsens.ptccsens.bean.vo.TaskVo;
import com.ccsens.ptccsens.persist.mapper.ProTaskDetailMapper;
import com.ccsensptos.tallsdk.bean.vo.TallProjectVo;
import com.ccsensptos.tallsdk.bean.vo.TallTaskVo;
import org.apache.ibatis.annotations.Param;
@ -78,4 +79,21 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
*/
List<TaskVo.TaskOfProject> queryTaskOfProject(TaskDto.QueryTaskOfProject param);
/**
* 查找服务下的mwbs
* @param startTime 开始时间
* @param endTime 结束时间
* @param userId userId
* @return 返回mwbs
*/
List<TallProjectVo.ProjectInfo> queryMwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId);
/**
* 查找MWBS下的pwbs
* @param startTime 开始时间
* @param endTime 结束时间
* @param userId userId
* @param parentId 上级id
* @return 返回pwbs
*/
List<TallProjectVo.ProjectInfo> queryPwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId, @Param("parentId")Long parentId);
}

11
src/main/java/com/ccsens/ptccsens/service/ImportService.java

@ -749,19 +749,20 @@ public class ImportService implements IImportService {
if(StrUtil.isNotEmpty(plugin)){
//根据插件名称查找插件id
// Long pluginId = taskPluginDao.getPluginIdByName(plugin);
Long pluginId = 1L;
if(ObjectUtil.isNull(pluginId)){
throw new BaseException(BasicsCodeError.PLUGIN_NAME_ERROR.addMsg(wbsSheet.getSheetName(),errorRow,plugin));
}
// Long pluginId = 1L;
// if(ObjectUtil.isNull(pluginId)){
// throw new BaseException(BasicsCodeError.PLUGIN_NAME_ERROR.addMsg(wbsSheet.getSheetName(),errorRow,plugin));
// }
//添加插件
ProTaskPlugin proTaskPlugin = new ProTaskPlugin();
proTaskPlugin.setId(snowflake.nextId());
proTaskPlugin.setTaskDetailId(taskId);
proTaskPlugin.setPluginId(pluginId);
// proTaskPlugin.setPluginId(pluginId);
proTaskPlugin.setPlginRow(row);
proTaskPlugin.setPlginCol(1);
proTaskPlugin.setRowspan(1);
proTaskPlugin.setColspan(1);
proTaskPlugin.setCode(plugin);
proTaskPluginDao.insertSelective(proTaskPlugin);
taskPlugin = proTaskPlugin.getId();
}

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

@ -150,6 +150,7 @@ import com.ccsens.ptccsens.persist.dao.*;
import com.ccsens.ptccsens.util.BasicsCodeError;
import com.ccsens.ptccsens.util.Constant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.PropUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.exception.BaseException;
import com.ccsensptos.tallsdk.bean.dto.TallProjectDto;
@ -203,25 +204,27 @@ public class TallService implements ITallService {
private IImportService importService;
@Resource
private UserDao userDao;
@Resource
private ProProjectDao proProjectDao;
@SneakyThrows
@Override
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params) {
// //TODO 根据token获取用户信息
// TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret"));
// //通过手机号获取用户在服务内的userId
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
//通过手机号获取用户在服务内的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);
// }
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
if(user == null){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
// if(ObjectUtil.isNull(userByToken)){
// throw new BaseException(CodeEnum.NOT_LOGIN);
// }
if(ObjectUtil.isNull(userByToken)){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
String ext = FileUtil.extName(params.getOriginalFilename());
if(StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){
throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR);
@ -242,60 +245,78 @@ public class TallService implements ITallService {
return importService.importWbs(fullPath,user.getId(),null);
}
@Override
public TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params) {
TallProjectVo.ProjectInfo projectById = proProjectDao.findProjectById(params.getProjectId());
if (ObjectUtil.isNull(projectById)){
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND);
}
return projectById;
}
@Override
public List<TallProjectVo.ProjectInfo> queryProjectByUser(String token, TallProjectDto.QueryProjectDto param) {
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret"));
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
if(ObjectUtil.isNull(userByToken)){
return null;
}
//通过手机号获取用户在服务内的userId
ProUser user = null;
if(StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
//TODO 暂时查询全部,无论是否查到user
// List<TallProjectVo.ProjectInfo> projectInfos = new ArrayList<>();
//查找所有没有上级的项目,作为MWBS
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null);
if(CollectionUtil.isNotEmpty(mWbs)){
mWbs.forEach(m -> {
//给下项目添加域信息和url
m.setUrl(PropUtil.notGatewayUrl);
//分别查找mwbs下的子pwbs
List<TallProjectVo.ProjectInfo> pWbs = taskDetailDao.queryPwbs(param.getStartTime(),param.getEndTime(),null,m.getId());
if(CollectionUtil.isNotEmpty(pWbs)){
pWbs.forEach(p -> {
//给下项目添加域信息和url
p.setUrl(PropUtil.notGatewayUrl);
});
}
m.setSonProjectList(pWbs);
});
}
List<TallProjectVo.ProjectInfo> projectInfos = new ArrayList<>();
TallProjectVo.ProjectInfo projectInfo = new TallProjectVo.ProjectInfo();
projectInfo.setId(1L);
projectInfo.setName("零号项目");
projectInfo.setUrl("http://127.0.0.1:7310");
projectInfo.setBusinessCode("zero");
projectInfo.setDomainCode("tall_dh");
projectInfos.add(projectInfo);
return projectInfos;
return mWbs;
}
@Override
public TallRoleVo.QueryRole queryShowRole(String token, TallRoleDto.QueryRoleById param) {
//TODO 通过token向tall获取用户信息,
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret"));
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 = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
//返回的对象
TallRoleVo.QueryRole queryRole = new TallRoleVo.QueryRole();
List<TallRoleVo.RoleInfo> visibleList = new ArrayList<>();
List<TallRoleVo.RoleInfo> invisibleList = new ArrayList<>();
//查询当前用户在项目下的角色,没有则算作关注者
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),userByToken.getId());
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId());
//查询用户可见的角色
List<TallRoleVo.RoleInfo> roleInfoList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(userRoleList)){
//不是关注者,查询可见的角色(完全屏蔽才不可见)
roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList);
}else {
// //是关注者查询可见的角色(未设置过对谁不可见信息的角色)
// roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId());
//TODO 0号项目游客查看所有,默认属于管理员
ProRoleExample proRoleExample = new ProRoleExample();
proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
List<ProRole> proRoles = proRoleDao.selectByExample(proRoleExample);
if(CollectionUtil.isNotEmpty(proRoles)){
for (ProRole proRole : proRoles) {
if("管理员".equals(proRole.getName())){
TallRoleVo.RoleInfo roleInfo = new TallRoleVo.RoleInfo();
roleInfo.setId(proRole.getId());
roleInfo.setName(proRole.getName());
roleInfo.setMine(1);
roleInfoList.add(roleInfo);
}
}
}
//是关注者查询可见的角色(未设置过对谁不可见信息的角色)
roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId());
}
//查询配置信息
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId());
@ -356,13 +377,13 @@ public class TallService implements ITallService {
@Override
public List<TallTaskVo.QueryTask> queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) {
//TODO 通过token向tall获取用户信息,
Long userId = null;
//查找当前角色是否有查看权限
Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(CodeEnum.NO_POWER);
}
// Long userId = null;
//
// //查找当前角色是否有查看权限
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
// if (BooleanUtil.isFalse(isLook)) {
// throw new BaseException(CodeEnum.NO_POWER);
// }
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());
@ -376,14 +397,14 @@ public class TallService implements ITallService {
@Override
public List<TallTaskVo.QueryTask> queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) {
//TODO 通过token向tall获取用户信息,
Long userId = null;
//查找当前角色是否有查看权限
Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(CodeEnum.NO_POWER);
}
// //TODO 通过token向tall获取用户信息,
// Long userId = null;
//
// //查找当前角色是否有查看权限
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
// if (BooleanUtil.isFalse(isLook)) {
// throw new BaseException(CodeEnum.NO_POWER);
// }
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());
//查询当前角色是否项目经理
@ -397,8 +418,12 @@ public class TallService implements ITallService {
@Override
public List<TallTaskVo.QueryTask> queryRegularTask(String token, TallTaskDto.QueryRegularTask param) {
//TODO 通过token向tall获取用户信息,
Long userId = null;
// Long userId = null;
// //查找当前角色是否有查看权限
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
// if (BooleanUtil.isFalse(isLook)) {
// throw new BaseException(BasicsCodeError.NOT_PERMISSION);
// }
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
//根据参数配置sql语句
String query = "";
@ -409,11 +434,7 @@ public class TallService implements ITallService {
} else {
query += "interval " + (param.getQueryNum() - 1) + " " + unit;
}
//查找当前角色是否有查看权限
Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(BasicsCodeError.NOT_PERMISSION);
}
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());

2
src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java

@ -44,7 +44,7 @@ public class BasicsCodeError extends CodeError {
public static final Code NOT_PERMISSION = new Code(529,"没有权限!", true);
public static final Code ROLE_ERROR = new Code(530,"角色信息错误!", true);
public static final Code PROJECT_NOT_FOUND = new Code(531,"项目不存在,请检查后再试!", true);

4
src/main/java/com/ccsens/ptccsens/util/Constant.java

@ -8,6 +8,10 @@ import java.util.Map;
* @author AUSU
*/
public class Constant {
/**appId*/
public static String APP_ID = "1485881608842252289";
/**secret*/
public static String APP_SECRET = "UzCCJfmKfVueCPw8w7ymbIc9vxZaRih4ndPmH38TnM9Wz54C";
/**零号项目Id*/
public static Long ZERO_PROJECT_ID = 1484800783814889472L;

1
src/main/resources/application-dev.yml

@ -44,6 +44,7 @@ mybatisCache:
port: 6379
timeout: 1000
notGatewayUrl: http://101.201.226.163:7320/v1.0
file:
path: /home/ptccsens/server/uploads/
domain: https://test.tall.wiki/gateway/ptccsens

2
src/main/resources/application-prod.yml

@ -33,7 +33,7 @@ eureka:
gatewayUrl: https://www.tall.wiki/gateway/
notGatewayUrl: https://www.tall.wiki/
apiUrl: https://www.tall.wiki/
apiUrl: http://www.tall.wiki/
file:
path: /home/ptccsens/server/uploads/
domain: https://www.tall.wiki/gateway/ptccsens

4
src/main/resources/application.yml

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

2
src/main/resources/druid-dev.yml

@ -28,7 +28,7 @@ spring:
testOnReturn: false
testWhileIdle: true
timeBetweenEvictionRunsMillis: 60000
url: jdbc:mysql://49.233.89.188:3306/pt_ccsens?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true
url: jdbc:mysql://101.201.226.163:3306/pt_ccsens?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true
username: root
validationQuery: SELECT 1 FROM DUAL
# env: CCSENS_GAME

29
src/main/resources/mapper_dao/ProProjectDao.xml

@ -0,0 +1,29 @@
<?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.ptccsens.persist.dao.ProProjectDao">
<select id="findProjectById" resultType="com.ccsensptos.tallsdk.bean.vo.TallProjectVo$ProjectInfo">
SELECT
d.id,
d.`name`,
d.description,
d.cycle,
s.plan_start_time,
s.plan_duration,
s.plan_end_time,
s.real_start_time,
s.real_duration,
s.real_end_time
FROM
t_pro_task_detail AS d
LEFT JOIN t_pro_task_sub AS s ON d.id = s.task_detail_id
WHERE
d.rec_status = 0
AND s.rec_status = 0
AND d.id = #{projectId}
ORDER BY
s.plan_start_time DESC
LIMIT 1
</select>
</mapper>

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

@ -390,4 +390,48 @@
)
AND t.`name` LIKE CONCAT('%',#{name},'%')
</select>
<select id="queryMwbs" resultType="com.ccsensptos.tallsdk.bean.vo.TallProjectVo$ProjectInfo">
SELECT
d.id,
d.`name`,
s.plan_start_time as startTime,
s.plan_end_time as endTime
FROM
t_pro_task_detail d
LEFT JOIN t_pro_task_sub s on d.id = s.task_detail_id and s.rec_status = 0
LEFT JOIN t_label_business lb on d.id = lb.business_id and lb.rec_status = 0
LEFT JOIN t_label l on l.id = lb.label_id and l.rec_status = 0
LEFT JOIN t_pro_parent_task p on d.id = p.task_detail_id and p.rec_status = 0
WHERE
l.label_type_id = 2
and p.parent_task_detail_id is null
and
l.`level` = 0
and
d.rec_status = 0
and s.plan_start_time &lt;= #{endTime}
and s.plan_end_time &gt;= #{startTime}
</select>
<select id="queryPwbs" resultType="com.ccsensptos.tallsdk.bean.vo.TallProjectVo$ProjectInfo">
SELECT
d.id,
d.`name`,
s.plan_start_time as startTime,
s.plan_end_time as endTime
FROM
t_pro_task_detail d
LEFT JOIN t_pro_task_sub s on d.id = s.task_detail_id and s.rec_status = 0
LEFT JOIN t_label_business lb on d.id = lb.business_id and lb.rec_status = 0
LEFT JOIN t_label l on l.id = lb.label_id and l.rec_status = 0
LEFT JOIN t_pro_parent_task p on d.id = p.task_detail_id and p.rec_status = 0
WHERE
l.label_type_id = 2
and p.parent_task_detail_id = #{parentId}
and
l.`level` = 0
and
d.rec_status = 0
and s.plan_start_time &lt;= #{endTime}
and s.plan_end_time &gt;= #{startTime}
</select>
</mapper>

1
src/main/resources/mapper_dao/ProTaskPluginDao.xml

@ -31,6 +31,7 @@
<select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$TaskPluginInfo">
SELECT
tp.plugin_id AS pluginId,
tp.code AS pluginCode,
tp.param As param,
tp.plgin_row AS `row`,
tp.plgin_col AS col,

Loading…
Cancel
Save