Browse Source

新增根据任务id查询交付物详情

recovery
zy_Java 4 years ago
parent
commit
ae325e87a8
  1. 10
      tall/src/main/java/com/ccsens/tall/bean/dto/DeliverDto.java
  2. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDeliverPostLog.java
  3. 70
      tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDeliverPostLogExample.java
  4. 47
      tall/src/main/java/com/ccsens/tall/bean/vo/DeliverVo.java
  5. 9
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
  6. 3
      tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDeliverPostLogMapper.java
  7. 8
      tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java
  8. 306
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  9. 24
      tall/src/main/java/com/ccsens/tall/web/DeliverController.java
  10. 4
      tall/src/main/resources/application.yml
  11. 67
      tall/src/main/resources/mapper_dao/DeliverDao.xml
  12. 29
      tall/src/main/resources/mapper_raw/ProTaskDeliverPostLogMapper.xml

10
tall/src/main/java/com/ccsens/tall/bean/dto/DeliverDto.java

@ -8,6 +8,7 @@ import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List;
public class DeliverDto {
@ -54,4 +55,13 @@ public class DeliverDto {
@ApiModelProperty("wps文件Id,可以为空")
private Long wpsFileId;
}
@Data
@ApiModel("根据任务id查找输出文档")
public static class FindDocByTask{
@NotNull(message = "请选择任务")
@ApiModelProperty("任务id")
private Long taskId;
}
}

11
tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDeliverPostLog.java

