Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

recovery
zhizhi wu 4 years ago
parent
commit
47cb5106d4
  1. 60
      tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java
  2. 4
      tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java
  3. 51
      tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java
  4. 3
      tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java
  5. 7
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  6. 26
      tall/src/main/java/com/ccsens/tall/persist/dao/IInputDocDao.java
  7. 64
      tall/src/main/java/com/ccsens/tall/service/IInputDocService.java
  8. 265
      tall/src/main/java/com/ccsens/tall/service/InputDocService.java
  9. 65
      tall/src/main/java/com/ccsens/tall/web/InputDocController.java
  10. 7
      tall/src/main/java/com/ccsens/tall/web/LwbsController.java
  11. 4
      tall/src/main/resources/application-dev.yml
  12. 178
      tall/src/main/resources/mapper_dao/IInputDocDao.xml
  13. 3
      util/src/main/java/com/ccsens/util/CodeEnum.java

60
tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java

@ -4,6 +4,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ -20,4 +23,61 @@ public class InputDocDto {
@ApiModelProperty("输入文档集合")
private List<AddAddInputDoc> list;
}
@Data
@ApiModel("根据任务id查找文档")
public static class FindDocByTask{
@NotNull(message = "请选择任务")
@ApiModelProperty("任务id")
private Long taskId;
}
@Data
@ApiModel("给输入文档上传文件")
public static class UploadForDoc{
@NotNull(message = "请选择输入文档")
@ApiModelProperty("输入文档Id")
private Long docId;
@NotNull(message = "上传文件不能为空")
@ApiModelProperty("文件Id,数组")
private Long[] fileIds;
}
@Data
@ApiModel("查看文档上传记录")
public static class ViewDocHistory{
@NotNull(message = "请选择要查看的文档")
@ApiModelProperty("输入文档Id")
private Long docId;
}
@Data
@ApiModel("添加输入文档")
public static class AddDoc{
@NotNull(message = "请选择要添加文档的任务")
@ApiModelProperty("任务id")
private Long taskId;
@NotEmpty(message = "文档名称不能为空")
@ApiModelProperty("文件名称")
private String[] fileName;
}
@Data
@ApiModel("修改输入文档")
public static class UpdateDoc{
@NotNull(message = "请选择要修改的文档")
@ApiModelProperty("文档id")
private Long docId;
@NotBlank(message = "文件名称不能为空")
@ApiModelProperty("文件名称")
private String fileName;
}
@Data
@ApiModel("删除输入文档")
public static class DeleteDoc{
@NotNull(message = "请选择要删除的文档")
@ApiModelProperty("文档id")
private Long docId;
}
}

4
tall/src/main/java/com/ccsens/tall/bean/dto/LwbsDto.java

@ -31,6 +31,10 @@ public class LwbsDto {
@NotNull
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("完成状态 0全部,1完成,2未完成")
private Integer process = 0;
@ApiModelProperty("优先级排序 0无 1倒叙(优先级高的在前) 2正序")
private Integer priority = 0;
@ApiModelProperty("任务等级")
private Byte level=(byte)2;
}

51
tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java

@ -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;
}
}

3
tall/src/main/java/com/ccsens/tall/bean/vo/LwbsVo.java

@ -44,9 +44,8 @@ public class LwbsVo {
private Long id;
@ApiModelProperty("项目名称")
private String name;
@ApiModelProperty("所有的任务")
@ApiModelProperty("普通任务")
private List<SelByProjectIdToTaskVo> list;
}
}

