Browse Source

20220401修改项目层级关系,导出再导入

contest^2
unknown 3 years ago
parent
commit
f90f3b2fac
  1. 5
      src/main/java/com/ccsens/ptccsens/bean/dto/RoleDto.java
  2. 8
      src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java
  3. 16
      src/main/java/com/ccsens/ptccsens/service/ExportService.java
  4. 15
      src/main/java/com/ccsens/ptccsens/service/ImportService.java
  5. 14
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  6. 2
      src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java
  7. 39
      src/main/resources/mapper_dao/ProParentTaskDao.xml
  8. 21
      src/main/resources/mapper_dao/ProRoleDao.xml
  9. 6
      src/main/resources/mapper_dao/ProTaskDetailDao.xml

5
src/main/java/com/ccsens/ptccsens/bean/dto/RoleDto.java

@ -11,10 +11,13 @@ public class RoleDto {
private Long id;
//userId
private Long userId;
//name
private String name;
public WbsMember(Long id, Long userId) {
public WbsMember(Long id, Long userId, String name) {
this.id = id;
this.userId = userId;
this.name = name;
}
}
}

8
src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java

@ -90,4 +90,12 @@ public interface ProRoleDao extends ProRoleMapper {
* @return 返回角色id
*/
List<Long> allRoleByUserId(@Param("userId")Long userId);
/**
* 根据任务id查找负责人id
* @param detailId 任务id
* @param userId userId
* @return 返回负责人id
*/
Long getExecutorRoleId(@Param("detailId")Long detailId,@Param("userId")Long userId);
}

16
src/main/java/com/ccsens/ptccsens/service/ExportService.java

@ -363,6 +363,8 @@ public class ExportService implements IExportService {
for (TallWbsVo.WbsMember ignored : role.getMemberList()) {
memberNum++;
}
}else {
memberNum++;
}
}
for (int i = 0; i < pmList.size(); i++) {
@ -406,6 +408,20 @@ public class ExportService implements IExportService {
}
wbs.add(roleInfo);
}
}else {
List<PoiUtil.PoiUtilCell> roleInfo = new ArrayList<>();
roleInfo.add(new PoiUtil.PoiUtilCell("" + num++));
if(i == 0){
if(isPm){
roleInfo.add(new PoiUtil.PoiUtilCell("项目经理",1,memberNum == 0 ? 1 : memberNum));
}else {
roleInfo.add(new PoiUtil.PoiUtilCell("项目成员",1,memberNum == 0 ? 1 : memberNum));
}
}else {
roleInfo.add(new PoiUtil.PoiUtilCell());
}
roleInfo.add(new PoiUtil.PoiUtilCell(role.getRoleName(),role.getRoleId(),1,role.getMemberList().size()));
wbs.add(roleInfo);
}
}
}

15
src/main/java/com/ccsens/ptccsens/service/ImportService.java

