Browse Source

Merge branch 'master' of dd.tall.wiki:ccsens_wiki/carbasics

master
zhizhi wu 5 years ago
parent
commit
e1d86865e3
  1. 19
      src/main/java/com/ccsens/carbasics/bean/dto/TaskDto.java
  2. 2
      src/main/java/com/ccsens/carbasics/persist/dao/SPluginDao.java
  3. 74
      src/main/java/com/ccsens/carbasics/service/ImportService.java
  4. 2
      src/main/java/com/ccsens/carbasics/util/Constant.java
  5. 9
      src/main/resources/mapper_dao/SPluginDao.xml

19
src/main/java/com/ccsens/carbasics/bean/dto/TaskDto.java

@ -58,4 +58,23 @@ public class TaskDto {
private int type; private int type;
} }
/**
* 导入wbs--插件关联表id
*/
@Data
public static class TaskPluginId{
private Long taskPluginId1;
private Long taskPluginId2;
private Long taskPluginId3;
public TaskPluginId(Long id1, Long id2,Long id3) {
this.taskPluginId1 = id1;
this.taskPluginId2 = id2;
this.taskPluginId3 = id3;
}
public TaskPluginId() {
}
}
} }

2
src/main/java/com/ccsens/carbasics/persist/dao/SPluginDao.java

@ -7,4 +7,6 @@ import org.apache.ibatis.annotations.Param;
*/ */
public interface SPluginDao { public interface SPluginDao {
Long getPluginIdByName(@Param("pluginName") String pluginName); Long getPluginIdByName(@Param("pluginName") String pluginName);
void updateParamById(@Param("param")String param,@Param("taskPluginId")Long taskPluginId);
} }

74
src/main/java/com/ccsens/carbasics/service/ImportService.java

