Browse Source

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

master
zhizhi wu 4 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;
}
/**
* 导入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 {
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.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.carbasics.bean.dto.TaskDto;
import com.ccsens.carbasics.service.IImportService;
import com.ccsens.cloudutil.bean.tall.dto.ProjectDto;
import com.ccsens.cloudutil.feign.Tall3FeignClient;
@ -109,18 +110,68 @@ public class ImportService implements IImportService {
//成员
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);
//读取插件配置表
readPluginConfig(xssfWorkbook,taskMap);
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
*/
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
XSSFSheet wbsSheet = wb.getSheet(Constant.WbsExcel.WBS_SHEET);
if (ObjectUtil.isNull(wbsSheet)) {
@ -169,7 +220,7 @@ public class ImportService implements IImportService {
//读取成员表
readMemberSheet(memberSheet,project,roleMap,memberMap);
//添加任务
readTask(wbsSheet,taskStart,project,roleMap);
readTask(wbsSheet,taskStart,project,roleMap,taskMap);
//获取用户列表
Set<Long> userIdSet = new HashSet<>();
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
Long firstTaskId = null;
@ -598,6 +649,8 @@ public class ImportService implements IImportService {
//获取当前行
XSSFRow row = wbsSheet.getRow(i);
if(ObjectUtil.isNull(row)){ continue; }
//序号
String sequence = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(0)));
//一级任务名
String firstTaskName = StringUtil.replaceStrSpace(ExcelUtil.getCellValue(row.getCell(1)));
if(StrUtil.isEmpty(firstTaskName) && ObjectUtil.isNull(firstTaskId)){
@ -675,9 +728,11 @@ public class ImportService implements IImportService {
Long timeLabel = subLabelDao.getLabelByTypeAndLevel(0, 4);
saveLabelTask(taskDetail.getId(),timeLabel);
//插件
plugin(plugin1,taskDetail.getId(),1,wbsSheet,i+1);
plugin(plugin2,taskDetail.getId(),2,wbsSheet,i+1);
plugin(plugin3,taskDetail.getId(),3,wbsSheet,i+1);
Long taskPlugin1 = plugin(plugin1,taskDetail.getId(),1,wbsSheet,i+1);
Long taskPlugin2 = plugin(plugin2,taskDetail.getId(),2,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 及时奖惩
@ -685,7 +740,8 @@ public class ImportService implements IImportService {
//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)){
//根据插件名称查找插件id
Long pluginId = sTaskPluginDao.getPluginIdByName(plugin);
@ -702,7 +758,9 @@ public class ImportService implements IImportService {
proTaskPlugin.setRowspan(1);
proTaskPlugin.setColspan(1);
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) {

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

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

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

@ -1,6 +1,15 @@
<?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.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

Loading…
Cancel
Save