@ -28,6 +28,8 @@ public class ProTaskDeliverPostLog implements Serializable {
private Byte recStatus;
private String filesId;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -126,6 +128,14 @@ public class ProTaskDeliverPostLog implements Serializable {
this.recStatus = recStatus;
}
public String getFilesId() {
return filesId;
}
public void setFilesId(String filesId) {
this.filesId = filesId == null ? null : filesId.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -144,6 +154,7 @@ public class ProTaskDeliverPostLog implements Serializable {
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", filesId=").append(filesId);
sb.append("]");
return sb.toString();
}

70
tall/src/main/java/com/ccsens/tall/bean/po/ProTaskDeliverPostLogExample.java

@ -844,6 +844,76 @@ public class ProTaskDeliverPostLogExample {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andFilesIdIsNull() {
addCriterion("files_id is null");
return (Criteria) this;
}
public Criteria andFilesIdIsNotNull() {
addCriterion("files_id is not null");
return (Criteria) this;
}
public Criteria andFilesIdEqualTo(String value) {
addCriterion("files_id =", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdNotEqualTo(String value) {
addCriterion("files_id <>", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdGreaterThan(String value) {
addCriterion("files_id >", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdGreaterThanOrEqualTo(String value) {
addCriterion("files_id >=", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdLessThan(String value) {
addCriterion("files_id <", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdLessThanOrEqualTo(String value) {
addCriterion("files_id <=", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdLike(String value) {
addCriterion("files_id like", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdNotLike(String value) {
addCriterion("files_id not like", value, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdIn(List<String> values) {
addCriterion("files_id in", values, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdNotIn(List<String> values) {
addCriterion("files_id not in", values, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdBetween(String value1, String value2) {
addCriterion("files_id between", value1, value2, "filesId");
return (Criteria) this;
}
public Criteria andFilesIdNotBetween(String value1, String value2) {
addCriterion("files_id not between", value1, value2, "filesId");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

47
tall/src/main/java/com/ccsens/tall/bean/vo/DeliverVo.java

@ -7,8 +7,12 @@ import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author
*/
@Data
public class DeliverVo {
@ -37,7 +41,7 @@ public class DeliverVo {
private String description;
@ApiModelProperty("上传交付物的时间")
private Long time;
@ApiModelProperty("上传交付物的时间")
@ApiModelProperty("删除交付物的时间")
private Long deleteTime;
@ApiModelProperty("交付物访问路径")
private String url;
@ -61,9 +65,9 @@ public class DeliverVo {
@ApiModel
@Data
public static class Checker {
@ApiModelProperty("检查人")
@ApiModelProperty("检查人(角色)")
private Long checkerId;
@ApiModelProperty("检查人姓名")
@ApiModelProperty("检查人姓名(角色)")
private String checkerName;
@ApiModelProperty("检查情况 0未检查,1合格,2不合格")
private int checkerStatus;
@ -71,6 +75,8 @@ public class DeliverVo {
private int score;
@ApiModelProperty("检查人备注")
private String remark;
@ApiModelProperty("该用户自身是否是此交付物的检查人")
private Boolean isChecker;
}
//交付物清单
@ -148,4 +154,39 @@ public class DeliverVo {
}
@ApiModel("通过任务id查找输出文档")
@Data
public static class QueryDeliverByTaskId {
@ApiModelProperty("交付物Id")
private Long deliverId;
@ApiModelProperty("交付物名")
private String deliverName;
@ApiModelProperty("上传记录")
private List<DeliverRecode> deliverRecodes;
}
@ApiModel("输出文档的上传记录")
@Data
public static class DeliverRecode {
@ApiModelProperty("交付物上传的记录id")
private Long deliverLogId;
@ApiModelProperty("备注信息")
private String description;
@ApiModelProperty("上传交付物的时间")
private Long time;
//所有文件id
@JsonIgnore
private String filesId;
// @ApiModelProperty("上传者id")
// private Long role;
// @ApiModelProperty("上传者名")
// private List<DRole> role;
@ApiModelProperty("检查状况")
private List<Checker> checkerList;
@ApiModelProperty("文件列表")
private List<FileVo.FilePosition> fileList = new ArrayList<>();
}
}

9
tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java

@ -24,4 +24,13 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{
List<WbsVo.DeliverWithExcel> getDeliverAllByProject(@Param("projectId")Long projectId);
List<WbsVo.SubTime> selectFileInfoByDeliverId(@Param("deliverId")Long deliverId);
/**
* 通过任务id查询交付物详情
* @param userId userId
* @param subTimeId 分解后的任务id
* @param taskDetailId 任务详情id
* @return 返回交付物详情
*/
List<DeliverVo.QueryDeliverByTaskId> queryDeliverByTaskId(@Param("userId")Long userId, @Param("subTimeId")Long subTimeId, @Param("taskDetailId")Long taskDetailId);
}

3
tall/src/main/java/com/ccsens/tall/persist/mapper/ProTaskDeliverPostLogMapper.java

@ -2,9 +2,8 @@ package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.ProTaskDeliverPostLog;
import com.ccsens.tall.bean.po.ProTaskDeliverPostLogExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface ProTaskDeliverPostLogMapper {
long countByExample(ProTaskDeliverPostLogExample example);

8
tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java

@ -34,4 +34,12 @@ public interface ITaskDeliverService {
void deleteDeliver(Long userId, Long deliverId, Long taskId) throws Exception;
Long isTaskOrSubTime(Long id)throws Exception;
/**
* 通过任务id查询输出文档信息
* @param currentUserId userID
* @param taskId 分解后的任务id
* @return 返回输出文档信息
*/
List<DeliverVo.QueryDeliverByTaskId> queryDeliverByTaskId(Long currentUserId, Long taskId);
}

306
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -206,74 +206,43 @@ public class TaskDeliverService implements ITaskDeliverService {
if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole){
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
}
// //查找以前上传的不为历史信息的文件。改为历史信息
// ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
// logExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andDeliverIdEqualTo(uploadDeliver.getDeliverId())
// .andUserIdEqualTo(currentUserId).andIsHistoryEqualTo(0);
// List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
// if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
// for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
// deliverPostLog.setIsHistory(1);
// deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
// }
// }
//将文件信息与交付物绑定,添加记录deliverPostLog
if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo()) || StrUtil.isNotEmpty(uploadDeliver.getDescription())) {
if(CollectionUtil.isEmpty(uploadDeliver.getFileInfo())){
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTaskSubTimeId(subTimeId);
deliverPostLog.setUserId(currentUserId);
deliverPostLog.setDescription(uploadDeliver.getDescription());
deliverPostLog.setTime(now);
deliverPostLog.setIsHistory(0);
deliverPostLogDao.insertSelective(deliverPostLog);
//添加交付物检查人表
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
ProTaskDeliverPostLogChecker postLogChecker;
for (Long checkerId : uploadDeliver.getCheckerIdList()) {
postLogChecker = new ProTaskDeliverPostLogChecker();
postLogChecker.setId(snowflake.nextId());
postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
postLogChecker.setCheckerId(checkerId);
postLogCheckerDao.insertSelective(postLogChecker);
//拼接文件id
StringBuilder filesId = new StringBuilder();
if(CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())){
for (int i = 0; i < uploadDeliver.getFileInfo().size(); i++) {
DeliverDto.FileInfo fileInfo = uploadDeliver.getFileInfo().get(i);
if(i == 0){
filesId.append(fileInfo.getId());
}else {
filesId.append(",").append(fileInfo.getId());
}
} else {
throw new BaseException(CodeEnum.NOT_CHECKER);
}
}else {
for (DeliverDto.FileInfo fileInfo : uploadDeliver.getFileInfo()) {
// SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
// if(ObjectUtil.isNull(file)){
// throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
// }
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTaskSubTimeId(subTimeId);
deliverPostLog.setFileId(fileInfo.getId());
deliverPostLog.setUserId(currentUserId);
deliverPostLog.setDescription(uploadDeliver.getDescription());
deliverPostLog.setTime(now);
deliverPostLog.setIsHistory(0);
deliverPostLogDao.insertSelective(deliverPostLog);
//添加交付物检查人表
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
ProTaskDeliverPostLogChecker postLogChecker;
for (Long checkerId : uploadDeliver.getCheckerIdList()) {
postLogChecker = new ProTaskDeliverPostLogChecker();
postLogChecker.setId(snowflake.nextId());
postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
postLogChecker.setCheckerId(checkerId);
postLogCheckerDao.insertSelective(postLogChecker);
}
} else {
throw new BaseException(CodeEnum.NOT_CHECKER);
}
//保存wps的文件消息
saveWpsFile(currentUserId, deliverPostLog.getId(), fileInfo);
}
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTaskSubTimeId(subTimeId);
deliverPostLog.setUserId(currentUserId);
deliverPostLog.setDescription(uploadDeliver.getDescription());
deliverPostLog.setTime(now);
deliverPostLog.setIsHistory(0);
deliverPostLog.setFilesId(filesId.toString());
deliverPostLogDao.insertSelective(deliverPostLog);
//添加交付物检查人表
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
ProTaskDeliverPostLogChecker postLogChecker;
for (Long checkerId : uploadDeliver.getCheckerIdList()) {
postLogChecker = new ProTaskDeliverPostLogChecker();
postLogChecker.setId(snowflake.nextId());
postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
postLogChecker.setCheckerId(checkerId);
postLogCheckerDao.insertSelective(postLogChecker);
}
} else {
throw new BaseException(CodeEnum.NOT_CHECKER);
}
//修改交付物状态
ProTaskDeliver deliver = new ProTaskDeliver();
@ -282,8 +251,6 @@ public class TaskDeliverService implements ITaskDeliverService {
taskDeliverDao.updateByPrimaryKeySelective(deliver);
}
//发送WS信息
//获取所有接收者的id
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser;
@ -344,6 +311,168 @@ public class TaskDeliverService implements ITaskDeliverService {
return deliverInfo;
}
// /**
// * 将文件绑定交付物
// */
// @Override
// public ProjectVo.DeliverInfo addDeliver(Long currentUserId, DeliverDto.UploadDeliver uploadDeliver) throws Exception {
// Long now = System.currentTimeMillis();
// Long subTimeId = isTaskOrSubTime(uploadDeliver.getTaskId());
// if (ObjectUtil.isNull(subTimeId)) {
// throw new BaseException(CodeEnum.NOT_TASK);
// }
// ProjectVo.DeliverInfo deliverInfo = null;
// //查找交付
// ProTaskDeliver taskDeliver = taskDeliverDao.selectByPrimaryKey(uploadDeliver.getDeliverId());
// if (ObjectUtil.isNull(taskDeliver)) {
// throw new BaseException(CodeEnum.NOT_DELIVER);
// }
//
// ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskDeliver.getTaskDetailId());
// ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
// Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId(),null);
// if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole){
// throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
// }
//// //查找以前上传的不为历史信息的文件。改为历史信息
//// ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
//// logExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andDeliverIdEqualTo(uploadDeliver.getDeliverId())
//// .andUserIdEqualTo(currentUserId).andIsHistoryEqualTo(0);
//// List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
//// if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
//// for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
//// deliverPostLog.setIsHistory(1);
//// deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
//// }
//// }
// //将文件信息与交付物绑定,添加记录deliverPostLog
// if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo()) || StrUtil.isNotEmpty(uploadDeliver.getDescription())) {
// if(CollectionUtil.isEmpty(uploadDeliver.getFileInfo())){
// ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
// deliverPostLog.setId(snowflake.nextId());
// deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
// deliverPostLog.setTaskSubTimeId(subTimeId);
// deliverPostLog.setUserId(currentUserId);
// deliverPostLog.setDescription(uploadDeliver.getDescription());
// deliverPostLog.setTime(now);
// deliverPostLog.setIsHistory(0);
// deliverPostLogDao.insertSelective(deliverPostLog);
// //添加交付物检查人表
// if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
// ProTaskDeliverPostLogChecker postLogChecker;
// for (Long checkerId : uploadDeliver.getCheckerIdList()) {
// postLogChecker = new ProTaskDeliverPostLogChecker();
// postLogChecker.setId(snowflake.nextId());
// postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
// postLogChecker.setCheckerId(checkerId);
// postLogCheckerDao.insertSelective(postLogChecker);
// }
// } else {
// throw new BaseException(CodeEnum.NOT_CHECKER);
// }
// }else {
// for (DeliverDto.FileInfo fileInfo : uploadDeliver.getFileInfo()) {
//// SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
//// if(ObjectUtil.isNull(file)){
//// throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
//// }
// ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
// deliverPostLog.setId(snowflake.nextId());
// deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
// deliverPostLog.setTaskSubTimeId(subTimeId);
// deliverPostLog.setFileId(fileInfo.getId());
// deliverPostLog.setUserId(currentUserId);
// deliverPostLog.setDescription(uploadDeliver.getDescription());
// deliverPostLog.setTime(now);
// deliverPostLog.setIsHistory(0);
// deliverPostLogDao.insertSelective(deliverPostLog);
// //添加交付物检查人表
// if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
// ProTaskDeliverPostLogChecker postLogChecker;
// for (Long checkerId : uploadDeliver.getCheckerIdList()) {
// postLogChecker = new ProTaskDeliverPostLogChecker();
// postLogChecker.setId(snowflake.nextId());
// postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
// postLogChecker.setCheckerId(checkerId);
// postLogCheckerDao.insertSelective(postLogChecker);
// }
// } else {
// throw new BaseException(CodeEnum.NOT_CHECKER);
// }
// //保存wps的文件消息
// saveWpsFile(currentUserId, deliverPostLog.getId(), fileInfo);
// }
// }
// //修改交付物状态
// ProTaskDeliver deliver = new ProTaskDeliver();
// deliver.setId(uploadDeliver.getDeliverId());
// deliver.setIsUpload(1);
// taskDeliverDao.updateByPrimaryKeySelective(deliver);
// }
//
// //发送WS信息
//
// //获取所有接收者的id
// List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
// BaseMessageDto.MessageUser messageUser;
// HashSet<Long> userIdSet = new HashSet<>();
// HashSet<String> userIdStr = new HashSet<>();
// if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
// for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
// userIdSet.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
// }
// }
// // ws 发送消息
// Set<String> userIds = new HashSet<>();
// for (Long userId : userIdSet) {
// messageUser = new BaseMessageDto.MessageUser();
// messageUser.setUserId(userId);
// messageUserList.add(messageUser);
// userIds.add(userId.toString());
// }
// Long roleId;
// if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
// List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId(),null);
// roleId = roleList.get(0).getId();
// } else {
// roleId = taskDetail.getExecutorRole();
// }
//// DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto(taskDetail.getProjectId(),roleId,taskDetail.getId(),
//// taskDeliver.getId(),taskDeliver.getName(),currentUserId,now,uploadDeliver.getFileInfo(),messageUserList);
//// log.info("上传交付物:{}",JacksonUtil.beanToJson(uploadMessage));
// DeliverMessageWithUploadDto.Data data = new DeliverMessageWithUploadDto.Data();
// data.setProjectId(taskDetail.getProjectId());
// data.setDeliverId(taskDeliver.getId());
// data.setDeliverName(taskDeliver.getName());
// data.setRoleId(roleId);
// data.setTaskId(taskDetail.getId());
// data.setUploader(currentUserId);
// data.setUploadTime(now);
// data.setFile(uploadDeliver.getFileInfo());
// DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto();
// uploadMessage.setData(data);
//
// InMessage inMessage = new InMessage();
// inMessage.setToDomain(MessageConstant.DomainType.User);
// inMessage.setTos(userIds);
// inMessage.setData(JacksonUtil.beanToJson(uploadMessage));
// rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,
// JacksonUtil.beanToJson(inMessage) );
// //用智能助手发送消息
// SysProject project = sysProjectDao.selectByPrimaryKey(taskDetail.getProjectId());
// robotService.addDeliverRobotSend(currentUserId,taskDeliver.getName(),subTimeId, project);
//
// //返回
// List<ProjectVo.DeliverInfo> deliverInfoList = taskDeliverDao.selectByDeliverId(uploadDeliver.getDeliverId());
// if (CollectionUtil.isNotEmpty(deliverInfoList)) {
// deliverInfo = deliverInfoList.get(0);
//// deliverInfo.setUrl(WebConstant.TEST_URL_BASE + deliverInfo.getUrl());
// deliverInfo.setUrl(PropUtil.imgDomain + "/" + deliverInfo.getUrl());
// }
// return deliverInfo;
// }
private void saveWpsFile(Long currentUserId, Long deliverLogId, DeliverDto.FileInfo fileInfo) {
File file = new File(WebConstant.UPLOAD_PATH_BASE + File.separator + fileInfo.getUrl());
if(file.exists()) {
@ -916,4 +1045,51 @@ public class TaskDeliverService implements ITaskDeliverService {
file.delete();
}
}
/**
* 根据任务id查询输出文档的信息
*/
@Override
public List<DeliverVo.QueryDeliverByTaskId> queryDeliverByTaskId(Long currentUserId, Long taskId) {
//查询分解后的任务
ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(taskId);
if(ObjectUtil.isNull(taskSubTime)){
throw new BaseException(CodeEnum.NOT_TASK);
}
//查询任务详情
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId());
if(ObjectUtil.isNull(taskDetail)){
throw new BaseException(CodeEnum.NOT_TASK);
}
List<DeliverVo.QueryDeliverByTaskId> queryDeliverByTaskIds = taskDeliverDao.queryDeliverByTaskId(currentUserId, taskSubTime.getId(), taskDetail.getId());
if(CollectionUtil.isNotEmpty(queryDeliverByTaskIds)){
queryDeliverByTaskIds.forEach(deliver -> {
if(CollectionUtil.isNotEmpty(deliver.getDeliverRecodes())){
deliver.getDeliverRecodes().forEach(deliverRecode -> {
if(StrUtil.isNotEmpty(deliverRecode.getFilesId())){
try {
//拆分文件id
String[] split = deliverRecode.getFilesId().split(",");
List<String> splits =new ArrayList<>(Arrays.asList(split));
if(split.length != 0){
//获取文件项目的路径
String requestUrl = PropUtil.filedeal;
//通过文件id查询文件信息
String c = RestTemplateUtil.postBody1(requestUrl,splits);
JsonResponse<List<FileVo.FilePosition>> a = JSONObject.parseObject(c,JsonResponse.class);
if(ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())){
List<FileVo.FilePosition> fileList = a.getData();
deliverRecode.setFileList(fileList);
}
}
}catch (Exception e){
log.info("查询文件信息失败:{}", e);
}
}
});
}
});
}
return queryDeliverByTaskIds;
}
}

24
tall/src/main/java/com/ccsens/tall/web/DeliverController.java

@ -156,4 +156,28 @@ public class DeliverController {
return JsonResponse.newInstance().ok();
}
// @OperateType(value = 8)
// @ApiOperation(value = "修改交付物的备注",notes = "")
// @ApiImplicitParams({
// @ApiImplicitParam(name="deliverId",value = "交付物上传Id",required = true,paramType = "query",dataType="String"),
// @ApiImplicitParam(name="taskId",value = "任务Id",required = true,paramType = "query",dataType="String")
// })
// @RequestMapping(value = "", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
// public JsonResponse deleteDeliver(HttpServletRequest request,
// @RequestParam(required = true)Long deliverLogId, Long taskId) throws Exception {
// Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
// deliverService.deleteDeliver(currentUserId,deliverLogId,taskId);
// return JsonResponse.newInstance().ok();
// }
@ApiOperation(value = "通过任务id查看交付物信息",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "queryByTaskId", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<DeliverVo.QueryDeliverByTaskId>> queryDeliverByTaskId(HttpServletRequest request,
@Validated @ApiParam @RequestBody DeliverDto.FindDocByTask findDocByTask) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<DeliverVo.QueryDeliverByTaskId> queryDeliverByTaskIds = deliverService.queryDeliverByTaskId(currentUserId,findDocByTask.getTaskId());
return JsonResponse.newInstance().ok(queryDeliverByTaskIds);
}
}

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

@ -1,5 +1,5 @@
spring:
profiles:
active: test
include: util-test,common
active: dev
include: util-dev,common

67
tall/src/main/resources/mapper_dao/DeliverDao.xml

@ -215,4 +215,71 @@
AND
d.id = #{deliverId}
</select>
<resultMap id="queryDeliverByTaskId" type="com.ccsens.tall.bean.vo.DeliverVo$QueryDeliverByTaskId">
<id column="deliverId" property="deliverId"/>
<result column="deliverName" property="deliverName"/>
<collection property="deliverRecodes" ofType="com.ccsens.tall.bean.vo.DeliverVo$DeliverRecode">
<id column="deliverLogId" property="deliverLogId"/>
<result column="description" property="description"/>
<result column="time" property="time"/>
<result column="filesId" property="filesId"/>
<collection property="checkerList" ofType="com.ccsens.tall.bean.vo.DeliverVo$Checker">
<id column="checkerId" property="checkerId"/>
<result column="checkerStatus" property="checkerStatus"/>
<result column="score" property="score"/>
<result column="remark" property="remark"/>
<result column="checkerName" property="checkerName"/>
<result column="isChecker" property="isChecker"/>
</collection>
</collection>
</resultMap>
<select id="queryDeliverByTaskId" resultMap="queryDeliverByTaskId">
SELECT
d.id as deliverId,
d.`name` as deliverName,
p.id as deliverLogId,
p.description as description,
p.time as time,
p.files_id as filesId,
pc.checker_id as checkerId,
pc.check_status as checkerStatus,
pc.score as score,
pc.remark as remark,
r.checkerName as checkerName,
r.isChecker as isChecker
from
t_pro_task_deliver d
LEFT JOIN t_pro_task_deliver_post_log p
on d.id = p.deliver_id
and p.task_sub_time_id = #{subTimeId}
and p.rec_status = 0
LEFT JOIN t_pro_task_deliver_post_log_checker pc
on pc.deliver_post_log_id = p.id
and pc.rec_status = 0
LEFT JOIN
(
SELECT
r.id as checkerId,
r.`name` as checkerName,
if(m.user_id = #{userId},TRUE,FALSE) as isChecker
FROM
t_pro_role r,
t_pro_member_role mr,
t_pro_member m
WHERE
r.id = mr.role_id
and mr.member_id = m.id
and r.parent_id != 0
and r.rec_status = 0
and mr.rec_status = 0
and m.rec_status = 0
GROUP BY r.id
) r on r.checkerId = pc.checker_id
WHERE
d.task_detail_id = #{taskDetailId}
and d.rec_status = 0
</select>
</mapper>

29
tall/src/main/resources/mapper_raw/ProTaskDeliverPostLogMapper.xml

@ -14,6 +14,7 @@
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="files_id" jdbcType="VARCHAR" property="filesId" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -75,7 +76,7 @@
</sql>
<sql id="Base_Column_List">
id, deliver_id, task_sub_time_id, file_id, user_id, version, description, time, is_history,
created_at, updated_at, rec_status
created_at, updated_at, rec_status, files_id
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDeliverPostLogExample" resultMap="BaseResultMap">
select
@ -111,13 +112,13 @@
insert into t_pro_task_deliver_post_log (id, deliver_id, task_sub_time_id,
file_id, user_id, version,
description, time, is_history,
created_at, updated_at, rec_status
)
created_at, updated_at, rec_status,
files_id)
values (#{id,jdbcType=BIGINT}, #{deliverId,jdbcType=BIGINT}, #{taskSubTimeId,jdbcType=BIGINT},
#{fileId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{version,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{time,jdbcType=BIGINT}, #{isHistory,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{filesId,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProTaskDeliverPostLog">
insert into t_pro_task_deliver_post_log
@ -158,6 +159,9 @@
<if test="recStatus != null">
rec_status,
</if>
<if test="filesId != null">
files_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -196,6 +200,9 @@
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="filesId != null">
#{filesId,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProTaskDeliverPostLogExample" resultType="java.lang.Long">
@ -243,6 +250,9 @@
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.filesId != null">
files_id = #{record.filesId,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -261,7 +271,8 @@
is_history = #{record.isHistory,jdbcType=INTEGER},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
rec_status = #{record.recStatus,jdbcType=TINYINT},
files_id = #{record.filesId,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -302,6 +313,9 @@
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="filesId != null">
files_id = #{filesId,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -317,7 +331,8 @@
is_history = #{isHistory,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
rec_status = #{recStatus,jdbcType=TINYINT},
files_id = #{filesId,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
Loading…
Cancel
Save