Browse Source

conflict

master
zhizhi wu 5 years ago
parent
commit
301ad9f717
  1. 8
      tall/src/main/java/com/ccsens/tall/bean/dto/DeliverDto.java
  2. 6
      tall/src/main/java/com/ccsens/tall/bean/dto/message/DeliverMessageWithUploadDto.java
  3. 232
      tall/src/main/java/com/ccsens/tall/bean/po/ProProjectFile.java
  4. 1500
      tall/src/main/java/com/ccsens/tall/bean/po/ProProjectFileExample.java
  5. 6
      tall/src/main/java/com/ccsens/tall/bean/vo/DeliverVo.java
  6. 11
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java
  7. 16
      tall/src/main/java/com/ccsens/tall/persist/dao/ProNotesDao.java
  8. 58
      tall/src/main/java/com/ccsens/tall/persist/mapper/ProProjectFileMapper.java
  9. 133
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  10. 27
      tall/src/main/java/com/ccsens/tall/service/IExcelService.java
  11. 12
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  12. 6
      tall/src/main/java/com/ccsens/tall/service/ITaskDeliverService.java
  13. 9
      tall/src/main/java/com/ccsens/tall/service/ITaskPluginService.java
  14. 31
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  15. 489
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  16. 27
      tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
  17. 8
      tall/src/main/java/com/ccsens/tall/service/WpsService.java
  18. 25
      tall/src/main/java/com/ccsens/tall/web/DeliverController.java
  19. 14
      tall/src/main/java/com/ccsens/tall/web/ExcelController.java
  20. 18
      tall/src/main/java/com/ccsens/tall/web/PluginController.java
  21. 26
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java
  22. 4
      tall/src/main/resources/application.yml
  23. 4
      tall/src/main/resources/mapper_dao/DeliverDao.xml
  24. 38
      tall/src/main/resources/mapper_dao/ProNotesDao.xml
  25. 2
      tall/src/main/resources/mapper_dao/WpsFileDao.xml
  26. 550
      tall/src/main/resources/mapper_raw/ProProjectFileMapper.xml
  27. 1
      util/src/main/java/com/ccsens/util/CodeEnum.java
  28. 1
      util/src/main/java/com/ccsens/util/WebConstant.java
  29. 3
      util/src/test/java/com/ccsens/util/Base64Test.java

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

