Browse Source

共用接口-查询任务插件、给任务添加插件

yanyuan
zy_Java 4 years ago
parent
commit
e52b68164a
  1. 30
      common/src/main/java/com/ccsens/common/bean/dto/CPluginDto.java
  2. 2
      common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java
  3. 8
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java
  4. 6
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskPluginDao.java
  5. 8
      common/src/main/java/com/ccsens/common/service/ITaskService.java
  6. 63
      common/src/main/java/com/ccsens/common/service/TaskService.java
  7. 18
      common/src/main/resources/mapper_dao/ProTaskDetailDao.xml
  8. 9
      common/src/main/resources/mapper_dao/ProTaskPluginDao.xml
  9. 4
      signin/src/main/resources/application.yml

30
common/src/main/java/com/ccsens/common/bean/dto/CPluginDto.java

@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author
@ -47,4 +48,33 @@ public class CPluginDto {
@ApiModelProperty("跨列")
private int colspan = 1;
}
@Data
@ApiModel("添加任务插件信息")
public static class SaveTaskPlugin{
@NotNull(message = "任务详情id不能为空")
@ApiModelProperty("任务详情id")
private Long taskDetailId;
@ApiModelProperty("插件信息")
private List<PluginConfig> pluginList;
}
@Data
@ApiModel("添加任务插件信息")
public static class PluginConfig {
@NotNull(message = "插件id不能为空")
@ApiModelProperty("插件id")
private Long pluginId;
@ApiModelProperty("参数")
private String param;
@ApiModelProperty("行")
private int row;
@ApiModelProperty("列")
private int col = 1;
@ApiModelProperty("跨行")
private int rowspan = 1;
@ApiModelProperty("跨列")
private int colspan = 1;
}
}

2
common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java

@ -117,7 +117,7 @@ public interface ProRoleDao extends ProRoleMapper {
* @param taskDetailId 任务详情id
* @return 角色id
*/
Long getRoleIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId);
List<Long> getRoleIdByTaskDetailId(@Param("taskDetailId") Long taskDetailId);
/**
* 查询角色下的所有成员

8
common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java

@ -3,6 +3,7 @@ package com.ccsens.common.persist.dao;
import com.ccsens.common.bean.dto.CTaskDto;
import com.ccsens.common.bean.po.ProTaskDetail;
import com.ccsens.common.bean.po.ProTaskStatusRecord;
import com.ccsens.common.bean.vo.CPluginVo;
import com.ccsens.common.bean.vo.CTaskVo;
import com.ccsens.common.persist.mapper.ProTaskDetailMapper;
import org.apache.ibatis.annotations.Param;
@ -93,4 +94,11 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @return 任务列表
*/
List<CTaskVo.TaskOfProject> queryTaskOfProject(CTaskDto.QueryTaskOfProject param);
/**
* 根据任务id查询关联的插件信息
* @param detailId 任务id
* @return 返回关联的插件信息
*/
List<CPluginVo.TaskPlugin> queryPluginByTaskId(@Param("detailId") Long detailId);
}

6
common/src/main/java/com/ccsens/common/persist/dao/ProTaskPluginDao.java

@ -32,4 +32,10 @@ public interface ProTaskPluginDao extends ProTaskPluginMapper {
* @param taskPluginList 任务插件列表
*/
void insertAllTaskPlugin(@Param("taskPluginList") List<ProTaskPlugin> taskPluginList);
/**
* 删除任务关联的插件信息
* @param taskDetailId 任务id
*/
void delByTaskDetailId(@Param("taskDetailId") Long taskDetailId);
}

8
common/src/main/java/com/ccsens/common/service/ITaskService.java

@ -1,5 +1,6 @@
package com.ccsens.common.service;
import com.ccsens.common.bean.dto.CPluginDto;
import com.ccsens.common.bean.dto.CTaskDto;
import com.ccsens.common.bean.vo.CPluginVo;
import com.ccsens.common.bean.vo.CTaskVo;
@ -88,4 +89,11 @@ public interface ITaskService {
* 查看任务下的插件信息
*/
List<CPluginVo.TaskPlugin> queryPluginByTaskId(CTaskDto.FindSonTask param, Long userId);
/**
* 给任务添加关联插件
* @param saveTaskPlugin 任务插件信息
* @param userId userId
*/
void saveTaskPlugin(CPluginDto.SaveTaskPlugin saveTaskPlugin, Long userId);
}

63
common/src/main/java/com/ccsens/common/service/TaskService.java