7
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -61,7 +61,12 @@ public class TaskVo {
private int delay;
@ApiModelProperty("状态:0-未开始,1-进行中,2-已完成")
private int process;
@ApiModelProperty("所属项目id")
private Long projectId;
@ApiModelProperty("所属项目名称")
private String projectName;
@ApiModelProperty("项目下得全局任务")
private List<NormalTask> normalTaskList;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")

26
tall/src/main/java/com/ccsens/tall/persist/dao/IInputDocDao.java

@ -1,7 +1,9 @@
package com.ccsens.tall.persist.dao;
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 org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -10,5 +12,27 @@ import java.util.List;
@Repository
public interface IInputDocDao {
List<LwbsVo.SelByProjectIdToTasksVo> selectById(@Param("param") LwbsDto.SelByProjectIdToTaskDto param, @Param("userId") Long userId);
List<TaskVo.NormalTask> selectByCompany(@Param("param") LwbsDto.SelByProjectIdToTaskDto param, @Param("userId") Long userId);
/**
* 根据任务Id查询输入文档
* @param taskId
* @return
*/
List<InputDocVo.DocOfTask> findDocByTask(Long taskId);
/**
* 查看文档上传历史记录
* @param docId
* @return
*/
List<InputDocVo.HistoryRecord> viewDocHistory(Long docId);
/**
* 查询二级任务下的所有的任务
* @param param
* @param userId
* @return
*/
List<TaskVo.NormalTask> selByTwoTaskId(@Param("param") LwbsDto.SelByProjectIdToTaskDto param,@Param("userId") Long userId,@Param("taskId") Long taskId);
}

64
tall/src/main/java/com/ccsens/tall/service/IInputDocService.java

@ -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);
}

265
tall/src/main/java/com/ccsens/tall/service/InputDocService.java

