Browse Source

20220401修改查看任务接口

master
unknown 3 years ago
parent
commit
a5ce4105c2
  1. 2
      src/main/java/com/ccsens/ptos_zero/persist/dao/ProTaskDetailDao.java
  2. 11
      src/main/java/com/ccsens/ptos_zero/persist/dao/ProTaskPluginDao.java
  3. 225
      src/main/java/com/ccsens/ptos_zero/service/TallService.java
  4. 2
      src/main/java/com/ccsens/ptos_zero/util/Constant.java
  5. 17
      src/main/resources/mapper_dao/ProTaskDetailDao.xml
  6. 28
      src/main/resources/mapper_dao/ProTaskPluginDao.xml

2
src/main/java/com/ccsens/ptos_zero/persist/dao/ProTaskDetailDao.java

@ -99,7 +99,7 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @param roleId 角色id * @param roleId 角色id
* @return 返回任务列表 * @return 返回任务列表
*/ */
List<TallTaskVo.QueryTask> pageQueryRegularTask(@Param("roleId")Long roleId, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType); List<TallTaskVo.QueryTask> pageQueryRegularTask(@Param("isPm")int isPm, @Param("projectId")Long projectId,@Param("roleId")Long roleId, @Param("timeNode")Long timeNode, @Param("timeUnit")int timeUnit, @Param("queryType")int queryType, @Param("taskId")Long taskId, @Param("triggerType")int triggerType);
// /** // /**
// * 根据任务详情id查找项目id // * 根据任务详情id查找项目id

11
src/main/java/com/ccsens/ptos_zero/persist/dao/ProTaskPluginDao.java