@ -5,6 +5,7 @@ import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.common.bean.dto.CPluginDto;
import com.ccsens.common.bean.dto.CTaskDto;
import com.ccsens.common.bean.message.TaskMessageWithStatus;
import com.ccsens.common.bean.po.*;
@ -73,6 +74,8 @@ public class TaskService implements ITaskService {
private ProRoleTaskDao roleTaskDao;
@Resource
private ProProjectDao proProjectDao;
@Resource
private PluginDao pluginDao;
/**
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务)
@ -789,6 +792,12 @@ public class TaskService implements ITaskService {
if (ObjectUtil.isNull(projectById)){
throw new BaseException(CommonCodeError.PROJECT_NOT_FOUND);
}
//TODO 权限判断
Integer pm = roleDao.isPmByUserId(userId, projectById.getId());
//只有负责人或者是项目经理才能操作
if (pm == null || pm < 1) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
//修改任务信息
if(StrUtil.isNotBlank(param.getName())){
proTaskDetail.setName(param.getName());
@ -830,6 +839,17 @@ public class TaskService implements ITaskService {
if (ObjectUtil.isNull(proTaskDetail)) {
throw new BaseException(CommonCodeError.NOT_TASK);
}
//根据任务查找项目id
Long projectId = taskDetailDao.projectIdByTaskDetailId(proTaskDetail.getId());
if (ObjectUtil.isNull(projectId)) {
throw new BaseException(CommonCodeError.NOT_TASK);
}
//权限判断
Integer pm = roleDao.isPmByUserId(userId, projectId);
//只有负责人或者是项目经理才能操作
if (pm == null || pm < 1) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
//删除任务详情
proTaskDetail.setRecStatus((byte) 2);
taskDetailDao.updateByPrimaryKeySelective(proTaskDetail);
@ -840,14 +860,53 @@ public class TaskService implements ITaskService {
roleTaskDao.delByTaskDetailIdAndType(proTaskDetail.getId(), (byte)1);
//删除任务标签信息
labelDao.delByBusinessIdAndType(proTaskDetail.getId(),(byte)0);
//任务插件关联信息
taskPluginDao.delByTaskDetailId(proTaskDetail.getId());
//TODO 删除任务上下级关系
//TODO 删除任务流转信息
}
@Override
public List<CPluginVo.TaskPlugin> queryPluginByTaskId(CTaskDto.FindSonTask param, Long userId) {
return taskDetailDao.queryPluginByTaskId(param.getDetailId());
}
return null;
@Override
public void saveTaskPlugin(CPluginDto.SaveTaskPlugin saveTaskPlugin, Long userId) {
//查找任务
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(saveTaskPlugin.getTaskDetailId());
if (ObjectUtil.isNull(proTaskDetail)) {
throw new BaseException(CommonCodeError.NOT_TASK);
}
//根据任务查找项目id
Long projectId = taskDetailDao.projectIdByTaskDetailId(proTaskDetail.getId());
if (ObjectUtil.isNull(projectId)) {
throw new BaseException(CommonCodeError.NOT_TASK);
}
//权限判断
Integer pm = roleDao.isPmByUserId(userId, projectId);
//只有负责人或者是项目经理才能操作
if (pm == null || pm < 1) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
//修改插件信息
if(CollectionUtil.isNotEmpty(saveTaskPlugin.getPluginList())){
//删除以前的插件信息
taskPluginDao.delByTaskDetailId(proTaskDetail.getId());
//添加插件信息
for (int i = 0; i < saveTaskPlugin.getPluginList().size(); i++) {
CPluginDto.PluginConfig plugin = saveTaskPlugin.getPluginList().get(i);
ProTaskPlugin proTaskPlugin = new ProTaskPlugin();
proTaskPlugin.setId(snowflake.nextId());
proTaskPlugin.setTaskDetailId(saveTaskPlugin.getTaskDetailId());
proTaskPlugin.setPluginId(plugin.getPluginId());
proTaskPlugin.setPlginRow(i + 1);
proTaskPlugin.setPlginCol(plugin.getCol());
proTaskPlugin.setRowspan(plugin.getRowspan());
proTaskPlugin.setColspan(plugin.getColspan());
proTaskPlugin.setParam(plugin.getParam());
taskPluginDao.insertSelective(proTaskPlugin);
}
}
}
}

18
common/src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -435,5 +435,23 @@
)
AND t.`name` LIKE CONCAT('%',#{name},'%')
</select>
<select id="queryPluginByTaskId" resultType="com.ccsens.common.bean.vo.CPluginVo$TaskPlugin">
SELECT
pp.id,
pp.`name`,
p.param,
p.plgin_row as `row`,
p.plgin_col as `col`,
p.colspan,
p.rowspan
FROM
t_pro_task_plugin p,
plugin.t_pro_plugin pp
WHERE
p.plugin_id = pp.id
and p.task_detail_id = #{detailId}
and p.rec_status = 0
and pp.rec_status = 0
</select>
</mapper>

9
common/src/main/resources/mapper_dao/ProTaskPluginDao.xml

@ -19,6 +19,15 @@
</foreach>
</insert>
<update id="delByTaskDetailId">
update
t_pro_task_plugin
set
rec_status = 2
where
task_detail_id = #{taskDetailId}
</update>
<select id="queryTaskOfPlugin" resultType="com.ccsens.common.bean.vo.CTaskVo$TaskPluginInfo">
SELECT
tp.plugin_id AS pluginId,

4
signin/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: prod
include: util-prod,common
active: dev
include: util-dev,common

Loading…
Cancel
Save