|
|
@ -13,11 +13,8 @@ import com.ccsens.tall.bean.dto.InputDocDto; |
|
|
|
|
|
|
|
import com.ccsens.tall.bean.dto.LwbsDto; |
|
|
|
import com.ccsens.tall.bean.po.*; |
|
|
|
import com.ccsens.tall.bean.vo.FileVo; |
|
|
|
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.bean.vo.*; |
|
|
|
import com.ccsens.tall.persist.dao.*; |
|
|
|
import com.ccsens.tall.persist.mapper.*; |
|
|
|
|
|
|
|
import com.ccsens.tall.util.TaskUtil; |
|
|
@ -27,6 +24,9 @@ import com.ccsens.util.JsonResponse; |
|
|
|
import com.ccsens.util.PropUtil; |
|
|
|
import com.ccsens.util.RestTemplateUtil; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import com.github.pagehelper.Page; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
@ -52,7 +52,17 @@ public class InputDocService implements IInputDocService { |
|
|
|
@Resource |
|
|
|
private Snowflake snowflake; |
|
|
|
@Resource |
|
|
|
private FileMapper fileMapper; |
|
|
|
private TaskDetailDao taskDetailDao; |
|
|
|
@Resource |
|
|
|
private TaskSubTimeDao taskSubTimeDao; |
|
|
|
@Resource |
|
|
|
private RobotService robotService; |
|
|
|
@Resource |
|
|
|
private ProTaskDetailMapper proTaskDetailMapper; |
|
|
|
@Resource |
|
|
|
private SysOperationDao sysOperationDao; |
|
|
|
@Resource |
|
|
|
private SysOperationMessageDao sysOperationMessageDao; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -173,7 +183,17 @@ public class InputDocService implements IInputDocService { |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<InputDocVo.DocOfTask> findDocByTask(InputDocDto.FindDocByTask param) { |
|
|
|
List<InputDocVo.DocOfTask> docByTasks = iInputDocDao.findDocByTask(param.getTaskId()); |
|
|
|
//查询任务分解后
|
|
|
|
ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); |
|
|
|
if(ObjectUtil.isNull(proTaskSubTime)){ |
|
|
|
throw new BaseException(CodeEnum.NOT_TASK); |
|
|
|
} |
|
|
|
//查询任务详情
|
|
|
|
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); |
|
|
|
if(ObjectUtil.isNull(taskDetail)){ |
|
|
|
throw new BaseException(CodeEnum.NOT_TASK); |
|
|
|
} |
|
|
|
List<InputDocVo.DocOfTask> docByTasks = iInputDocDao.findDocByTask(taskDetail.getId()); |
|
|
|
for (InputDocVo.DocOfTask docs:docByTasks){ |
|
|
|
for (InputDocVo.Record record:docs.getRecords()){ |
|
|
|
if(ObjectUtil.isNotNull(record.getFileIds())) { |
|
|
@ -198,26 +218,6 @@ public class InputDocService implements IInputDocService { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// if (record.getFileIds().contains(",")){
|
|
|
|
// String[] split = record.getFileIds().split(",");
|
|
|
|
// for (int i = 0; i < split.length; i++) {
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(split[i]));
|
|
|
|
//// InputDocVo.File nowFile = new InputDocVo.File();
|
|
|
|
//// nowFile.setFileName(file.getFileName());
|
|
|
|
//// nowFile.setFileUrl(file.getVisitLocation());
|
|
|
|
//// record.getFileList().add(nowFile);
|
|
|
|
// }
|
|
|
|
// }else{
|
|
|
|
// if (StrUtil.isNotBlank(record.getFileIds())){
|
|
|
|
//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(record.getFileIds()));
|
|
|
|
//// InputDocVo.File nowFile = new InputDocVo.File();
|
|
|
|
//// nowFile.setFileName(file.getFileName());
|
|
|
|
//// nowFile.setFileUrl(file.getVisitLocation());
|
|
|
|
//// record.getFileList().add(nowFile);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
} |
|
|
|
} |
|
|
|
return docByTasks; |
|
|
@ -228,17 +228,13 @@ public class InputDocService implements IInputDocService { |
|
|
|
* @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);
|
|
|
|
public void uploadForDoc(InputDocDto.UploadForDoc param,Long userId) throws Exception{ |
|
|
|
|
|
|
|
if (ArrayUtil.isEmpty(param.getFileIds()) && StrUtil.isBlank(param.getRemark())){ |
|
|
|
throw new BaseException("请上传文件或填写备注信息"); |
|
|
|
} |
|
|
|
if (ObjectUtil.isNull(proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()))){ |
|
|
|
ProTaskInputDoc doc = proTaskInputDocMapper.selectByPrimaryKey(param.getDocId()); |
|
|
|
if (ObjectUtil.isNull(doc)){ |
|
|
|
throw new BaseException("输入文档不存在或已删除"); |
|
|
|
} |
|
|
|
//多文件添加
|
|
|
@ -265,7 +261,7 @@ public class InputDocService implements IInputDocService { |
|
|
|
} |
|
|
|
|
|
|
|
//如果备注信息不为空
|
|
|
|
if (!StrUtil.isBlank(param.getRemark())){ |
|
|
|
if (!StrUtil.isBlank(param.getRemark()) && ArrayUtil.isEmpty(param.getFileIds())){ |
|
|
|
ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord(); |
|
|
|
proTaskInputRecord.setInputDocId(param.getDocId()); |
|
|
|
proTaskInputRecord.setStatus((byte)1); |
|
|
@ -281,6 +277,11 @@ public class InputDocService implements IInputDocService { |
|
|
|
proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc); |
|
|
|
} |
|
|
|
|
|
|
|
//TODO 发送消息
|
|
|
|
ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(doc.getTaskDetailId()); |
|
|
|
if (ObjectUtil.isNotNull(taskDetail)){ |
|
|
|
robotService.uploadForDocRobotSend(userId,taskDetail,doc.getName()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
@ -292,8 +293,7 @@ public class InputDocService implements IInputDocService { |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<InputDocVo.HistoryRecord> viewDocHistory(InputDocDto.ViewDocHistory param) { |
|
|
|
List<InputDocVo.HistoryRecord> historyRecords = iInputDocDao.viewDocHistory(param.getDocId()); |
|
|
|
return historyRecords; |
|
|
|
return iInputDocDao.viewDocHistory(param.getDocId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -350,19 +350,6 @@ public class InputDocService implements IInputDocService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//删除记录表中已上传的文档
|
|
|
|
// 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(); |
|
|
@ -396,6 +383,8 @@ public class InputDocService implements IInputDocService { |
|
|
|
proTaskInputDoc.setId(param.getDocId()); |
|
|
|
proTaskInputDoc.setRecStatus((byte)2); |
|
|
|
proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -403,9 +392,15 @@ public class InputDocService implements IInputDocService { |
|
|
|
* @param param |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void delDocOfFile(InputDocDto.DeleteDocOfFile param) { |
|
|
|
public void delDocOfFile(InputDocDto.DeleteDocOfFile param,Long userId) throws Exception{ |
|
|
|
//查看该输入文档下是否还有正在使用的文件
|
|
|
|
ProTaskInputRecord proTaskInputRecord = proTaskInputRecordMapper.selectByPrimaryKey(param.getRecordId()); |
|
|
|
if (ObjectUtil.isNull(proTaskInputRecord)){ |
|
|
|
throw new BaseException(CodeEnum.FILE_NOT_FOUND); |
|
|
|
} |
|
|
|
//查出文档信息找到任务信息
|
|
|
|
ProTaskInputDoc doc = proTaskInputDocMapper.selectByPrimaryKey(proTaskInputRecord.getInputDocId()); |
|
|
|
|
|
|
|
|
|
|
|
//删除输入文档中的文件
|
|
|
|
ProTaskInputRecord record = new ProTaskInputRecord(); |
|
|
@ -414,7 +409,7 @@ public class InputDocService implements IInputDocService { |
|
|
|
proTaskInputRecordMapper.updateByPrimaryKeySelective(record); |
|
|
|
|
|
|
|
ProTaskInputRecordExample proTaskInputRecordExample = new ProTaskInputRecordExample(); |
|
|
|
proTaskInputRecordExample.createCriteria().andRecStatusEqualTo((byte)1) |
|
|
|
proTaskInputRecordExample.createCriteria().andRecStatusEqualTo((byte)0) |
|
|
|
.andInputDocIdEqualTo(proTaskInputRecord.getInputDocId()); |
|
|
|
List<ProTaskInputRecord> proTaskInputRecords = proTaskInputRecordMapper.selectByExample(proTaskInputRecordExample); |
|
|
|
//如果没有将输入文档状态改为未上传
|
|
|
@ -425,6 +420,12 @@ public class InputDocService implements IInputDocService { |
|
|
|
proTaskInputDocMapper.updateByPrimaryKeySelective(proTaskInputDoc); |
|
|
|
} |
|
|
|
|
|
|
|
//TODO 发送消息
|
|
|
|
ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(doc.getTaskDetailId()); |
|
|
|
if (ObjectUtil.isNotNull(taskDetail)){ |
|
|
|
robotService.delDocRobotSend(userId,taskDetail,doc.getName()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -432,13 +433,62 @@ public class InputDocService implements IInputDocService { |
|
|
|
* @param param |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void updateDocOfRemark(InputDocDto.UpdateDocOfRemark param) { |
|
|
|
public void updateDocOfRemark(InputDocDto.UpdateDocOfRemark param,Long userId) throws Exception{ |
|
|
|
ProTaskInputRecord record = new ProTaskInputRecord(); |
|
|
|
record.setId(param.getRecordId()); |
|
|
|
if (StrUtil.isNotBlank(param.getRemark())){ |
|
|
|
record.setRemark(param.getRemark()); |
|
|
|
} |
|
|
|
proTaskInputRecordMapper.updateByPrimaryKeySelective(record); |
|
|
|
|
|
|
|
//TODO 发送消息
|
|
|
|
ProTaskInputRecord inputRecord = proTaskInputRecordMapper.selectByPrimaryKey(record.getId()); |
|
|
|
if (ObjectUtil.isNull(inputRecord)){ |
|
|
|
throw new BaseException(CodeEnum.FILE_NOT_FOUND); |
|
|
|
} |
|
|
|
ProTaskInputDoc doc = proTaskInputDocMapper.selectByPrimaryKey(inputRecord.getInputDocId()); |
|
|
|
ProTaskDetail taskDetail = proTaskDetailMapper.selectByPrimaryKey(doc.getTaskDetailId()); |
|
|
|
if (ObjectUtil.isNotNull(taskDetail)){ |
|
|
|
robotService.updateRemarkRobotSend(userId,taskDetail,doc.getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询历史记录(根据任务id) |
|
|
|
* @param param |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public PageInfo<InputDocVo.DocRecordOfTask> findDocRecordByTask(InputDocDto.FindDocRecordByTask param) { |
|
|
|
PageHelper.startPage(param.getPageNum(),param.getPageSize()); |
|
|
|
|
|
|
|
List<InputDocVo.DocRecordOfTask> sysOperations = sysOperationDao.findMessageByOperate(param.getTaskId()); |
|
|
|
sysOperations.forEach(sysOperation -> { |
|
|
|
List<MessageVo.Message> sysOperationMessages = sysOperationMessageDao.selectContentByOpId(sysOperation.getOperationId()); |
|
|
|
sysOperation.setMessages(sysOperationMessages); |
|
|
|
}); |
|
|
|
|
|
|
|
return new PageInfo<>(sysOperations); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 删除输入文档下所有的文件 |
|
|
|
* @param param 输入文档id |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void delAllRecordOfTask(InputDocDto.DelAllRecordOfTask param) { |
|
|
|
ProTaskInputRecordExample example = new ProTaskInputRecordExample(); |
|
|
|
example.createCriteria().andInputDocIdEqualTo(param.getDocId()).andRecStatusEqualTo((byte)0); |
|
|
|
List<ProTaskInputRecord> records = proTaskInputRecordMapper.selectByExample(example); |
|
|
|
if (ObjectUtil.isNotNull(records)){ |
|
|
|
ProTaskInputRecordExample example2 = new ProTaskInputRecordExample(); |
|
|
|
example2.createCriteria().andInputDocIdEqualTo(param.getDocId()); |
|
|
|
ProTaskInputRecord proTaskInputRecord = new ProTaskInputRecord(); |
|
|
|
proTaskInputRecord.setRecStatus((byte)2); |
|
|
|
proTaskInputRecordMapper.updateByExampleSelective(proTaskInputRecord,example2); |
|
|
|
} |
|
|
|
//TODO 文档 改回未上传状态
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|