@ -13,7 +13,7 @@ public class DeliverDto {
@Data
public static class CheckDeliver{
@ApiModelProperty("交付物Id")
private Long deliverId;
private Long deliverLogId;
@ApiModelProperty("任务在此时间段的id")
private Long taskId;
@ApiModelProperty("检查状况")
@ -34,16 +34,18 @@ public class DeliverDto {
@ApiModelProperty("检查人")
private List<Long> checkerIdList;
@ApiModelProperty("文件信息")
private List<fileInfo> fileInfo;
private List<FileInfo> fileInfo;
}
@ApiModel
@Data
public static class fileInfo{
public static class FileInfo{
@ApiModelProperty("文件ID")
private Long id;
@ApiModelProperty("文件名称")
private String name;
@ApiModelProperty("文件路径")
private String url;
@ApiModelProperty("wps文件Id,可以为空")
private Long wpsFileId;
}
}

6
tall/src/main/java/com/ccsens/tall/bean/dto/message/DeliverMessageWithUploadDto.java

@ -21,7 +21,7 @@ public class DeliverMessageWithUploadDto extends BaseMessageDto {
private String deliverName;
private Long uploader;
private Long uploadTime;
private List<DeliverDto.fileInfo> file;
private List<DeliverDto.FileInfo> file;
}
@ -35,8 +35,10 @@ public class DeliverMessageWithUploadDto extends BaseMessageDto {
public DeliverMessageWithUploadDto(Long projectId,Long roleId,
Long taskId, Long deliverId,String deliverName
,Long uploader,Long uploadTime,List<DeliverDto.fileInfo> file){
,Long uploader,Long uploadTime,List<DeliverDto.FileInfo> file,List<MessageUser> receivers){
this();
setReceivers(receivers);
Data d = new Data();
d.setProjectId(projectId);
d.setRoleId(roleId);

232
tall/src/main/java/com/ccsens/tall/bean/po/ProProjectFile.java

@ -1,117 +1,117 @@
package com.ccsens.tall.bean.po;
import java.io.Serializable;
import java.util.Date;
public class ProProjectFile implements Serializable {
private Long id;
private Long businessId;
private Long fileId;
private Byte businessType;
private Byte privilege;
private String privilegeQueryUrl;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getBusinessId() {
return businessId;
}
public void setBusinessId(Long businessId) {
this.businessId = businessId;
}
public Long getFileId() {
return fileId;
}
public void setFileId(Long fileId) {
this.fileId = fileId;
}
public Byte getBusinessType() {
return businessType;
}
public void setBusinessType(Byte businessType) {
this.businessType = businessType;
}
public Byte getPrivilege() {
return privilege;
}
public void setPrivilege(Byte privilege) {
this.privilege = privilege;
}
public String getPrivilegeQueryUrl() {
return privilegeQueryUrl;
}
public void setPrivilegeQueryUrl(String privilegeQueryUrl) {
this.privilegeQueryUrl = privilegeQueryUrl == null ? null : privilegeQueryUrl.trim();
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Byte getRecStatus() {
return recStatus;
}
public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", businessId=").append(businessId);
sb.append(", fileId=").append(fileId);
sb.append(", businessType=").append(businessType);
sb.append(", privilege=").append(privilege);
sb.append(", privilegeQueryUrl=").append(privilegeQueryUrl);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
package com.ccsens.tall.bean.po;
import java.io.Serializable;
import java.util.Date;
public class ProProjectFile implements Serializable {
private Long id;
private Long businessId;
private Long wpsFileId;
private Byte businessType;
private Byte privilege;
private String privilegeQueryUrl;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getBusinessId() {
return businessId;
}
public void setBusinessId(Long businessId) {
this.businessId = businessId;
}
public Long getWpsFileId() {
return wpsFileId;
}
public void setWpsFileId(Long wpsFileId) {
this.wpsFileId = wpsFileId;
}
public Byte getBusinessType() {
return businessType;
}
public void setBusinessType(Byte businessType) {
this.businessType = businessType;
}
public Byte getPrivilege() {
return privilege;
}
public void setPrivilege(Byte privilege) {
this.privilege = privilege;
}
public String getPrivilegeQueryUrl() {
return privilegeQueryUrl;
}
public void setPrivilegeQueryUrl(String privilegeQueryUrl) {
this.privilegeQueryUrl = privilegeQueryUrl == null ? null : privilegeQueryUrl.trim();
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Byte getRecStatus() {
return recStatus;
}
public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", businessId=").append(businessId);
sb.append(", wpsFileId=").append(wpsFileId);
sb.append(", businessType=").append(businessType);
sb.append(", privilege=").append(privilege);
sb.append(", privilegeQueryUrl=").append(privilegeQueryUrl);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
}

1500
tall/src/main/java/com/ccsens/tall/bean/po/ProProjectFileExample.java

File diff suppressed because it is too large

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

@ -29,8 +29,8 @@ public class DeliverVo {
public static class FilePath {
@ApiModelProperty("文件ID")
private Long fileId;
@JsonIgnore
private Long postLogId;
@ApiModelProperty("交付物上传的记录id")
private Long deliverLogId;
@JsonIgnore
private Date updateTime;
@ApiModelProperty("交付物详情(备注)")
@ -41,6 +41,8 @@ public class DeliverVo {
private Long deleteTime;
@ApiModelProperty("交付物访问路径")
private String url;
@ApiModelProperty("交付物访问路径")
private List<String> wbsFilePaths;
@ApiModelProperty("是否是历史交付物 1是 0不是")
private String isHistory;
@ApiModelProperty("该用户自身是否是此交付物的检查人")

11
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java

@ -42,6 +42,8 @@ public class ProjectVo {
private List<LabelVo.SelectLabel> labelList;
@ApiModelProperty("未处理信息的数量")
private ProjectUnreadMsg projectUnreadMsg;
@ApiModelProperty("WBS文件信息")
private List<String> wbsFilePaths;
public Long getTotalDuration(){
if(ObjectUtil.isNotNull(endTime) && ObjectUtil.isNotNull(beginTime)){
@ -103,6 +105,15 @@ public class ProjectVo {
}
}
// @Data
// @ApiModel("WBS文件信息")
// public static class WbsFileInfo{
// @ApiModelProperty("文件路径")
// private String filePath;
// @ApiModelProperty("wps的文件id")
// private Long wpsFileId;
// }
@ApiModel("返回的项目配置信息")
@Data
public static class ProjectConfig{

16
tall/src/main/java/com/ccsens/tall/persist/dao/ProNotesDao.java

@ -12,13 +12,13 @@ import java.util.List;
*/
@Repository
public interface ProNotesDao extends ProNotesMapper {
// /**
// * 查找任务下的笔记
// * @param userId 用户id
// * @param taskId 任务id
// * @param pluginId 被记笔记的插件的id,可以为null
// * @return 返回笔记list
// */
// List<PluginVo.NotesInfo> listNotesInfo(@Param("userId") Long userId, @Param("taskId")Long taskId,@Param("pluginId") Long pluginId);
/**
* 查找任务下的笔记
* @param userId 用户id
* @param taskId 任务id
* @param pluginId 被记笔记的插件的id可以为null
* @return 返回笔记list
*/
List<PluginVo.NotesInfo> queryNotesInfo(@Param("userId") Long userId, @Param("taskId")Long taskId,@Param("pluginId") Long pluginId);
}

58
tall/src/main/java/com/ccsens/tall/persist/mapper/ProProjectFileMapper.java

@ -1,30 +1,30 @@
package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.ProProjectFile;
import com.ccsens.tall.bean.po.ProProjectFileExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface ProProjectFileMapper {
long countByExample(ProProjectFileExample example);
int deleteByExample(ProProjectFileExample example);
int deleteByPrimaryKey(Long id);
int insert(ProProjectFile record);
int insertSelective(ProProjectFile record);
List<ProProjectFile> selectByExample(ProProjectFileExample example);
ProProjectFile selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByExample(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByPrimaryKeySelective(ProProjectFile record);
int updateByPrimaryKey(ProProjectFile record);
package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.ProProjectFile;
import com.ccsens.tall.bean.po.ProProjectFileExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface ProProjectFileMapper {
long countByExample(ProProjectFileExample example);
int deleteByExample(ProProjectFileExample example);
int deleteByPrimaryKey(Long id);
int insert(ProProjectFile record);
int insertSelective(ProProjectFile record);
List<ProProjectFile> selectByExample(ProProjectFileExample example);
ProProjectFile selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByExample(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByPrimaryKeySelective(ProProjectFile record);
int updateByPrimaryKey(ProProjectFile record);
}

133
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -1,12 +1,13 @@
package com.ccsens.tall.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.tall.bean.dto.WpsDto;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.persist.dao.SysCommitedFileDao;
import com.ccsens.tall.persist.dao.SysPluginDao;
import com.ccsens.tall.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.TaskDetailDao;
@ -19,55 +20,58 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ExcelService implements IExcelService {
@Autowired
@Resource
private SysPluginDao sysPluginDao;
@Autowired
@Resource
private IProjectService projectService;
@Autowired
@Resource
private SysProjectDao sysProjectDao;
@Autowired
@Resource
private IProShowService proShowService;
@Autowired
@Resource
private Snowflake snowflake;
@Autowired
@Resource
private IProRoleService proRoleService;
@Autowired
@Resource
private IProMemberRoleService proMemberRoleService;
@Autowired
@Resource
private IExcludeRoleService excludeRoleService;
@Autowired
@Resource
private IProMemberService proMemberService;
@Autowired
@Resource
private IProTaskDetailService proTaskDetailService;
@Autowired
@Resource
private TaskDetailDao taskDetailDao;
@Autowired
@Resource
private ITaskSubTimeService taskSubTimeService;
@Autowired
private ITaskMemberService taskMemberService;
@Autowired
@Resource
private ITaskDeliverService taskDeliverService;
@Autowired
@Resource
private ITaskPluginService taskPluginService;
@Autowired
@Resource
private IUserService userService;
@Autowired
@Resource
private IUserAttentionService userAttentionService;
@Autowired
@Resource
private IWbsSubSheetService wbsSubSheetService;
@Resource
private IWpsService wpsService;
@Override
@ -76,8 +80,7 @@ public class ExcelService implements IExcelService {
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
//读取WBS表
SysProject sysProject = readWbs(xssfWorkbook, currentUserId);
ProjectVo.ProjectInfo projectInfo = selectByProjectId(currentUserId, sysProject);
return projectInfo;
return selectByProjectId(currentUserId, sysProject);
}
/**
@ -95,14 +98,14 @@ public class ExcelService implements IExcelService {
List<ProTaskDetail> taskDetails = new ArrayList<>();
XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表");
XSSFSheet wbsSheet = xssfWorkbook.getSheetAt(0);//wbs
XSSFSheet wbsSheet = xssfWorkbook.getSheetAt(0);
int projectInfoStart = 0;
int projectInfoEnd = 0;
int memberStart = 0;
int memberEnd = 0;
int taskStart = 0;
int taskEnd = 0;
int taskEnd;
taskEnd = wbsSheet.getLastRowNum();
for (int i = 0; i <= wbsSheet.getLastRowNum(); i++) {
@ -166,8 +169,8 @@ public class ExcelService implements IExcelService {
String begin = ExcelUtil.getCellValue(row.getCell(3));
String end = ExcelUtil.getCellValue(row.getCell(4));
if (StrUtil.isNotEmpty(begin) && StrUtil.isNotEmpty(end)) {
Long beginTime = null;
Long endTime = null;
long beginTime;
long endTime;
try {
beginTime = Long.parseLong(begin);
endTime = Long.parseLong(end);
@ -438,7 +441,7 @@ public class ExcelService implements IExcelService {
String stakeholderCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(3));
String stakeholderPhoneCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(4));
ProMember stakeholder = null;
ProMember member = null;
ProMember member;
//手机号不能为空
if ((StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) ||
(StrUtil.isNotEmpty(stakeholderCell) && StrUtil.isEmpty(stakeholderPhoneCell))) {
@ -858,11 +861,9 @@ public class ExcelService implements IExcelService {
/**
* 分解任务时间
*
* @param taskDetails
* @throws Exception
* @param taskDetails 任务集合
*/
public void saveProTaskSubTime(List<ProTaskDetail> taskDetails) throws Exception {
public void saveProTaskSubTime(List<ProTaskDetail> taskDetails) {
if (CollectionUtil.isNotEmpty(taskDetails)) {
for (ProTaskDetail taskDetail : taskDetails) {
//虚拟任务不拆分
@ -902,13 +903,13 @@ public class ExcelService implements IExcelService {
* 读取交付物表
*/
@Override
public void readDeliverSheet(String deliverCell, XSSFWorkbook xssfWorkbook, Long taskId) throws Exception {
public void readDeliverSheet(String deliverCell, XSSFWorkbook xssfWorkbook, Long taskId) {
if (StrUtil.isNotEmpty(deliverCell)) {
String str = "";
if (deliverCell.length() > 4) {
str = deliverCell.substring(0, 3);
}
if ("关联表".equals(str)) {
if ("关联表".equalsIgnoreCase(str)) {
String subStr = deliverCell.substring(4);
XSSFSheet subSheet = xssfWorkbook.getSheet(subStr);
if(ObjectUtil.isNull(subSheet)){
@ -943,12 +944,11 @@ public class ExcelService implements IExcelService {
/**
* 读取插件
*
* @param xssfWorkbook
* @param taskDetails
* @param proRoles
* @param xssfWorkbook 插件sheet
* @param taskDetails 任务集合
* @param proRoles 角色集合
*/
private void readPlugin(XSSFWorkbook xssfWorkbook, List<ProTaskDetail> taskDetails, List<ProRole> proRoles, Map<String, List<ProTaskDetail>> hasGroupMap) throws Exception {
private void readPlugin(XSSFWorkbook xssfWorkbook, List<ProTaskDetail> taskDetails, List<ProRole> proRoles, Map<String, List<ProTaskDetail>> hasGroupMap) {
SysPluginExample pluginExample = new SysPluginExample();
pluginExample.clear();
List<SysPlugin> sysPluginList = sysPluginDao.selectByExample(pluginExample);
@ -1035,13 +1035,11 @@ public class ExcelService implements IExcelService {
/**
* 返回信息
*
* @param currentUserId
* @param sysProject
* @return
* @throws Exception
* @param currentUserId userId
* @param sysProject 项目信息
* @return 项目详细信息
*/
public ProjectVo.ProjectInfo selectByProjectId(Long currentUserId, SysProject sysProject) throws Exception {
public ProjectVo.ProjectInfo selectByProjectId(Long currentUserId, SysProject sysProject) {
//返回参数
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
projectInfo.setId(sysProject.getId());
@ -1053,14 +1051,43 @@ public class ExcelService implements IExcelService {
if (ObjectUtil.isNotNull(projectInfo)) {
projectInfo.setCreator(true);
}
// //获取当前用户在本项目中的一级角色
// List<ProRole> proRoles = proRoleService.getProRoleByProjectIdAndUserId(projectInfo.getId(), currentUserId);
// if (CollectionUtil.isNotEmpty(proRoles)) {
// projectInfo.setRoles(new ArrayList<>());
// for (ProRole proRole : proRoles) {
// projectInfo.getRoles().add(proRole.getName());
// }
// }
return projectInfo;
}
/**
* 保存wbs的文件信息添加wps信息
* @param projectId 项目Id
* @param filePath 文件路径
* @param fileName 文件名
* @param fileSize 文件大小
* @param wpsFileId wps里的文件的id
*/
@Override
public void saveWbsExcelFile(Long userId,Long projectId,String filePath, String fileName, Long fileSize,Long wpsFileId) {
// //添加文件信息
// SysCommitedFile commitedFile = new SysCommitedFile();
// commitedFile.setId(snowflake.nextId());
// commitedFile.setPath(filePath);
// commitedFile.setName(fileName);
// String md5 = Md5Util.getFileMD5(new File(WebConstant.UPLOAD_PATH_BASE + File.separator + filePath));
// String sha1 = Sha1Util.getFileSha1(new File(WebConstant.UPLOAD_PATH_BASE + File.separator + filePath));
// commitedFile.setMd5(md5);
// commitedFile.setSha1(sha1);
// commitedFile.setCount(1);
// commitedFile.setTime(System.currentTimeMillis());
// commitedFileDao.insertSelective(commitedFile);
//添加wps的信息
WpsDto.Business business = new WpsDto.Business();
business.setBusinessId(projectId);
business.setWpsFileId(wpsFileId);
business.setBusinessType((byte) 0);
business.setUserId(userId);
business.setFileName(fileName);
business.setFilePath(filePath);
business.setFileSize(fileSize);
business.setOperation(WebConstant.Wps.USER_OPERATION_NEW);
business.setPrivilege(WebConstant.Wps.PROJECT_PRIVILEGE_READ);
wpsService.saveFile(business);
}
}

27
tall/src/main/java/com/ccsens/tall/service/IExcelService.java

@ -4,8 +4,35 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.vo.ProjectVo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.Part;
public interface IExcelService {
/**
* 导入wbs
* @param path 文件路径
* @param currentUserId userId
* @return 返回项目详细信息
* @throws Exception io
*/
ProjectVo.ProjectInfo readXls(String path, Long currentUserId) throws Exception;
/**
* 读取交付物表
* @param deliverCell 交付物子表名
* @param xssfWorkbook excel文件
* @param taskId 任务id
* @throws Exception io
*/
void readDeliverSheet(String deliverCell, XSSFWorkbook xssfWorkbook, Long taskId) throws Exception;
/**
* 保存wbs文件保存wps信息
* @param userId userId
* @param projectId 项目id
* @param filePath 文件路径
* @param fileName 文件名
* @param fileSize 文件大小
* @param wpsFileId 前端传的wps里的文件id
*/
void saveWbsExcelFile(Long userId,Long projectId,String filePath, String fileName,Long fileSize,Long wpsFileId);
}

12
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -13,11 +13,11 @@ public interface IProjectService {
SysProject selectByNameAndUserId(String subProject, Long currentUserId)throws Exception;
List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date,Integer orderType,Integer order)throws Exception;
List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date,Integer orderType,Integer order,String token)throws Exception;
List<String> haveProjectDay(Long currentUserId, String date) throws Exception;
ProjectVo.ProjectInfo getProjectInfoById(Long currentUserId, Long projectId) throws Exception;
ProjectVo.ProjectInfo getProjectInfoById(Long currentUserId, Long projectId,String token) throws Exception;
List<ProjectVo.TemplateStatus> getTemplate()throws Exception;
@ -29,11 +29,11 @@ public interface IProjectService {
void deleteProject(Long currentUserId, Long projectId)throws Exception;
ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto);
ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto,String token);
ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto);
ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token);
ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize,Integer page);
ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize,Integer page,String token);
List<ProjectVo.RelevanceProject> selectRelevanceProject(Long currentUserId, Long projectId);
@ -43,5 +43,5 @@ public interface IProjectService {
* @param projectConfig 项目配置信息
* @return 返回修改后的项目信息
*/
ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig);
ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig,String token);
}

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

@ -18,13 +18,13 @@ public interface ITaskDeliverService {
ProjectVo.DeliverInfo addDeliver(Long currentUserId, DeliverDto.UploadDeliver uploadDeliver) throws Exception;
List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long subTimeId)throws Exception;
List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long subTimeId,String token)throws Exception;
DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long subTimeId) throws Exception;
DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long subTimeId,String token) throws Exception;
DeliverVo.DeliverFileList selectDeliverList(Long currentUserId, Integer page, Integer pageSize, String key, String start, String end) throws Exception;
DeliverVo.DeliverInfo checkDeliver(Long currentUserId, DeliverDto.CheckDeliver checker) throws Exception;
DeliverVo.DeliverInfo checkDeliver(Long currentUserId, DeliverDto.CheckDeliver checker,String token) throws Exception;
void deleteDeliverByTaskId(Long taskId)throws Exception;

9
tall/src/main/java/com/ccsens/tall/service/ITaskPluginService.java

@ -36,5 +36,12 @@ public interface ITaskPluginService {
* @param pluginId 被查询的插件的id不是笔记插件的id,只查询任务的笔记时不需要传参
* @return 返回任务下的所有笔记信息
*/
List<PluginVo.NotesInfo> listNotesInfo(Long currentUserId, Long taskId, Long pluginId);
List<PluginVo.NotesInfo> queryNotesInfo(Long currentUserId, Long taskId, Long pluginId);
/**
* 删除笔记记录
* @param currentUserId userId
* @param notesId 笔记记录id
*/
void deleteNotes(Long currentUserId, Long notesId);
}

31
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -19,7 +19,6 @@ import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -60,6 +59,8 @@ public class ProjectService implements IProjectService {
private SysLabelDao sysLabelDao;
@Resource
private SysRingMsgDao sysRingMsgDao;
@Resource
private IWpsService wpsService;
@Override
public void saveProject(SysProject sysProject) {
@ -144,7 +145,7 @@ public class ProjectService implements IProjectService {
* @throws Exception 分解日期时抛错
*/
@Override
public List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date,Integer orderType,Integer order) throws Exception {
public List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date,Integer orderType,Integer order,String token) throws Exception {
//获取日期的开始结束时间
Map<String, Long> timeMap;
timeMap = DateUtil.projectFormatDateTime(date);
@ -152,10 +153,10 @@ public class ProjectService implements IProjectService {
Long endMillisTime = timeMap.get("endMillisTime") + 1;
//查找此用户关注的项目
List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.findProjectIdByUserId01(currentUserId, startMillisTime, endMillisTime,orderType,order);
projectByProject(projectInfoList,currentUserId);
projectByProject(projectInfoList,currentUserId,token);
return projectInfoList;
}
private void projectByProject(List<ProjectVo.ProjectInfo> projectInfoList, Long currentUserId){
private void projectByProject(List<ProjectVo.ProjectInfo> projectInfoList, Long currentUserId,String token){
if (CollectionUtil.isNotEmpty(projectInfoList)) {
projectInfoList.forEach(projectInfo -> {
//是否是创建者
@ -195,6 +196,8 @@ public class ProjectService implements IProjectService {
//查找项目未处理的消息数量
ProjectVo.ProjectUnreadMsg unreadMsg = getUnreadMsgByProject(currentUserId,projectInfo.getId());
projectInfo.setProjectUnreadMsg(unreadMsg);
//获取wps文件路径
projectInfo.setWbsFilePaths(wpsService.queryVisitUrls(projectInfo.getId(), (byte) 0,token));
});
}
}
@ -280,7 +283,7 @@ public class ProjectService implements IProjectService {
* @return 返回项目信息
*/
@Override
public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId) {
public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId,String token) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
if(ObjectUtil.isNull(sysProject)){
throw new BaseException(CodeEnum.NOT_PROJECT);
@ -329,6 +332,8 @@ public class ProjectService implements IProjectService {
if(CollectionUtil.isNotEmpty(labelList)){
projectInfo.setLabelList(labelList);
}
//获取wps文件路径
projectInfo.setWbsFilePaths(wpsService.queryVisitUrls(projectInfo.getId(), (byte) 0,token));
return projectInfo;
}
@ -520,7 +525,7 @@ public class ProjectService implements IProjectService {
* 复制项目
*/
@Override
public ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto) {
public ProjectVo.ProjectInfo copyProject(Long userId, ProjectDto.ProjectIdDto projectDto,String token) {
// ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectDto.getProjectId());
@ -552,7 +557,7 @@ public class ProjectService implements IProjectService {
// projectInfo.setCreator(true);
// }
return getProjectInfoById(userId, newProject.getId());
return getProjectInfoById(userId, newProject.getId(),token);
}
/**
@ -749,7 +754,7 @@ public class ProjectService implements IProjectService {
* 修改项目信息
*/
@Override
public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto) {
public ProjectVo.ProjectInfo changeProjectInfo(Long currentUserId, ProjectDto.ProjectInfoDto projectInfoDto,String token) {
//查找项目
SysProject project = sysProjectDao.selectByPrimaryKey(projectInfoDto.getId());
if (ObjectUtil.isNotNull(project)) {
@ -787,7 +792,7 @@ public class ProjectService implements IProjectService {
} else {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
return getProjectInfoById(currentUserId, project.getId());
return getProjectInfoById(currentUserId, project.getId(),token);
}
/**
@ -797,14 +802,14 @@ public class ProjectService implements IProjectService {
* @return 返回根据标签查找出的所有项目
*/
@Override
public ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize ,Integer page) {
public ProjectVo.ProjectAllDetailed selectByLabelName(Long currentUserId, String labelName,Integer pageSize ,Integer page,String token) {
// List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.selectByLabelName(currentUserId,labelName);
// projectByProject(projectInfoList,currentUserId);
PageHelper.startPage(page, pageSize);
List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.selectByLabelName(currentUserId,labelName);
PageInfo<ProjectVo.ProjectInfo> projectInfoPage = new PageInfo<>(projectInfoList);
projectByProject(projectInfoList,currentUserId);
projectByProject(projectInfoList,currentUserId,token);
ProjectVo.ProjectAllDetailed projectAllDetailed = new ProjectVo.ProjectAllDetailed();
projectAllDetailed.setProjectInfoList(projectInfoList);
@ -821,7 +826,7 @@ public class ProjectService implements IProjectService {
}
@Override
public ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig) {
public ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig,String token) {
//检查项目id是否正确
SysProject project = sysProjectDao.selectByPrimaryKey(projectConfig.getProjectId());
if(ObjectUtil.isNull(project)){
@ -850,6 +855,6 @@ public class ProjectService implements IProjectService {
}
proShowDao.updateByPrimaryKeySelective(proShow);
}
return getProjectInfoById(currentUserId,projectConfig.getProjectId());
return getProjectInfoById(currentUserId,projectConfig.getProjectId(),token);
}
}

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

@ -6,17 +6,16 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.tall.bean.dto.DeliverDto;
import com.ccsens.tall.bean.dto.WpsDto;
import com.ccsens.tall.bean.dto.message.BaseMessageDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithCheckerDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithDeleteDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithUploadDto;
import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.DeliverVo;
import com.ccsens.tall.bean.vo.MessageVo;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.util.RobotUtil;
import com.ccsens.util.*;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant;
@ -24,54 +23,54 @@ import com.ccsens.util.bean.message.common.MessageRule;
import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.omg.CORBA.OBJ_ADAPTER;
import org.omg.CORBA.StructMember;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.math.BigDecimal;
import java.util.*;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskDeliverService implements ITaskDeliverService {
@Autowired
@Resource
private TaskDeliverDao taskDeliverDao;
@Autowired
@Resource
private SysCommitedFileDao commitedFileDao;
@Autowired
@Resource
private ProTaskDeliverPostLogDao deliverPostLogDao;
@Autowired
@Resource
private PostLogCheckerDao postLogCheckerDao;
@Autowired
@Resource
private TaskDetailDao taskDetailDao;
@Autowired
@Resource
private TaskSubTimeDao taskSubTimeDao;
@Autowired
@Resource
private ProRoleDao proRoleDao;
@Autowired
@Resource
private ProSubTimeMemberDao proSubTimeMemberDao;
@Autowired
private ProMemberDao proMemberDao;
@Autowired
@Resource
private IProMemberService proMemberService;
@Autowired
@Resource
private IUserService userService;
@Autowired
@Resource
private IMessageService messageService;
@Autowired
@Resource
private Snowflake snowflake;
@Autowired
@Resource
private AmqpTemplate rabbitTemplate;
@Autowired
@Resource
private IRobotService robotService;
@Autowired
@Resource
private SysProjectDao sysProjectDao;
@Resource
private IWpsService wpsService;
@Override
public void saveDeliver(ProTaskDeliver taskDeliver) {
@ -90,14 +89,14 @@ public class TaskDeliverService implements ITaskDeliverService {
List<ProTaskDeliver> deliverList = taskDeliverDao.selectByExample(deliverExample);
if (CollectionUtil.isNotEmpty(deliverList)) {
for (ProTaskDeliver deliver : deliverList) {
TaskVo.TaskDeliverByMVP.DeliverInfoByMVP deliverInfoByMVP = new TaskVo.TaskDeliverByMVP.DeliverInfoByMVP();
deliverInfoByMVP.setId(deliver.getId());
deliverInfoByMVP.setName(deliver.getName());
TaskVo.TaskDeliverByMVP.DeliverInfoByMVP deliverInfoByMvp = new TaskVo.TaskDeliverByMVP.DeliverInfoByMVP();
deliverInfoByMvp.setId(deliver.getId());
deliverInfoByMvp.setName(deliver.getName());
if (ObjectUtil.isNotNull(deliver.getIsFinal())) {
if (deliver.getIsFinal() == 0) {
deliverInfoByMVP.setFinals(false);
deliverInfoByMvp.setFinals(false);
} else if (deliver.getIsFinal() == 1) {
deliverInfoByMVP.setFinals(true);
deliverInfoByMvp.setFinals(true);
}
}
if (ObjectUtil.isNotNull(subTimeId)) {
@ -108,32 +107,32 @@ public class TaskDeliverService implements ITaskDeliverService {
if (CollectionUtil.isNotEmpty(postLogList)) {
ProTaskDeliverPostLog postLog = postLogList.get(0);
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(postLog.getFileId());
deliverInfoByMVP.setUrl(WebConstant.TEST_URL_BASE + file.getPath());
deliverInfoByMvp.setUrl(WebConstant.TEST_URL_BASE + file.getPath());
ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample();
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(postLog.getId());
List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample);
if (CollectionUtil.isNotEmpty(postLogCheckerList)) {
Boolean isChecker = true;
boolean isChecker = true;
for (ProTaskDeliverPostLogChecker checker : postLogCheckerList) {
if (checker.getCheckStatus() == 0) {
deliverInfoByMVP.setStatus("待检查");
deliverInfoByMvp.setStatus("待检查");
isChecker = false;
} else if(checker.getCheckStatus() == -1) {
deliverInfoByMVP.setStatus("未通过");
deliverInfoByMvp.setStatus("未通过");
isChecker = false;
break;
}
}
if(isChecker){
deliverInfoByMVP.setStatus("已通过");
deliverInfoByMvp.setStatus("已通过");
}
}
} else {
deliverInfoByMVP.setStatus("未上传");
deliverInfoByMvp.setStatus("未上传");
}
}
deliverInfoByMVPList.add(deliverInfoByMVP);
deliverInfoByMVPList.add(deliverInfoByMvp);
}
}
return deliverInfoByMVPList;
@ -169,138 +168,247 @@ public class TaskDeliverService implements ITaskDeliverService {
*/
@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 d = taskDeliverDao.selectByPrimaryKey(uploadDeliver.getDeliverId());
if (ObjectUtil.isNull(d)) {
ProTaskDeliver taskDeliver = taskDeliverDao.selectByPrimaryKey(uploadDeliver.getDeliverId());
if (ObjectUtil.isNull(taskDeliver)) {
throw new BaseException(CodeEnum.NOT_DELIVER);
}
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(d.getTaskDetailId());
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskDeliver.getTaskDetailId());
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId());
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) || isBelongRole) {
//发送信息
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser = null;
List<Long> userIdList = new ArrayList<>();
//查找以前的交付物。如果有,改为历史信息
ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
logExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId)
.andDeliverIdEqualTo(uploadDeliver.getDeliverId()).andUserIdEqualTo(currentUserId);
List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
if (deliverPostLog.getIsHistory() == 0) {
deliverPostLog.setIsHistory(1);
deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
}
}
if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole){
throw new BaseException(CodeEnum.NOT_CHECKER);
}
//查找以前上传的不为历史信息的文件。改为历史信息
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);
}
//添加PostLog
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTaskSubTimeId(subTimeId);
//如果有文件则添加,没有不添加
if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())) {
for (DeliverDto.fileInfo fileInfo : uploadDeliver.getFileInfo()) {
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
if(ObjectUtil.isNotNull(file)){
deliverPostLog.setFileId(file.getId());
}else {
throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
}
}
//将文件信息与交付物绑定,添加记录deliverPostLog
if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())) {
for (DeliverDto.FileInfo fileInfo : uploadDeliver.getFileInfo()) {
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
if(ObjectUtil.isNull(file)){
throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
}
}
deliverPostLog.setUserId(currentUserId);
deliverPostLog.setDescription(uploadDeliver.getDescription());
deliverPostLog.setTime(System.currentTimeMillis());
deliverPostLog.setIsHistory(0);
deliverPostLogDao.insertSelective(deliverPostLog);
//添加交付物检查人表
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
ProTaskDeliverPostLogChecker postLogChecker = null;
for (Long checkerId : uploadDeliver.getCheckerIdList()) {
postLogChecker = new ProTaskDeliverPostLogChecker();
postLogChecker.setId(snowflake.nextId());
postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
postLogChecker.setCheckerId(checkerId);
postLogCheckerDao.insertSelective(postLogChecker);
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTaskSubTimeId(subTimeId);
deliverPostLog.setFileId(file.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);
}
} 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);
//返回
List<ProjectVo.DeliverInfo> deliverInfoList = taskDeliverDao.selectByDeliverId(uploadDeliver.getDeliverId());
if (CollectionUtil.isNotEmpty(deliverInfoList)) {
deliverInfo = deliverInfoList.get(0);
deliverInfo.setUrl(WebConstant.TEST_URL_BASE + deliverInfo.getUrl());
}
//消息的内容
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
}
}
Set<String> userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(userIdList)) {
HashSet<Long> h = new HashSet<>(userIdList);
userIdList.clear();
userIdList.addAll(h);
for (Long userId : userIdList) {
userIdSet.add(userId.toString());
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
}
}
DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto();
DeliverMessageWithUploadDto.Data uploadMessageData = new DeliverMessageWithUploadDto.Data();
uploadMessageData.setProjectId(taskDetail.getProjectId());
if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId());
uploadMessageData.setRoleId(roleList.get(0).getId());
} else {
uploadMessageData.setRoleId(taskDetail.getExecutorRole());
}
uploadMessageData.setTaskId(taskDetail.getId());
uploadMessageData.setDeliverId(d.getId());
uploadMessageData.setDeliverName(d.getName());
uploadMessageData.setUploadTime(System.currentTimeMillis());
uploadMessageData.setFile(uploadDeliver.getFileInfo());
uploadMessage.setData(uploadMessageData);
uploadMessage.setReceivers(messageUserList);
log.info("检查交付物:{}",JacksonUtil.beanToJson(uploadMessage));
}
// if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) || isBelongRole) {
// //发送信息
// List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
// BaseMessageDto.MessageUser messageUser;
// List<Long> userIdList = new ArrayList<>();
// //查找以前的交付物。如果有,改为历史信息
// ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
// logExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId)
// .andDeliverIdEqualTo(uploadDeliver.getDeliverId()).andUserIdEqualTo(currentUserId);
// List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
// if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
// for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
// if (deliverPostLog.getIsHistory() == 0) {
// deliverPostLog.setIsHistory(1);
// deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
// }
// }
// }
// //添加PostLog
// ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
// deliverPostLog.setId(snowflake.nextId());
// deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
// deliverPostLog.setTaskSubTimeId(subTimeId);
// //如果有文件则添加,没有不添加
// if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())) {
// for (DeliverDto.FileInfo fileInfo : uploadDeliver.getFileInfo()) {
// SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
// if(ObjectUtil.isNotNull(file)){
// deliverPostLog.setFileId(file.getId());
// }else {
// throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
// }
// }
// }
// 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);
// }
//
// //修改交付物状态
// ProTaskDeliver deliver = new ProTaskDeliver();
// deliver.setId(uploadDeliver.getDeliverId());
// deliver.setIsUpload(1);
// taskDeliverDao.updateByPrimaryKeySelective(deliver);
// //返回
// List<ProjectVo.DeliverInfo> deliverInfoList = taskDeliverDao.selectByDeliverId(uploadDeliver.getDeliverId());
// if (CollectionUtil.isNotEmpty(deliverInfoList)) {
// deliverInfo = deliverInfoList.get(0);
// deliverInfo.setUrl(WebConstant.TEST_URL_BASE + deliverInfo.getUrl());
// }
// //消息的内容
// if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
// for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
// userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
// }
// }
//// Set<String> userIdSet = new HashSet<>();
// if (CollectionUtil.isNotEmpty(userIdList)) {
// HashSet<Long> h = new HashSet<>(userIdList);
// userIdList.clear();
// userIdList.addAll(h);
// for (Long userId : userIdList) {
//// userIdSet.add(userId.toString());
// messageUser = new BaseMessageDto.MessageUser();
// messageUser.setUserId(userId);
// messageUserList.add(messageUser);
// }
// }
// DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto();
// DeliverMessageWithUploadDto.Data uploadMessageData = new DeliverMessageWithUploadDto.Data();
// uploadMessageData.setProjectId(taskDetail.getProjectId());
// Long roleId;
// if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
// List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId());
// 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);
// uploadMessageData.setTaskId(taskDetail.getId());
// uploadMessageData.setDeliverId(taskDeliver.getId());
// uploadMessageData.setDeliverName(taskDeliver.getName());
// uploadMessageData.setUploadTime(System.currentTimeMillis());
// uploadMessageData.setFile(uploadDeliver.getFileInfo());
// uploadMessage.setData(uploadMessageData);
// uploadMessage.setReceivers(messageUserList);
// log.info("检查交付物:{}",JacksonUtil.beanToJson(uploadMessage));
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
// JacksonUtil.beanToJson(uploadMessage));
InMessage inMessage = new InMessage();
inMessage.setTos(userIdSet);
inMessage.setData(JSONObject.toJSONString(uploadMessage));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage));
//
// } else {
// throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
// }
//发送WS信息
//获取所有接收者的id
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser;
HashSet<Long> userIdSet = new HashSet<>();
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
userIdSet.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
}
}
for (Long userId : userIdSet) {
messageUser = new BaseMessageDto.MessageUser();
messageUser.setUserId(userId);
messageUserList.add(messageUser);
}
Long roleId;
if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId());
roleId = roleList.get(0).getId();
} else {
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
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));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,
JacksonUtil.beanToJson(uploadMessage));
//用智能助手发送消息
SysProject project = sysProjectDao.selectByPrimaryKey(taskDetail.getProjectId());
robotService.addDeliverRobotSend(currentUserId,d.getName(),subTimeId, project);
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());
}
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()) {
//添加wps的信息
WpsDto.Business business = new WpsDto.Business();
business.setBusinessId(deliverLogId);
business.setWpsFileId(fileInfo.getWpsFileId());
business.setBusinessType((byte) 1);
business.setUserId(currentUserId);
business.setFileName(fileInfo.getName());
business.setFilePath(fileInfo.getUrl());
business.setFileSize(file.length());
business.setOperation(WebConstant.Wps.USER_OPERATION_NEW);
business.setPrivilege(WebConstant.Wps.PROJECT_PRIVILEGE_READ);
wpsService.saveFile(business);
}else {
throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
}
}
/**
* 判断id是taskId还是subTimeId
*/
@ -345,13 +453,13 @@ public class TaskDeliverService implements ITaskDeliverService {
* 获取任务下所有交付物的信息
*/
@Override
public List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long taskId) throws Exception {
public List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long taskId,String token) throws Exception {
Long subTimeId = isTaskOrSubTime(taskId);
if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK);
}
List<DeliverVo.DeliverInfo> deliverInfoList = new ArrayList<>();
DeliverVo.DeliverInfo deliverInfo = null;
DeliverVo.DeliverInfo deliverInfo;
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId);
if (ObjectUtil.isNotNull(subTimeId)) {
//获取角色负责人信息
@ -363,7 +471,7 @@ public class TaskDeliverService implements ITaskDeliverService {
if (CollectionUtil.isNotEmpty(taskDeliverList)) {
for (ProTaskDeliver deliver : taskDeliverList) {
if (deliver.getIsInput() == 0) {
deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), subTimeId);
deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), subTimeId,token);
deliverInfoList.add(deliverInfo);
}
}
@ -376,7 +484,7 @@ public class TaskDeliverService implements ITaskDeliverService {
* 查看单个交付物的信息
*/
@Override
public DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long taskId) throws Exception {
public DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long taskId,String token) throws Exception {
Long subTimeId = isTaskOrSubTime(taskId);
if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK);
@ -395,7 +503,7 @@ public class TaskDeliverService implements ITaskDeliverService {
}
//负责人信息
List<DeliverVo.DRole> executorRoleList = new ArrayList<>();
DeliverVo.DRole executorRole = null;
DeliverVo.DRole executorRole;
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTimeDao.selectByPrimaryKey(subTimeId).getTaskDetailId());
if (ObjectUtil.isNotNull(taskDetail)) {
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
@ -421,9 +529,9 @@ public class TaskDeliverService implements ITaskDeliverService {
}
//检查人信息
List<DeliverVo.Checker> checkerList = null;
Boolean isChecker = false;
DeliverVo.Checker checker = null;
List<DeliverVo.Checker> checkerList;
boolean isChecker = false;
DeliverVo.Checker checker;
//交付物文件的信息按时间排序
List<DeliverVo.FilePath> fileIds = taskDeliverDao.selectFileIdByDeliverId(deliver.getId(), subTimeId);
if (CollectionUtil.isNotEmpty(fileIds)) {
@ -458,7 +566,7 @@ public class TaskDeliverService implements ITaskDeliverService {
checkerList = new ArrayList<>();
ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample();
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(filePath.getPostLogId());
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(filePath.getDeliverLogId());
List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample);
if (CollectionUtil.isNotEmpty(postLogCheckerList)) {
for (ProTaskDeliverPostLogChecker postLogChecker : postLogCheckerList) {
@ -481,6 +589,8 @@ public class TaskDeliverService implements ITaskDeliverService {
}
filePath.setCheckerList(checkerList);
filePath.setIsChecker(isChecker);
//获取wps里的文件路径
filePath.setWbsFilePaths(wpsService.queryVisitUrls(filePath.getDeliverLogId(), (byte) 1,token));
}
deliverInfo.setFileList(fileIds);
}
@ -491,19 +601,23 @@ public class TaskDeliverService implements ITaskDeliverService {
* 检查人检查交付物
*/
@Override
public DeliverVo.DeliverInfo checkDeliver(Long currentUserId, DeliverDto.CheckDeliver checkDeliver) throws Exception {
public DeliverVo.DeliverInfo checkDeliver(Long currentUserId, DeliverDto.CheckDeliver checkDeliver,String token) throws Exception {
Long subTimeId = isTaskOrSubTime(checkDeliver.getTaskId());
if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK);
}
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser = null;
BaseMessageDto.MessageUser messageUser;
ProRole checkRole = null;
Set<String> userIdSet = new HashSet<>();
Long uploadUserId = null;
//查找该用户在此项目的角色
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(checkDeliver.getDeliverId());
//获取交付物记录
ProTaskDeliverPostLog deliverPostLog = deliverPostLogDao.selectByPrimaryKey(checkDeliver.getDeliverLogId());
if(ObjectUtil.isNull(deliverPostLog)){
throw new BaseException(CodeEnum.NOT_DELIVER);
}
//查找交付物信息
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(deliverPostLog.getDeliverId());
if(ObjectUtil.isNull(deliver)){
throw new BaseException(CodeEnum.NOT_DELIVER);
}
@ -515,15 +629,15 @@ public class TaskDeliverService implements ITaskDeliverService {
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, task.getProjectId());
if (CollectionUtil.isNotEmpty(roleList)) {
for (ProRole role : roleList) {
ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
logExample.createCriteria().andDeliverIdEqualTo(checkDeliver.getDeliverId()).andTaskSubTimeIdEqualTo(subTimeId);
logExample.setOrderByClause("time DESC");
List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
ProTaskDeliverPostLog postLog = deliverPostLogList.get(0);
// ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
// logExample.createCriteria().andDeliverIdEqualTo(checkDeliver.getDeliverId()).andTaskSubTimeIdEqualTo(subTimeId);
// logExample.setOrderByClause("time DESC");
// List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
// if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
// ProTaskDeliverPostLog postLog = deliverPostLogList.get(0);
// for (ProTaskDeliverPostLog postLog : deliverPostLogList) {
ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample();
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(postLog.getId()).andCheckerIdEqualTo(role.getId());
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(deliverPostLog.getId()).andCheckerIdEqualTo(role.getId());
List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample);
if (CollectionUtil.isNotEmpty(postLogCheckerList)) {
for (ProTaskDeliverPostLogChecker postLogChecker : postLogCheckerList) {
@ -538,15 +652,16 @@ public class TaskDeliverService implements ITaskDeliverService {
postLogCheckerDao.updateByPrimaryKeySelective(postLogChecker);
}
}
}
userIdSet.add(postLog.getUserId().toString());
uploadUserId = postLog.getUserId();
// }
userIdSet.add(deliverPostLog.getUserId().toString());
uploadUserId = deliverPostLog.getUserId();
checkRole = role;
// }
}
if (ObjectUtil.isNull(checkRole)) {
throw new BaseException(CodeEnum.IS_NOT_CHECKER);
}
}
if (ObjectUtil.isNull(checkRole)) {
throw new BaseException(CodeEnum.IS_NOT_CHECKER);
}
}
//发送消息
@ -588,7 +703,7 @@ public class TaskDeliverService implements ITaskDeliverService {
messageService.sendDeliverMessageWithChecker(inMessage);
//检查完,返回数据
DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId());
DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId(),token);
//用智能助手发送消息+ws/公众号发送
robotService.checkDeliverRobotSend(currentUserId,task,uploadUserId,deliver.getName());
return deliverInfo;
@ -625,7 +740,7 @@ public class TaskDeliverService implements ITaskDeliverService {
//获取日期的开始结束时间
Long startMillisTime = null;
Long endMillisTime = null;
Map<String, Long> timeMap = null;
Map<String, Long> timeMap;
if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime");
@ -702,8 +817,13 @@ public class TaskDeliverService implements ITaskDeliverService {
*/
@Override
public void deleteDeliver(Long currentUserId, Long deliverId, Long taskId) throws Exception {
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(deliverId);
if(ObjectUtil.isNull(deliver)){
// ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(deliverId);
// if(ObjectUtil.isNull(deliver)){
// throw new BaseException(CodeEnum.NOT_DELIVER);
// }
ProTaskDeliverPostLog deliverPostLog = deliverPostLogDao.selectByPrimaryKey(deliverId);
if(ObjectUtil.isNull(deliverPostLog)){
throw new BaseException(CodeEnum.NOT_DELIVER);
}
Long subTimeId = isTaskOrSubTime(taskId);
@ -713,13 +833,13 @@ public class TaskDeliverService implements ITaskDeliverService {
List<Long> userIdList = new ArrayList<>();
//同步锁,防止多个用户同时操作该数据
synchronized (this) {
//查找此交付物与文件的中间表
ProTaskDeliverPostLogExample deliverPostLogExample = new ProTaskDeliverPostLogExample();
deliverPostLogExample.createCriteria().andDeliverIdEqualTo(deliverId).andTaskSubTimeIdEqualTo(subTimeId);
List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(deliverPostLogExample);
// //查找此交付物与文件的中间表
// ProTaskDeliverPostLogExample deliverPostLogExample = new ProTaskDeliverPostLogExample();
// deliverPostLogExample.createCriteria().andDeliverIdEqualTo(deliverId).andTaskSubTimeIdEqualTo(subTimeId);
// List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(deliverPostLogExample);
if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
// if (ObjectUtil.isNotNull(deliverPostLog)) {
// for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
if (currentUserId.longValue() == deliverPostLog.getUserId().longValue()) {
if (deliverPostLog.getIsHistory() == 0) {
deliverPostLog.setIsHistory(1);
@ -737,8 +857,9 @@ public class TaskDeliverService implements ITaskDeliverService {
} else {
throw new BaseException("您无法删除别人上传的交付物");
}
}
}
// }
// }
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(deliverPostLog.getDeliverId());
deliver.setIsUpload(0);
taskDeliverDao.updateByPrimaryKeySelective(deliver);
@ -772,20 +893,10 @@ public class TaskDeliverService implements ITaskDeliverService {
deleteMessage.setData(deleteMessageData);
deleteMessage.setReceivers(messageUserList);
InMessage inMessage = new InMessage();
inMessage.setTos(userIdSet);
inMessage.setData(JSONObject.toJSONString(deleteMessage));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME, JSONObject.toJSONString(inMessage));
rabbitTemplate.convertAndSend(RabbitMQConfig.MESSAGE_QUEUE_NAME,
JacksonUtil.beanToJson(deleteMessage));
// rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
// JacksonUtil.beanToJson(deleteMessage));
// MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User);
// String s = JacksonUtil.beanToJson(deleteMessage);
// InMessage inMessage = InMessage.newToUserMessage(currentUserId.toString(),userIdSet,null,messageRule,s);
//
// messageService.sendDeliverMessageWithDelete(inMessage);
//用智能助手发送消息
robotService.deleteDeliverRobotSend(currentUserId,deliver.getName(),subTimeId);
}
@ -795,7 +906,7 @@ public class TaskDeliverService implements ITaskDeliverService {
/**
* 删除任务下的交付物彻底删除
* @param taskId
* @param taskId 任务id
*/
@Override
public void deleteDeliverByTaskId(Long taskId) {

27
tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java

@ -20,9 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author
@ -242,8 +240,27 @@ public class TaskPluginService implements ITaskPluginService{
}
@Override
public List<PluginVo.NotesInfo> listNotesInfo(Long currentUserId, Long taskId, Long pluginId) {
// List<PluginVo.NotesInfo> notesInfoList = proNotesDao.listNotesInfo(currentUserId,taskId,pluginId);
return null;
public List<PluginVo.NotesInfo> queryNotesInfo(Long currentUserId, Long taskId, Long pluginId) {
return proNotesDao.queryNotesInfo(currentUserId,taskId,pluginId);
}
@Override
public void deleteNotes(Long currentUserId, Long notesId) {
ProNotes notes = proNotesDao.selectByPrimaryKey(notesId);
if(ObjectUtil.isNull(notes)){
throw new BaseException(CodeEnum.PARAM_ERROR);
}
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(notes.getTaskId());
if(ObjectUtil.isNotNull(proTaskDetail)){
//只有管理员和发表评论的本人可以删除
int power = proRoleService.selectPowerByRoleName(currentUserId, proTaskDetail.getProjectId());
if (power > 1 || currentUserId.longValue() == notes.getUserId()) {
notes.setRecStatus((byte) 2);
proNotesDao.updateByPrimaryKeySelective(notes);
}else {
throw new BaseException(CodeEnum.NOT_POWER);
}
}
}
}

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

@ -78,7 +78,7 @@ public class WpsService implements IWpsService {
ProProjectFileExample example = new ProProjectFileExample();
example.createCriteria().andBusinessIdEqualTo(business.getBusinessId())
.andBusinessTypeEqualTo(business.getBusinessType())
.andFileIdEqualTo(business.getWpsFileId());
.andWpsFileIdEqualTo(business.getWpsFileId());
List<ProProjectFile> proProjectFiles = proProjectFileMapper.selectByExample(example);
if (CollectionUtil.isEmpty(proProjectFiles)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
@ -112,7 +112,7 @@ public class WpsService implements IWpsService {
ProProjectFile proProjectFile;
proProjectFile = new ProProjectFile();
proProjectFile.setId(snowflake.nextId());
proProjectFile.setFileId(wpsFile.getId());
proProjectFile.setWpsFileId(wpsFile.getId());
proProjectFile.setBusinessId(business.getBusinessId());
proProjectFile.setBusinessType(business.getBusinessType());
proProjectFile.setPrivilege(business.getPrivilege());
@ -270,7 +270,7 @@ public class WpsService implements IWpsService {
JSONObject json = new JSONObject();
json.put("id", projectFile.getBusinessId());
json.put("type", projectFile.getBusinessType());
json.put("fileId", projectFile.getFileId());
json.put("fileId", projectFile.getWpsFileId());
String result = RestTemplateUtil.postBody(projectFile.getPrivilegeQueryUrl(), json);
user.setPermission(result);
}
@ -301,7 +301,7 @@ public class WpsService implements IWpsService {
private List<ProProjectFile> getProProjectFiles(Long fileId) {
ProProjectFileExample projectFileExample = new ProProjectFileExample();
projectFileExample.createCriteria().andFileIdEqualTo(fileId);
projectFileExample.createCriteria().andWpsFileIdEqualTo(fileId);
return proProjectFileMapper.selectByExample(projectFileExample);
}

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

@ -19,6 +19,9 @@ import javax.servlet.http.Part;
import java.io.File;
import java.util.List;
/**
* @author
*/
@Api(tags = "交付物相关API", description = "DeliverController | 交付物操作控制器类")
@RestController
@RequestMapping("/delivers")
@ -66,7 +69,9 @@ public class DeliverController {
public JsonResponse<List<DeliverVo.DeliverInfo>> selectTaskDeliver(HttpServletRequest request,
@RequestParam(required = true) Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<DeliverVo.DeliverInfo> deliverInfo = deliverService.selectTaskDeliver(currentUserId, taskId);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
List<DeliverVo.DeliverInfo> deliverInfo = deliverService.selectTaskDeliver(currentUserId, taskId,token);
return JsonResponse.newInstance().ok(deliverInfo);
}
@ -79,7 +84,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> selectDeliver(HttpServletRequest request,
@RequestParam(required = true)Long deliverId, Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
DeliverVo.DeliverInfo deliverInfo = deliverService.selectDeliverInfo(currentUserId,deliverId,taskId);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
DeliverVo.DeliverInfo deliverInfo = deliverService.selectDeliverInfo(currentUserId,deliverId,taskId,token);
return JsonResponse.newInstance().ok(deliverInfo);
}
@ -92,7 +99,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> selectInput(HttpServletRequest request,
@RequestParam(required = true)Long inputId, Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
DeliverVo.DeliverInfo deliverInfo = deliverService.selectDeliverInfo(currentUserId,inputId,taskId);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
DeliverVo.DeliverInfo deliverInfo = deliverService.selectDeliverInfo(currentUserId,inputId,taskId,token);
return JsonResponse.newInstance().ok(deliverInfo);
}
@ -104,7 +113,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> checkDeliver(HttpServletRequest request,
@ApiParam @RequestBody DeliverDto.CheckDeliver checker) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
DeliverVo.DeliverInfo deliverInfo = deliverService.checkDeliver(currentUserId,checker);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
DeliverVo.DeliverInfo deliverInfo = deliverService.checkDeliver(currentUserId,checker,token);
return JsonResponse.newInstance().ok(deliverInfo);
}
@ -133,14 +144,14 @@ public class DeliverController {
@OperateType(value = 8)
@ApiOperation(value = "删除交付物",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name="deliverId",value = "交付物Id",required = true,paramType = "query",dataType="String"),
@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 deliverId, Long taskId) throws Exception {
@RequestParam(required = true)Long deliverLogId, Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
deliverService.deleteDeliver(currentUserId,deliverId,taskId);
deliverService.deleteDeliver(currentUserId,deliverLogId,taskId);
return JsonResponse.newInstance().ok();
}

14
tall/src/main/java/com/ccsens/tall/web/ExcelController.java

@ -15,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@ -24,9 +25,9 @@ import java.io.File;
@RestController
@RequestMapping("/projects")
public class ExcelController {
@Autowired
@Resource
private IExcelService excelService;
@Autowired
@Resource
private IExportWbsService exportWbsService;
@ApiOperation(value = "导入WBS",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
@ -34,7 +35,9 @@ public class ExcelController {
@ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file")
})
@RequestMapping(value = "/wbs", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectVo.ProjectInfo> btproImport(HttpServletRequest request, HttpServletResponse response, @RequestParam(required = true) Part file) throws Exception {
public JsonResponse<ProjectVo.ProjectInfo> btproImport(HttpServletRequest request, HttpServletResponse response,
@RequestParam(required = true) Part file,
@RequestParam(required = true) Long wpsFileId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
//1.上传文件
@ -42,8 +45,13 @@ public class ExcelController {
String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator;
String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
System.out.println(dir+""+path);
//获取文件路径,文件名,和文件大小
String filePath = WebConstant.UPLOAD_PATH_PROJECT + File.separator + path;
String name = UploadFileUtil_Servlet3.getFileNameByPart(file);
//导入数据库
ProjectVo.ProjectInfo projectInfo = excelService.readXls(dir+""+path,currentUserId);
//保存文件信息、添加wps信息
excelService.saveWbsExcelFile(currentUserId,projectInfo.getId(),filePath,name,file.getSize(),wpsFileId);
return JsonResponse.newInstance().ok(projectInfo);
}

18
tall/src/main/java/com/ccsens/tall/web/PluginController.java

@ -121,15 +121,27 @@ public class PluginController {
@ApiOperation(value = "查找笔记", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "任务Id", required = true, paramType = "query"),
@ApiImplicitParam(name = "page", value = "被查询的插件的id,不是笔记插件的id,只查询任务的笔记时不需要传参", required = true, paramType = "query")
@ApiImplicitParam(name = "taskId", value = "任务Id", required = true, paramType = "query"),
@ApiImplicitParam(name = "pluginId", value = "被查询的插件的id,不是笔记插件的id,只查询任务的笔记时不需要传参", required = true, paramType = "query")
})
@RequestMapping(value = "notes", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<PluginVo.NotesInfo>> getNotesInfo(HttpServletRequest request,
@RequestParam(required = true) Long taskId,
@RequestParam(required = false) Long pluginId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<PluginVo.NotesInfo> notesInfoList = taskPluginService.listNotesInfo(currentUserId,taskId,pluginId);
List<PluginVo.NotesInfo> notesInfoList = taskPluginService.queryNotesInfo(currentUserId,taskId,pluginId);
return JsonResponse.newInstance().ok(notesInfoList);
}
@ApiOperation(value = "删除评论", notes = "")
@ApiImplicitParams({
})
@RequestMapping(value = "delNotes", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse deleteNotes(HttpServletRequest request,
@RequestParam(required = true) Long notesId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
taskPluginService.deleteNotes(currentUserId,notesId);
return JsonResponse.newInstance().ok();
}
}

26
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -1,5 +1,6 @@
package com.ccsens.tall.web;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo;
@ -62,7 +63,10 @@ public class ProjectController {
orderType = orderType == null ? 0 : orderType;
order = order == null ? 0 : order;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<ProjectVo.ProjectInfo> projectInfoList = projectService.getProjectInfo(currentUserId,date,orderType,order);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
System.out.println(token);
List<ProjectVo.ProjectInfo> projectInfoList = projectService.getProjectInfo(currentUserId,date,orderType,order,token);
return JsonResponse.newInstance().ok(projectInfoList);
}
@ -73,7 +77,9 @@ public class ProjectController {
@RequestMapping(value = "id", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectVo.ProjectInfo> getProjectById(HttpServletRequest request, @RequestParam(required = true) Long projectId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectInfo projectInfo = projectService.getProjectInfoById(currentUserId,projectId);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectInfo projectInfo = projectService.getProjectInfoById(currentUserId,projectId,token);
return JsonResponse.newInstance().ok(projectInfo);
}
@ -214,7 +220,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> addProject(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectIdDto projectDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectInfo projectInfo = projectService.copyProject(currentUserId,projectDto);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectInfo projectInfo = projectService.copyProject(currentUserId,projectDto,token);
return JsonResponse.newInstance().ok(projectInfo);
}
@ -225,7 +233,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> updateProject(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectInfoDto projectInfoDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectInfo projectInfo = projectService.changeProjectInfo(currentUserId,projectInfoDto);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectInfo projectInfo = projectService.changeProjectInfo(currentUserId,projectInfoDto,token);
return JsonResponse.newInstance().ok(projectInfo);
}
@ -239,7 +249,9 @@ public class ProjectController {
Integer pageSize = 10;
page = page == null ? 1 : page;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectAllDetailed projectInfoList = projectService.selectByLabelName(currentUserId,labelName,pageSize,page);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectAllDetailed projectInfoList = projectService.selectByLabelName(currentUserId,labelName,pageSize,page,token);
return JsonResponse.newInstance().ok(projectInfoList);
}
@ -262,7 +274,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> updateProjectConfig(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectConfig projectConfig) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectInfo projectInfo = projectService.updateProjectConfig(currentUserId,projectConfig);
String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN);
String token = authHeader.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
ProjectVo.ProjectInfo projectInfo = projectService.updateProjectConfig(currentUserId,projectConfig,token);
return JsonResponse.newInstance().ok(projectInfo);
}

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

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

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

@ -139,7 +139,7 @@
<select id="selectFileIdByDeliverId" parameterType="java.util.Map"
resultMap="resultMap_FilePath">
SELECT
l.id as postLogId,
l.id as deliverLogId,
f.id as fileId,
l.updated_at as updateTime,
l.description as description,
@ -150,6 +150,8 @@
FROM
`t_pro_task_deliver_post_log` l LEFT JOIN t_sys_commited_file f on l.file_id = f.id
WHERE
l.rec_status = 0
and
l.task_sub_time_id = #{subTimeId}
ORDER BY l.time DESC
</select>

38
tall/src/main/resources/mapper_dao/ProNotesDao.xml

@ -0,0 +1,38 @@
<?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.ProNotesDao">
<select id="queryNotesInfo" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.PluginVo$NotesInfo">
SELECT
n.id,
n.task_id as taskId,
n.role_id as roleId,
n.plugin_id as pluginId,
n.time as notesTime,
n.value as value,
n.publicity as publicity
from
t_pro_notes n
WHERE
n.task_id = #{taskId}
and
(
n.publicity = 1
or
n.role_id in (
SELECT
r.id
from
t_pro_role r LEFT JOIN t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
m.user_id = #{userId}
)
)
<if test="pluginId != null">
n.plugin_id = #{pluginId}
</if>
</select>
</mapper>

2
tall/src/main/resources/mapper_dao/WpsFileDao.xml

@ -87,7 +87,7 @@
t_pro_project_file p,
t_wps_file f
WHERE
p.file_id = f.id
p.wps_file_id = f.id
AND p.business_id = #{businessId}
AND p.business_type = #{businessType}
AND p.rec_status = 0

550
tall/src/main/resources/mapper_raw/ProProjectFileMapper.xml

@ -1,276 +1,276 @@
<?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.mapper.ProProjectFileMapper">
<resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.ProProjectFile">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="business_id" jdbcType="BIGINT" property="businessId" />
<result column="file_id" jdbcType="BIGINT" property="fileId" />
<result column="business_type" jdbcType="TINYINT" property="businessType" />
<result column="privilege" jdbcType="TINYINT" property="privilege" />
<result column="privilege_query_url" jdbcType="VARCHAR" property="privilegeQueryUrl" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, business_id, file_id, business_type, privilege, privilege_query_url, created_at,
updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_pro_project_file
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_pro_project_file
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample">
delete from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
insert into t_pro_project_file (id, business_id, file_id,
business_type, privilege, privilege_query_url,
created_at, updated_at, rec_status
)
values (#{id,jdbcType=BIGINT}, #{businessId,jdbcType=BIGINT}, #{fileId,jdbcType=BIGINT},
#{businessType,jdbcType=TINYINT}, #{privilege,jdbcType=TINYINT}, #{privilegeQueryUrl,jdbcType=VARCHAR},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
insert into t_pro_project_file
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="businessId != null">
business_id,
</if>
<if test="fileId != null">
file_id,
</if>
<if test="businessType != null">
business_type,
</if>
<if test="privilege != null">
privilege,
</if>
<if test="privilegeQueryUrl != null">
privilege_query_url,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="businessId != null">
#{businessId,jdbcType=BIGINT},
</if>
<if test="fileId != null">
#{fileId,jdbcType=BIGINT},
</if>
<if test="businessType != null">
#{businessType,jdbcType=TINYINT},
</if>
<if test="privilege != null">
#{privilege,jdbcType=TINYINT},
</if>
<if test="privilegeQueryUrl != null">
#{privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample" resultType="java.lang.Long">
select count(*) from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_pro_project_file
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.businessId != null">
business_id = #{record.businessId,jdbcType=BIGINT},
</if>
<if test="record.fileId != null">
file_id = #{record.fileId,jdbcType=BIGINT},
</if>
<if test="record.businessType != null">
business_type = #{record.businessType,jdbcType=TINYINT},
</if>
<if test="record.privilege != null">
privilege = #{record.privilege,jdbcType=TINYINT},
</if>
<if test="record.privilegeQueryUrl != null">
privilege_query_url = #{record.privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_pro_project_file
set id = #{record.id,jdbcType=BIGINT},
business_id = #{record.businessId,jdbcType=BIGINT},
file_id = #{record.fileId,jdbcType=BIGINT},
business_type = #{record.businessType,jdbcType=TINYINT},
privilege = #{record.privilege,jdbcType=TINYINT},
privilege_query_url = #{record.privilegeQueryUrl,jdbcType=VARCHAR},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
update t_pro_project_file
<set>
<if test="businessId != null">
business_id = #{businessId,jdbcType=BIGINT},
</if>
<if test="fileId != null">
file_id = #{fileId,jdbcType=BIGINT},
</if>
<if test="businessType != null">
business_type = #{businessType,jdbcType=TINYINT},
</if>
<if test="privilege != null">
privilege = #{privilege,jdbcType=TINYINT},
</if>
<if test="privilegeQueryUrl != null">
privilege_query_url = #{privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
update t_pro_project_file
set business_id = #{businessId,jdbcType=BIGINT},
file_id = #{fileId,jdbcType=BIGINT},
business_type = #{businessType,jdbcType=TINYINT},
privilege = #{privilege,jdbcType=TINYINT},
privilege_query_url = #{privilegeQueryUrl,jdbcType=VARCHAR},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
<?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.mapper.ProProjectFileMapper">
<resultMap id="BaseResultMap" type="com.ccsens.tall.bean.po.ProProjectFile">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="business_id" jdbcType="BIGINT" property="businessId" />
<result column="wps_file_id" jdbcType="BIGINT" property="wpsFileId" />
<result column="business_type" jdbcType="TINYINT" property="businessType" />
<result column="privilege" jdbcType="TINYINT" property="privilege" />
<result column="privilege_query_url" jdbcType="VARCHAR" property="privilegeQueryUrl" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, business_id, wps_file_id, business_type, privilege, privilege_query_url, created_at,
updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_pro_project_file
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_pro_project_file
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample">
delete from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
insert into t_pro_project_file (id, business_id, wps_file_id,
business_type, privilege, privilege_query_url,
created_at, updated_at, rec_status
)
values (#{id,jdbcType=BIGINT}, #{businessId,jdbcType=BIGINT}, #{wpsFileId,jdbcType=BIGINT},
#{businessType,jdbcType=TINYINT}, #{privilege,jdbcType=TINYINT}, #{privilegeQueryUrl,jdbcType=VARCHAR},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
)
</insert>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
insert into t_pro_project_file
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="businessId != null">
business_id,
</if>
<if test="wpsFileId != null">
wps_file_id,
</if>
<if test="businessType != null">
business_type,
</if>
<if test="privilege != null">
privilege,
</if>
<if test="privilegeQueryUrl != null">
privilege_query_url,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="businessId != null">
#{businessId,jdbcType=BIGINT},
</if>
<if test="wpsFileId != null">
#{wpsFileId,jdbcType=BIGINT},
</if>
<if test="businessType != null">
#{businessType,jdbcType=TINYINT},
</if>
<if test="privilege != null">
#{privilege,jdbcType=TINYINT},
</if>
<if test="privilegeQueryUrl != null">
#{privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProProjectFileExample" resultType="java.lang.Long">
select count(*) from t_pro_project_file
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_pro_project_file
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.businessId != null">
business_id = #{record.businessId,jdbcType=BIGINT},
</if>
<if test="record.wpsFileId != null">
wps_file_id = #{record.wpsFileId,jdbcType=BIGINT},
</if>
<if test="record.businessType != null">
business_type = #{record.businessType,jdbcType=TINYINT},
</if>
<if test="record.privilege != null">
privilege = #{record.privilege,jdbcType=TINYINT},
</if>
<if test="record.privilegeQueryUrl != null">
privilege_query_url = #{record.privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_pro_project_file
set id = #{record.id,jdbcType=BIGINT},
business_id = #{record.businessId,jdbcType=BIGINT},
wps_file_id = #{record.wpsFileId,jdbcType=BIGINT},
business_type = #{record.businessType,jdbcType=TINYINT},
privilege = #{record.privilege,jdbcType=TINYINT},
privilege_query_url = #{record.privilegeQueryUrl,jdbcType=VARCHAR},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
update t_pro_project_file
<set>
<if test="businessId != null">
business_id = #{businessId,jdbcType=BIGINT},
</if>
<if test="wpsFileId != null">
wps_file_id = #{wpsFileId,jdbcType=BIGINT},
</if>
<if test="businessType != null">
business_type = #{businessType,jdbcType=TINYINT},
</if>
<if test="privilege != null">
privilege = #{privilege,jdbcType=TINYINT},
</if>
<if test="privilegeQueryUrl != null">
privilege_query_url = #{privilegeQueryUrl,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.tall.bean.po.ProProjectFile">
update t_pro_project_file
set business_id = #{businessId,jdbcType=BIGINT},
wps_file_id = #{wpsFileId,jdbcType=BIGINT},
business_type = #{businessType,jdbcType=TINYINT},
privilege = #{privilege,jdbcType=TINYINT},
privilege_query_url = #{privilegeQueryUrl,jdbcType=VARCHAR},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

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

@ -128,6 +128,7 @@ public enum CodeEnum {
;
public CodeEnum addMsg(String msg){

1
util/src/main/java/com/ccsens/util/WebConstant.java

@ -168,6 +168,7 @@ public class WebConstant {
public static final String UPLOAD_PATH_DELIVER = UPLOAD_PATH_BASE + File.separator + "delivers";
public static final String UPLOAD_PATH_DELIVER1 ="delivers";
public static final String UPLOAD_PATH_PROJECT ="project";
public static final String UPLOAD_PATH_WPS ="wps";
public static final String UPLOAD_PATH_AVATAR_URL ="avatarUrl";

3
util/src/test/java/com/ccsens/util/Base64Test.java

@ -42,7 +42,8 @@ public class Base64Test {
@Test
public void test02() throws Exception {
File file = new File("d:"+File.separator+"1.png");
System.out.println(file.length());
}

Loading…
Cancel
Save