@ -13,13 +13,18 @@ import java.util.List;
*/ */
@Repository @Repository
public interface ProTaskPluginDao extends ProTaskPluginMapper { public interface ProTaskPluginDao extends ProTaskPluginMapper {
// /**
// * 根据任务id查询已配置的插件
// * @param detailTaskId 任务详情id
// * @return 插件列表
// */
// List<TallTaskVo.TaskPluginInfo> queryTaskOfPlugin(@Param("detailTaskId") Long detailTaskId);
/** /**
* 根据任务id查询已配置的插件 * 根据任务id查询已配置的插件
* @param detailTaskId 任务详情id * @param subId 任务分解id
* @return 插件列表 * @return 插件列表
*/ */
List<TallTaskVo.TaskPluginInfo> queryTaskOfPlugin(@Param("detailTaskId") Long detailTaskId); List<TallTaskVo.TaskPluginInfo> queryTaskOfPlugin(@Param("subId") Long subId);
/** /**
* 查询广告页或引导页 * 查询广告页或引导页
* @param taskDetailId 任务详情id * @param taskDetailId 任务详情id

225
src/main/java/com/ccsens/ptos_zero/service/TallService.java

@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ccsens.ptos_zero.bean.po.ProRole; import com.ccsens.ptos_zero.bean.po.ProRole;
import com.ccsens.ptos_zero.bean.po.ProRoleExample; import com.ccsens.ptos_zero.bean.po.ProRoleExample;
import com.ccsens.ptos_zero.bean.po.ProTaskSub;
import com.ccsens.ptos_zero.bean.po.ProUser; import com.ccsens.ptos_zero.bean.po.ProUser;
import com.ccsens.ptos_zero.bean.vo.DeliverVo; import com.ccsens.ptos_zero.bean.vo.DeliverVo;
import com.ccsens.ptos_zero.persist.dao.*; import com.ccsens.ptos_zero.persist.dao.*;
@ -82,7 +83,7 @@ public class TallService implements ITallService {
@SneakyThrows @SneakyThrows
@Override @Override
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params) { public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params, Long parentId) {
//TODO 根据token获取用户信息 //TODO 根据token获取用户信息
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
if(ObjectUtil.isNull(userByToken)){ if(ObjectUtil.isNull(userByToken)){
@ -427,6 +428,7 @@ public class TallService implements ITallService {
return regularTask; return regularTask;
} }
/** /**
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务) * 判断当前用户的角色是否被设置不可见(是否有权限查看任务)
* *
@ -563,78 +565,78 @@ public class TallService implements ITallService {
} }
} }
//
/** // /**
* 查看定期任务和任务下的插件展示信息 // * 查看定期任务和任务下的插件展示信息
* @param token token // * @param token token
* @param param 查询条件 // * @param param 查询条件
* @return 返回任务列表和对应的插件展示信息 // * @return 返回任务列表和对应的插件展示信息
*/ // */
@Override // @Override
public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) { // public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) {
//TODO 根据token获取用户信息 // //TODO 根据token获取用户信息
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); // TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
if(ObjectUtil.isNull(userByToken)){ // if(ObjectUtil.isNull(userByToken)){
throw new BaseException(CodeEnum.NOT_LOGIN); // throw new BaseException(CodeEnum.NOT_LOGIN);
} // }
//通过手机号获取用户在服务内的userId // //通过手机号获取用户在服务内的userId
ProUser user = null; // ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ // if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
user = userDao.getUserIdByPhone(userByToken.getPhone()); // user = userDao.getUserIdByPhone(userByToken.getPhone());
} // }
// if(ObjectUtil.isNull(user)){ //// if(ObjectUtil.isNull(user)){
// throw new BaseException(ZeroCodeError.NOT_USER_SERVER); //// throw new BaseException(ZeroCodeError.NOT_USER_SERVER);
//// }
//
// //查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
// //根据参数配置sql语句
// String query = "";
// String timeFormat = Constant.timeFormat.get(param.getTimeUnit());
// String unit = Constant.timeUnit.get(param.getTimeUnit());
// if (0 == param.getQueryType()) {
// query = "interval -" + param.getQueryNum() + " " + unit;
// } else {
// query += "interval " + (param.getQueryNum() - 1) + " " + unit;
// }
//
// List<Long> roleIds = new ArrayList<>();
// roleIds.add(param.getRoleId());
//
// //TODO 季度未实现
// List<TallTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
// //如果该时段没有任务向上或向下补充
// if (CollectionUtil.isEmpty(regularTask)) {
// List<TallTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
// Map<String, List<TallTaskVo.QueryTask>> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart()))));
// List<String> mapOfKey = new ArrayList<>();
// taskMap.forEach((key, val) -> mapOfKey.add(key));
// if (CollectionUtil.isNotEmpty(mapOfKey)) {
// if (0 == param.getQueryType()) {
// String max = Collections.max(mapOfKey);
// queryPluginForTask(taskMap.get(max));
// return taskMap.get(max);
// } else {
// String min = Collections.min(mapOfKey);
// queryPluginForTask(taskMap.get(min));
// return taskMap.get(min);
// }
// }
// queryPluginForTask(replenishTask);
// //查询任务下的检查人
// queryCheckerOfTask(replenishTask);
// //TODO 查询插件展示信息
// queryPluginShow(regularTask,user == null ? null : user.getId());
// return replenishTask;
// }
// queryPluginForTask(regularTask);
// //查询任务下的检查人
// queryCheckerOfTask(regularTask);
//
// //TODO 查询插件展示信息
// queryPluginShow(regularTask,user == null ? null : user.getId());
//
// return regularTask;
// } // }
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
//根据参数配置sql语句
String query = "";
String timeFormat = Constant.timeFormat.get(param.getTimeUnit());
String unit = Constant.timeUnit.get(param.getTimeUnit());
if (0 == param.getQueryType()) {
query = "interval -" + param.getQueryNum() + " " + unit;
} else {
query += "interval " + (param.getQueryNum() - 1) + " " + unit;
}
List<Long> roleIds = new ArrayList<>();
roleIds.add(param.getRoleId());
//TODO 季度未实现
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
//如果该时段没有任务向上或向下补充
if (CollectionUtil.isEmpty(regularTask)) {
List<TallTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
Map<String, List<TallTaskVo.QueryTask>> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart()))));
List<String> mapOfKey = new ArrayList<>();
taskMap.forEach((key, val) -> mapOfKey.add(key));
if (CollectionUtil.isNotEmpty(mapOfKey)) {
if (0 == param.getQueryType()) {
String max = Collections.max(mapOfKey);
queryPluginForTask(taskMap.get(max));
return taskMap.get(max);
} else {
String min = Collections.min(mapOfKey);
queryPluginForTask(taskMap.get(min));
return taskMap.get(min);
}
}
queryPluginForTask(replenishTask);
//查询任务下的检查人
queryCheckerOfTask(replenishTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user == null ? null : user.getId());
return replenishTask;
}
queryPluginForTask(regularTask);
//查询任务下的检查人
queryCheckerOfTask(regularTask);
//TODO 查询插件展示信息
queryPluginShow(regularTask,user == null ? null : user.getId());
return regularTask;
}
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) { private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) {
if(CollectionUtil.isEmpty(regularTask)){ if(CollectionUtil.isEmpty(regularTask)){
@ -690,7 +692,75 @@ public class TallService implements ITallService {
if(ObjectUtil.isNull(userByToken)){ if(ObjectUtil.isNull(userByToken)){
throw new BaseException(CodeEnum.NOT_LOGIN); throw new BaseException(CodeEnum.NOT_LOGIN);
} }
log.info("token获取的用户信息:{}", userByToken);
//通过手机号获取用户在服务内的userId
ProUser user = null;
if (ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())) {
user = userDao.getUserIdByPhone(userByToken.getPhone());
}
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo;
//如果是管理员则查看LWBS,否则正常查找任务
ProRole proRole = proRoleDao.selectByPrimaryKey(param.getRoleId());
if(!proRole.getName().equals(Constant.ROLE_NAME_ADMIN)){
queryTaskPageInfo = queryPageTask(param, user);
}else {
//角色是"管理员"
queryTaskPageInfo = queryLwbs(param, regularTask, userByToken);
}
return queryTaskPageInfo;
}
private PageInfo<TallTaskVo.QueryTask> queryPageTask(TallTaskDto.PageQueryRegularTask param, ProUser user) {
//查询用的时间
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(0, null, param.getRoleId(), queryTime, param.getTimeUnit(), param.getQueryType(), param.getTaskId(), param.getTriggerType());
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask);
if (CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())) {
if (param.getQueryType() == 0) {
//向上查找任务顺序是倒的,需要改成正序
List<TallTaskVo.QueryTask> taskList = new ArrayList<>();
for (int i = queryTaskPageInfo.getList().size() - 1; i >= 0; i--) {
taskList.add(queryTaskPageInfo.getList().get(i));
}
queryTaskPageInfo.setList(taskList);
}
//查询任务下的插件
queryPluginForTask(queryTaskPageInfo.getList());
//查询任务下的检查人
queryCheckerOfTask(queryTaskPageInfo.getList());
//查询插件展示信息
queryPluginShow(queryTaskPageInfo.getList(), user == null ? null : user.getId());
}
return queryTaskPageInfo;
}
private PageInfo<TallTaskVo.QueryTask> queryLwbs(TallTaskDto.PageQueryRegularTask param, List<TallTaskVo.QueryTask> regularTask, TallTokenVo.UserIdByToken userByToken) {
//调用tall的接口查询所有的任务 //调用tall的接口查询所有的任务
String url = com.ccsensptos.tallsdk.util.Constant.GATEWAY_URL + com.ccsensptos.tallsdk.util.Constant.QUERY_ALL_TASK; String url = com.ccsensptos.tallsdk.util.Constant.GATEWAY_URL + com.ccsensptos.tallsdk.util.Constant.QUERY_ALL_TASK;
log.info("调用接口:{}--", url); log.info("调用接口:{}--", url);
@ -777,7 +847,6 @@ public class TallService implements ITallService {
Collections.reverse(tasks); Collections.reverse(tasks);
} }
} }
return new PageInfo<>(tasks); return new PageInfo<>(tasks);
} }
@ -800,4 +869,14 @@ public class TallService implements ITallService {
return queryTaskList; return queryTaskList;
} }
@Override
public void deleteProject(String token, TallProjectDto.ProjectById params) {
}
@Override
public void dragProject(String token, TallProjectDto.MoveProject params) {
}
} }