@ -208,7 +208,7 @@ public class ImportService implements IImportService {
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER);
}
//如果parentId不为空,添加层级关系
if(ObjectUtil.isNotNull(parentId)){
if(ObjectUtil.isNotNull(parentId) && !project.getId().equals(parentId)){
ProParentTask proParentTask = new ProParentTask();
proParentTask.setId(snowflake.nextId());
proParentTask.setTaskDetailId(project.getId());
@ -514,9 +514,13 @@ public class ImportService implements IImportService {
//添加成员
if(StrUtil.isNotEmpty(memberName) && !"/".equalsIgnoreCase(roleName)){
//如果成员名和手机号重复当做一个人来处理
RoleDto.WbsMember wbsMembers = memberMap.get(memberName + "_" + memberPhone);
// RoleDto.WbsMember wbsMembers = memberMap.get(memberName + "_" + memberPhone);
RoleDto.WbsMember wbsMembers = memberMap.get(memberPhone);
Long memberId = null;
if(ObjectUtil.isNotNull(wbsMembers)){
if(!memberName.equals(wbsMembers.getName())){
BasicsCodeError.WBS_PHONE_REPEAT.addMsg(memberSheet.getSheetName(),i+1,stakeholderName);
}
memberId = wbsMembers.getId();
}
if(ObjectUtil.isNull(memberId)){
@ -545,8 +549,9 @@ public class ImportService implements IImportService {
proMember.setProjectId(project.getId());
proMember.setUserId(userId);
memberDao.insertReplace(proMember);
RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId);
memberMap.put(memberName+"_"+memberPhone,member);
RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId,proMember.getName());
// memberMap.put(memberName+"_"+memberPhone,member);
memberMap.put(memberPhone,member);
memberId = proMember.getId();
//添加奖惩干系人
if(StrUtil.isNotEmpty(stakeholderName) && !"/".equalsIgnoreCase(roleName)){
@ -672,7 +677,7 @@ public class ImportService implements IImportService {
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId);
proTaskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample);
//删除任务关系表
allTaskId.add(project.getId());
// allTaskId.add(project.getId());
ProParentTask parentTask = new ProParentTask();
parentTask.setRecStatus((byte)2);
ProParentTaskExample parentTaskExample = new ProParentTaskExample();

14
src/main/java/com/ccsens/ptccsens/service/TallService.java

@ -455,6 +455,7 @@ public class TallService implements ITallService {
}
}
}
/**
* 创建面板
*
@ -474,6 +475,7 @@ public class TallService implements ITallService {
/**
* 查询任务下的检查人
*
* @param taskList 任务列表
*/
public void queryCheckerOfTask(List<TallTaskVo.QueryTask> taskList) {
@ -484,6 +486,7 @@ public class TallService implements ITallService {
}
}
}
/**
* 向空面板里插入插件详情
*
@ -502,6 +505,7 @@ public class TallService implements ITallService {
}
queryTask.setPlugins(plugins);
}
/**
* 根据插件的最大行列创建面板
*
@ -697,13 +701,17 @@ public class TallService implements ITallService {
String taskId = Constant.BUSINESS_CODE.equals(param.getBusinessCode()) ? param.getTaskId() : null;
PageHelper.startPage(param.getPageNum(), param.getPageSize());
queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList, queryTime, param.getTimeUnit(), param.getQueryType(), taskId);
if(CollectionUtil.isNotEmpty(queryTaskList)){
queryTaskList.forEach(queryTask -> {
Long roleId = roleDao.getExecutorRoleId(queryTask.getDetailId(),user.getId());
queryTask.setExecutorRoleId(roleId);
});
}
}
return queryTaskList;
}
@Override
public void deleteProject(String token, TallProjectDto.ProjectById params) {
//查找用户
@ -789,6 +797,7 @@ public class TallService implements ITallService {
//根据项目id查询所有一二级任务详情id 删除任务相关
List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(params.getProjectId());
if (CollectionUtil.isNotEmpty(allTaskId)) {
//删除所有的任务详情
ProTaskDetail taskDetail = new ProTaskDetail();
taskDetail.setRecStatus((byte) 2);
@ -859,6 +868,7 @@ public class TallService implements ITallService {
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo, taskPanelInfoExample);
}
}
@Override
public void dragProject(String token, TallProjectDto.MoveProject params) {

2
src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java

@ -55,6 +55,8 @@ public class BasicsCodeError extends CodeError {
public static final Code NOT_CLOCKING_IN = new Code(536,"打卡记录不存在", true);
public static final Code NOT_CLOCKING_IN_REMARK = new Code(537,"请填写补卡原因", true);
public static final Code WBS_PHONE_REPEAT = new Code(538,"手机号和成员名不匹配", true);
}

39
src/main/resources/mapper_dao/ProParentTaskDao.xml

@ -31,14 +31,27 @@
<!-- </select>-->
<select id="queryAllTaskIdByProjectId" resultType="java.lang.Long">
select
*
from
(
SELECT
task_detail_id
t.task_detail_id
FROM
t_pro_parent_task
t_pro_parent_task t,
t_label_business b,
t_label l
WHERE
rec_status = 0
AND parent_task_detail_id = #{projectId}
t.parent_task_detail_id = #{projectId}
and t.task_detail_id = b.business_id
and l.id = b.label_id
and l.id != 13
and t.rec_status = 0
and b.rec_status = 0
and l.rec_status = 0
UNION ALL
SELECT
task_detail_id
FROM
@ -47,13 +60,23 @@
rec_status = 0
AND parent_task_detail_id IN (
SELECT
task_detail_id
t.task_detail_id
FROM
t_pro_parent_task
t_pro_parent_task t,
t_label_business b,
t_label l
WHERE
rec_status = 0
AND parent_task_detail_id = #{projectId}
t.parent_task_detail_id = #{projectId}
and t.task_detail_id = b.business_id
and l.id = b.label_id
and l.id != 13
and t.rec_status = 0
and b.rec_status = 0
and l.rec_status = 0
)
)a
GROUP BY a.task_detail_id
</select>
</mapper>

21
src/main/resources/mapper_dao/ProRoleDao.xml

@ -250,5 +250,26 @@
and d.rec_status = 0
GROUP BY r.id
</select>
<select id="getExecutorRoleId" resultType="java.lang.Long">
SELECT
rt.role_id
FROM
t_pro_task_detail d,
t_pro_role_task rt,
t_pro_role_member rm,
t_pro_member m
WHERE
d.id = rt.task_id
and rt.role_id = rm.role_id
and rt.role_duty = 0
and rm.member_id = m.id
and m.user_id = #{userId}
and d.id = #{detailId}
and d.rec_status = 0
and rt.rec_status = 0
and rm.rec_status = 0
and m.rec_status = 0
limit 1
</select>
</mapper>

6
src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -553,6 +553,7 @@
<if test="triggerType == 0 and taskId != null">
and ts.id != #{taskId}
</if>
GROUP BY ts.id
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
@ -674,9 +675,7 @@
ts.real_start_time AS realStart,
ts.real_duration,
ts.task_status AS process,
r.project_id as projectId,
rt.role_id as executorRoleId
r.project_id as projectId
FROM
t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub AS ts ON ts.task_detail_id = td.id
@ -711,6 +710,7 @@
<if test="taskId != null">
and ts.id != #{taskId}
</if>
GROUP BY ts.id
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id

Loading…
Cancel
Save