@ -1,20 +1,30 @@
package com.ccsens.tall.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import com.ccsens.tall.bean.dto.InputDocDto;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.po.ProMember;
import com.ccsens.tall.bean.po.ProMemberExample;
import com.ccsens.tall.bean.po.SysProject;
import com.ccsens.tall.bean.po.SysProjectExample;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.InputDocVo;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.IInputDocDao;
import com.ccsens.tall.persist.mapper.ProMemberMapper;
import com.ccsens.tall.persist.mapper.ProTaskInputDocMapper;
import com.ccsens.tall.persist.mapper.ProTaskInputRecordMapper;
import com.ccsens.tall.persist.mapper.SysProjectMapper;
import com.rabbitmq.client.TopologyRecoveryException;
import org.springframework.beans.factory.annotation.Autowired;
import com.ccsens.tall.util.TaskUtil;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.exception.BaseException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
@ -25,6 +35,14 @@ public class InputDocService implements IInputDocService {
public SysProjectMapper sysProjectMapper;
@Resource
private IInputDocDao iInputDocDao;
@Resource
private ProTaskInputRecordMapper proTaskInputRecordMapper;
@Resource
private ProTaskInputDocMapper proTaskInputDocMapper;
@Resource
private Snowflake snowflake;
@Override
public List<LwbsVo.SelByUserIdToComProjectVo> selBylwbs(LwbsDto.SelByUserIdToComProject param, Long userId) {
List<LwbsVo.SelByUserIdToComProjectVo> selByUserIdToComProjectVos =new ArrayList<LwbsVo.SelByUserIdToComProjectVo>();
@ -41,7 +59,7 @@ public class InputDocService implements IInputDocService {
longList.add(proMember.getProjectId());
});
SysProjectExample sysProjectExample=new SysProjectExample();
sysProjectExample.createCriteria().andRecStatusEqualTo((byte)0).andIdIn(longList).andBeginTimeLessThanOrEqualTo(param.getStartTime()).andEndTimeGreaterThanOrEqualTo(param.getEndTime());
sysProjectExample.createCriteria().andRecStatusEqualTo((byte)0).andIdIn(longList).andBeginTimeLessThanOrEqualTo(param.getEndTime()).andEndTimeGreaterThanOrEqualTo(param.getStartTime());
List<SysProject> sysProjects = sysProjectMapper.selectByExample(sysProjectExample);
sysProjects.forEach(sysProject -> {
LwbsVo.SelByUserIdToComProjectVo selByUserIdToComProjectVo_zhongjian =new LwbsVo.SelByUserIdToComProjectVo();
@ -57,9 +75,234 @@ public class InputDocService implements IInputDocService {
}
@Override
public List<LwbsVo.SelByProjectIdToTasksVo> selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
List<LwbsVo.SelByProjectIdToTasksVo> se= iInputDocDao.selectById(param,userId);
public TaskVo.ProTaskInfo selByProjectIdToTask(LwbsDto.SelByProjectIdToTaskDto param, Long userId) {
TaskVo.ProTaskInfo taskInfo=new TaskVo.ProTaskInfo();
//普通的任务和全局的
List<TaskVo.NormalTask> normalTaskList1= iInputDocDao.selectByCompany(param,userId);
//给二级任务下添加子任务
//遍历项目
if(param.getId()!=null){
for (int i = 0; i < normalTaskList1.size(); i++) {
//遍历任务
for (int i1 = 0; i1 < normalTaskList1.get(i).getSecondTasks().size(); i1++) {
Long taskId= normalTaskList1.get(i).getSecondTasks().get(i1).getDetailId();
//查询该任务下的子任务
List<TaskVo.NormalTask> list = selByTwoTaskId(param, userId, taskId);
//给二级任务添加子任务
if(CollectionUtil.isNotEmpty(list)){
// 第i个项目 i1个二级任务 添加二级任务的子任务
normalTaskList1.get(i).getSecondTasks().get(i1).getSecondTasks().addAll(list);
}
}
}
}
//拆分后得全局任务和普通任务
List<TaskVo.GlobalTask> globalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
for (int i = 0; i < normalTaskList1.size(); i++) {
//拆分项目下得普通任务和全局任务
List<TaskVo.NormalTask> list= normalTaskList1.get(i).getSecondTasks();
TaskUtil.Task task = TaskUtil.splitTask(list, param.getStartTime(), param.getEndTime(), param.getProcess());
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
if(param.getId()==null) {
//给全局任务下先存项目名称
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), globalTask);
globalTask.setNormalTaskList(task.getGlobalTask());
globalTaskList.add(globalTask);
}else {
//直接存二级任务信息
task.getGlobalTask().forEach(ac->{
TaskVo.GlobalTask globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(ac,globalTask);
globalTask.setNormalTaskList(ac.getSecondTasks());
globalTaskList.add(globalTask);
});
}
}
if(CollectionUtil.isNotEmpty(task.getCommonTask())){
if(param.getId()==null) {
//给普通任务下先存项目
TaskVo.NormalTask normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(normalTaskList1.get(i), normalTask);
normalTask.setSecondTasks(task.getCommonTask());
normalTaskList.add(normalTask);
}else {
//自查项目不要项目信息
task.getCommonTask().forEach(ac1->{
normalTaskList.add(ac1);
});
}
}
}
taskInfo.setGlobalTaskList(globalTaskList);
taskInfo.setNormalTaskList(normalTaskList);
return taskInfo;
}
/**
* 查询二级任务下的所有的子任务
*
* @param param
* @param userId
* @return
*/
@Override
public List<TaskVo.NormalTask> selByTwoTaskId(LwbsDto.SelByProjectIdToTaskDto param, Long userId,Long taskId) {
return iInputDocDao.selByTwoTaskId(param, userId,taskId);
}
/**
* 根据任务id查找输入文档
* @param param 任务id
* @return
*/
@Override
public List<InputDocVo.DocOfTask> findDocByTask(InputDocDto.FindDocByTask param) {
List<InputDocVo.DocOfTask> docByTask = iInputDocDao.findDocByTask(param.getTaskId());
return docByTask;
}
/**
* 给输入文档上传文件
* @param param docId 文档id
*/
@Override
public void uploadForDoc(InputDocDto.UploadForDoc param,Long userId) {
//将之前的文件设置为不使用
ProTaskInputRecordExample proTaskInputRecordExample = new ProTaskInputRecordExample();
proTaskInputRecordExample.createCriteria().andInputDocIdEqualTo(param.getDocId());
ProTaskInputRecord newProTaskInputRecord = new ProTaskInputRecord();
newProTaskInputRecord.setStatus((byte)0);
proTaskInputRecordMapper.updateByExampleSelective(newProTaskInputRecord,proTaskInputRecordExample);
//多文件添加
for (int i = 0; i < param.getFileIds().length; i++) {
ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord();
proTaskInputRecord.setInputDocId(param.getDocId());
proTaskInputRecord.setFileId(param.getFileIds()[i]);
proTaskInputRecord.setStatus((byte)1);
proTaskInputRecord.setId(snowflake.nextId());
proTaskInputRecord.setUserId(userId);
proTaskInputRecordMapper.insertSelective(proTaskInputRecord);
}
//通过输入文档id将输入文档表中的状态更改为已上传
ProTaskInputDoc proTaskInputDoc = new ProTaskInputDoc();
proTaskInputDoc.setId(param.getDocId());
proTaskInputDoc.setIsUpload(1);
proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc);
}
/**
* 查看文档上传文件历史记录
* @param param docId 文档id
* @return
*/
@Override
public List<InputDocVo.HistoryRecord> viewDocHistory(InputDocDto.ViewDocHistory param) {
List<InputDocVo.HistoryRecord> historyRecords = iInputDocDao.viewDocHistory(param.getDocId());
return historyRecords;
}
/**
* 添加输入文档
* @param param
*/
@Override
public void addDoc(InputDocDto.AddDoc param) {
//判断是否有重复名称
ProTaskInputDocExample proTaskInputDocExample = new ProTaskInputDocExample();
proTaskInputDocExample.createCriteria().andTaskDetailIdEqualTo(param.getTaskId()).andRecStatusEqualTo((byte)0);
List<ProTaskInputDoc> proTaskInputDocs = proTaskInputDocMapper.selectByExample(proTaskInputDocExample);
if (null != proTaskInputDocs && 0 < proTaskInputDocs.size()){
for (ProTaskInputDoc proTaskInputDoc : proTaskInputDocs){
for (int i = 0; i < param.getFileName().length; i++) {
if (proTaskInputDoc.getName().equals(param.getFileName()[i])){
throw new BaseException(CodeEnum.DOC_REPEAT);
}
}
}
}
//添加输入文档
for (int i = 0; i < param.getFileName().length; i++) {
ProTaskInputDoc proTaskInputDoc = new ProTaskInputDoc();
proTaskInputDoc.setId(snowflake.nextId());
proTaskInputDoc.setTaskDetailId(param.getTaskId());
proTaskInputDoc.setName(param.getFileName()[i]);
proTaskInputDoc.setIsUpload(0);
proTaskInputDocMapper.insertSelective(proTaskInputDoc);
}
}
/**
* 修改输入文档
* @param param
*/
@Override
public void updateDoc(InputDocDto.UpdateDoc param) {
//判断是否有重复
ProTaskInputDoc proTaskInputDoc = proTaskInputDocMapper.selectByPrimaryKey(param.getDocId());
ProTaskInputDocExample proTaskInputDocExample = new ProTaskInputDocExample();
proTaskInputDocExample.createCriteria().andTaskDetailIdEqualTo(proTaskInputDoc.getTaskDetailId());
List<ProTaskInputDoc> proTaskInputDocs = proTaskInputDocMapper.selectByExample(proTaskInputDocExample);
if (null != proTaskInputDocs && 0 < proTaskInputDocs.size()){
for (ProTaskInputDoc docData:proTaskInputDocs){
if (docData.getName().equals(param.getFileName())){
throw new BaseException(CodeEnum.DOC_REPEAT);
}
}
}
//删除记录表中已上传的文档
if (1 == proTaskInputDoc.getIsUpload()){
ProTaskInputRecordExample proTaskInputRecordExample = new ProTaskInputRecordExample();
proTaskInputRecordExample.createCriteria().andInputDocIdEqualTo(param.getDocId());
List<ProTaskInputRecord> proTaskInputRecords = proTaskInputRecordMapper.selectByExample(proTaskInputRecordExample);
for (ProTaskInputRecord record:proTaskInputRecords){
ProTaskInputRecord inputRecord = new ProTaskInputRecord();
inputRecord.setId(record.getId());
inputRecord.setStatus((byte)0);
inputRecord.setRecStatus((byte)2);
proTaskInputRecordMapper.updateByPrimaryKeySelective(inputRecord);
}
}
//修改数据
ProTaskInputDoc newDoc = new ProTaskInputDoc();
newDoc.setId(param.getDocId());
newDoc.setName(param.getFileName());
newDoc.setIsUpload(0);
proTaskInputDocMapper.updateByPrimaryKeySelective(newDoc);
return se;
}
/**
* 删除输入文档
* @param param
*/
@Override
public void delDoc(InputDocDto.DeleteDoc param) {
//删除记录中表中的数据
ProTaskInputRecordExample recordExample = new ProTaskInputRecordExample();
recordExample.createCriteria().andInputDocIdEqualTo(param.getDocId()).andRecStatusEqualTo((byte)0);
List<ProTaskInputRecord> proTaskInputRecords = proTaskInputRecordMapper.selectByExample(recordExample);
for (ProTaskInputRecord inputRecord:proTaskInputRecords){
ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord();
proTaskInputRecord.setId(inputRecord.getId());
proTaskInputRecord.setStatus((byte)0);
proTaskInputRecord.setRecStatus((byte)2);
proTaskInputRecordMapper.updateByPrimaryKeySelective(proTaskInputRecord);
}
//删除输入文档表中的数据
ProTaskInputDoc proTaskInputDoc = new ProTaskInputDoc();
proTaskInputDoc.setId(param.getDocId());
proTaskInputDoc.setRecStatus((byte)2);
proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc);
}
}

