13 changed files with 686 additions and 51 deletions
@ -0,0 +1,51 @@ |
|||||
|
package com.ccsens.tall.bean.vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* @author mz |
||||
|
*/ |
||||
|
|
||||
|
@Data |
||||
|
public class InputDocVo { |
||||
|
|
||||
|
@Data |
||||
|
@ApiModel("根据任务id查到的文档") |
||||
|
public static class DocOfTask{ |
||||
|
@ApiModelProperty("输入文档id") |
||||
|
private Long docId; |
||||
|
@ApiModelProperty("输入文档名称") |
||||
|
private String docName; |
||||
|
@ApiModelProperty("是否上传 0否 1是") |
||||
|
private Byte isUpload; |
||||
|
List<File> files; |
||||
|
} |
||||
|
@Data |
||||
|
@ApiModel("文档下的文件") |
||||
|
public static class File{ |
||||
|
@ApiModelProperty("上传记录id") |
||||
|
private Long recordId; |
||||
|
@ApiModelProperty("文件名称") |
||||
|
private String fileName; |
||||
|
@ApiModelProperty("文件访问路径") |
||||
|
private String fileUrl; |
||||
|
} |
||||
|
|
||||
|
@Data |
||||
|
@ApiModel("查看文档历史记录") |
||||
|
public static class HistoryRecord{ |
||||
|
@ApiModelProperty("文件名称") |
||||
|
private String fileName; |
||||
|
@ApiModelProperty("文件访问地址") |
||||
|
private String docUrl; |
||||
|
@ApiModelProperty("文件状态 0未使用 1正在使用") |
||||
|
private String status; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -1,12 +1,74 @@ |
|||||
package com.ccsens.tall.service; |
package com.ccsens.tall.service; |
||||
|
|
||||
|
import com.ccsens.tall.bean.dto.InputDocDto; |
||||
import com.ccsens.tall.bean.dto.LwbsDto; |
import com.ccsens.tall.bean.dto.LwbsDto; |
||||
|
import com.ccsens.tall.bean.vo.InputDocVo; |
||||
import com.ccsens.tall.bean.vo.LwbsVo; |
import com.ccsens.tall.bean.vo.LwbsVo; |
||||
|
import com.ccsens.tall.bean.vo.TaskVo; |
||||
|
import com.ccsens.util.bean.dto.QueryDto; |
||||
|
|
||||
import java.util.List; |
import java.util.List; |
||||
|
|
||||
public interface IInputDocService { |
public interface IInputDocService { |
||||
|
/** |
||||
|
* 查询 该人参加得所有的项目 |
||||
|
* @param param |
||||
|
* @param userId |
||||
|
* @return |
||||
|
*/ |
||||
List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId); |
List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId); |
||||
|
|
||||
List<LwbsVo.SelByProjectIdToTasksVo> selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId); |
/** |
||||
|
* 查询 该人参加的项目(把项目当成一级任务)及项目下的二级任务 |
||||
|
* @param param |
||||
|
* @param userId |
||||
|
* @return |
||||
|
*/ |
||||
|
TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId); |
||||
|
|
||||
|
/** |
||||
|
* 查询二级任务下的所有的子任务 |
||||
|
* @param param |
||||
|
* @param userId |
||||
|
* @return |
||||
|
*/ |
||||
|
List<TaskVo.NormalTask> selByTwoTaskId(LwbsDto.SelByProjectIdToTaskDto param, Long userId,Long taskId); |
||||
|
/** |
||||
|
* 根据任务id查询输入文档 |
||||
|
* @param params 任务id |
||||
|
* @return |
||||
|
*/ |
||||
|
List<InputDocVo.DocOfTask> findDocByTask(InputDocDto.FindDocByTask params); |
||||
|
|
||||
|
/** |
||||
|
* 给输入文档上传文件 |
||||
|
* @param param docId 文档id |
||||
|
* fileId 文件id |
||||
|
*/ |
||||
|
void uploadForDoc(InputDocDto.UploadForDoc param,Long userId); |
||||
|
|
||||
|
/** |
||||
|
* 查看文档文件上传记录 |
||||
|
* @param param |
||||
|
* @return |
||||
|
*/ |
||||
|
List<InputDocVo.HistoryRecord> viewDocHistory(InputDocDto.ViewDocHistory param); |
||||
|
|
||||
|
/** |
||||
|
* 添加输入文档 |
||||
|
* @param param |
||||
|
*/ |
||||
|
void addDoc(InputDocDto.AddDoc param); |
||||
|
|
||||
|
/** |
||||
|
* 修改输入文档 |
||||
|
* @param param |
||||
|
*/ |
||||
|
void updateDoc(InputDocDto.UpdateDoc param); |
||||
|
|
||||
|
/** |
||||
|
* 删除输入文档 |
||||
|
* @param param |
||||
|
*/ |
||||
|
void delDoc(InputDocDto.DeleteDoc param); |
||||
} |
} |
||||
|
@ -1,45 +1,167 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
<?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"> |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
<mapper namespace="com.ccsens.tall.persist.dao.IInputDocDao"> |
<mapper namespace="com.ccsens.tall.persist.dao.IInputDocDao"> |
||||
<resultMap id="ii" type="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTasksVo"> |
<resultMap id="ass" type="com.ccsens.tall.bean.vo.TaskVo$NormalTask"> |
||||
<id property="id" column="id"/> |
<id property="projectId" column="pId"/> |
||||
<result property="name" column="name"/> |
<result property="projectName" column="pName"/> |
||||
<collection property="list" ofType="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTaskVo"> |
<result property="description" column="pDescription"/> |
||||
<result column="beginTime" property="startTime"/> |
<result property="beginTime" column="pBeginTime"/> |
||||
<result column="endTime" property="endTime"/> |
<result property="endTime" column="pEndTime"/> |
||||
<result column="cha" property="cha"/> |
<result property="duration" column="pDuration"/> |
||||
<result column="milestone" property="milestone"/> |
<collection property="secondTasks" ofType="com.ccsens.tall.bean.vo.TaskVo$NormalTask"> |
||||
|
<result property="detailId" column="task_id"/> |
||||
|
<result property="id" column="times_id"/> |
||||
|
<result property="name" column="name"/> |
||||
|
<result property="description" column="description"/> |
||||
|
<result property="beginTime" column="begin_time_sub_time"/> |
||||
|
<result property="endTime" column="end_time_sub_time"/> |
||||
|
<result property="duration" column="duration"/> |
||||
|
<result property="cycle" column="cycle"/> |
||||
|
<result property="priority" column="priority"/> |
||||
|
<result property="milestone" column="milestone"/> |
||||
|
<result property="hasGroup" column="has_group"/> |
||||
|
</collection> |
||||
|
</resultMap> |
||||
|
<resultMap id="DocAndFile" type="com.ccsens.tall.bean.vo.InputDocVo$DocOfTask"> |
||||
|
<id property="docId" column="docId" /> |
||||
|
<id property="docName" column="docName"/> |
||||
|
<result property="isUpload" column="isUpload"/> |
||||
|
<collection property="files" ofType="com.ccsens.tall.bean.vo.InputDocVo$File"> |
||||
|
<id column="recordId" property="recordId" /> |
||||
|
<result column="fileName" property="fileName"/> |
||||
|
<result column="fileUrl" property="fileUrl"/> |
||||
</collection> |
</collection> |
||||
</resultMap> |
</resultMap> |
||||
<select id="selectById" resultMap="ii"> |
<select id="selectByCompany" resultMap="ass"> |
||||
|
SELECT |
||||
|
tsp.id AS pId, |
||||
|
tsp.`name` AS pName, |
||||
|
tsp.description AS pDescription, |
||||
|
tsp.begin_time as pBeginTime, |
||||
|
tsp.end_time as pEndTime, |
||||
|
(tsp.end_time-tsp.begin_time)/1000/3600/24 as pDuration, |
||||
|
tptdt.id as task_id, |
||||
|
tptdt.name, |
||||
|
tptdt.description, |
||||
|
tptdt.begin_time_sub_time, |
||||
|
tptdt.end_time_sub_time, |
||||
|
(tptdt.end_time_sub_time-tptdt.begin_time_sub_time)/1000/3600/24 as duration, |
||||
|
tptdt.cycle, |
||||
|
tptdt.priority, |
||||
|
tptdt.milestone, |
||||
|
tptdt.has_group, |
||||
|
tptdt.times_id |
||||
|
FROM |
||||
|
t_sys_project tsp |
||||
|
INNER JOIN t_pro_member tpm ON tpm.project_id = tsp.id AND tpm.user_id = #{userId} and tpm.rec_status=0 |
||||
|
<if test="param.id!=null"> |
||||
|
and tpm.project_id=#{param.id} |
||||
|
</if> |
||||
|
LEFT JOIN ( |
||||
SELECT |
SELECT |
||||
tptd.project_id AS id, |
tptd.*, |
||||
tptd.`name`, |
tptst.begin_time AS begin_time_sub_time, |
||||
tptd.description, |
tptst.end_time AS end_time_sub_time, |
||||
tptst.begin_time as beginTime, |
tptst.id as times_id |
||||
tptst.end_time as endTime, |
|
||||
( tptst.end_time - tptst.begin_time ) / 1000 / 3600 AS cha, |
|
||||
tptd.milestone |
|
||||
FROM |
FROM |
||||
t_pro_task_detail tptd, |
t_pro_task_detail tptd |
||||
t_pro_task_sub_time tptst |
LEFT JOIN t_pro_task_sub_time tptst ON tptd.id = tptst.task_detail_id |
||||
|
AND tptst.rec_status = 0 |
||||
WHERE |
WHERE |
||||
tptd.`level` = 2 |
tptd.rec_status = 0 |
||||
AND tptd.rec_status = 0 |
AND tptd.`level` = 2 |
||||
|
AND tptst.begin_time <= #{param.endTime} AND tptst.end_time >= #{param.startTime} |
||||
AND tptd.executor_role IN ( |
AND tptd.executor_role IN ( |
||||
SELECT |
SELECT |
||||
tpmr.role_id |
tpmr.role_id |
||||
FROM |
FROM |
||||
t_pro_member_role tpmr |
t_pro_member_role tpmr, |
||||
|
t_pro_member tpm |
||||
WHERE |
WHERE |
||||
tpmr.rec_status = 0 |
tpm.rec_status = 0 |
||||
AND tpmr.member_id IN ( SELECT id FROM t_pro_member tpm WHERE tpm.user_id = #{userId} AND tpm.rec_status = 0 ) |
AND tpmr.rec_status = 0 |
||||
|
AND tpm.user_id = #{userId} UNION |
||||
|
SELECT |
||||
|
tpr.id |
||||
|
FROM |
||||
|
t_pro_role tpr |
||||
|
WHERE |
||||
|
tpr.rec_status = 0 |
||||
|
AND tpr.NAME = '全体成员' |
||||
) |
) |
||||
AND tptst.task_detail_id = tptd.id |
) tptdt ON tptdt.project_id = tsp.id |
||||
and tptst.begin_time<= #{param.startTime} |
WHERE |
||||
and tptst.end_time >= #{param.endTime} |
tsp.rec_status = 0 |
||||
<if test="param.id != null"> |
AND tsp.begin_time <= #{param.endTime} AND tsp.end_time >= #{param.startTime} |
||||
and tptd.project_id=#{param.id} |
<if test="param.id!=null"> |
||||
|
and tsp.id =#{param.id} |
||||
</if> |
</if> |
||||
</select> |
</select> |
||||
|
<resultMap type="com.ccsens.tall.bean.vo.TaskVo$NormalTask" id="selByTwoTaskIdResaultMap"> |
||||
|
<id property="id" column="times_id"/> |
||||
|
<result property="detailId" column="id"/> |
||||
|
<result property="name" column="name"/> |
||||
|
<result property="description" column="description"/> |
||||
|
<result property="beginTime" column="begin_time_sub_time"/> |
||||
|
<result property="endTime" column="end_time_sub_time"/> |
||||
|
<result property="duration" column="duration"/> |
||||
|
<result property="cycle" column="cycle"/> |
||||
|
<result property="priority" column="priority"/> |
||||
|
<result property="milestone" column="milestone"/> |
||||
|
<result property="hasGroup" column="has_group"/> |
||||
|
<result property="projectId" column="project_id" /> |
||||
|
</resultMap> |
||||
|
<select id="selByTwoTaskId" resultMap="selByTwoTaskIdResaultMap"> |
||||
|
SELECT |
||||
|
tptd.*, |
||||
|
tptst.begin_time AS begin_time_sub_time, |
||||
|
tptst.end_time AS end_time_sub_time, |
||||
|
(tptst.end_time-tptst.begin_time)/1000/3600/24 as duration, |
||||
|
tptst.id as times_id |
||||
|
FROM |
||||
|
t_pro_task_detail tptd |
||||
|
LEFT JOIN t_pro_task_sub_time tptst ON tptd.id = tptst.task_detail_id |
||||
|
AND tptst.rec_status = 0 |
||||
|
WHERE |
||||
|
tptd.rec_status = 0 |
||||
|
and tptd.parent_id=#{taskId} |
||||
|
AND tptst.begin_time <= #{param.endTime} AND tptst.end_time >= #{param.startTime} |
||||
|
</select> |
||||
|
<select id="findDocByTask" resultMap="DocAndFile"> |
||||
|
SELECT |
||||
|
tid.id AS docId, |
||||
|
tid.name AS docName, |
||||
|
tid.is_upload AS isUpload, |
||||
|
tir.id AS recordId, |
||||
|
tf.file_name AS fileName, |
||||
|
tf.visit_location AS fileUrl |
||||
|
|
||||
|
FROM |
||||
|
t_pro_task_input_doc AS tid |
||||
|
LEFT JOIN t_pro_task_input_record AS tir ON tid.id = tir.input_doc_id |
||||
|
LEFT JOIN t_file AS tf ON tir.file_id = tf.id |
||||
|
WHERE |
||||
|
tid.task_detail_id = #{taskId} |
||||
|
AND tid.is_upload = 1 |
||||
|
AND tid.rec_status = 0 |
||||
|
AND tir.rec_status = 0 |
||||
|
AND tf.rec_status = 0 |
||||
|
</select> |
||||
|
|
||||
|
<select id="viewDocHistory" resultType="com.ccsens.tall.bean.vo.InputDocVo$HistoryRecord"> |
||||
|
SELECT |
||||
|
tir.id, |
||||
|
tf.file_name, |
||||
|
tf.visit_location, |
||||
|
tir.`status` |
||||
|
FROM |
||||
|
t_pro_task_input_record AS tir |
||||
|
LEFT JOIN t_file AS tf ON tir.file_id = tf.id |
||||
|
LEFT JOIN t_pro_task_input_doc AS tid ON tid.id = tir.input_doc_id |
||||
|
WHERE |
||||
|
tid.id = #{docId} |
||||
|
ORDER BY |
||||
|
tir.created_at DESC |
||||
|
</select> |
||||
|
|
||||
</mapper> |
</mapper> |
Loading…
Reference in new issue