2
src/main/java/com/ccsens/ptos_zero/util/Constant.java

@ -23,6 +23,8 @@ public class Constant {
public static String APP_ID = "appId"; public static String APP_ID = "appId";
/**secret*/ /**secret*/
public static String APP_SECRET = "secret"; public static String APP_SECRET = "secret";
/**管理员*/
public static String ROLE_NAME_ADMIN = "管理员";
public static Map<Integer,String> timeUnit = new HashMap<>(); public static Map<Integer,String> timeUnit = new HashMap<>();
public static Map<Integer,String> timeFormat = new HashMap<>(); public static Map<Integer,String> timeFormat = new HashMap<>();

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

@ -468,7 +468,8 @@
tpi.width AS width, tpi.width AS width,
tpi.height AS height, tpi.height AS height,
tpi.`row` AS `row`, tpi.`row` AS `row`,
tpi.col AS col tpi.col AS col,
if(ts.id = #{taskId},0,1) as sort
FROM FROM
t_pro_task_detail AS td 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_sub AS ts ON ts.task_detail_id = td.id
@ -490,13 +491,23 @@
AND lt.label_type = 1 AND lt.label_type = 1
AND ts.plan_start_time != 0 AND ts.plan_start_time != 0
AND ts.plan_duration != 0 AND ts.plan_duration != 0
and rt.role_duty = 0
<if test="isPm == 0">
AND rt.role_id = #{roleId} AND rt.role_id = #{roleId}
</if>
<if test="isPm == 1">
AND rt.role_id in (SELECT id FROM t_pro_role WHERE project_id = #{projectId} and rec_status = 0)
</if>
<if test="queryType == 0"> <if test="queryType == 0">
AND plan_start_time &lt; #{timeNode} AND plan_start_time &lt; #{timeNode}
</if> </if>
<if test="queryType == 1"> <if test="queryType == 1">
AND plan_start_time >= #{timeNode} AND plan_start_time >= #{timeNode}
</if> </if>
<if test="triggerType == 0 and taskId != null">
and ts.id != #{taskId}
</if>
GROUP BY ts.id
) AS alltask ) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id 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 AS ll ON llbb.label_id = ll.id
@ -509,10 +520,10 @@
AND llbb.business_type = 0 AND llbb.business_type = 0
AND ll.`level` >= #{timeUnit} AND ll.`level` >= #{timeUnit}
<if test="queryType == 0"> <if test="queryType == 0">
ORDER BY alltask.planStart DESC,id DESC ORDER BY sort,alltask.planStart DESC,id DESC
</if> </if>
<if test="queryType == 1"> <if test="queryType == 1">
ORDER BY alltask.planStart,id ORDER BY sort,alltask.planStart,id
</if> </if>
</select> </select>

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

@ -96,19 +96,23 @@
<select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$TaskPluginInfo"> <select id="queryTaskOfPlugin" resultType="com.ccsensptos.tallsdk.bean.vo.TallTaskVo$TaskPluginInfo">
SELECT SELECT
tp.plugin_id AS pluginId, p.plugin_id AS pluginId,
tp.code AS pluginCode, p.business_plugin_id AS businessPluginId,
tp.param As param, p.code AS pluginCode,
tp.plgin_row AS `row`, p.plugin_inner AS `inner`,
tp.plgin_col AS col, p.param As param,
tp.colspan AS colspan, p.plgin_row AS `row`,
tp.rowspan AS rowspan, p.plgin_col AS col,
tp.id AS pluginTaskId p.colspan AS colspan,
p.rowspan AS rowspan,
p.id AS pluginTaskId
FROM FROM
t_pro_task_plugin AS tp t_pro_task_plugin p
LEFT JOIN t_pro_task_detail AS td ON td.id = tp.task_detail_id LEFT JOIN t_pro_task_detail d on d.id = p.task_detail_id and d.rec_status = 0
WHERE td.rec_status = 0 AND tp.rec_status = 0 LEFT JOIN t_pro_task_sub s on s.task_detail_id = d.id and s.rec_status = 0
AND tp.task_detail_id = #{detailTaskId} WHERE
p.rec_status = 0
and s.id = #{subId}
</select> </select>
<select id="queryParamByTaskId" resultType="java.lang.String"> <select id="queryParamByTaskId" resultType="java.lang.String">
select select

Loading…
Cancel
Save