65
tall/src/main/java/com/ccsens/tall/web/InputDocController.java

@ -1,8 +1,10 @@
package com.ccsens.tall.web;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.tall.annotation.MustLoginTall;
import com.ccsens.tall.bean.dto.InputDocDto;
import com.ccsens.tall.bean.dto.LabelDto;
import com.ccsens.tall.bean.vo.InputDocVo;
import com.ccsens.tall.bean.vo.LabelVo;
import com.ccsens.tall.service.IInputDocService;
import com.ccsens.util.JsonResponse;
@ -29,7 +31,7 @@ import java.util.List;
@RequestMapping("/inputDoc")
public class InputDocController {
@Autowired
IInputDocService iInputDocService;
private IInputDocService iInputDocService;
@MustLogin
@ApiOperation(value = "添加输入文档", notes = "1007:添加输入文档")
@RequestMapping(value = "/addInputDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ -39,4 +41,65 @@ public class InputDocController {
log.info("添加输入文档");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "通过任务id查询输入文档", notes = "1007:通过任务id查询输入文档")
@RequestMapping(value = "/docByTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<InputDocVo.DocOfTask>> findDocByTask(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.FindDocByTask> params) {
log.info("通过任务id查询输入文档:{}",params);
List<InputDocVo.DocOfTask> docByTask = iInputDocService.findDocByTask(params.getParam());
log.info("通过任务id查询输入文档");
return JsonResponse.newInstance().ok(docByTask);
}
@MustLogin
@ApiOperation(value = "给输入文档上传文件", notes = "1007:给输入文档上传文件")
@RequestMapping(value = "/uploadForDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse uploadForDoc(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.UploadForDoc> params) {
log.info("给输入文档上传文件:{}",params);
iInputDocService.uploadForDoc(params.getParam(),params.getUserId());
log.info("给输入文档上传文件");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "查看文档上传历史记录", notes = "1007:查看文档上传历史记录")
@RequestMapping(value = "/viewDocHistory", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse viewDocHistory(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.ViewDocHistory> params) {
log.info("查看文档上传历史记录:{}",params);
List<InputDocVo.HistoryRecord> historyRecords = iInputDocService.viewDocHistory(params.getParam());
log.info("查看文档上传历史记录");
return JsonResponse.newInstance().ok(historyRecords);
}
@MustLogin
@ApiOperation(value = "添加输入文档", notes = "1007:添加输入文档")
@RequestMapping(value = "/addDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse addDoc(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.AddDoc> params) {
log.info("添加输入文档:{}",params);
iInputDocService.addDoc(params.getParam());
log.info("添加输入文档");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "修改输入文档", notes = "1007:修改输入文档")
@RequestMapping(value = "/updateDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse updateDoc(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.UpdateDoc> params) {
log.info("修改输入文档:{}",params);
iInputDocService.updateDoc(params.getParam());
log.info("修改输入文档");
return JsonResponse.newInstance().ok();
}
@MustLogin
@ApiOperation(value = "删除输入文档", notes = "1007:删除输入文档")
@RequestMapping(value = "/delDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse delDoc(@ApiParam @Validated @RequestBody QueryDto<InputDocDto.DeleteDoc> params) {
log.info("删除输入文档:{}",params);
iInputDocService.delDoc(params.getParam());
log.info("删除输入文档");
return JsonResponse.newInstance().ok();
}
}

7
tall/src/main/java/com/ccsens/tall/web/LwbsController.java

@ -5,6 +5,7 @@ import com.ccsens.tall.annotation.MustLoginTall;
import com.ccsens.tall.bean.dto.InputDocDto;
import com.ccsens.tall.bean.dto.LwbsDto;
import com.ccsens.tall.bean.vo.LwbsVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.service.IInputDocService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
@ -38,12 +39,12 @@ public class LwbsController {
log.info("输出某人下的所有的项目成功");
return JsonResponse.newInstance().ok(selBylwbs);
}
@MustLogin
@MustLoginTall
@ApiOperation(value = "查询某人下参加的项目的所有的任务", notes = "1007:输出")
@RequestMapping(value = "/selByProjectIdToTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<LwbsVo.SelByProjectIdToTasksVo>> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
public JsonResponse<TaskVo.ProTaskInfo> selByProjectIdToTask(@ApiParam @Validated @RequestBody QueryDto<LwbsDto.SelByProjectIdToTaskDto> params) {
log.info("查询某人下参加的项目的所有的任务:{}",params);
List<LwbsVo.SelByProjectIdToTasksVo> selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
TaskVo.ProTaskInfo selBylwbs= iInputDocService.selByProjectIdToTask(params.getParam(),params.getUserId());
log.info("查询某人下参加的项目的所有的任务");
return JsonResponse.newInstance().ok(selBylwbs);
}

4
tall/src/main/resources/application-dev.yml

@ -11,8 +11,8 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
rabbitmq:
host: 192.168.0.99
# host: 127.0.0.1
# host: 192.168.0.99
host: 127.0.0.1
password: guest
port: 5672
username: guest

178
tall/src/main/resources/mapper_dao/IInputDocDao.xml

@ -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"/>
<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"/>
<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"/>
<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>
</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
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 &lt;= #{param.endTime} AND tptst.end_time &gt;= #{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
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 )
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
and tptst.begin_time&lt;= #{param.startTime}
and tptst.end_time &gt;= #{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 &lt;= #{param.endTime} AND tsp.end_time &gt;= #{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 &lt;= #{param.endTime} AND tptst.end_time &gt;= #{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>

3
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -3,7 +3,7 @@ package com.ccsens.util;
import lombok.Getter;
@Getter
public enum CodeEnum {
public enum CodeEnum {
/**
* 异常
*/
@ -186,6 +186,7 @@ public enum CodeEnum {
ZHUYUANIDCHONGFU(155,"住院号重复",true),
MEIYOUGAIYISHENG(156,"该医生信息查询不正确",true),
QINGTIJIAOSHITI(157,"未做出修改答案,修改后再提交",true),
DOC_REPEAT(158,"输入文档已存在",true),
;

Loading…
Cancel
Save