Browse Source

返回wps文件路径

master
zy_Java 5 years ago
parent
commit
5c61bbb5d0
  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. 2
      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. 444
      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. 19
      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. 2
      tall/src/main/resources/mapper_dao/DeliverDao.xml
  23. 38
      tall/src/main/resources/mapper_dao/ProNotesDao.xml
  24. 2
      tall/src/main/resources/mapper_dao/WpsFileDao.xml
  25. 550
      tall/src/main/resources/mapper_raw/ProProjectFileMapper.xml
  26. 1
      util/src/main/java/com/ccsens/util/CodeEnum.java
  27. 1
      util/src/main/java/com/ccsens/util/WebConstant.java
  28. 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 @Data
public static class CheckDeliver{ public static class CheckDeliver{
@ApiModelProperty("交付物Id") @ApiModelProperty("交付物Id")
private Long deliverId; private Long deliverLogId;
@ApiModelProperty("任务在此时间段的id") @ApiModelProperty("任务在此时间段的id")
private Long taskId; private Long taskId;
@ApiModelProperty("检查状况") @ApiModelProperty("检查状况")
@ -34,16 +34,18 @@ public class DeliverDto {
@ApiModelProperty("检查人") @ApiModelProperty("检查人")
private List<Long> checkerIdList; private List<Long> checkerIdList;
@ApiModelProperty("文件信息") @ApiModelProperty("文件信息")
private List<fileInfo> fileInfo; private List<FileInfo> fileInfo;
} }
@ApiModel @ApiModel
@Data @Data
public static class fileInfo{ public static class FileInfo{
@ApiModelProperty("文件ID") @ApiModelProperty("文件ID")
private Long id; private Long id;
@ApiModelProperty("文件名称") @ApiModelProperty("文件名称")
private String name; private String name;
@ApiModelProperty("文件路径") @ApiModelProperty("文件路径")
private String url; 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 String deliverName;
private Long uploader; private Long uploader;
private Long uploadTime; 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, public DeliverMessageWithUploadDto(Long projectId,Long roleId,
Long taskId, Long deliverId,String deliverName 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(); this();
setReceivers(receivers);
Data d = new Data(); Data d = new Data();
d.setProjectId(projectId); d.setProjectId(projectId);
d.setRoleId(roleId); 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; package com.ccsens.tall.bean.po;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
public class ProProjectFile implements Serializable { public class ProProjectFile implements Serializable {
private Long id; private Long id;
private Long businessId; private Long businessId;
private Long fileId; private Long wpsFileId;
private Byte businessType; private Byte businessType;
private Byte privilege; private Byte privilege;
private String privilegeQueryUrl; private String privilegeQueryUrl;
private Date createdAt; private Date createdAt;
private Date updatedAt; private Date updatedAt;
private Byte recStatus; private Byte recStatus;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
return id; return id;
} }
public void setId(Long id) { public void setId(Long id) {
this.id = id; this.id = id;
} }
public Long getBusinessId() { public Long getBusinessId() {
return businessId; return businessId;
} }
public void setBusinessId(Long businessId) { public void setBusinessId(Long businessId) {
this.businessId = businessId; this.businessId = businessId;
} }
public Long getFileId() { public Long getWpsFileId() {
return fileId; return wpsFileId;
} }
public void setFileId(Long fileId) { public void setWpsFileId(Long wpsFileId) {
this.fileId = fileId; this.wpsFileId = wpsFileId;
} }
public Byte getBusinessType() { public Byte getBusinessType() {
return businessType; return businessType;
} }
public void setBusinessType(Byte businessType) { public void setBusinessType(Byte businessType) {
this.businessType = businessType; this.businessType = businessType;
} }
public Byte getPrivilege() { public Byte getPrivilege() {
return privilege; return privilege;
} }
public void setPrivilege(Byte privilege) { public void setPrivilege(Byte privilege) {
this.privilege = privilege; this.privilege = privilege;
} }
public String getPrivilegeQueryUrl() { public String getPrivilegeQueryUrl() {
return privilegeQueryUrl; return privilegeQueryUrl;
} }
public void setPrivilegeQueryUrl(String privilegeQueryUrl) { public void setPrivilegeQueryUrl(String privilegeQueryUrl) {
this.privilegeQueryUrl = privilegeQueryUrl == null ? null : privilegeQueryUrl.trim(); this.privilegeQueryUrl = privilegeQueryUrl == null ? null : privilegeQueryUrl.trim();
} }
public Date getCreatedAt() { public Date getCreatedAt() {
return createdAt; return createdAt;
} }
public void setCreatedAt(Date createdAt) { public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt; this.createdAt = createdAt;
} }
public Date getUpdatedAt() { public Date getUpdatedAt() {
return updatedAt; return updatedAt;
} }
public void setUpdatedAt(Date updatedAt) { public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt; this.updatedAt = updatedAt;
} }
public Byte getRecStatus() { public Byte getRecStatus() {
return recStatus; return recStatus;
} }
public void setRecStatus(Byte recStatus) { public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus; this.recStatus = recStatus;
} }
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName()); sb.append(getClass().getSimpleName());
sb.append(" ["); sb.append(" [");
sb.append("Hash = ").append(hashCode()); sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id); sb.append(", id=").append(id);
sb.append(", businessId=").append(businessId); sb.append(", businessId=").append(businessId);
sb.append(", fileId=").append(fileId); sb.append(", wpsFileId=").append(wpsFileId);
sb.append(", businessType=").append(businessType); sb.append(", businessType=").append(businessType);
sb.append(", privilege=").append(privilege); sb.append(", privilege=").append(privilege);
sb.append(", privilegeQueryUrl=").append(privilegeQueryUrl); sb.append(", privilegeQueryUrl=").append(privilegeQueryUrl);
sb.append(", createdAt=").append(createdAt); sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt); sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus); sb.append(", recStatus=").append(recStatus);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }
} }

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

File diff suppressed because it is too large

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

