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; |
|||
|
|||
import com.ccsens.tall.bean.dto.InputDocDto; |
|||
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.TaskVo; |
|||
import com.ccsens.util.bean.dto.QueryDto; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface IInputDocService { |
|||
/** |
|||
* 查询 该人参加得所有的项目 |
|||
* @param param |
|||
* @param userId |
|||
* @return |
|||
*/ |
|||
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"?> |
|||
<!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"> |
|||
<resultMap id="ii" type="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTasksVo"> |
|||
<id property="id" column="id"/> |
|||
<resultMap id="ass" type="com.ccsens.tall.bean.vo.TaskVo$NormalTask"> |
|||
<id property="projectId" column="pId"/> |
|||
<result property="projectName" column="pName"/> |
|||
<result property="description" column="pDescription"/> |
|||
<result property="beginTime" column="pBeginTime"/> |
|||
<result property="endTime" column="pEndTime"/> |
|||
<result property="duration" column="pDuration"/> |
|||
<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"/> |
|||
<collection property="list" ofType="com.ccsens.tall.bean.vo.LwbsVo$SelByProjectIdToTaskVo"> |
|||
<result column="beginTime" property="startTime"/> |
|||
<result column="endTime" property="endTime"/> |
|||
<result column="cha" property="cha"/> |
|||
<result column="milestone" property="milestone"/> |
|||
<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> |
|||
<select id="selectById" resultMap="ii"> |
|||
<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> |
|||
</resultMap> |
|||
<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 |
|||
tptd.project_id AS id, |
|||
tptd.`name`, |
|||
tptd.description, |
|||
tptst.begin_time as beginTime, |
|||
tptst.end_time as endTime, |
|||
( tptst.end_time - tptst.begin_time ) / 1000 / 3600 AS cha, |
|||
tptd.milestone |
|||
tptd.*, |
|||
tptst.begin_time AS begin_time_sub_time, |
|||
tptst.end_time AS end_time_sub_time, |
|||
tptst.id as times_id |
|||
FROM |
|||
t_pro_task_detail tptd, |
|||
t_pro_task_sub_time tptst |
|||
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.`level` = 2 |
|||
AND tptd.rec_status = 0 |
|||
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 ( |
|||
SELECT |
|||
tpmr.role_id |
|||
FROM |
|||
t_pro_member_role tpmr |
|||
t_pro_member_role tpmr, |
|||
t_pro_member tpm |
|||
WHERE |
|||
tpm.rec_status = 0 |
|||
AND tpmr.rec_status = 0 |
|||
AND tpm.user_id = #{userId} UNION |
|||
SELECT |
|||
tpr.id |
|||
FROM |
|||
t_pro_role tpr |
|||
WHERE |
|||
tpmr.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 ) |
|||
tpr.rec_status = 0 |
|||
AND tpr.NAME = '全体成员' |
|||
) |
|||
AND tptst.task_detail_id = tptd.id |
|||
and tptst.begin_time<= #{param.startTime} |
|||
and tptst.end_time >= #{param.endTime} |
|||
<if test="param.id != null"> |
|||
and tptd.project_id=#{param.id} |
|||
) tptdt ON tptdt.project_id = tsp.id |
|||
WHERE |
|||
tsp.rec_status = 0 |
|||
AND tsp.begin_time <= #{param.endTime} AND tsp.end_time >= #{param.startTime} |
|||
<if test="param.id!=null"> |
|||
and tsp.id =#{param.id} |
|||
</if> |
|||
</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> |
Loading…
Reference in new issue