@ -5,6 +5,7 @@ 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.carbasics.bean.dto.TaskDto;
import com.ccsens.carbasics.service.IImportService; import com.ccsens.carbasics.service.IImportService;
import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; import com.ccsens.cloudutil.bean.tall.dto.ProjectDto;
import com.ccsens.cloudutil.feign.Tall3FeignClient; import com.ccsens.cloudutil.feign.Tall3FeignClient;
@ -109,18 +110,68 @@ public class ImportService implements IImportService {
//成员 //成员
Map<String, RoleDto.WbsMember> memberMap = new HashMap<>(); Map<String, RoleDto.WbsMember> memberMap = new HashMap<>();
//任务 //任务
Map<String, Long> taskMap = new HashMap<>(); Map<String, Object> taskMap = new HashMap<>();
//读取文件 //读取文件
readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId,projectInfo); readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId,projectInfo);
//读取插件配置表
readPluginConfig(xssfWorkbook,taskMap);
return projectInfo; return projectInfo;
} }
/**
* 读取插件配置表
*/
private void readPluginConfig(XSSFWorkbook wb, Map<String, Object> taskMap) {
//获取插件配置表Sheet
XSSFSheet wbsSheet = wb.getSheet(Constant.WbsExcel.WBS_PLUGIN_CONFIG);
if (ObjectUtil.isNotNull(wbsSheet)) {
for (int i = 0; i <= wbsSheet.getLastRowNum(); i++) {
//获取行
XSSFRow row = wbsSheet.getRow(i);
if (row == null) {
continue;
}
//序号
String sequence = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0)));
//任务名
String taskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1)));
if(StrUtil.isEmpty(taskName)){
continue;
}
//插件1
String pluginParam1 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(2)));
//插件2
String pluginParam2 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(3)));
//插件3
String pluginParam3 = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(4)));
Object o = taskMap.get(sequence + "_" + taskName);
if(ObjectUtil.isNull(o)){
continue;
}
TaskDto.TaskPluginId taskPlugin = (TaskDto.TaskPluginId) o;
if(StrUtil.isNotEmpty(pluginParam1)){
//修改插件表的param
sTaskPluginDao.updateParamById(pluginParam1,taskPlugin.getTaskPluginId1());
}
if(StrUtil.isNotEmpty(pluginParam2)){
//修改插件表的param
sTaskPluginDao.updateParamById(pluginParam2,taskPlugin.getTaskPluginId2());
}
if(StrUtil.isNotEmpty(pluginParam3)){
//修改插件表的param
sTaskPluginDao.updateParamById(pluginParam3,taskPlugin.getTaskPluginId3());
}
}
}
}
/** /**
* 读取每个sheet * 读取每个sheet
*/ */
private void readExcel(XSSFWorkbook wb, Long userId, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap, Map<String, Long> taskMap,Long projectId,ProjectVo.ProjectInfo projectInfo) { private void readExcel(XSSFWorkbook wb, Long userId, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap, Map<String, Object> taskMap,Long projectId,ProjectVo.ProjectInfo projectInfo) {
//获取wbsSheet //获取wbsSheet
XSSFSheet wbsSheet = wb.getSheet(Constant.WbsExcel.WBS_SHEET); XSSFSheet wbsSheet = wb.getSheet(Constant.WbsExcel.WBS_SHEET);
if (ObjectUtil.isNull(wbsSheet)) { if (ObjectUtil.isNull(wbsSheet)) {
@ -169,7 +220,7 @@ public class ImportService implements IImportService {
//读取成员表 //读取成员表
readMemberSheet(memberSheet,project,roleMap,memberMap); readMemberSheet(memberSheet,project,roleMap,memberMap);
//添加任务 //添加任务
readTask(wbsSheet,taskStart,project,roleMap); readTask(wbsSheet,taskStart,project,roleMap,taskMap);
//获取用户列表 //获取用户列表
Set<Long> userIdSet = new HashSet<>(); Set<Long> userIdSet = new HashSet<>();
userIdSet.add(userId); userIdSet.add(userId);
@ -546,7 +597,7 @@ public class ImportService implements IImportService {
/** /**
* 读取任务信息 * 读取任务信息
*/ */
private void readTask(XSSFSheet wbsSheet, int taskStart, ProjectVo.SysProject project, Map<String, Long> roleMap) { private void readTask(XSSFSheet wbsSheet, int taskStart, ProjectVo.SysProject project, Map<String, Long> roleMap, Map<String, Object> taskMap) {
//一级任务id //一级任务id
Long firstTaskId = null; Long firstTaskId = null;
@ -598,6 +649,8 @@ public class ImportService implements IImportService {
//获取当前行 //获取当前行
XSSFRow row = wbsSheet.getRow(i); XSSFRow row = wbsSheet.getRow(i);
if(ObjectUtil.isNull(row)){ continue; } if(ObjectUtil.isNull(row)){ continue; }
//序号
String sequence = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0)));
//一级任务名 //一级任务名
String firstTaskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1))); String firstTaskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1)));
if(StrUtil.isEmpty(firstTaskName) && ObjectUtil.isNull(firstTaskId)){ if(StrUtil.isEmpty(firstTaskName) && ObjectUtil.isNull(firstTaskId)){
@ -675,9 +728,11 @@ public class ImportService implements IImportService {
Long timeLabel = subLabelDao.getLabelByTypeAndLevel(0, 4); Long timeLabel = subLabelDao.getLabelByTypeAndLevel(0, 4);
saveLabelTask(taskDetail.getId(),timeLabel); saveLabelTask(taskDetail.getId(),timeLabel);
//插件 //插件
plugin(plugin1,taskDetail.getId(),1,wbsSheet,i+1); Long taskPlugin1 = plugin(plugin1,taskDetail.getId(),1,wbsSheet,i+1);
plugin(plugin2,taskDetail.getId(),2,wbsSheet,i+1); Long taskPlugin2 = plugin(plugin2,taskDetail.getId(),2,wbsSheet,i+1);
plugin(plugin3,taskDetail.getId(),3,wbsSheet,i+1); Long taskPlugin3 = plugin(plugin3,taskDetail.getId(),3,wbsSheet,i+1);
TaskDto.TaskPluginId taskPlugin = new TaskDto.TaskPluginId(taskPlugin1,taskPlugin2,taskPlugin3);
taskMap.put(sequence + "_" + taskName, taskPlugin);
} }
//TODO 检查人 //TODO 检查人
//TODO 及时奖惩 //TODO 及时奖惩
@ -685,7 +740,8 @@ public class ImportService implements IImportService {
//TODO 添加默认插件 //TODO 添加默认插件
} }
} }
private void plugin(String plugin,Long taskId,int row,XSSFSheet wbsSheet,int errorRow) { private Long plugin(String plugin,Long taskId,int row,XSSFSheet wbsSheet,int errorRow) {
Long taskPlugin = null;
if(StrUtil.isNotEmpty(plugin)){ if(StrUtil.isNotEmpty(plugin)){
//根据插件名称查找插件id //根据插件名称查找插件id
Long pluginId = sTaskPluginDao.getPluginIdByName(plugin); Long pluginId = sTaskPluginDao.getPluginIdByName(plugin);
@ -702,7 +758,9 @@ public class ImportService implements IImportService {
proTaskPlugin.setRowspan(1); proTaskPlugin.setRowspan(1);
proTaskPlugin.setColspan(1); proTaskPlugin.setColspan(1);
proTaskPluginDao.insertSelective(proTaskPlugin); proTaskPluginDao.insertSelective(proTaskPlugin);
taskPlugin = proTaskPlugin.getId();
} }
return taskPlugin;
} }
private Long taskSaveTime(Long taskStartTime,ProjectVo.SysProject project, String beginTime, String endTime, String duration, Long taskDetailId,XSSFSheet wbsSheet,int row) { private Long taskSaveTime(Long taskStartTime,ProjectVo.SysProject project, String beginTime, String endTime, String duration, Long taskDetailId,XSSFSheet wbsSheet,int row) {

2
src/main/java/com/ccsens/carbasics/util/Constant.java

@ -175,6 +175,8 @@ public class Constant {
public static final String TASK_INFO_TITLE = "项目任务分解"; public static final String TASK_INFO_TITLE = "项目任务分解";
/**excel文件格式验证*/ /**excel文件格式验证*/
public static final String WBS_FILE_FORMAT = "xls,xlsx"; public static final String WBS_FILE_FORMAT = "xls,xlsx";
/**插件配置表*/
public static final String WBS_PLUGIN_CONFIG = "插件配置表";
} }
/**wbs表时长对应关系表*/ /**wbs表时长对应关系表*/

9
src/main/resources/mapper_dao/SPluginDao.xml

@ -1,6 +1,15 @@
<?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.carbasics.persist.dao.SPluginDao"> <mapper namespace="com.ccsens.carbasics.persist.dao.SPluginDao">
<update id="updateParamById">
update
t_pro_task_plugin
set
param = #{param}
where
id = #{taskPluginId}
and rec_status = 0
</update>
<select id="getPluginIdByName" resultType="java.lang.Long"> <select id="getPluginIdByName" resultType="java.lang.Long">
SELECT SELECT

Loading…
Cancel
Save