Browse Source

修改导入WBS返回项目信息

master
ma 4 years ago
parent
commit
c5ec731c25
  1. 7
      src/main/java/com/ccsens/defaultwbs/api/WbsController.java
  2. 45
      src/main/java/com/ccsens/defaultwbs/bean/vo/ProjectVo.java
  3. 4
      src/main/java/com/ccsens/defaultwbs/service/IImportService.java
  4. 13
      src/main/java/com/ccsens/defaultwbs/service/ImportService.java
  5. 36
      src/test/java/com/ccsens/defaultweb/test/Test01.java

7
src/main/java/com/ccsens/defaultwbs/api/WbsController.java

@ -6,6 +6,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.defaultwbs.bean.dto.ProjectDto;
import com.ccsens.defaultwbs.bean.vo.ProjectVo;
import com.ccsens.defaultwbs.service.IImportService;
import com.ccsens.defaultwbs.util.Constant;
import com.ccsens.defaultwbs.util.DefaultCodeError;
@ -42,7 +43,7 @@ public class WbsController {
// @ApiImplicitParam(name = "file", value = "WBS表", required = true, paramType = "form",dataType = "__file")
})
@RequestMapping(value = "", method = RequestMethod.POST)
public JsonResponse importWbs(QueryDto<MultipartFile> params,Long projectId) throws Exception {
public JsonResponse<ProjectVo.ProjectInfo> importWbs(QueryDto<MultipartFile> params, Long projectId) throws Exception {
MultipartFile f = params.getParam();
String ext = FileUtil.extName(f.getOriginalFilename());
@ -62,9 +63,9 @@ public class WbsController {
FileUtil.writeFromStream(f.getInputStream(), fullPath);
//导入数据库
importService.importWbs(fullPath,params.getUserId(),projectId);
ProjectVo.ProjectInfo projectInfo = importService.importWbs(fullPath,params.getUserId(),projectId);
return JsonResponse.newInstance().ok();
return JsonResponse.newInstance().ok(projectInfo);
}
}

45
src/main/java/com/ccsens/defaultwbs/bean/vo/ProjectVo.java

@ -1,5 +1,7 @@
package com.ccsens.defaultwbs.bean.vo;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.WebConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -14,26 +16,33 @@ public class ProjectVo {
@Data
@ApiModel("项目信息")
public static class ProjectInfo{
@ApiModelProperty("项目id(任务详情id)")
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("项目名")
@ApiModelProperty("项目名")
private String name;
@ApiModelProperty("项目描述")
private String description;
@ApiModelProperty("重复频率")
private String cycle;
@ApiModelProperty("计划开始时间")
private String planStartTime;
@ApiModelProperty("计划时长")
private String planDuration;
@ApiModelProperty("计划结束时间")
private String planEndTime;
@ApiModelProperty("真实开始时间")
private String realStartTime;
@ApiModelProperty("真实时长")
private String realDuration;
@ApiModelProperty("真实结束时间")
private String realEndTime;
@ApiModelProperty("开始时间")
private Long startTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("项目完成状态(0-未开始,1-进行中,2-暂停,3-已完成)")
private byte status;
@ApiModelProperty("访问路径)")
private String url;
public Byte getStatus() {
long current = System.currentTimeMillis();
if(ObjectUtil.isNull(getStartTime()) || ObjectUtil.isNull(getEndTime())) {
return null;
}
if(getStartTime() > current){
this.status = (byte) WebConstant.EVENT_PROCESS.Pending.value;
}else if(getEndTime() < current){
this.status = (byte) WebConstant.EVENT_PROCESS.Expired.value;
}else{
this.status = (byte) WebConstant.EVENT_PROCESS.Processing.value;
}
return this.status;
}
}

4
src/main/java/com/ccsens/defaultwbs/service/IImportService.java

@ -1,6 +1,8 @@
package com.ccsens.defaultwbs.service;
import com.ccsens.defaultwbs.bean.vo.ProjectVo;
/**
* @author
*/
@ -11,6 +13,6 @@ public interface IImportService {
* @param userId userId
* @throws Exception 异常
*/
void importWbs(String path, Long userId,Long projectId) throws Exception;
ProjectVo.ProjectInfo importWbs(String path, Long userId, Long projectId) throws Exception;
}

13
src/main/java/com/ccsens/defaultwbs/service/ImportService.java

@ -1,5 +1,6 @@
package com.ccsens.defaultwbs.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
@ -96,7 +97,8 @@ public class ImportService implements IImportService {
* @throws Exception 异常
*/
@Override
public void importWbs(String path, Long userId,Long projectId) throws Exception {
public ProjectVo.ProjectInfo importWbs(String path, Long userId,Long projectId) throws Exception {
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
//获取excel文件
InputStream is = new FileInputStream(path);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
@ -108,13 +110,15 @@ public class ImportService implements IImportService {
Map<String, Long> taskMap = new HashMap<>();
//读取文件
readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId);
readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId,projectInfo);
return projectInfo;
}
/**
* 读取每个sheet
*/
private void readExcel(XSSFWorkbook wb, Long userId, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap, Map<String, Long> taskMap,Long projectId) {
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) {
//获取wbsSheet
XSSFSheet wbsSheet = wb.getSheet(Constant.WbsExcel.WBS_SHEET);
if (ObjectUtil.isNull(wbsSheet)) {
@ -217,6 +221,9 @@ public class ImportService implements IImportService {
saveProjectDto.setUserIdList(userIdSet);
tall3FeignClient.saveProjectList(saveProjectDto);
//获取项目信息
BeanUtil.copyProperties(saveProjectDto,projectInfo);
}
/**

36
src/test/java/com/ccsens/defaultweb/test/Test01.java

@ -1,9 +1,12 @@
package com.ccsens.defaultweb.test;
import cn.hutool.core.date.DateUtil;
import org.junit.Test;
import java.net.URL;
import java.net.URLClassLoader;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @description:
@ -18,4 +21,37 @@ public class Test01 {
URL[] var3 = ((URLClassLoader)classLoader).getURLs();
System.out.println(var3.length);
}
@Test
public void test02(){
String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date(System.currentTimeMillis()));
Long nowTime = 1627028743359L;
String year = new SimpleDateFormat("yyyy").format(new Date(nowTime));
int season = DateUtil.season(new Date(nowTime));
System.out.println("1时间戳时间为:"+year+season);
Long changeTime = nowTime-5*7879680000L;
String changeYear = new SimpleDateFormat("yyyy").format(new Date(changeTime));
int changeSeason = DateUtil.season(new Date(changeTime));
System.out.println("2后移的季度为:"+changeYear+changeSeason);
//往后推三个季度
int time = 3;
int newSeason = season + (3);
if (newSeason>4){
if (newSeason%4==0){
int newS = newSeason/4;
int nian = newS+Integer.parseInt(year);
System.out.println("3往后推的年季度为:"+nian+"1");
}else{
int newS = newSeason%4;
int nian = newSeason/4;
int newY = Integer.parseInt(year)+nian;
System.out.println("4往后推的年季度为:"+newY+newS);
}
}
}
}

Loading…
Cancel
Save