|
|
@ -1,14 +1,20 @@ |
|
|
|
package com.ccsens.tall.service; |
|
|
|
|
|
|
|
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.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.ccsens.util.CodeEnum; |
|
|
|
import com.ccsens.util.JsonResponse; |
|
|
|
import com.ccsens.util.bean.dto.QueryDto; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import com.rabbitmq.client.TopologyRecoveryException; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -25,6 +31,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>(); |
|
|
@ -62,4 +76,157 @@ public class InputDocService implements IInputDocService { |
|
|
|
|
|
|
|
return se; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据任务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); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 删除输入文档 |
|
|
|
* @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); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|