From abd8a30262af3974164912750519277979327aa3 Mon Sep 17 00:00:00 2001
From: zy_Java <654600784@qq.com>
Date: Wed, 28 Apr 2021 18:12:39 +0800
Subject: [PATCH 1/2] 20210428v1.6
---
mt/src/main/resources/application-test.yml | 2 +-
mt/src/main/resources/application.yml | 4 +-
pom.xml | 2 +-
.../com/ccsens/tall/bean/vo/MemberVo.java | 24 +-
.../ccsens/tall/persist/dao/ProMemberDao.java | 7 +
.../ccsens/tall/service/ExportWbsService.java | 240 ++++++++++++++++--
.../ccsens/tall/service/IExcelService.java | 1 +
.../tall/service/IExportWbsService.java | 19 ++
.../ccsens/tall/service/ProRoleService.java | 15 +-
.../com/ccsens/tall/service/RobotService.java | 5 +-
.../tall/service/TaskSubTimeService.java | 6 +-
.../com/ccsens/tall/web/ExcelController.java | 45 +++-
.../resources/mapper_dao/ProMemberDao.xml | 29 +++
13 files changed, 356 insertions(+), 43 deletions(-)
diff --git a/mt/src/main/resources/application-test.yml b/mt/src/main/resources/application-test.yml
index 5130b7a9..e73d1baf 100644
--- a/mt/src/main/resources/application-test.yml
+++ b/mt/src/main/resources/application-test.yml
@@ -28,7 +28,7 @@ swagger:
enable: true
eureka:
instance:
- ip-address: 192.168.0.99
+ ip-address: 192.168.31.13
file:
path: /home/cloud/mt/uploads/
signUpUrl: https://test.tall.wiki/compete/
diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml
index 1ac895fc..a47f2a7b 100644
--- a/mt/src/main/resources/application.yml
+++ b/mt/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: prod
- include: common, util-prod
+ active: dev
+ include: common, util-dev
diff --git a/pom.xml b/pom.xml
index e6b63103..c2c7812d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
tall
-
+ mt
beneficiation
diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/MemberVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/MemberVo.java
index f9d5fb3d..1526c1ae 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/vo/MemberVo.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/vo/MemberVo.java
@@ -1,5 +1,8 @@
package com.ccsens.tall.bean.vo;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@@ -9,7 +12,7 @@ import lombok.Data;
public class MemberVo {
@Data
- public static class MemberInfo{
+ public static class MemberInfo {
private Long id;
private Long userId;
private Long projectId;
@@ -22,7 +25,7 @@ public class MemberVo {
private Long stakeholderId;
}
-// @Data
+ // @Data
// public static class FirstRole{
// private Long id;
// private String name;
@@ -35,5 +38,20 @@ public class MemberVo {
// private String roleExclude;
// private List memberList;
// }
-
+ @ApiModel
+ @Data
+ public static class ExportMember {
+ @ApiModelProperty("成员id")
+ private Long mId;
+ @ApiModelProperty("成员姓名")
+ private String mName;
+ @ApiModelProperty("成员手机号")
+ private String mPhone;
+ @ApiModelProperty("干系人Id")
+ private Long sId;
+ @ApiModelProperty("干系人姓名")
+ private String sName;
+ @ApiModelProperty("干系人手机号")
+ private String sPhone;
+ }
}
diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java
index 34178a93..60b4dc4d 100644
--- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java
+++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberDao.java
@@ -60,4 +60,11 @@ public interface ProMemberDao extends ProMemberMapper{
* @return 返回所有的成员id
*/
List getIdByUserIdAndProjectId(@Param("projectIdList")List projectIdList, @Param("currentUserId")Long currentUserId);
+
+ /**
+ * 通过项目id查找所有的成员信息
+ * @param projectId 项目id
+ * @return 返回所有成员信息及奖惩干系人
+ */
+ List queryByProjectId(@Param("projectId")Long projectId);
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java b/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java
index 0ba98a3c..8d15fcc0 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ExportWbsService.java
@@ -4,18 +4,25 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.crypto.SecureUtil;
+import com.ccsens.tall.bean.dto.ProjectDto;
+import com.ccsens.tall.bean.dto.RoleDto;
import com.ccsens.tall.bean.po.*;
+import com.ccsens.tall.bean.vo.MemberVo;
+import com.ccsens.tall.bean.vo.ProjectVo;
+import com.ccsens.tall.bean.vo.RoleVo;
import com.ccsens.tall.bean.vo.WbsVo;
import com.ccsens.tall.persist.dao.*;
-import com.ccsens.util.PoiUtil;
-import com.ccsens.util.PropUtil;
-import com.ccsens.util.WebConstant;
+import com.ccsens.util.*;
+import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.DefaultResourceLoader;
@@ -24,6 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.io.*;
import java.io.File;
import java.math.BigDecimal;
@@ -34,26 +42,32 @@ import java.util.*;
@Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ExportWbsService implements IExportWbsService{
- @Autowired
+ @Resource
private SysProjectDao sysProjectDao;
- @Autowired
+ @Resource
private ProMemberDao proMemberDao;
- @Autowired
+ @Resource
+ private ProMemberRoleDao proMemberRoleDao;
+ @Resource
private ProRoleDao proRoleDao;
- @Autowired
+ @Resource
private ProRoleExcludeDao proRoleExcludeDao;
- @Autowired
+ @Resource
private TaskDetailDao taskDetailDao;
- @Autowired
+ @Resource
private TaskDeliverDao taskDeliverDao;
- @Autowired
+ @Resource
private SysPluginDao sysPluginDao;
- @Autowired
+ @Resource
private TaskDeliverService taskDeliverService;
- @Autowired
+ @Resource
private ProTaskDetailService taskDetailService;
- @Autowired
+ @Resource
private ProRoleService proRoleService;
+ @Resource
+ private IUserService userService;
+ @Resource
+ private Snowflake snowflake;
@Override
public String exportWbs(Long projectId) throws Exception {
@@ -607,9 +621,9 @@ public class ExportWbsService implements IExportWbsService{
List taskTitle = new ArrayList<>();
taskTitle.add(new PoiUtil.PoiUtilCell("序号"));
taskTitle.add(new PoiUtil.PoiUtilCell("成员名"));
- taskTitle.add(new PoiUtil.PoiUtilCell("电话/账号"));
+ taskTitle.add(new PoiUtil.PoiUtilCell("电话"));
taskTitle.add(new PoiUtil.PoiUtilCell("奖惩干系人"));
- taskTitle.add(new PoiUtil.PoiUtilCell("干系人账号"));
+ taskTitle.add(new PoiUtil.PoiUtilCell("干系人手机号"));
memberSheet.add(taskTitle);
int index = 1;
@@ -703,13 +717,7 @@ public class ExportWbsService implements IExportWbsService{
//生成文件
String fileName = "/exportWbs/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
String path = WebConstant.UPLOAD_PATH_BASE + fileName;
- File tmpFile = new File(path);
- if (!tmpFile.getParentFile().exists()) {
- tmpFile.getParentFile().mkdirs();
- }
- OutputStream stream = new FileOutputStream(tmpFile);
- wb.write(stream);
- stream.close();
+ writeFile(wb, path);
return PropUtil.imgDomain + "/" + fileName;
}
@@ -889,6 +897,40 @@ public class ExportWbsService implements IExportWbsService{
//生成文件
String fileName = "/"+filePath+"/" + "MVP" + ".xlsx";
String path = WebConstant.UPLOAD_PATH_BASE + fileName;
+ writeFile(wb, path);
+ }
+
+
+ /**
+ * 导出项目成员表
+ */
+ @Override
+ public String exportMember(ProjectDto.ProjectIdDto params, Long userId) throws Exception {
+ String fileName = "exportWbs/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
+ String path = PropUtil.path + fileName;
+ //权限验证
+ int power = proRoleService.selectPowerByRoleName(userId, params.getProjectId());
+ if (power < 2) {
+ throw new BaseException(CodeEnum.NOT_POWER);
+ }
+ //查找项目内所有成员
+ List exportMemberList = proMemberDao.queryByProjectId(params.getProjectId());
+
+ if(CollectionUtil.isNotEmpty(exportMemberList)){
+ //生成写入数据
+ List> list = writeMember(exportMemberList);
+ //导出文件
+ XSSFWorkbook wb = new XSSFWorkbook();
+ //写入数据
+ PoiUtil.exportWB("项目成员表", list, wb);
+ //生成文件
+ writeFile(wb, path);
+
+ }
+ return PropUtil.imgDomain + "/" + fileName;
+ }
+
+ private void writeFile(XSSFWorkbook wb, String path) throws IOException {
File tmpFile = new File(path);
if (!tmpFile.getParentFile().exists()) {
tmpFile.getParentFile().mkdirs();
@@ -898,4 +940,158 @@ public class ExportWbsService implements IExportWbsService{
stream.close();
}
+ private List> writeMember(List exportMemberList) {
+ List> list = new ArrayList<>();
+ List title = new ArrayList<>();
+ title.add(new PoiUtil.PoiUtilCell("序号"));
+ title.add(new PoiUtil.PoiUtilCell("成员名"));
+ title.add(new PoiUtil.PoiUtilCell("电话"));
+ title.add(new PoiUtil.PoiUtilCell("奖惩干系人"));
+ title.add(new PoiUtil.PoiUtilCell("干系人手机号"));
+ title.add(new PoiUtil.PoiUtilCell("备注"));
+ list.add(title);
+
+ for (int i = 0; i < exportMemberList.size(); i++) {
+ MemberVo.ExportMember exportMember = exportMemberList.get(i);
+ List member = new ArrayList<>();
+ member.add(new PoiUtil.PoiUtilCell((i + 1) + ""));
+ member.add(new PoiUtil.PoiUtilCell(exportMember.getMName()));
+ member.add(new PoiUtil.PoiUtilCell(exportMember.getMPhone()));
+ member.add(new PoiUtil.PoiUtilCell(exportMember.getSName()));
+ member.add(new PoiUtil.PoiUtilCell(exportMember.getSPhone()));
+ list.add(member);
+ }
+ return list;
+ }
+
+ /**
+ * 导入项目成员表
+ * @param path 路径
+ * @param currentUserId userId
+ * @param projectId 项目id
+ */
+ @Override
+ public void importMember(String path, Long currentUserId, Long projectId) throws Exception {
+
+// //验证权限
+// int power = proRoleService.selectPowerByRoleName(currentUserId, projectId);
+// if (power < 2) {
+// throw new BaseException(CodeEnum.NOT_POWER);
+// }
+// //获取excel表格
+// InputStream is = new FileInputStream(path);
+// XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
+// //获取项目成员表
+// XSSFSheet memberSheet = xssfWorkbook.getSheet("项目成员表");
+//
+// //读取WBS表
+// List stakeholderList = new ArrayList<>();
+// if (ObjectUtil.isNotNull(memberSheet)) {
+// Set userIdSet = new HashSet<>();
+//
+// for (int i = 1; i <= memberSheet.getLastRowNum(); i++) {
+// XSSFRow row = memberSheet.getRow(i);
+// if(ObjectUtil.isNull(row)){
+// continue;
+// }
+// String memberCell = ExcelUtil.getCellValue(row.getCell(1));
+// String phoneCell = ExcelUtil.getCellValue(row.getCell(2));
+// String stakeholderCell = ExcelUtil.getCellValue(row.getCell(3));
+// String stakeholderPhoneCell = ExcelUtil.getCellValue(row.getCell(4));
+// ProMember stakeholder = null;
+// ProMember member;
+// //成员名为空,跳至下一行
+// if ((StrUtil.isEmpty(memberCell))) {
+// continue;
+// }
+// //手机号不能为空
+// if (StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) {
+// throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i+1),memberCell));
+// }
+// //判断手机号格式
+// String regex ="^[1]([3-9])[0-9]{9}$";
+// if (StrUtil.isEmpty(phoneCell) || !phoneCell.matches(regex)){
+// throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),(i+1),memberCell));
+// }
+//
+// //添加奖惩干系人
+// if (StrUtil.isNotEmpty(stakeholderCell)) {
+// //判断奖惩干系人的手机号是否为空
+// if ( StrUtil.isEmpty(stakeholderPhoneCell)){
+// throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i+1),stakeholderCell));
+// }
+// //判断奖惩干系人的手机号格式是否正确
+// if (!stakeholderPhoneCell.matches(regex)){
+// throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),(i+1),stakeholderCell));
+// }
+// if (!stakeholderWithPhone(stakeholderList, stakeholderCell, stakeholderPhoneCell)) {
+// Long userId = userService.selectUserIdByPhone(stakeholderPhoneCell);
+// if (ObjectUtil.isNotNull(userId)) {
+// userIdSet.add(userId);
+// }
+// stakeholder = new ProMember();
+// stakeholder.setId(snowflake.nextId());
+// stakeholder.setProjectId(projectId);
+// stakeholder.setUserId(userId);
+// stakeholder.setNickname(stakeholderCell);
+// stakeholder.setPhone(stakeholderPhoneCell);
+// proMemberDao.insertSelective(stakeholder);
+// stakeholderList.add(stakeholder);
+//
+// ProMemberRole proMemberRole = new ProMemberRole();
+// proMemberRole.setId(snowflake.nextId());
+// proMemberRole.setMemberId(stakeholder.getId());
+// proMemberRole.setRoleId(stakeholderId);
+// proMemberRoleDao.insertSelective(proMemberRole);
+// } else {
+// throw new BaseException(CodeEnum.WBS_STAKEHOLDER_PHONE.addMsg(memberSheet.getSheetName(),(i+1),stakeholderCell));
+// }
+// }
+// //成员
+// if (StrUtil.isNotEmpty(memberCell)) {
+// if (!memberAndPhoneRepeat(proMembers, memberCell, phoneCell)) {
+// Long userId = userService.selectUserIdByPhone(phoneCell);
+// if (ObjectUtil.isNotNull(userId)) {
+// userIdSet.add(userId);
+// }
+// member = new ProMember();
+// member.setId(snowflake.nextId());
+// member.setProjectId(sysProject.getId());
+// member.setUserId(userId);
+// member.setNickname(memberCell);
+// member.setPhone(phoneCell);
+// if (ObjectUtil.isNotNull(stakeholder)) {
+// member.setStakeholderId(stakeholder.getId());
+// }
+// proMemberService.saveMember(member);
+// proMembers.add(member);
+//// //创建者依据project的creatorId判断,不需要添加成员
+// } else {
+// throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE.addMsg(memberSheet.getSheetName(),(i+1)));
+// }
+// }
+// }
+// //TODO 每个成员都关注此项目(暂时)
+// addUserAttention(userIdSet, sysProject);
+// } else {
+// throw new BaseException(CodeEnum.WBS_NOT_MEMBER_SHEET);
+// }
+ }
+
+ private boolean stakeholderWithPhone(List stakeholderList, String stakeholderName, String phone) {
+ if (CollectionUtil.isNotEmpty(stakeholderList)) {
+ for (ProMember proMember : stakeholderList) {
+ if (stakeholderName.equalsIgnoreCase(proMember.getNickname())) {
+ if (!proMember.getPhone().equalsIgnoreCase(phone)) {
+ return true;
+ }
+ } else {
+ if (proMember.getPhone().equalsIgnoreCase(phone)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/IExcelService.java b/tall/src/main/java/com/ccsens/tall/service/IExcelService.java
index c3aca4fd..f509df29 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IExcelService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/IExcelService.java
@@ -35,4 +35,5 @@ public interface IExcelService {
* @param wpsFileId 前端传的wps里的文件id
*/
void saveWbsExcelFile(Long userId,Long projectId,String filePath, String fileName,Long fileSize,Long wpsFileId);
+
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/IExportWbsService.java b/tall/src/main/java/com/ccsens/tall/service/IExportWbsService.java
index 6bbcb219..411ca7a3 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IExportWbsService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/IExportWbsService.java
@@ -1,5 +1,9 @@
package com.ccsens.tall.service;
+import com.ccsens.tall.bean.dto.ProjectDto;
+import com.ccsens.util.bean.dto.QueryDto;
+
+import java.io.FileNotFoundException;
import java.io.IOException;
public interface IExportWbsService {
@@ -8,4 +12,19 @@ public interface IExportWbsService {
String exportChecklist(Long userId,Long projectId,Long roleId,Long startTime,Long endTime) throws Exception;
String exportDeliver(Long currentUserId, Long projectId) throws Exception;
+
+ /**
+ * 导出项目成员表
+ * @param params
+ * @return
+ */
+ String exportMember(ProjectDto.ProjectIdDto params,Long userId) throws Exception;
+
+ /**
+ * 导入项目成员表
+ * @param path 路径
+ * @param currentUserId userId
+ * @param projectId 项目id
+ */
+ void importMember(String path, Long currentUserId, Long projectId) throws Exception;
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
index dba00563..58606c5f 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
@@ -1136,7 +1136,7 @@ public class ProRoleService implements IProRoleService {
/**
* 修改对谁不可见
* @param param 参数
- * @param userId 当前用户id
+ * @param userId 当前用户id
*/
@Override
public void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId) {
@@ -1147,14 +1147,17 @@ public class ProRoleService implements IProRoleService {
if (2 < power){
//删除之前的记录
ProRoleExcludeExample excludeExample = new ProRoleExcludeExample();
- excludeExample.createCriteria().andRoleIdEqualTo(param.getRoleId()).andRecStatusEqualTo((byte)0);
+ excludeExample.createCriteria().andRoleIdEqualTo(param.getRoleId());
List proRoleExcludes = proRoleExcludeMapper.selectByExample(excludeExample);
if (CollectionUtil.isNotEmpty(proRoleExcludes)){
for (ProRoleExclude proRoleExclude : proRoleExcludes) {
- ProRoleExclude oldExclude = new ProRoleExclude();
- oldExclude.setId(proRoleExclude.getId());
- oldExclude.setRecStatus((byte)2);
- proRoleExcludeMapper.updateByExampleSelective(oldExclude,excludeExample);
+ proRoleExclude.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
+ proRoleExcludeMapper.updateByPrimaryKeySelective(proRoleExclude);
+
+// ProRoleExclude oldExclude = new ProRoleExclude();
+// oldExclude.setId(proRoleExclude.getId());
+// oldExclude.setRecStatus((byte)2);
+// proRoleExcludeMapper.updateByExampleSelective(oldExclude,excludeExample);
}
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/RobotService.java b/tall/src/main/java/com/ccsens/tall/service/RobotService.java
index 8b13ab1e..72cc8daa 100644
--- a/tall/src/main/java/com/ccsens/tall/service/RobotService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/RobotService.java
@@ -195,9 +195,10 @@ public class RobotService implements IRobotService{
String projectName = "";
//获取项目名
- if(ObjectUtil.isNotNull(project)){
- projectName = project.getName();
+ if(ObjectUtil.isNull(project)){
+ return;
}
+ projectName = project.getName();
// 获取角色名
TaskVo.RoleCheckList role = proRoleService.selectRoleByCheckOrExecutor(executorId);
String executorName = ObjectUtil.isNotNull(role) ? role.getName() : "";
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
index 71fa9283..b063d9cd 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
@@ -433,7 +433,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
}
//TaskSubTime
List proTaskSubTimeList = new ArrayList<>();
- if (ObjectUtil.isNotNull(detail.getProjectId())) {
+// if (ObjectUtil.isNotNull(detail.getProjectId())) {
//cycle为空,只加一条数据
if (StrUtil.isEmpty(detail.getCycle())) {
ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
@@ -443,12 +443,14 @@ public class TaskSubTimeService implements ITaskSubTimeService {
proTaskSubTime.setEndTime(detail.getEndTime());
taskSubTimeDao.insertSelective(proTaskSubTime);
proTaskSubTimeList.add(proTaskSubTime);
+ log.info("添加一条分解任务{}",proTaskSubTime);
} else {
Date startDate = new Date(detail.getBeginTime());
Date endDate = new Date(detail.getEndTime());
List taskDateList =
NatureToDate.generateDates(detail.getCycle(), startDate, endDate);
if (CollectionUtil.isNotEmpty(taskDateList)) {
+ log.info("添加多条分解任务");
for (CronConstant.TaskDate taskDate : taskDateList) {
ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
proTaskSubTime.setId(snowflake.nextId());
@@ -460,7 +462,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
}
}
}
- }
+// }
//交付物
// if (StrUtil.isNotEmpty(addTask.getTaskDeliver())) {
// ProTaskDeliver deliver = new ProTaskDeliver();
diff --git a/tall/src/main/java/com/ccsens/tall/web/ExcelController.java b/tall/src/main/java/com/ccsens/tall/web/ExcelController.java
index f58fa66b..0ee4b28b 100644
--- a/tall/src/main/java/com/ccsens/tall/web/ExcelController.java
+++ b/tall/src/main/java/com/ccsens/tall/web/ExcelController.java
@@ -1,6 +1,9 @@
package com.ccsens.tall.web;
+import com.ccsens.tall.annotation.MustLoginTall;
+import com.ccsens.tall.bean.dto.InputDocDto;
+import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.service.IExcelService;
import com.ccsens.tall.service.IExportWbsService;
@@ -8,13 +11,12 @@ import com.ccsens.util.JsonResponse;
import com.ccsens.util.UploadFileUtil_Servlet3;
import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType;
+import com.ccsens.util.bean.dto.QueryDto;
import io.jsonwebtoken.Claims;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -94,4 +96,39 @@ public class ExcelController {
// String s = "https://test.tall.wiki/gateway/tall/v1.0/uploads//exportWbs/2020-05-07/1588833118577.xlsx";
return JsonResponse.newInstance().ok(wbsPath);
}
+
+ @MustLoginTall
+ @ApiOperation(value = "导出成员表", notes = "")
+ @ApiImplicitParams({
+ })
+ @RequestMapping(value = "/export/member", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse exportMember( @ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+
+ String wbsPath = exportWbsService.exportMember(params.getParam(),params.getUserId());
+ return JsonResponse.newInstance().ok(wbsPath);
+ }
+
+ @OperateType(value = 1)
+ @ApiOperation(value = "导入成员表",notes = "文件大小不能超过20M,支持后缀:.xls|.xlsx")
+ @ApiImplicitParams({
+ })
+ @RequestMapping(value = "/import/member", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse importMember(HttpServletRequest request, HttpServletResponse response,
+ @RequestParam(required = true) Part file,
+ @RequestParam(required = true) Long projectId) throws Exception {
+ Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
+
+ //1.上传文件
+ String allowedExts = "xls,xlsx";
+ String dir = WebConstant.UPLOAD_PROJECT_WBS + File.separator;
+ String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExts, dir);
+ log.info(dir+""+path);
+ //获取文件路径,文件名,和文件大小
+ String filePath = WebConstant.UPLOAD_PATH_PROJECT + File.separator + path;
+ String name = UploadFileUtil_Servlet3.getFileNameByPart(file);
+ //添加数据
+ exportWbsService.importMember(dir+""+path,currentUserId,projectId);
+ //保存文件信息、添加wps信息
+ return JsonResponse.newInstance().ok();
+ }
}
diff --git a/tall/src/main/resources/mapper_dao/ProMemberDao.xml b/tall/src/main/resources/mapper_dao/ProMemberDao.xml
index d7be6c8f..ea178cde 100644
--- a/tall/src/main/resources/mapper_dao/ProMemberDao.xml
+++ b/tall/src/main/resources/mapper_dao/ProMemberDao.xml
@@ -345,4 +345,33 @@
#{id}
+
\ No newline at end of file
From c057d4fe0aa2aa98a07b70edf736dd7ef78a5da6 Mon Sep 17 00:00:00 2001
From: zy_Java <654600784@qq.com>
Date: Wed, 28 Apr 2021 19:23:27 +0800
Subject: [PATCH 2/2] 20210428v1.7
---
.../tall/service/IProTaskDetailService.java | 20 +-
.../tall/service/ProTaskDetailService.java | 203 +++++++++---------
.../tall/service/TaskDeliverService.java | 2 +-
.../main/java/com/ccsens/util/CodeEnum.java | 3 +-
4 files changed, 120 insertions(+), 108 deletions(-)
diff --git a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
index 7d215b69..ea847987 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
@@ -56,14 +56,14 @@ public interface IProTaskDetailService {
*/
List queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectId) throws Exception;
- /**
- * 新增和修改交付物的方法
- * @param jiaoFuWu
- */
- void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu);
- /**
- * 新增和修改交付物的方法
- * @param jiaoFuWu
- */
- void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu);
+// /**
+// * 新增和修改交付物的方法
+// * @param jiaoFuWu
+// */
+// void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu);
+// /**
+// * 新增和修改交付物的方法
+// * @param jiaoFuWu
+// */
+// void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu);
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
index b05f455b..e9b416e1 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
@@ -170,7 +170,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.NormalTask normalTask;
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
- if (ObjectUtil.isNull(project)){
+ if (ObjectUtil.isNull(project)) {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
if (endTime < project.getBeginTime() || startTime > project.getEndTime()) {
@@ -180,10 +180,10 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId);
List proShowList = proShowDao.selectByExample(proShowExample);
- if(CollectionUtil.isNotEmpty(proShowList)){
+ if (CollectionUtil.isNotEmpty(proShowList)) {
ProShow proShow = proShowList.get(0);
- if(proShow.getSelectTaskType() == 4){
- return getTaskAndType4ByPM(currentUserId,projectId,startTime,endTime,page,pageSize,roleId);
+ if (proShow.getSelectTaskType() == 4) {
+ return getTaskAndType4ByPM(currentUserId, projectId, startTime, endTime, page, pageSize, roleId);
}
}
@@ -278,7 +278,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//特殊任务分页查找项目经理下的任务(不处理时间)
- private TaskVo.ProTaskInfo getTaskAndType4ByPM(Long currentUserId,Long projectId,Long startTime,Long endTime,int page,int pageSize,Long roleId) throws Exception {
+ private TaskVo.ProTaskInfo getTaskAndType4ByPM(Long currentUserId, Long projectId, Long startTime, Long endTime, int page, int pageSize, Long roleId) throws Exception {
List normalTasks = new ArrayList<>();
//1、查找一级任务
PageHelper.startPage(page, pageSize);
@@ -290,7 +290,6 @@ public class ProTaskDetailService implements IProTaskDetailService {
PageInfo pageInfo = new PageInfo<>(firstTaskDetailList);
-
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
int sequence = 1;
for (ProTaskDetail firstTaskDetail : firstTaskDetailList) {
@@ -338,8 +337,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
return proTaskInfo;
}
- private TaskVo.ProTaskInfo getTaskAndType4ByMember(Long currentUserId,Long projectId,Long startTime,Integer imitation,
- Long endTime,int page,int pageSize,Long roleId,Long allMemberId,Integer priority) throws Exception {
+ private TaskVo.ProTaskInfo getTaskAndType4ByMember(Long currentUserId, Long projectId, Long startTime, Integer imitation,
+ Long endTime, int page, int pageSize, Long roleId, Long allMemberId, Integer priority) throws Exception {
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
PageHelper.startPage(page, pageSize);
@@ -353,12 +352,12 @@ public class ProTaskDetailService implements IProTaskDetailService {
//通过角色id查找 负责人名称 检查人名称
Long executorRole = normalTask.getExecutorRole();
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole);
- if(ObjectUtil.isNotNull(executor)){
+ if (ObjectUtil.isNotNull(executor)) {
normalTask.setExecutorRoleName(executor.getName());
}
Long checkerRole = normalTask.getCheckerRole();
ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole);
- if(ObjectUtil.isNotNull(checker)){
+ if (ObjectUtil.isNotNull(checker)) {
normalTask.setCheckerRoleName(checker.getName());
}
@@ -412,10 +411,10 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId);
List proShowList = proShowDao.selectByExample(proShowExample);
- if(CollectionUtil.isNotEmpty(proShowList)){
+ if (CollectionUtil.isNotEmpty(proShowList)) {
ProShow proShow = proShowList.get(0);
- if(proShow.getSelectTaskType() == 4){
- return getTaskAndType4ByMember(currentUserId,projectId,startTime,imitation,endTime,page,pageSize,roleId,allMemberId,priority);
+ if (proShow.getSelectTaskType() == 4) {
+ return getTaskAndType4ByMember(currentUserId, projectId, startTime, imitation, endTime, page, pageSize, roleId, allMemberId, priority);
}
}
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
@@ -435,16 +434,16 @@ public class ProTaskDetailService implements IProTaskDetailService {
//通过角色id查找 负责人名称 检查人名称
Long executorRole = normalTask.getExecutorRole();
ProRole executor = proRoleDao.selectByPrimaryKey(executorRole);
- if(ObjectUtil.isNotNull(executor)){
+ if (ObjectUtil.isNotNull(executor)) {
normalTask.setExecutorRoleName(executor.getName());
}
//设置默认检查人
Long checkerRole = normalTask.getCheckerRole();
ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole);
- if(ObjectUtil.isNotNull(checker)) {
+ if (ObjectUtil.isNotNull(checker)) {
normalTask.setCheckerRoleName(checker.getName());
- }else{
+ } else {
//根据任务id查询项目下项目经理
Long pmId = taskDetailDao.selectPmByTaskId(normalTask.getDetailId());
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId);
@@ -648,7 +647,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(proPluginConfig)) {
//如果是周会相关的插件,且入参为空。特殊查询
SysPlugin sysPlugin = sysPluginDao.selectByPrimaryKey(Long.parseLong(pluginIds[i]));
- if(ObjectUtil.isNotNull(sysPlugin) && sysPlugin.getScene() == 6 && StrUtil.isEmpty(proPluginConfig.getImportParam())){
+ if (ObjectUtil.isNotNull(sysPlugin) && sysPlugin.getScene() == 6 && StrUtil.isEmpty(proPluginConfig.getImportParam())) {
PluginVo.PersonalTaskReport personalTaskReport = taskPluginService.getPersonalTaskReport(normalTask.getProjectId());
proPluginConfig.setImportParam(JacksonUtil.beanToJson(personalTaskReport));
}
@@ -755,7 +754,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNull(task)) {
throw new BaseException(CodeEnum.NOT_TASK);
}
- if(ObjectUtil.isNull(taskSubTimeId)){
+ if (ObjectUtil.isNull(taskSubTimeId)) {
taskSubTimeId = taskDeliverService.isTaskOrSubTime(taskId);
}
@@ -821,20 +820,20 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//查询此任务下的输入文档
List inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId());
- if (CollectionUtil.isNotEmpty(inputDocInfos)){
+ if (CollectionUtil.isNotEmpty(inputDocInfos)) {
taskDetail.setInputDoc(inputDocInfos);
}
//查询此任务下的输出文档
List outputDocInfos = taskDeliverDao.selectOutputDocByTaskId(taskDetail.getDetailId());
- if (CollectionUtil.isNotEmpty(outputDocInfos)){
+ if (CollectionUtil.isNotEmpty(outputDocInfos)) {
taskDetail.setOutputDoc(outputDocInfos);
}
//设置检查人
ProRole checkRole = proRoleDao.selectByPrimaryKey(task.getCheckerRole());
- if (ObjectUtil.isNotNull(checkRole)){
+ if (ObjectUtil.isNotNull(checkRole)) {
taskDetail.setCheckerRole(checkRole.getId());
taskDetail.setCheckerRoleName(checkRole.getName());
- }else{
+ } else {
//根据任务id查询项目下项目经理
Long pmId = taskDetailDao.selectPmByTaskId(task.getId());
ProRole proRole = proRoleDao.selectByPrimaryKey(pmId);
@@ -1395,10 +1394,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (ObjectUtil.isNotNull(updateTaskInfo.getMilestone())) {
taskDetail.setMilestone(updateTaskInfo.getMilestone());
}
- //父任务id
- if(null != updateTaskInfo.getParentId()){
- taskDetail.setParentId(updateTaskInfo.getParentId());
- }
+
//时间
if (ObjectUtil.isNotNull(updateTaskInfo.getBeginTime()) ||
ObjectUtil.isNotNull(updateTaskInfo.getEndTime()) ||
@@ -1492,34 +1488,47 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
});
}
- //修改项目信息 当前的项目
- if(ObjectUtil.isNotNull(updateTaskInfo.getId())){
- if(ObjectUtil.isNotNull(updateTaskInfo.getProjectId())){
- if(ObjectUtil.isNotNull(updateTaskInfo.getParentId())){
- //检查父任务在不在移动后的项目下,不在的话提示错误信息 该任务不在该项目下,在的话则修改项目信息
- //B项目updateTaskInfo.getProjectId() 父任务updateTaskInfo.getParentId()
- ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
- proTaskDetailExample.createCriteria().andIdEqualTo(updateTaskInfo.getParentId()).andProjectIdEqualTo(updateTaskInfo.getProjectId());
- long l = taskDetailDao.countByExample(proTaskDetailExample);
- if(l > 0 ){
- throw new BaseException(CodeEnum.NOT_TASK);
- }else { //在的话则修改项目信息
- taskDetail.setId(updateTaskInfo.getId());
- taskDetail.setParentId(updateTaskInfo.getParentId());
- taskDetail.setProjectId(updateTaskInfo.getProjectId());
- taskDetailDao.updateByPrimaryKeySelective(taskDetail);
- }
+ //修改任务所属的项目
+ if (ObjectUtil.isNotNull(updateTaskInfo.getProjectId())) {
+ if (ObjectUtil.isNotNull(updateTaskInfo.getParentId())) {
+ //检查父任务在不在移动后的项目下,不在的话提示错误信息 该任务不在该项目下,在的话则修改项目信息
+ //B项目updateTaskInfo.getProjectId() 父任务updateTaskInfo.getParentId()
+ ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
+ proTaskDetailExample.createCriteria().andIdEqualTo(updateTaskInfo.getParentId()).andProjectIdEqualTo(updateTaskInfo.getProjectId());
+ long l = taskDetailDao.countByExample(proTaskDetailExample);
+ if (l > 0) {
+// throw new BaseException(CodeEnum.NOT_TASK);
+ taskDetail.setProjectId(updateTaskInfo.getProjectId());
+ taskDetail.setParentId(updateTaskInfo.getParentId());
+ } else { //在的话则修改项目信息
+ throw new BaseException(CodeEnum.PARENT_PROJECT_NOT_MATCHING);
}
- //把这个任务当作父任务,如果原来任务下的父任务有值 设置为0,修改项目信息
- //taskDetail = taskDetailDao.selectByPrimaryKey(updateTaskInfo.getId()); //任务详情
- if(ObjectUtil.isNotNull(taskDetail.getParentId())){
- taskDetail.setParentId(0L);
- taskDetailDao.updateByPrimaryKeySelective(taskDetail);
- }
- taskDetail.setId(updateTaskInfo.getId());
+ } else {
+ taskDetail.setParentId(0L);
taskDetail.setProjectId(updateTaskInfo.getProjectId());
- taskDetailDao.updateByPrimaryKeySelective(taskDetail);
}
+ //将此任务以前的子任务的父id改成0
+ ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
+ proTaskDetailExample.createCriteria().andParentIdEqualTo(taskDetail.getId());
+ List proTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
+ if(CollectionUtil.isNotEmpty(proTaskDetailList)){
+ proTaskDetailList.forEach(proTaskDetail -> {
+ proTaskDetail.setParentId(0L);
+ taskDetailDao.updateByPrimaryKeySelective(proTaskDetail);
+ });
+ }
+ } else {
+ //父任务id
+ if (null != updateTaskInfo.getParentId()) {
+ ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
+ proTaskDetailExample.createCriteria().andIdEqualTo(updateTaskInfo.getParentId()).andProjectIdEqualTo(taskDetail.getProjectId());
+ long l = taskDetailDao.countByExample(proTaskDetailExample);
+ if (l <= 0) {
+ throw new BaseException(CodeEnum.PARENT_PROJECT_NOT_MATCHING);
+ }
+ taskDetail.setParentId(updateTaskInfo.getParentId());
+ }
+
}
//修改数据
@@ -1741,7 +1750,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
firstTaskDetailList.forEach(firstTaskDetail -> {
TaskVo.TaskListByProjectId firstTask = taskDetailDao.getTaskById(firstTaskDetail.getId());
- List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), null,null,null);
+ List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), null, null, null);
if (CollectionUtil.isNotEmpty(secondTaskList)) {
secondTaskList.forEach(secondTask -> secondTask.setParentName(firstTaskDetail.getName()));
}
@@ -1752,48 +1761,50 @@ public class ProTaskDetailService implements IProTaskDetailService {
return taskList;
}
- /**
- * 新增和修改交付物
- * @param jiaoFuWu
- */
- @Override
- public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) {
- ProTaskDeliverExample proTaskDeliverExample=new ProTaskDeliverExample();
- ProTaskDeliver proTaskDeliver=new ProTaskDeliver();
- if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
- //修改
- proTaskDeliver.setId(jiaoFuWu.getId());
- proTaskDeliver.setName(jiaoFuWu.getNames());
- proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
- proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
- }else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
- //新增
- proTaskDeliver.setId(snowflake.nextId());
- proTaskDeliver.setName(jiaoFuWu.getNames());
- proTaskDeliverMapper.insertSelective(proTaskDeliver);
- }
-
- }
-
- /**
- * 新增和修改输入文档
- * @param jiaoFuWu
- */
- @Override
- public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) {
- ProTaskInputDocExample proTaskDeliverExample=new ProTaskInputDocExample();
- ProTaskInputDoc proTaskDeliver=new ProTaskInputDoc();
- if(jiaoFuWu.getId()!=null && StringUtils.isNotBlank(jiaoFuWu.getNames())){
- //修改
- proTaskDeliver.setId(jiaoFuWu.getId());
- proTaskDeliver.setName(jiaoFuWu.getNames());
- proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
- proTaskInputDocDao.updateByExampleSelective(proTaskDeliver,proTaskDeliverExample);
- }else if(jiaoFuWu.getId()==null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
- //新增
- proTaskDeliver.setId(snowflake.nextId());
- proTaskDeliver.setName(jiaoFuWu.getNames());
- proTaskInputDocDao.insertSelective(proTaskDeliver);
- }
- }
+// /**
+// * 新增和修改交付物
+// *
+// * @param jiaoFuWu
+// */
+// @Override
+// public void addAndUpdateJiaoFuWu(TaskDto.JiaoFuWu jiaoFuWu) {
+// ProTaskDeliverExample proTaskDeliverExample = new ProTaskDeliverExample();
+// ProTaskDeliver proTaskDeliver = new ProTaskDeliver();
+// if (jiaoFuWu.getId() != null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
+// //修改
+// proTaskDeliver.setId(jiaoFuWu.getId());
+// proTaskDeliver.setName(jiaoFuWu.getNames());
+// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
+// proTaskDeliverMapper.updateByExampleSelective(proTaskDeliver, proTaskDeliverExample);
+// } else if (jiaoFuWu.getId() == null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
+// //新增
+// proTaskDeliver.setId(snowflake.nextId());
+// proTaskDeliver.setName(jiaoFuWu.getNames());
+// proTaskDeliverMapper.insertSelective(proTaskDeliver);
+// }
+//
+// }
+//
+// /**
+// * 新增和修改输入文档
+// *
+// * @param jiaoFuWu
+// */
+// @Override
+// public void addAndUpdateShuWuWenDang(TaskDto.JiaoFuWu jiaoFuWu) {
+// ProTaskInputDocExample proTaskDeliverExample = new ProTaskInputDocExample();
+// ProTaskInputDoc proTaskDeliver = new ProTaskInputDoc();
+// if (jiaoFuWu.getId() != null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
+// //修改
+// proTaskDeliver.setId(jiaoFuWu.getId());
+// proTaskDeliver.setName(jiaoFuWu.getNames());
+// proTaskDeliverExample.createCriteria().andIdEqualTo(jiaoFuWu.getId()).andRecStatusEqualTo((byte) 0);
+// proTaskInputDocDao.updateByExampleSelective(proTaskDeliver, proTaskDeliverExample);
+// } else if (jiaoFuWu.getId() == null && StringUtils.isNotBlank(jiaoFuWu.getNames())) {
+// //新增
+// proTaskDeliver.setId(snowflake.nextId());
+// proTaskDeliver.setName(jiaoFuWu.getNames());
+// proTaskInputDocDao.insertSelective(proTaskDeliver);
+// }
+// }
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
index 595e8273..232f13c3 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
@@ -1272,7 +1272,7 @@ public class TaskDeliverService implements ITaskDeliverService {
proTaskDeliverExample.createCriteria().andTaskDetailIdEqualTo(taskDetailId).andNameEqualTo(param.getFileName()[i]);
long l = taskDeliverDao.countByExample(proTaskDeliverExample);
if(l>0){
- throw new BaseException(CodeEnum.Deliver_REPEAT);
+ throw new BaseException(CodeEnum.DELIVER_REPEAT);
}
//添加交付物
ProTaskDeliver proTaskDeliver = new ProTaskDeliver();
diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java
index 176ec4b6..d54fa552 100644
--- a/util/src/main/java/com/ccsens/util/CodeEnum.java
+++ b/util/src/main/java/com/ccsens/util/CodeEnum.java
@@ -210,7 +210,8 @@ public enum CodeEnum {
CANNOT_DELETE_PM(170,"无法删除项目经理",true),
LABEL_TOO_LONG(171,"标签长度过长,请不要超过六个字",true),
WBS_PROJECT_NAME_REPEAT(172,"项目名称不能重复",true),
- Deliver_REPEAT(173,"交付物已存在",true),
+ DELIVER_REPEAT(173,"交付物已存在",true),
+ PARENT_PROJECT_NOT_MATCHING(174,"父任务与项目不匹配",true),
;