Browse Source

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

recovery
zy_Java 5 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.Max;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
public class DeliverDto { public class DeliverDto {
@ -54,4 +55,13 @@ public class DeliverDto {
@ApiModelProperty("wps文件Id,可以为空") @ApiModelProperty("wps文件Id,可以为空")
private Long wpsFileId; 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 Byte recStatus;
private String filesId;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -126,6 +128,14 @@ public class ProTaskDeliverPostLog implements Serializable {
this.recStatus = recStatus; this.recStatus = recStatus;
} }
public String getFilesId() {
return filesId;
}
public void setFilesId(String filesId) {
this.filesId = filesId == null ? null : filesId.trim();
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -144,6 +154,7 @@ public class ProTaskDeliverPostLog implements Serializable {
sb.append(", createdAt=").append(createdAt); sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append(", filesId=").append(filesId);
sb.append("]"); sb.append("]");
return sb.toString(); 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"); addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this; 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 { 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.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* @author
*/
@Data @Data
public class DeliverVo { public class DeliverVo {
@ -37,7 +41,7 @@ public class DeliverVo {
private String description; private String description;
@ApiModelProperty("上传交付物的时间") @ApiModelProperty("上传交付物的时间")
private Long time; private Long time;
@ApiModelProperty("上传交付物的时间") @ApiModelProperty("删除交付物的时间")
private Long deleteTime; private Long deleteTime;
@ApiModelProperty("交付物访问路径") @ApiModelProperty("交付物访问路径")
private String url; private String url;
@ -61,9 +65,9 @@ public class DeliverVo {
@ApiModel @ApiModel
@Data @Data
public static class Checker { public static class Checker {
@ApiModelProperty("检查人") @ApiModelProperty("检查人(角色)")
private Long checkerId; private Long checkerId;
@ApiModelProperty("检查人姓名") @ApiModelProperty("检查人姓名(角色)")
private String checkerName; private String checkerName;
@ApiModelProperty("检查情况 0未检查,1合格,2不合格") @ApiModelProperty("检查情况 0未检查,1合格,2不合格")
private int checkerStatus; private int checkerStatus;
@ -71,6 +75,8 @@ public class DeliverVo {
private int score; private int score;
@ApiModelProperty("检查人备注") @ApiModelProperty("检查人备注")
private String remark; 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.DeliverWithExcel> getDeliverAllByProject(@Param("projectId")Long projectId);
List<WbsVo.SubTime> selectFileInfoByDeliverId(@Param("deliverId")Long deliverId); 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.ProTaskDeliverPostLog;
import com.ccsens.tall.bean.po.ProTaskDeliverPostLogExample; import com.ccsens.tall.bean.po.ProTaskDeliverPostLogExample;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface ProTaskDeliverPostLogMapper { public interface ProTaskDeliverPostLogMapper {
long countByExample(ProTaskDeliverPostLogExample example); 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; void deleteDeliver(Long userId, Long deliverId, Long taskId) throws Exception;
Long isTaskOrSubTime(Long id)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){ if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole){
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR); 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 //将文件信息与交付物绑定,添加记录deliverPostLog
if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo()) || StrUtil.isNotEmpty(uploadDeliver.getDescription())) { if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo()) || StrUtil.isNotEmpty(uploadDeliver.getDescription())) {
if(CollectionUtil.isEmpty(uploadDeliver.getFileInfo())){ //拼接文件id
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog(); StringBuilder filesId = new StringBuilder();
deliverPostLog.setId(snowflake.nextId()); if(CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())){
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId()); for (int i = 0; i < uploadDeliver.getFileInfo().size(); i++) {
deliverPostLog.setTaskSubTimeId(subTimeId); DeliverDto.FileInfo fileInfo = uploadDeliver.getFileInfo().get(i);
deliverPostLog.setUserId(currentUserId); if(i == 0){
deliverPostLog.setDescription(uploadDeliver.getDescription()); filesId.append(fileInfo.getId());
deliverPostLog.setTime(now); }else {
deliverPostLog.setIsHistory(0); filesId.append(",").append(fileInfo.getId());
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()) { ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
// SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId()); deliverPostLog.setId(snowflake.nextId());
// if(ObjectUtil.isNull(file)){ deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
// throw new BaseException(CodeEnum.NOT_DELIVER_FILE); deliverPostLog.setTaskSubTimeId(subTimeId);
// } deliverPostLog.setUserId(currentUserId);
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog(); deliverPostLog.setDescription(uploadDeliver.getDescription());
deliverPostLog.setId(snowflake.nextId()); deliverPostLog.setTime(now);
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId()); deliverPostLog.setIsHistory(0);
deliverPostLog.setTaskSubTimeId(subTimeId); deliverPostLog.setFilesId(filesId.toString());
deliverPostLog.setFileId(fileInfo.getId()); deliverPostLogDao.insertSelective(deliverPostLog);
deliverPostLog.setUserId(currentUserId); //添加交付物检查人表
deliverPostLog.setDescription(uploadDeliver.getDescription()); if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
deliverPostLog.setTime(now); ProTaskDeliverPostLogChecker postLogChecker;
deliverPostLog.setIsHistory(0); for (Long checkerId : uploadDeliver.getCheckerIdList()) {
deliverPostLogDao.insertSelective(deliverPostLog); postLogChecker = new ProTaskDeliverPostLogChecker();
//添加交付物检查人表 postLogChecker.setId(snowflake.nextId());
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) { postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
ProTaskDeliverPostLogChecker postLogChecker; postLogChecker.setCheckerId(checkerId);
for (Long checkerId : uploadDeliver.getCheckerIdList()) { postLogCheckerDao.insertSelective(postLogChecker);
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);
} }
} else {
throw new BaseException(CodeEnum.NOT_CHECKER);
} }
//修改交付物状态 //修改交付物状态
ProTaskDeliver deliver = new ProTaskDeliver(); ProTaskDeliver deliver = new ProTaskDeliver();
@ -282,8 +251,6 @@ public class TaskDeliverService implements ITaskDeliverService {
taskDeliverDao.updateByPrimaryKeySelective(deliver); taskDeliverDao.updateByPrimaryKeySelective(deliver);
} }
//发送WS信息
//获取所有接收者的id //获取所有接收者的id
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>(); List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser; BaseMessageDto.MessageUser messageUser;
@ -344,6 +311,168 @@ public class TaskDeliverService implements ITaskDeliverService {
return deliverInfo; 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) { private void saveWpsFile(Long currentUserId, Long deliverLogId, DeliverDto.FileInfo fileInfo) {
File file = new File(WebConstant.UPLOAD_PATH_BASE + File.separator + fileInfo.getUrl()); File file = new File(WebConstant.UPLOAD_PATH_BASE + File.separator + fileInfo.getUrl());
if(file.exists()) { if(file.exists()) {
@ -916,4 +1045,51 @@ public class TaskDeliverService implements ITaskDeliverService {
file.delete(); 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(); 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: spring:
profiles: profiles:
active: test active: dev
include: util-test,common include: util-dev,common

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

@ -215,4 +215,71 @@
AND AND
d.id = #{deliverId} d.id = #{deliverId}
</select> </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> </mapper>

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

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