@ -41,6 +41,8 @@ public class DeliverVo {
private Long deleteTime; private Long deleteTime;
@ApiModelProperty("交付物访问路径") @ApiModelProperty("交付物访问路径")
private String url; private String url;
@ApiModelProperty("交付物访问路径")
private List<String> wbsFilePaths;
@ApiModelProperty("是否是历史交付物 1是 0不是") @ApiModelProperty("是否是历史交付物 1是 0不是")
private String isHistory; private String isHistory;
@ApiModelProperty("该用户自身是否是此交付物的检查人") @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; private List<LabelVo.SelectLabel> labelList;
@ApiModelProperty("未处理信息的数量") @ApiModelProperty("未处理信息的数量")
private ProjectUnreadMsg projectUnreadMsg; private ProjectUnreadMsg projectUnreadMsg;
@ApiModelProperty("WBS文件信息")
private List<String> wbsFilePaths;
public Long getTotalDuration(){ public Long getTotalDuration(){
if(ObjectUtil.isNotNull(endTime) && ObjectUtil.isNotNull(beginTime)){ 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("返回的项目配置信息") @ApiModel("返回的项目配置信息")
@Data @Data
public static class ProjectConfig{ 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 @Repository
public interface ProNotesDao extends ProNotesMapper { public interface ProNotesDao extends ProNotesMapper {
// /** /**
// * 查找任务下的笔记 * 查找任务下的笔记
// * @param userId 用户id * @param userId 用户id
// * @param taskId 任务id * @param taskId 任务id
// * @param pluginId 被记笔记的插件的id,可以为null * @param pluginId 被记笔记的插件的id可以为null
// * @return 返回笔记list * @return 返回笔记list
// */ */
// List<PluginVo.NotesInfo> listNotesInfo(@Param("userId") Long userId, @Param("taskId")Long taskId,@Param("pluginId") Long pluginId); 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; package com.ccsens.tall.persist.mapper;
import com.ccsens.tall.bean.po.ProProjectFile; import com.ccsens.tall.bean.po.ProProjectFile;
import com.ccsens.tall.bean.po.ProProjectFileExample; import com.ccsens.tall.bean.po.ProProjectFileExample;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
public interface ProProjectFileMapper { public interface ProProjectFileMapper {
long countByExample(ProProjectFileExample example); long countByExample(ProProjectFileExample example);
int deleteByExample(ProProjectFileExample example); int deleteByExample(ProProjectFileExample example);
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
int insert(ProProjectFile record); int insert(ProProjectFile record);
int insertSelective(ProProjectFile record); int insertSelective(ProProjectFile record);
List<ProProjectFile> selectByExample(ProProjectFileExample example); List<ProProjectFile> selectByExample(ProProjectFileExample example);
ProProjectFile selectByPrimaryKey(Long id); ProProjectFile selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example); int updateByExampleSelective(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByExample(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example); int updateByExample(@Param("record") ProProjectFile record, @Param("example") ProProjectFileExample example);
int updateByPrimaryKeySelective(ProProjectFile record); int updateByPrimaryKeySelective(ProProjectFile record);
int updateByPrimaryKey(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; package com.ccsens.tall.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ccsens.tall.bean.dto.WpsDto;
import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.ProjectVo; 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.SysPluginDao;
import com.ccsens.tall.persist.dao.SysProjectDao; import com.ccsens.tall.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.TaskDetailDao; 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.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
/**
* @author
*/
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ExcelService implements IExcelService { public class ExcelService implements IExcelService {
@Autowired @Resource
private SysPluginDao sysPluginDao; private SysPluginDao sysPluginDao;
@Autowired @Resource
private IProjectService projectService; private IProjectService projectService;
@Autowired @Resource
private SysProjectDao sysProjectDao; private SysProjectDao sysProjectDao;
@Autowired @Resource
private IProShowService proShowService; private IProShowService proShowService;
@Autowired @Resource
private Snowflake snowflake; private Snowflake snowflake;
@Autowired @Resource
private IProRoleService proRoleService; private IProRoleService proRoleService;
@Autowired @Resource
private IProMemberRoleService proMemberRoleService; private IProMemberRoleService proMemberRoleService;
@Autowired @Resource
private IExcludeRoleService excludeRoleService; private IExcludeRoleService excludeRoleService;
@Autowired @Resource
private IProMemberService proMemberService; private IProMemberService proMemberService;
@Autowired @Resource
private IProTaskDetailService proTaskDetailService; private IProTaskDetailService proTaskDetailService;
@Autowired @Resource
private TaskDetailDao taskDetailDao; private TaskDetailDao taskDetailDao;
@Autowired @Resource
private ITaskSubTimeService taskSubTimeService; private ITaskSubTimeService taskSubTimeService;
@Autowired @Resource
private ITaskMemberService taskMemberService;
@Autowired
private ITaskDeliverService taskDeliverService; private ITaskDeliverService taskDeliverService;
@Autowired @Resource
private ITaskPluginService taskPluginService; private ITaskPluginService taskPluginService;
@Autowired @Resource
private IUserService userService; private IUserService userService;
@Autowired @Resource
private IUserAttentionService userAttentionService; private IUserAttentionService userAttentionService;
@Autowired @Resource
private IWbsSubSheetService wbsSubSheetService; private IWbsSubSheetService wbsSubSheetService;
@Resource
private IWpsService wpsService;
@Override @Override
@ -76,8 +80,7 @@ public class ExcelService implements IExcelService {
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
//读取WBS表 //读取WBS表
SysProject sysProject = readWbs(xssfWorkbook, currentUserId); SysProject sysProject = readWbs(xssfWorkbook, currentUserId);
ProjectVo.ProjectInfo projectInfo = selectByProjectId(currentUserId, sysProject); return selectByProjectId(currentUserId, sysProject);
return projectInfo;
} }
/** /**
@ -95,14 +98,14 @@ public class ExcelService implements IExcelService {
List<ProTaskDetail> taskDetails = new ArrayList<>(); List<ProTaskDetail> taskDetails = new ArrayList<>();
XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表"); XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表");
XSSFSheet wbsSheet = xssfWorkbook.getSheetAt(0);//wbs XSSFSheet wbsSheet = xssfWorkbook.getSheetAt(0);
int projectInfoStart = 0; int projectInfoStart = 0;
int projectInfoEnd = 0; int projectInfoEnd = 0;
int memberStart = 0; int memberStart = 0;
int memberEnd = 0; int memberEnd = 0;
int taskStart = 0; int taskStart = 0;
int taskEnd = 0; int taskEnd;
taskEnd = wbsSheet.getLastRowNum(); taskEnd = wbsSheet.getLastRowNum();
for (int i = 0; i <= wbsSheet.getLastRowNum(); i++) { 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 begin = ExcelUtil.getCellValue(row.getCell(3));
String end = ExcelUtil.getCellValue(row.getCell(4)); String end = ExcelUtil.getCellValue(row.getCell(4));
if (StrUtil.isNotEmpty(begin) && StrUtil.isNotEmpty(end)) { if (StrUtil.isNotEmpty(begin) && StrUtil.isNotEmpty(end)) {
Long beginTime = null; long beginTime;
Long endTime = null; long endTime;
try { try {
beginTime = Long.parseLong(begin); beginTime = Long.parseLong(begin);
endTime = Long.parseLong(end); endTime = Long.parseLong(end);
@ -438,7 +441,7 @@ public class ExcelService implements IExcelService {
String stakeholderCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(3)); String stakeholderCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(3));
String stakeholderPhoneCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(4)); String stakeholderPhoneCell = ExcelUtil.getCellValue(memberSheet.getRow(i).getCell(4));
ProMember stakeholder = null; ProMember stakeholder = null;
ProMember member = null; ProMember member;
//手机号不能为空 //手机号不能为空
if ((StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) || if ((StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) ||
(StrUtil.isNotEmpty(stakeholderCell) && StrUtil.isEmpty(stakeholderPhoneCell))) { (StrUtil.isNotEmpty(stakeholderCell) && StrUtil.isEmpty(stakeholderPhoneCell))) {
@ -858,11 +861,9 @@ public class ExcelService implements IExcelService {
/** /**
* 分解任务时间 * 分解任务时间
* * @param taskDetails 任务集合
* @param taskDetails
* @throws Exception
*/ */
public void saveProTaskSubTime(List<ProTaskDetail> taskDetails) throws Exception { public void saveProTaskSubTime(List<ProTaskDetail> taskDetails) {
if (CollectionUtil.isNotEmpty(taskDetails)) { if (CollectionUtil.isNotEmpty(taskDetails)) {
for (ProTaskDetail taskDetail : taskDetails) { for (ProTaskDetail taskDetail : taskDetails) {
//虚拟任务不拆分 //虚拟任务不拆分
@ -902,13 +903,13 @@ public class ExcelService implements IExcelService {
* 读取交付物表 * 读取交付物表
*/ */
@Override @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)) { if (StrUtil.isNotEmpty(deliverCell)) {
String str = ""; String str = "";
if (deliverCell.length() > 4) { if (deliverCell.length() > 4) {
str = deliverCell.substring(0, 3); str = deliverCell.substring(0, 3);
} }
if ("关联表".equals(str)) { if ("关联表".equalsIgnoreCase(str)) {
String subStr = deliverCell.substring(4); String subStr = deliverCell.substring(4);
XSSFSheet subSheet = xssfWorkbook.getSheet(subStr); XSSFSheet subSheet = xssfWorkbook.getSheet(subStr);
if(ObjectUtil.isNull(subSheet)){ if(ObjectUtil.isNull(subSheet)){
@ -943,12 +944,11 @@ public class ExcelService implements IExcelService {
/** /**
* 读取插件 * 读取插件
* * @param xssfWorkbook 插件sheet
* @param xssfWorkbook * @param taskDetails 任务集合
* @param taskDetails * @param proRoles 角色集合
* @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(); SysPluginExample pluginExample = new SysPluginExample();
pluginExample.clear(); pluginExample.clear();
List<SysPlugin> sysPluginList = sysPluginDao.selectByExample(pluginExample); List<SysPlugin> sysPluginList = sysPluginDao.selectByExample(pluginExample);
@ -1035,13 +1035,11 @@ public class ExcelService implements IExcelService {
/** /**
* 返回信息 * 返回信息
* * @param currentUserId userId
* @param currentUserId * @param sysProject 项目信息
* @param sysProject * @return 项目详细信息
* @return
* @throws Exception
*/ */
public ProjectVo.ProjectInfo selectByProjectId(Long currentUserId, SysProject sysProject) throws Exception { public ProjectVo.ProjectInfo selectByProjectId(Long currentUserId, SysProject sysProject) {
//返回参数 //返回参数
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
projectInfo.setId(sysProject.getId()); projectInfo.setId(sysProject.getId());
@ -1053,14 +1051,43 @@ public class ExcelService implements IExcelService {
if (ObjectUtil.isNotNull(projectInfo)) { if (ObjectUtil.isNotNull(projectInfo)) {
projectInfo.setCreator(true); 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; 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 com.ccsens.tall.bean.vo.ProjectVo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.Part;
public interface IExcelService { public interface IExcelService {
/**
* 导入wbs
* @param path 文件路径
* @param currentUserId userId
* @return 返回项目详细信息
* @throws Exception io
*/
ProjectVo.ProjectInfo readXls(String path, Long currentUserId) throws Exception; 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; 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; 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; 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; List<ProjectVo.TemplateStatus> getTemplate()throws Exception;
@ -29,11 +29,11 @@ public interface IProjectService {
void deleteProject(Long currentUserId, Long projectId)throws Exception; 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); List<ProjectVo.RelevanceProject> selectRelevanceProject(Long currentUserId, Long projectId);
@ -43,5 +43,5 @@ public interface IProjectService {
* @param projectConfig 项目配置信息 * @param projectConfig 项目配置信息
* @return 返回修改后的项目信息 * @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; 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.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; 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,只查询任务的笔记时不需要传参 * @param pluginId 被查询的插件的id不是笔记插件的id,只查询任务的笔记时不需要传参
* @return 返回任务下的所有笔记信息 * @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.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -60,6 +59,8 @@ public class ProjectService implements IProjectService {
private SysLabelDao sysLabelDao; private SysLabelDao sysLabelDao;
@Resource @Resource
private SysRingMsgDao sysRingMsgDao; private SysRingMsgDao sysRingMsgDao;
@Resource
private IWpsService wpsService;
@Override @Override
public void saveProject(SysProject sysProject) { public void saveProject(SysProject sysProject) {
@ -144,7 +145,7 @@ public class ProjectService implements IProjectService {
* @throws Exception 分解日期时抛错 * @throws Exception 分解日期时抛错
*/ */
@Override @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; Map<String, Long> timeMap;
timeMap = DateUtil.projectFormatDateTime(date); timeMap = DateUtil.projectFormatDateTime(date);
@ -152,10 +153,10 @@ public class ProjectService implements IProjectService {
Long endMillisTime = timeMap.get("endMillisTime") + 1; Long endMillisTime = timeMap.get("endMillisTime") + 1;
//查找此用户关注的项目 //查找此用户关注的项目
List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.findProjectIdByUserId01(currentUserId, startMillisTime, endMillisTime,orderType,order); List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.findProjectIdByUserId01(currentUserId, startMillisTime, endMillisTime,orderType,order);
projectByProject(projectInfoList,currentUserId); projectByProject(projectInfoList,currentUserId,token);
return projectInfoList; 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)) { if (CollectionUtil.isNotEmpty(projectInfoList)) {
projectInfoList.forEach(projectInfo -> { projectInfoList.forEach(projectInfo -> {
//是否是创建者 //是否是创建者
@ -195,6 +196,8 @@ public class ProjectService implements IProjectService {
//查找项目未处理的消息数量 //查找项目未处理的消息数量
ProjectVo.ProjectUnreadMsg unreadMsg = getUnreadMsgByProject(currentUserId,projectInfo.getId()); ProjectVo.ProjectUnreadMsg unreadMsg = getUnreadMsgByProject(currentUserId,projectInfo.getId());
projectInfo.setProjectUnreadMsg(unreadMsg); projectInfo.setProjectUnreadMsg(unreadMsg);
//获取wps文件路径
projectInfo.setWbsFilePaths(wpsService.queryVisitUrls(projectInfo.getId(), (byte) 0,token));
}); });
} }
} }
@ -280,7 +283,7 @@ public class ProjectService implements IProjectService {
* @return 返回项目信息 * @return 返回项目信息
*/ */
@Override @Override
public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId) { public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId,String token) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
if(ObjectUtil.isNull(sysProject)){ if(ObjectUtil.isNull(sysProject)){
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
@ -329,6 +332,8 @@ public class ProjectService implements IProjectService {
if(CollectionUtil.isNotEmpty(labelList)){ if(CollectionUtil.isNotEmpty(labelList)){
projectInfo.setLabelList(labelList); projectInfo.setLabelList(labelList);
} }
//获取wps文件路径
projectInfo.setWbsFilePaths(wpsService.queryVisitUrls(projectInfo.getId(), (byte) 0,token));
return projectInfo; return projectInfo;
} }
@ -520,7 +525,7 @@ public class ProjectService implements IProjectService {
* 复制项目 * 复制项目
*/ */
@Override @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(); // ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectDto.getProjectId()); SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectDto.getProjectId());
@ -552,7 +557,7 @@ public class ProjectService implements IProjectService {
// projectInfo.setCreator(true); // projectInfo.setCreator(true);
// } // }
return getProjectInfoById(userId, newProject.getId()); return getProjectInfoById(userId, newProject.getId(),token);
} }
/** /**
@ -749,7 +754,7 @@ public class ProjectService implements IProjectService {
* 修改项目信息 * 修改项目信息
*/ */
@Override @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()); SysProject project = sysProjectDao.selectByPrimaryKey(projectInfoDto.getId());
if (ObjectUtil.isNotNull(project)) { if (ObjectUtil.isNotNull(project)) {
@ -787,7 +792,7 @@ public class ProjectService implements IProjectService {
} else { } else {
throw new BaseException(CodeEnum.NOT_PROJECT); 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 返回根据标签查找出的所有项目 * @return 返回根据标签查找出的所有项目
*/ */
@Override @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); // List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.selectByLabelName(currentUserId,labelName);
// projectByProject(projectInfoList,currentUserId); // projectByProject(projectInfoList,currentUserId);
PageHelper.startPage(page, pageSize); PageHelper.startPage(page, pageSize);
List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.selectByLabelName(currentUserId,labelName); List<ProjectVo.ProjectInfo> projectInfoList = sysProjectDao.selectByLabelName(currentUserId,labelName);
PageInfo<ProjectVo.ProjectInfo> projectInfoPage = new PageInfo<>(projectInfoList); PageInfo<ProjectVo.ProjectInfo> projectInfoPage = new PageInfo<>(projectInfoList);
projectByProject(projectInfoList,currentUserId); projectByProject(projectInfoList,currentUserId,token);
ProjectVo.ProjectAllDetailed projectAllDetailed = new ProjectVo.ProjectAllDetailed(); ProjectVo.ProjectAllDetailed projectAllDetailed = new ProjectVo.ProjectAllDetailed();
projectAllDetailed.setProjectInfoList(projectInfoList); projectAllDetailed.setProjectInfoList(projectInfoList);
@ -821,7 +826,7 @@ public class ProjectService implements IProjectService {
} }
@Override @Override
public ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig) { public ProjectVo.ProjectInfo updateProjectConfig(Long currentUserId, ProjectDto.ProjectConfig projectConfig,String token) {
//检查项目id是否正确 //检查项目id是否正确
SysProject project = sysProjectDao.selectByPrimaryKey(projectConfig.getProjectId()); SysProject project = sysProjectDao.selectByPrimaryKey(projectConfig.getProjectId());
if(ObjectUtil.isNull(project)){ if(ObjectUtil.isNull(project)){
@ -850,6 +855,6 @@ public class ProjectService implements IProjectService {
} }
proShowDao.updateByPrimaryKeySelective(proShow); proShowDao.updateByPrimaryKeySelective(proShow);
} }
return getProjectInfoById(currentUserId,projectConfig.getProjectId()); return getProjectInfoById(currentUserId,projectConfig.getProjectId(),token);
} }
} }

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

@ -5,17 +5,16 @@ import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ccsens.tall.bean.dto.DeliverDto; 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.BaseMessageDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithCheckerDto; import com.ccsens.tall.bean.dto.message.DeliverMessageWithCheckerDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithDeleteDto; import com.ccsens.tall.bean.dto.message.DeliverMessageWithDeleteDto;
import com.ccsens.tall.bean.dto.message.DeliverMessageWithUploadDto; import com.ccsens.tall.bean.dto.message.DeliverMessageWithUploadDto;
import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.DeliverVo; 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.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.util.RobotUtil;
import com.ccsens.util.*; import com.ccsens.util.*;
import com.ccsens.util.bean.message.common.InMessage; import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant; import com.ccsens.util.bean.message.common.MessageConstant;
@ -23,54 +22,54 @@ import com.ccsens.util.bean.message.common.MessageRule;
import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.config.RabbitMQConfig;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j; 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.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
/**
* @author
*/
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskDeliverService implements ITaskDeliverService { public class TaskDeliverService implements ITaskDeliverService {
@Autowired @Resource
private TaskDeliverDao taskDeliverDao; private TaskDeliverDao taskDeliverDao;
@Autowired @Resource
private SysCommitedFileDao commitedFileDao; private SysCommitedFileDao commitedFileDao;
@Autowired @Resource
private ProTaskDeliverPostLogDao deliverPostLogDao; private ProTaskDeliverPostLogDao deliverPostLogDao;
@Autowired @Resource
private PostLogCheckerDao postLogCheckerDao; private PostLogCheckerDao postLogCheckerDao;
@Autowired @Resource
private TaskDetailDao taskDetailDao; private TaskDetailDao taskDetailDao;
@Autowired @Resource
private TaskSubTimeDao taskSubTimeDao; private TaskSubTimeDao taskSubTimeDao;
@Autowired @Resource
private ProRoleDao proRoleDao; private ProRoleDao proRoleDao;
@Autowired @Resource
private ProSubTimeMemberDao proSubTimeMemberDao; private ProSubTimeMemberDao proSubTimeMemberDao;
@Autowired @Resource
private ProMemberDao proMemberDao;
@Autowired
private IProMemberService proMemberService; private IProMemberService proMemberService;
@Autowired @Resource
private IUserService userService; private IUserService userService;
@Autowired @Resource
private IMessageService messageService; private IMessageService messageService;
@Autowired @Resource
private Snowflake snowflake; private Snowflake snowflake;
@Autowired @Resource
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;
@Autowired @Resource
private IRobotService robotService; private IRobotService robotService;
@Autowired @Resource
private SysProjectDao sysProjectDao; private SysProjectDao sysProjectDao;
@Resource
private IWpsService wpsService;
@Override @Override
public void saveDeliver(ProTaskDeliver taskDeliver) { public void saveDeliver(ProTaskDeliver taskDeliver) {
@ -89,14 +88,14 @@ public class TaskDeliverService implements ITaskDeliverService {
List<ProTaskDeliver> deliverList = taskDeliverDao.selectByExample(deliverExample); List<ProTaskDeliver> deliverList = taskDeliverDao.selectByExample(deliverExample);
if (CollectionUtil.isNotEmpty(deliverList)) { if (CollectionUtil.isNotEmpty(deliverList)) {
for (ProTaskDeliver deliver : deliverList) { for (ProTaskDeliver deliver : deliverList) {
TaskVo.TaskDeliverByMVP.DeliverInfoByMVP deliverInfoByMVP = new TaskVo.TaskDeliverByMVP.DeliverInfoByMVP(); TaskVo.TaskDeliverByMVP.DeliverInfoByMVP deliverInfoByMvp = new TaskVo.TaskDeliverByMVP.DeliverInfoByMVP();
deliverInfoByMVP.setId(deliver.getId()); deliverInfoByMvp.setId(deliver.getId());
deliverInfoByMVP.setName(deliver.getName()); deliverInfoByMvp.setName(deliver.getName());
if (ObjectUtil.isNotNull(deliver.getIsFinal())) { if (ObjectUtil.isNotNull(deliver.getIsFinal())) {
if (deliver.getIsFinal() == 0) { if (deliver.getIsFinal() == 0) {
deliverInfoByMVP.setFinals(false); deliverInfoByMvp.setFinals(false);
} else if (deliver.getIsFinal() == 1) { } else if (deliver.getIsFinal() == 1) {
deliverInfoByMVP.setFinals(true); deliverInfoByMvp.setFinals(true);
} }
} }
if (ObjectUtil.isNotNull(subTimeId)) { if (ObjectUtil.isNotNull(subTimeId)) {
@ -107,32 +106,32 @@ public class TaskDeliverService implements ITaskDeliverService {
if (CollectionUtil.isNotEmpty(postLogList)) { if (CollectionUtil.isNotEmpty(postLogList)) {
ProTaskDeliverPostLog postLog = postLogList.get(0); ProTaskDeliverPostLog postLog = postLogList.get(0);
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(postLog.getFileId()); 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(); ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample();
checkerExample.createCriteria().andDeliverPostLogIdEqualTo(postLog.getId()); checkerExample.createCriteria().andDeliverPostLogIdEqualTo(postLog.getId());
List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample); List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample);
if (CollectionUtil.isNotEmpty(postLogCheckerList)) { if (CollectionUtil.isNotEmpty(postLogCheckerList)) {
Boolean isChecker = true; boolean isChecker = true;
for (ProTaskDeliverPostLogChecker checker : postLogCheckerList) { for (ProTaskDeliverPostLogChecker checker : postLogCheckerList) {
if (checker.getCheckStatus() == 0) { if (checker.getCheckStatus() == 0) {
deliverInfoByMVP.setStatus("待检查"); deliverInfoByMvp.setStatus("待检查");
isChecker = false; isChecker = false;
} else if(checker.getCheckStatus() == -1) { } else if(checker.getCheckStatus() == -1) {
deliverInfoByMVP.setStatus("未通过"); deliverInfoByMvp.setStatus("未通过");
isChecker = false; isChecker = false;
break; break;
} }
} }
if(isChecker){ if(isChecker){
deliverInfoByMVP.setStatus("已通过"); deliverInfoByMvp.setStatus("已通过");
} }
} }
} else { } else {
deliverInfoByMVP.setStatus("未上传"); deliverInfoByMvp.setStatus("未上传");
} }
} }
deliverInfoByMVPList.add(deliverInfoByMVP); deliverInfoByMVPList.add(deliverInfoByMvp);
} }
} }
return deliverInfoByMVPList; return deliverInfoByMVPList;
@ -168,134 +167,246 @@ public class TaskDeliverService implements ITaskDeliverService {
*/ */
@Override @Override
public ProjectVo.DeliverInfo addDeliver(Long currentUserId, DeliverDto.UploadDeliver uploadDeliver) throws Exception { public ProjectVo.DeliverInfo addDeliver(Long currentUserId, DeliverDto.UploadDeliver uploadDeliver) throws Exception {
Long now = System.currentTimeMillis();
Long subTimeId = isTaskOrSubTime(uploadDeliver.getTaskId()); Long subTimeId = isTaskOrSubTime(uploadDeliver.getTaskId());
if (ObjectUtil.isNull(subTimeId)) { if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
} }
ProjectVo.DeliverInfo deliverInfo = null; ProjectVo.DeliverInfo deliverInfo = null;
//查找交付 //查找交付
ProTaskDeliver d = taskDeliverDao.selectByPrimaryKey(uploadDeliver.getDeliverId()); ProTaskDeliver taskDeliver = taskDeliverDao.selectByPrimaryKey(uploadDeliver.getDeliverId());
if (ObjectUtil.isNull(d)) { if (ObjectUtil.isNull(taskDeliver)) {
throw new BaseException(CodeEnum.NOT_DELIVER); throw new BaseException(CodeEnum.NOT_DELIVER);
} }
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(d.getTaskDetailId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskDeliver.getTaskDetailId());
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId()); Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId());
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) || isBelongRole) { if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole){
//发送信息 throw new BaseException(CodeEnum.NOT_CHECKER);
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())
ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample(); .andUserIdEqualTo(currentUserId).andIsHistoryEqualTo(0);
logExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId) List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
.andDeliverIdEqualTo(uploadDeliver.getDeliverId()).andUserIdEqualTo(currentUserId); if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample); for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) {
if (CollectionUtil.isNotEmpty(deliverPostLogList)) { deliverPostLog.setIsHistory(1);
for (ProTaskDeliverPostLog deliverPostLog : deliverPostLogList) { deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
if (deliverPostLog.getIsHistory() == 0) {
deliverPostLog.setIsHistory(1);
deliverPostLogDao.updateByPrimaryKeySelective(deliverPostLog);
}
}
} }
//添加PostLog }
ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog(); //将文件信息与交付物绑定,添加记录deliverPostLog
deliverPostLog.setId(snowflake.nextId()); if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())) {
deliverPostLog.setDeliverId(uploadDeliver.getDeliverId()); for (DeliverDto.FileInfo fileInfo : uploadDeliver.getFileInfo()) {
deliverPostLog.setTaskSubTimeId(subTimeId); SysCommitedFile file = commitedFileDao.selectByPrimaryKey(fileInfo.getId());
//如果有文件则添加,没有不添加 if(ObjectUtil.isNull(file)){
if (CollectionUtil.isNotEmpty(uploadDeliver.getFileInfo())) { throw new BaseException(CodeEnum.NOT_DELIVER_FILE);
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);
}
} }
} ProTaskDeliverPostLog deliverPostLog = new ProTaskDeliverPostLog();
deliverPostLog.setUserId(currentUserId); deliverPostLog.setId(snowflake.nextId());
deliverPostLog.setDescription(uploadDeliver.getDescription()); deliverPostLog.setDeliverId(uploadDeliver.getDeliverId());
deliverPostLog.setTime(System.currentTimeMillis()); deliverPostLog.setTaskSubTimeId(subTimeId);
deliverPostLog.setIsHistory(0); deliverPostLog.setFileId(file.getId());
deliverPostLogDao.insertSelective(deliverPostLog); deliverPostLog.setUserId(currentUserId);
//添加交付物检查人表 deliverPostLog.setDescription(uploadDeliver.getDescription());
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) { deliverPostLog.setTime(now);
ProTaskDeliverPostLogChecker postLogChecker = null; deliverPostLog.setIsHistory(0);
for (Long checkerId : uploadDeliver.getCheckerIdList()) { deliverPostLogDao.insertSelective(deliverPostLog);
postLogChecker = new ProTaskDeliverPostLogChecker(); //添加交付物检查人表
postLogChecker.setId(snowflake.nextId()); if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
postLogChecker.setDeliverPostLogId(deliverPostLog.getId()); ProTaskDeliverPostLogChecker postLogChecker;
postLogChecker.setCheckerId(checkerId); for (Long checkerId : uploadDeliver.getCheckerIdList()) {
postLogCheckerDao.insertSelective(postLogChecker); postLogChecker = new ProTaskDeliverPostLogChecker();
postLogChecker.setId(snowflake.nextId());
postLogChecker.setDeliverPostLogId(deliverPostLog.getId());
postLogChecker.setCheckerId(checkerId);
postLogCheckerDao.insertSelective(postLogChecker);
}
} else {
throw new BaseException(CodeEnum.NOT_CHECKER);
} }
} else { //保存wps的文件消息
throw new BaseException(CodeEnum.NOT_CHECKER); saveWpsFile(currentUserId,deliverPostLog.getId(),fileInfo);
} }
//修改交付物状态 //修改交付物状态
ProTaskDeliver deliver = new ProTaskDeliver(); ProTaskDeliver deliver = new ProTaskDeliver();
deliver.setId(uploadDeliver.getDeliverId()); deliver.setId(uploadDeliver.getDeliverId());
deliver.setIsUpload(1); deliver.setIsUpload(1);
taskDeliverDao.updateByPrimaryKeySelective(deliver); taskDeliverDao.updateByPrimaryKeySelective(deliver);
}
// 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());
// }
//返回 // //消息的内容
List<ProjectVo.DeliverInfo> deliverInfoList = taskDeliverDao.selectByDeliverId(uploadDeliver.getDeliverId()); // if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) {
if (CollectionUtil.isNotEmpty(deliverInfoList)) { // for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) {
deliverInfo = deliverInfoList.get(0); // userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId));
deliverInfo.setUrl(WebConstant.TEST_URL_BASE + deliverInfo.getUrl()); // }
} // }
//// Set<String> userIdSet = new HashSet<>();
//消息的内容 // if (CollectionUtil.isNotEmpty(userIdList)) {
if (CollectionUtil.isNotEmpty(uploadDeliver.getCheckerIdList())) { // HashSet<Long> h = new HashSet<>(userIdList);
for (Long postLogCheckerId : uploadDeliver.getCheckerIdList()) { // userIdList.clear();
userIdList.addAll(userService.selectUserIdByRoleId(postLogCheckerId)); // userIdList.addAll(h);
} // for (Long userId : userIdList) {
} //// userIdSet.add(userId.toString());
// Set<String> userIdSet = new HashSet<>(); // messageUser = new BaseMessageDto.MessageUser();
if (CollectionUtil.isNotEmpty(userIdList)) { // messageUser.setUserId(userId);
HashSet<Long> h = new HashSet<>(userIdList); // messageUserList.add(messageUser);
userIdList.clear(); // }
userIdList.addAll(h); // }
for (Long userId : userIdList) { // DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto();
// userIdSet.add(userId.toString()); // DeliverMessageWithUploadDto.Data uploadMessageData = new DeliverMessageWithUploadDto.Data();
messageUser = new BaseMessageDto.MessageUser(); // uploadMessageData.setProjectId(taskDetail.getProjectId());
messageUser.setUserId(userId); // Long roleId;
messageUserList.add(messageUser); // if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
} // List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId());
} // roleId = roleList.get(0).getId();
DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto(); // } else {
DeliverMessageWithUploadDto.Data uploadMessageData = new DeliverMessageWithUploadDto.Data(); // roleId = taskDetail.getExecutorRole();
uploadMessageData.setProjectId(taskDetail.getProjectId()); // }
if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) { //
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId()); // DeliverMessageWithUploadDto uploadMessage = new DeliverMessageWithUploadDto(taskDetail.getProjectId(),roleId,taskDetail.getId(),
uploadMessageData.setRoleId(roleList.get(0).getId()); // taskDeliver.getId(),taskDeliver.getName(),currentUserId,now,uploadDeliver.getFileInfo(),messageUserList);
} else {
uploadMessageData.setRoleId(taskDetail.getExecutorRole());
// 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));
//
// } 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));
} }
uploadMessageData.setTaskId(taskDetail.getId()); }
uploadMessageData.setDeliverId(d.getId()); for (Long userId : userIdSet) {
uploadMessageData.setDeliverName(d.getName()); messageUser = new BaseMessageDto.MessageUser();
uploadMessageData.setUploadTime(System.currentTimeMillis()); messageUser.setUserId(userId);
uploadMessageData.setFile(uploadDeliver.getFileInfo()); messageUserList.add(messageUser);
uploadMessage.setData(uploadMessageData); }
uploadMessage.setReceivers(messageUserList); Long roleId;
log.info("检查交付物:{}",JacksonUtil.beanToJson(uploadMessage)); if (role.getName().equals(WebConstant.ROLE_NAME.AllMember.phase)) {
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME, List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, taskDetail.getProjectId());
JacksonUtil.beanToJson(uploadMessage)); roleId = roleList.get(0).getId();
} else { } 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.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(uploadMessage));
//用智能助手发送消息 //用智能助手发送消息
SysProject project = sysProjectDao.selectByPrimaryKey(taskDetail.getProjectId()); 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; 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 * 判断id是taskId还是subTimeId
*/ */
@ -340,13 +451,13 @@ public class TaskDeliverService implements ITaskDeliverService {
* 获取任务下所有交付物的信息 * 获取任务下所有交付物的信息
*/ */
@Override @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); Long subTimeId = isTaskOrSubTime(taskId);
if (ObjectUtil.isNull(subTimeId)) { if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
} }
List<DeliverVo.DeliverInfo> deliverInfoList = new ArrayList<>(); List<DeliverVo.DeliverInfo> deliverInfoList = new ArrayList<>();
DeliverVo.DeliverInfo deliverInfo = null; DeliverVo.DeliverInfo deliverInfo;
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId); ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId);
if (ObjectUtil.isNotNull(subTimeId)) { if (ObjectUtil.isNotNull(subTimeId)) {
//获取角色负责人信息 //获取角色负责人信息
@ -358,7 +469,7 @@ public class TaskDeliverService implements ITaskDeliverService {
if (CollectionUtil.isNotEmpty(taskDeliverList)) { if (CollectionUtil.isNotEmpty(taskDeliverList)) {
for (ProTaskDeliver deliver : taskDeliverList) { for (ProTaskDeliver deliver : taskDeliverList) {
if (deliver.getIsInput() == 0) { if (deliver.getIsInput() == 0) {
deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), subTimeId); deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), subTimeId,token);
deliverInfoList.add(deliverInfo); deliverInfoList.add(deliverInfo);
} }
} }
@ -371,7 +482,7 @@ public class TaskDeliverService implements ITaskDeliverService {
* 查看单个交付物的信息 * 查看单个交付物的信息
*/ */
@Override @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); Long subTimeId = isTaskOrSubTime(taskId);
if (ObjectUtil.isNull(subTimeId)) { if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
@ -390,7 +501,7 @@ public class TaskDeliverService implements ITaskDeliverService {
} }
//负责人信息 //负责人信息
List<DeliverVo.DRole> executorRoleList = new ArrayList<>(); List<DeliverVo.DRole> executorRoleList = new ArrayList<>();
DeliverVo.DRole executorRole = null; DeliverVo.DRole executorRole;
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTimeDao.selectByPrimaryKey(subTimeId).getTaskDetailId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTimeDao.selectByPrimaryKey(subTimeId).getTaskDetailId());
if (ObjectUtil.isNotNull(taskDetail)) { if (ObjectUtil.isNotNull(taskDetail)) {
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
@ -416,9 +527,9 @@ public class TaskDeliverService implements ITaskDeliverService {
} }
//检查人信息 //检查人信息
List<DeliverVo.Checker> checkerList = null; List<DeliverVo.Checker> checkerList;
Boolean isChecker = false; boolean isChecker = false;
DeliverVo.Checker checker = null; DeliverVo.Checker checker;
//交付物文件的信息按时间排序 //交付物文件的信息按时间排序
List<DeliverVo.FilePath> fileIds = taskDeliverDao.selectFileIdByDeliverId(deliver.getId(), subTimeId); List<DeliverVo.FilePath> fileIds = taskDeliverDao.selectFileIdByDeliverId(deliver.getId(), subTimeId);
if (CollectionUtil.isNotEmpty(fileIds)) { if (CollectionUtil.isNotEmpty(fileIds)) {
@ -476,6 +587,8 @@ public class TaskDeliverService implements ITaskDeliverService {
} }
filePath.setCheckerList(checkerList); filePath.setCheckerList(checkerList);
filePath.setIsChecker(isChecker); filePath.setIsChecker(isChecker);
//获取wps里的文件路径
filePath.setWbsFilePaths(wpsService.queryVisitUrls(filePath.getDeliverLogId(), (byte) 1,token));
} }
deliverInfo.setFileList(fileIds); deliverInfo.setFileList(fileIds);
} }
@ -486,19 +599,23 @@ public class TaskDeliverService implements ITaskDeliverService {
* 检查人检查交付物 * 检查人检查交付物
*/ */
@Override @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()); Long subTimeId = isTaskOrSubTime(checkDeliver.getTaskId());
if (ObjectUtil.isNull(subTimeId)) { if (ObjectUtil.isNull(subTimeId)) {
throw new BaseException(CodeEnum.NOT_TASK); throw new BaseException(CodeEnum.NOT_TASK);
} }
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>(); List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
BaseMessageDto.MessageUser messageUser = null; BaseMessageDto.MessageUser messageUser;
ProRole checkRole = null; ProRole checkRole = null;
Set<String> userIdSet = new HashSet<>(); Set<String> userIdSet = new HashSet<>();
Long uploadUserId = null; Long uploadUserId = null;
//获取交付物记录
//查找该用户在此项目的角色 ProTaskDeliverPostLog deliverPostLog = deliverPostLogDao.selectByPrimaryKey(checkDeliver.getDeliverLogId());
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(checkDeliver.getDeliverId()); if(ObjectUtil.isNull(deliverPostLog)){
throw new BaseException(CodeEnum.NOT_DELIVER);
}
//查找交付物信息
ProTaskDeliver deliver = taskDeliverDao.selectByPrimaryKey(deliverPostLog.getDeliverId());
if(ObjectUtil.isNull(deliver)){ if(ObjectUtil.isNull(deliver)){
throw new BaseException(CodeEnum.NOT_DELIVER); throw new BaseException(CodeEnum.NOT_DELIVER);
} }
@ -510,15 +627,15 @@ public class TaskDeliverService implements ITaskDeliverService {
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, task.getProjectId()); List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(currentUserId, task.getProjectId());
if (CollectionUtil.isNotEmpty(roleList)) { if (CollectionUtil.isNotEmpty(roleList)) {
for (ProRole role : roleList) { for (ProRole role : roleList) {
ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample(); // ProTaskDeliverPostLogExample logExample = new ProTaskDeliverPostLogExample();
logExample.createCriteria().andDeliverIdEqualTo(checkDeliver.getDeliverId()).andTaskSubTimeIdEqualTo(subTimeId); // logExample.createCriteria().andDeliverIdEqualTo(checkDeliver.getDeliverId()).andTaskSubTimeIdEqualTo(subTimeId);
logExample.setOrderByClause("time DESC"); // logExample.setOrderByClause("time DESC");
List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample); // List<ProTaskDeliverPostLog> deliverPostLogList = deliverPostLogDao.selectByExample(logExample);
if (CollectionUtil.isNotEmpty(deliverPostLogList)) { // if (CollectionUtil.isNotEmpty(deliverPostLogList)) {
ProTaskDeliverPostLog postLog = deliverPostLogList.get(0); // ProTaskDeliverPostLog postLog = deliverPostLogList.get(0);
// for (ProTaskDeliverPostLog postLog : deliverPostLogList) { // for (ProTaskDeliverPostLog postLog : deliverPostLogList) {
ProTaskDeliverPostLogCheckerExample checkerExample = new ProTaskDeliverPostLogCheckerExample(); 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); List<ProTaskDeliverPostLogChecker> postLogCheckerList = postLogCheckerDao.selectByExample(checkerExample);
if (CollectionUtil.isNotEmpty(postLogCheckerList)) { if (CollectionUtil.isNotEmpty(postLogCheckerList)) {
for (ProTaskDeliverPostLogChecker postLogChecker : postLogCheckerList) { for (ProTaskDeliverPostLogChecker postLogChecker : postLogCheckerList) {
@ -533,15 +650,16 @@ public class TaskDeliverService implements ITaskDeliverService {
postLogCheckerDao.updateByPrimaryKeySelective(postLogChecker); postLogCheckerDao.updateByPrimaryKeySelective(postLogChecker);
} }
} }
} // }
userIdSet.add(postLog.getUserId().toString()); userIdSet.add(deliverPostLog.getUserId().toString());
uploadUserId = postLog.getUserId(); uploadUserId = deliverPostLog.getUserId();
checkRole = role; checkRole = role;
// } // }
} }
if (ObjectUtil.isNull(checkRole)) {
throw new BaseException(CodeEnum.IS_NOT_CHECKER); }
} if (ObjectUtil.isNull(checkRole)) {
throw new BaseException(CodeEnum.IS_NOT_CHECKER);
} }
} }
//发送消息 //发送消息
@ -583,7 +701,7 @@ public class TaskDeliverService implements ITaskDeliverService {
messageService.sendDeliverMessageWithChecker(inMessage); messageService.sendDeliverMessageWithChecker(inMessage);
//检查完,返回数据 //检查完,返回数据
DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId()); DeliverVo.DeliverInfo deliverInfo = selectDeliverInfo(currentUserId, deliver.getId(), checkDeliver.getTaskId(),token);
//用智能助手发送消息+ws/公众号发送 //用智能助手发送消息+ws/公众号发送
robotService.checkDeliverRobotSend(currentUserId,task,uploadUserId,deliver.getName()); robotService.checkDeliverRobotSend(currentUserId,task,uploadUserId,deliver.getName());
return deliverInfo; return deliverInfo;
@ -620,7 +738,7 @@ public class TaskDeliverService implements ITaskDeliverService {
//获取日期的开始结束时间 //获取日期的开始结束时间
Long startMillisTime = null; Long startMillisTime = null;
Long endMillisTime = null; Long endMillisTime = null;
Map<String, Long> timeMap = null; Map<String, Long> timeMap;
if (StrUtil.isNotEmpty(start)) { if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime"); startMillisTime = timeMap.get("startMillisTime");
@ -784,7 +902,7 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 删除任务下的交付物彻底删除 * 删除任务下的交付物彻底删除
* @param taskId * @param taskId 任务id
*/ */
@Override @Override
public void deleteDeliverByTaskId(Long taskId) { 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 javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author * @author
@ -242,8 +240,27 @@ public class TaskPluginService implements ITaskPluginService{
} }
@Override @Override
public List<PluginVo.NotesInfo> listNotesInfo(Long currentUserId, Long taskId, Long pluginId) { public List<PluginVo.NotesInfo> queryNotesInfo(Long currentUserId, Long taskId, Long pluginId) {
// List<PluginVo.NotesInfo> notesInfoList = proNotesDao.listNotesInfo(currentUserId,taskId,pluginId); return proNotesDao.queryNotesInfo(currentUserId,taskId,pluginId);
return null; }
@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(); ProProjectFileExample example = new ProProjectFileExample();
example.createCriteria().andBusinessIdEqualTo(business.getBusinessId()) example.createCriteria().andBusinessIdEqualTo(business.getBusinessId())
.andBusinessTypeEqualTo(business.getBusinessType()) .andBusinessTypeEqualTo(business.getBusinessType())
.andFileIdEqualTo(business.getWpsFileId()); .andWpsFileIdEqualTo(business.getWpsFileId());
List<ProProjectFile> proProjectFiles = proProjectFileMapper.selectByExample(example); List<ProProjectFile> proProjectFiles = proProjectFileMapper.selectByExample(example);
if (CollectionUtil.isEmpty(proProjectFiles)) { if (CollectionUtil.isEmpty(proProjectFiles)) {
throw new BaseException(CodeEnum.PARAM_ERROR); throw new BaseException(CodeEnum.PARAM_ERROR);
@ -112,7 +112,7 @@ public class WpsService implements IWpsService {
ProProjectFile proProjectFile; ProProjectFile proProjectFile;
proProjectFile = new ProProjectFile(); proProjectFile = new ProProjectFile();
proProjectFile.setId(snowflake.nextId()); proProjectFile.setId(snowflake.nextId());
proProjectFile.setFileId(wpsFile.getId()); proProjectFile.setWpsFileId(wpsFile.getId());
proProjectFile.setBusinessId(business.getBusinessId()); proProjectFile.setBusinessId(business.getBusinessId());
proProjectFile.setBusinessType(business.getBusinessType()); proProjectFile.setBusinessType(business.getBusinessType());
proProjectFile.setPrivilege(business.getPrivilege()); proProjectFile.setPrivilege(business.getPrivilege());
@ -270,7 +270,7 @@ public class WpsService implements IWpsService {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("id", projectFile.getBusinessId()); json.put("id", projectFile.getBusinessId());
json.put("type", projectFile.getBusinessType()); json.put("type", projectFile.getBusinessType());
json.put("fileId", projectFile.getFileId()); json.put("fileId", projectFile.getWpsFileId());
String result = RestTemplateUtil.postBody(projectFile.getPrivilegeQueryUrl(), json); String result = RestTemplateUtil.postBody(projectFile.getPrivilegeQueryUrl(), json);
user.setPermission(result); user.setPermission(result);
} }
@ -301,7 +301,7 @@ public class WpsService implements IWpsService {
private List<ProProjectFile> getProProjectFiles(Long fileId) { private List<ProProjectFile> getProProjectFiles(Long fileId) {
ProProjectFileExample projectFileExample = new ProProjectFileExample(); ProProjectFileExample projectFileExample = new ProProjectFileExample();
projectFileExample.createCriteria().andFileIdEqualTo(fileId); projectFileExample.createCriteria().andWpsFileIdEqualTo(fileId);
return proProjectFileMapper.selectByExample(projectFileExample); return proProjectFileMapper.selectByExample(projectFileExample);
} }

19
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.io.File;
import java.util.List; import java.util.List;
/**
* @author
*/
@Api(tags = "交付物相关API", description = "DeliverController | 交付物操作控制器类") @Api(tags = "交付物相关API", description = "DeliverController | 交付物操作控制器类")
@RestController @RestController
@RequestMapping("/delivers") @RequestMapping("/delivers")
@ -66,7 +69,9 @@ public class DeliverController {
public JsonResponse<List<DeliverVo.DeliverInfo>> selectTaskDeliver(HttpServletRequest request, public JsonResponse<List<DeliverVo.DeliverInfo>> selectTaskDeliver(HttpServletRequest request,
@RequestParam(required = true) Long taskId) throws Exception { @RequestParam(required = true) Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(deliverInfo);
} }
@ -79,7 +84,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> selectDeliver(HttpServletRequest request, public JsonResponse<DeliverVo.DeliverInfo> selectDeliver(HttpServletRequest request,
@RequestParam(required = true)Long deliverId, Long taskId) throws Exception { @RequestParam(required = true)Long deliverId, Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(deliverInfo);
} }
@ -92,7 +99,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> selectInput(HttpServletRequest request, public JsonResponse<DeliverVo.DeliverInfo> selectInput(HttpServletRequest request,
@RequestParam(required = true)Long inputId, Long taskId) throws Exception { @RequestParam(required = true)Long inputId, Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(deliverInfo);
} }
@ -104,7 +113,9 @@ public class DeliverController {
public JsonResponse<DeliverVo.DeliverInfo> checkDeliver(HttpServletRequest request, public JsonResponse<DeliverVo.DeliverInfo> checkDeliver(HttpServletRequest request,
@ApiParam @RequestBody DeliverDto.CheckDeliver checker) throws Exception { @ApiParam @RequestBody DeliverDto.CheckDeliver checker) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(deliverInfo);
} }

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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part; import javax.servlet.http.Part;
@ -24,9 +25,9 @@ import java.io.File;
@RestController @RestController
@RequestMapping("/projects") @RequestMapping("/projects")
public class ExcelController { public class ExcelController {
@Autowired @Resource
private IExcelService excelService; private IExcelService excelService;
@Autowired @Resource
private IExportWbsService exportWbsService; private IExportWbsService exportWbsService;
@ApiOperation(value = "导入WBS",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx") @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") @ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file")
}) })
@RequestMapping(value = "/wbs", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @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()); Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
//1.上传文件 //1.上传文件
@ -42,8 +45,13 @@ public class ExcelController {
String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator; String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator;
String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir); String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
System.out.println(dir+""+path); 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); ProjectVo.ProjectInfo projectInfo = excelService.readXls(dir+""+path,currentUserId);
//保存文件信息、添加wps信息
excelService.saveWbsExcelFile(currentUserId,projectInfo.getId(),filePath,name,file.getSize(),wpsFileId);
return JsonResponse.newInstance().ok(projectInfo); 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 = "") @ApiOperation(value = "查找笔记", notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "任务Id", required = true, paramType = "query"), @ApiImplicitParam(name = "taskId", value = "任务Id", required = true, paramType = "query"),
@ApiImplicitParam(name = "page", value = "被查询的插件的id,不是笔记插件的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"}) @RequestMapping(value = "notes", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<PluginVo.NotesInfo>> getNotesInfo(HttpServletRequest request, public JsonResponse<List<PluginVo.NotesInfo>> getNotesInfo(HttpServletRequest request,
@RequestParam(required = true) Long taskId, @RequestParam(required = true) Long taskId,
@RequestParam(required = false) Long pluginId) throws Exception { @RequestParam(required = false) Long pluginId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); 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; package com.ccsens.tall.web;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.bean.vo.TaskVo;
@ -62,7 +63,10 @@ public class ProjectController {
orderType = orderType == null ? 0 : orderType; orderType = orderType == null ? 0 : orderType;
order = order == null ? 0 : order; order = order == null ? 0 : order;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(projectInfoList);
} }
@ -73,7 +77,9 @@ public class ProjectController {
@RequestMapping(value = "id", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @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 { 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()); 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); return JsonResponse.newInstance().ok(projectInfo);
} }
@ -214,7 +220,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> addProject(HttpServletRequest request, public JsonResponse<ProjectVo.ProjectInfo> addProject(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectIdDto projectDto) throws Exception { @Validated @RequestBody ProjectDto.ProjectIdDto projectDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(projectInfo);
} }
@ -225,7 +233,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> updateProject(HttpServletRequest request, public JsonResponse<ProjectVo.ProjectInfo> updateProject(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectInfoDto projectInfoDto) throws Exception { @Validated @RequestBody ProjectDto.ProjectInfoDto projectInfoDto) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(projectInfo);
} }
@ -239,7 +249,9 @@ public class ProjectController {
Integer pageSize = 10; Integer pageSize = 10;
page = page == null ? 1 : page; page = page == null ? 1 : page;
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(projectInfoList);
} }
@ -262,7 +274,9 @@ public class ProjectController {
public JsonResponse<ProjectVo.ProjectInfo> updateProjectConfig(HttpServletRequest request, public JsonResponse<ProjectVo.ProjectInfo> updateProjectConfig(HttpServletRequest request,
@Validated @RequestBody ProjectDto.ProjectConfig projectConfig) throws Exception { @Validated @RequestBody ProjectDto.ProjectConfig projectConfig) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); 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); return JsonResponse.newInstance().ok(projectInfo);
} }

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

@ -139,7 +139,7 @@
<select id="selectFileIdByDeliverId" parameterType="java.util.Map" <select id="selectFileIdByDeliverId" parameterType="java.util.Map"
resultMap="resultMap_FilePath"> resultMap="resultMap_FilePath">
SELECT SELECT
l.id as postLogId, l.id as deliverLogId,
f.id as fileId, f.id as fileId,
l.updated_at as updateTime, l.updated_at as updateTime,
l.description as description, l.description as description,

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

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

@ -128,6 +128,7 @@ public enum CodeEnum {
; ;
public CodeEnum addMsg(String msg){ 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_DELIVER = UPLOAD_PATH_BASE + File.separator + "delivers";
public static final String UPLOAD_PATH_DELIVER1 ="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_WPS ="wps";
public static final String UPLOAD_PATH_AVATAR_URL ="avatarUrl"; 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 @Test
public void test02() throws Exception { public void test02() throws Exception {
File file = new File("d:"+File.separator+"1.png");
System.out.println(file.length());
} }

Loading…
Cancel
Save