|
@@ -3005,6 +3005,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<ProjectStage> projectStageList = projectStageMapper.selectList(new QueryWrapper<ProjectStage>().eq("company_id", company.getId()));
|
|
|
//获取部门
|
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
|
|
|
+ //获取所有节点
|
|
|
+ List<ProjectKeyNodesSetting> projectKeyNodesSettingList = projectKeyNodesSettingMapper.selectList(new QueryWrapper<ProjectKeyNodesSetting>().eq("company_id", user.getCompanyId()));
|
|
|
TimeType timeType = timeTypeMapper.selectById(company.getId());
|
|
|
List<Project> projectList = new ArrayList<Project>();
|
|
|
//由于第一行需要指明列对应的标题
|
|
@@ -3057,6 +3059,25 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
HSSFCell buCell=null;
|
|
|
HSSFCell stateCell=null;
|
|
|
HSSFCell stageCell=null;
|
|
|
+ HSSFCell plate1=null;
|
|
|
+ HSSFCell plate2=null;
|
|
|
+ HSSFCell plate3=null;
|
|
|
+ HSSFCell plate4=null;
|
|
|
+ HSSFCell plate5=null;
|
|
|
+ HSSFCell plate6=null;
|
|
|
+ HSSFCell plate7=null;
|
|
|
+ HSSFCell plate8=null;
|
|
|
+ HSSFCell plate9=null;
|
|
|
+ HSSFCell plate10=null;
|
|
|
+ HSSFCell plate11=null;
|
|
|
+ HSSFCell plate12=null;
|
|
|
+ HSSFCell plate13=null;
|
|
|
+ HSSFCell plate14=null;
|
|
|
+ HSSFCell plate15=null;
|
|
|
+ HSSFCell plate16=null;
|
|
|
+ HSSFCell plate17=null;
|
|
|
+ HSSFCell plate18=null;
|
|
|
+
|
|
|
int i=0;
|
|
|
int k=0;
|
|
|
int c=0;
|
|
@@ -3099,6 +3120,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
buCell=row.getCell(14+i+k+c+d);
|
|
|
stateCell=row.getCell(15+i+k+c+d);
|
|
|
stageCell=row.getCell(16+i+k+c+d);
|
|
|
+ plate1=row.getCell(17+i+k+c+d);
|
|
|
+ plate2=row.getCell(18+i+k+c+d);
|
|
|
+ plate3=row.getCell(19+i+k+c+d);
|
|
|
+ plate4=row.getCell(20+i+k+c+d);
|
|
|
+ plate5=row.getCell(21+i+k+c+d);
|
|
|
+ plate6=row.getCell(22+i+k+c+d);
|
|
|
+ plate7=row.getCell(23+i+k+c+d);
|
|
|
+ plate8=row.getCell(24+i+k+c+d);
|
|
|
+ plate9=row.getCell(25+i+k+c+d);
|
|
|
+ plate10=row.getCell(26+i+k+c+d);
|
|
|
+ plate11=row.getCell(27+i+k+c+d);
|
|
|
+ plate12=row.getCell(28+i+k+c+d);
|
|
|
+ plate13=row.getCell(29+i+k+c+d);
|
|
|
+ plate14=row.getCell(30+i+k+c+d);
|
|
|
+ plate15=row.getCell(31+i+k+c+d);
|
|
|
+ plate16=row.getCell(32+i+k+c+d);
|
|
|
+ plate17=row.getCell(33+i+k+c+d);
|
|
|
+ plate18=row.getCell(34+i+k+c+d);
|
|
|
}
|
|
|
}else {
|
|
|
codeCell = row.getCell(0);
|
|
@@ -3139,6 +3178,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
buCell=row.getCell(15+i+k+c+d);
|
|
|
stateCell=row.getCell(16+i+k+c+d);
|
|
|
stageCell=row.getCell(17+i+k+c+d);
|
|
|
+ plate1=row.getCell(18+i+k+c+d);
|
|
|
+ plate2=row.getCell(19+i+k+c+d);
|
|
|
+ plate3=row.getCell(20+i+k+c+d);
|
|
|
+ plate4=row.getCell(21+i+k+c+d);
|
|
|
+ plate5=row.getCell(22+i+k+c+d);
|
|
|
+ plate6=row.getCell(23+i+k+c+d);
|
|
|
+ plate7=row.getCell(24+i+k+c+d);
|
|
|
+ plate8=row.getCell(25+i+k+c+d);
|
|
|
+ plate9=row.getCell(26+i+k+c+d);
|
|
|
+ plate10=row.getCell(27+i+k+c+d);
|
|
|
+ plate11=row.getCell(28+i+k+c+d);
|
|
|
+ plate12=row.getCell(29+i+k+c+d);
|
|
|
+ plate13=row.getCell(30+i+k+c+d);
|
|
|
+ plate14=row.getCell(31+i+k+c+d);
|
|
|
+ plate15=row.getCell(32+i+k+c+d);
|
|
|
+ plate16=row.getCell(33+i+k+c+d);
|
|
|
+ plate17=row.getCell(34+i+k+c+d);
|
|
|
+ plate18=row.getCell(35+i+k+c+d);
|
|
|
}
|
|
|
}
|
|
|
if (codeCell != null)codeCell.setCellType(CellType.STRING);
|
|
@@ -3163,6 +3220,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if (buCell != null)buCell.setCellType(CellType.STRING);
|
|
|
if (stateCell != null)stateCell.setCellType(CellType.STRING);
|
|
|
if (stageCell != null)stageCell.setCellType(CellType.STRING);
|
|
|
+ if (plate3 != null)plate3.setCellType(CellType.STRING);
|
|
|
+ if (plate6 != null)plate6.setCellType(CellType.STRING);
|
|
|
+ if (plate9 != null)plate9.setCellType(CellType.STRING);
|
|
|
+ if (plate12 != null)plate12.setCellType(CellType.STRING);
|
|
|
+
|
|
|
if (nameCell == null) {//项目名称为空的直接跳过
|
|
|
throw new Exception("项目名称不能为空");
|
|
|
}
|
|
@@ -3441,8 +3503,251 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
if(flag&&check){
|
|
|
projectSeparateMapper.updateById(projectSeparate);
|
|
|
+ List<ProjectKeyNodes> nodes = projectKeyNodesMapper.selectList(new QueryWrapper<ProjectKeyNodes>().eq("project_id", id));
|
|
|
+ for (int x = 0; x < projectKeyNodesSettingList.size(); x++) {
|
|
|
+ ProjectKeyNodesSetting projectKeyNodesSetting = projectKeyNodesSettingList.get(x);
|
|
|
+ Optional<ProjectKeyNodes> first = nodes.stream().filter(ns -> ns.getNodesId().equals(projectKeyNodesSetting.getId())).findFirst();
|
|
|
+ ProjectKeyNodes projectKeyNodes=new ProjectKeyNodes();
|
|
|
+ switch (x){
|
|
|
+ case 0:
|
|
|
+ if(plate1!=null&&plate1.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate1.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate1.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate2!=null&&plate2.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate2.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate2.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate3!=null&&!StringUtils.isEmpty(plate3.getStringCellValue())){
|
|
|
+ switch (plate3.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ if(plate4!=null&&plate4.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate4.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate4.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate5!=null&&plate5.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate5.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate5.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate6!=null&&!StringUtils.isEmpty(plate6.getStringCellValue())){
|
|
|
+ switch (plate6.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ if(plate7!=null&&plate7.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate7.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate7.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate8!=null&&plate8.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate8.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate8.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate9!=null&&!StringUtils.isEmpty(plate9.getStringCellValue())){
|
|
|
+ switch (plate9.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ if(plate10!=null&&plate10.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate10.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate10.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate11!=null&&plate11.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate11.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate11.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate12!=null&&!StringUtils.isEmpty(plate12.getStringCellValue())){
|
|
|
+ switch (plate12.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ if(plate13!=null&&plate13.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate13.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate13.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate14!=null&&plate14.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate14.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate14.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate15!=null&&!StringUtils.isEmpty(plate15.getStringCellValue())){
|
|
|
+ switch (plate15.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ if(plate16!=null&&plate16.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate16.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate16.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate17!=null&&plate17.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate17.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate17.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate18!=null&&!StringUtils.isEmpty(plate18.getStringCellValue())){
|
|
|
+ switch (plate18.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(first.isPresent()){
|
|
|
+ projectKeyNodes.setId(first.get().getId());
|
|
|
+ projectKeyNodesMapper.updateById(projectKeyNodes);
|
|
|
+ }else {
|
|
|
+ projectKeyNodes.setProjectId(id);
|
|
|
+ projectKeyNodes.setNodesId(projectKeyNodesSetting.getId());
|
|
|
+ projectKeyNodes.setNodesName(projectKeyNodesSetting.getName());
|
|
|
+ projectKeyNodesMapper.insert(projectKeyNodes);
|
|
|
+ }
|
|
|
+ }
|
|
|
}else {
|
|
|
projectSeparateMapper.insert(projectSeparate);
|
|
|
+ for (int x = 0; x < projectKeyNodesSettingList.size(); x++) {
|
|
|
+ ProjectKeyNodesSetting projectKeyNodesSetting = projectKeyNodesSettingList.get(x);
|
|
|
+ ProjectKeyNodes projectKeyNodes=new ProjectKeyNodes();
|
|
|
+ projectKeyNodes.setProjectId(id);
|
|
|
+ projectKeyNodes.setNodesId(projectKeyNodesSetting.getId());
|
|
|
+ projectKeyNodes.setNodesName(projectKeyNodesSetting.getName());
|
|
|
+ switch (x) {
|
|
|
+ case 0:
|
|
|
+ if(plate1!=null&&plate1.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate1.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate1.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate2!=null&&plate2.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate2.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate2.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate3!=null&&!StringUtils.isEmpty(plate3.getStringCellValue())){
|
|
|
+ switch (plate3.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ if(plate4!=null&&plate4.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate4.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate4.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate5!=null&&plate5.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate5.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate5.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate6!=null&&!StringUtils.isEmpty(plate6.getStringCellValue())){
|
|
|
+ switch (plate6.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ if(plate7!=null&&plate7.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate7.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate7.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate8!=null&&plate8.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate8.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate8.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate9!=null&&!StringUtils.isEmpty(plate9.getStringCellValue())){
|
|
|
+ switch (plate9.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ if(plate10!=null&&plate10.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate10.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate10.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate11!=null&&plate11.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate11.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate11.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate12!=null&&!StringUtils.isEmpty(plate12.getStringCellValue())){
|
|
|
+ switch (plate12.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ if(plate13!=null&&plate13.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate13.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate13.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate14!=null&&plate14.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate14.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate14.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate15!=null&&!StringUtils.isEmpty(plate15.getStringCellValue())){
|
|
|
+ switch (plate15.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ if(plate16!=null&&plate16.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate16.getDateCellValue())){
|
|
|
+ projectKeyNodes.setPlanCompleteDate(sdf.format(plate16.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate17!=null&&plate17.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(plate17.getDateCellValue())){
|
|
|
+ projectKeyNodes.setActualCompleteDate(sdf.format(plate17.getDateCellValue()));
|
|
|
+ }
|
|
|
+ if(plate18!=null&&!StringUtils.isEmpty(plate18.getStringCellValue())){
|
|
|
+ switch (plate18.getStringCellValue()){
|
|
|
+ case "正常":projectKeyNodes.setStates("0");
|
|
|
+ break;
|
|
|
+ case "延期":projectKeyNodes.setStates("1");
|
|
|
+ break;
|
|
|
+ case "完成":projectKeyNodes.setStates("2");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ projectKeyNodesMapper.insert(projectKeyNodes);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
importCount++;
|
|
@@ -3588,6 +3893,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
List<HashMap<String, Object>> list = projectMapper.getExportData(user.getCompanyId(), userId);
|
|
|
HttpRespMsg projectPage = getProjectPage(null, null, null, null, null, null, null, null,null, null, null,null, request);
|
|
|
+ List<ProjectKeyNodesSetting> projectKeyNodesSettingList = projectKeyNodesSettingMapper.selectList(new QueryWrapper<ProjectKeyNodesSetting>().eq("company_id", user.getCompanyId()));
|
|
|
Map<String,Object> resultMap= (Map<String, Object>) projectPage.data;
|
|
|
List<ProjectVO> projectVOList= (List<ProjectVO>) resultMap.get("records");
|
|
|
List<String> nameList= (List<String>) resultMap.get("nameList");
|
|
@@ -3633,6 +3939,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
headList.add("所属BU");
|
|
|
headList.add("项目状态");
|
|
|
headList.add("项目阶段");
|
|
|
+ for (ProjectKeyNodesSetting projectKeyNodesSetting : projectKeyNodesSettingList) {
|
|
|
+ headList.add(projectKeyNodesSetting.getName()+"计划完成时间");
|
|
|
+ headList.add(projectKeyNodesSetting.getName()+"实际完成时间");
|
|
|
+ }
|
|
|
}
|
|
|
List<List<String>> allList = new ArrayList<List<String>>();
|
|
|
allList.add(headList);
|
|
@@ -3644,6 +3954,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
//防止空数据
|
|
|
collect.add(-1);
|
|
|
List<ProjectSeparate> projectSeparateList= projectSeparateMapper.selectList(new QueryWrapper<ProjectSeparate>().in("id", collect));
|
|
|
+ List<ProjectKeyNodes> nodesList = projectKeyNodesMapper.selectList(new QueryWrapper<ProjectKeyNodes>().in("project_id", collect));
|
|
|
for (ProjectVO projectVO : projectVOList) {
|
|
|
List<String> rowData = new ArrayList<>();
|
|
|
rowData.add(projectVO.getProjectCode());
|
|
@@ -3742,6 +4053,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
break;
|
|
|
}
|
|
|
rowData.add(projectVO.getCurrentStageName()==null?"":projectVO.getCurrentStageName());
|
|
|
+ for (ProjectKeyNodesSetting projectKeyNodesSetting : projectKeyNodesSettingList) {
|
|
|
+ Optional<ProjectKeyNodes> it = nodesList.stream().filter(nl -> nl.getNodesId().equals(projectKeyNodesSetting.getId())&&nl.getProjectId().equals(projectVO.getId())).findFirst();
|
|
|
+ if(it.isPresent()){
|
|
|
+ ProjectKeyNodes projectKeyNodes = it.get();
|
|
|
+ rowData.add(projectKeyNodes.getPlanCompleteDate());
|
|
|
+ rowData.add(projectKeyNodes.getActualCompleteDate());
|
|
|
+ }else{
|
|
|
+ rowData.add("");
|
|
|
+ rowData.add("");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
allList.add(rowData);
|
|
|
}
|