|
|
@ -373,6 +373,13 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
|
|
|
|
|
|
queryWrapper.orderByAsc("seq_no"); |
|
|
queryWrapper.orderByAsc("seq_no"); |
|
|
List<PmProjectManagePartModel> partModelList = baseMapper.selectList(queryWrapper); |
|
|
List<PmProjectManagePartModel> partModelList = baseMapper.selectList(queryWrapper); |
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); |
|
|
|
|
|
String qidongDate = ""; |
|
|
|
|
|
if (partModelList!=null && partModelList.size()>0) { |
|
|
|
|
|
if(partModelList.get(0).getPlanEndDate() != null){ |
|
|
|
|
|
qidongDate = sdf.format(partModelList.get(0).getPlanEndDate()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
QueryWrapper<PmProjectPartModelDetail> queryWrapper1 = new QueryWrapper<>(); |
|
|
QueryWrapper<PmProjectPartModelDetail> queryWrapper1 = new QueryWrapper<>(); |
|
|
queryWrapper1.eq("project_part_id", projectPartId); |
|
|
queryWrapper1.eq("project_part_id", projectPartId); |
|
|
@ -381,11 +388,12 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
List<PmProjectPartModelDetail> list = pmProjectPartModelDetailService.list(queryWrapper1); |
|
|
List<PmProjectPartModelDetail> list = pmProjectPartModelDetailService.list(queryWrapper1); |
|
|
String tOneTime = ""; |
|
|
String tOneTime = ""; |
|
|
String OTSTime = ""; |
|
|
String OTSTime = ""; |
|
|
|
|
|
|
|
|
for (PmProjectPartModelDetail detail : list) { |
|
|
for (PmProjectPartModelDetail detail : list) { |
|
|
if ("T1".equals(detail.getDetailItemDesc())) { |
|
|
|
|
|
tOneTime = detail.getDetailExcalCompletionDate().toString(); |
|
|
|
|
|
} else if ("OTS".equals(detail.getModelHeaderCode())) { |
|
|
|
|
|
OTSTime = detail.getDetailExcalCompletionDate().toString(); |
|
|
|
|
|
|
|
|
if ("T1试模".equals(detail.getDetailItemDesc()) && detail.getDetailExcalCompletionDate() != null) { |
|
|
|
|
|
tOneTime = sdf.format(detail.getDetailExcalCompletionDate()); |
|
|
|
|
|
} else if ("OTS试模".equals(detail.getDetailItemDesc()) && detail.getDetailExcalCompletionDate() != null) { |
|
|
|
|
|
OTSTime = sdf.format(detail.getDetailExcalCompletionDate()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -405,31 +413,41 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
|
|
|
|
|
|
// 写入主标题 |
|
|
// 写入主标题 |
|
|
List<List<String>> titleData = Arrays.asList( |
|
|
List<List<String>> titleData = Arrays.asList( |
|
|
Arrays.asList("新项目零件质量开发工作计划进度表") |
|
|
|
|
|
|
|
|
Arrays.asList("新项目零件质量开发工作计划进度表", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "启动"+qidongDate, "") |
|
|
); |
|
|
); |
|
|
excelWriter.write(titleData, sheet); |
|
|
excelWriter.write(titleData, sheet); |
|
|
|
|
|
|
|
|
// 写入项目基本信息(左上角)和关键日期(右上角) |
|
|
// 写入项目基本信息(左上角)和关键日期(右上角) |
|
|
|
|
|
String startDate = partModelList != null && !partModelList.isEmpty() && partModelList.get(0).getPlanEndDate() != null ? |
|
|
|
|
|
new SimpleDateFormat("yyyy/M/d").format(partModelList.get(0).getPlanEndDate()) : ""; |
|
|
|
|
|
String ppapDate = partModelList != null && !partModelList.isEmpty() && partModelList.get(partModelList.size()-1).getPlanEndDate() != null ? |
|
|
|
|
|
new SimpleDateFormat("yyyy/M/d").format(partModelList.get(partModelList.size()-1).getPlanEndDate()) : ""; |
|
|
|
|
|
|
|
|
List<List<String>> projectInfo = Arrays.asList( |
|
|
List<List<String>> projectInfo = Arrays.asList( |
|
|
Arrays.asList("物料名称:", projectPart.getPartName(), "ZFTRW启动会日期:",partModelList!=null&&partModelList.get(0).getPlanEndDate()!=null? new SimpleDateFormat("yyyy/MM/dd").format(partModelList.get(0).getPlanEndDate()):"", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ), |
|
|
|
|
|
Arrays.asList("物料号:", projectPart.getPartCode(), "T1:", tOneTime,"", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
Arrays.asList("项目名称:", projectPart.getProjectName(), "OTS:", OTSTime, "", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
Arrays.asList("项目管理责任人:", projectPart.getPartLeader(), "PPAP:", partModelList!=null&&partModelList.get(partModelList.size()-1).getPlanEndDate()!=null?new SimpleDateFormat("yyyy/MM/dd").format(partModelList.get(partModelList.size()-1).getPlanEndDate()):"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
Arrays.asList("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "更新日期:", new SimpleDateFormat("yyyy/MM/dd").format(new Date())) |
|
|
|
|
|
|
|
|
Arrays.asList("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "会日期", ""), |
|
|
|
|
|
Arrays.asList("零件名", projectPart.getPartName()!= null ? projectPart.getPartName(): "", "项目名称", projectPart.getProjectName()!= null?projectPart.getProjectName():"","", "", "", "", "", "", "", "", "","","T1", tOneTime, "OTS", OTSTime), |
|
|
|
|
|
Arrays.asList("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""), |
|
|
|
|
|
Arrays.asList("零件号", projectPart.getPartCode() != null ? projectPart.getPartCode() : "", "责任人", projectPart.getPartLeader() != null ? projectPart.getPartLeader() : "","", "", "", "", "", "", "", "", "","", "PPAP", ppapDate, "更新日期", new SimpleDateFormat("yyyy/M/d").format(new Date())) |
|
|
); |
|
|
); |
|
|
excelWriter.write(projectInfo, sheet); |
|
|
excelWriter.write(projectInfo, sheet); |
|
|
|
|
|
|
|
|
// 空行 |
|
|
// 空行 |
|
|
excelWriter.write(Collections.singletonList(Arrays.asList("")), sheet); |
|
|
|
|
|
|
|
|
excelWriter.write(Collections.singletonList(Arrays.asList("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")), sheet); |
|
|
|
|
|
|
|
|
// 写入表头 - 根据图片中的列结构,完成进度分为10个子列 |
|
|
|
|
|
List<List<String>> headerData = Arrays.asList( |
|
|
|
|
|
Arrays.asList("序号", "内容", "时间(天)", "计划完成日期", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%", "完成进度%", "实际完成日期", "负责人", "完成状况") |
|
|
|
|
|
|
|
|
// 写入表头 - 第一行表头(合并单元格) |
|
|
|
|
|
List<List<String>> headerData1 = Arrays.asList( |
|
|
|
|
|
Arrays.asList("序号", "内容", "时间", "", "完成进度", "", "", "", "", "", "", "", "", "", "完成进度%", "实际完成日期", "负责人", "完成状况") |
|
|
|
|
|
); |
|
|
|
|
|
excelWriter.write(headerData1, sheet); |
|
|
|
|
|
|
|
|
|
|
|
// 写入表头 - 第二行表头(进度细分) |
|
|
|
|
|
List<List<String>> headerData2 = Arrays.asList( |
|
|
|
|
|
Arrays.asList("", "", "(天)", "计划完成日期", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%", "", "", "", "") |
|
|
); |
|
|
); |
|
|
excelWriter.write(headerData, sheet); |
|
|
|
|
|
|
|
|
excelWriter.write(headerData2, sheet); |
|
|
|
|
|
|
|
|
// 写入数据 |
|
|
// 写入数据 |
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); |
|
|
|
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/M/d"); |
|
|
List<List<String>> dataList = new ArrayList<>(); |
|
|
List<List<String>> dataList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
for (int i = 0; i < partModelList.size(); i++) { |
|
|
for (int i = 0; i < partModelList.size(); i++) { |
|
|
@ -445,7 +463,9 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
int progressPercent = 0; |
|
|
int progressPercent = 0; |
|
|
if (StringUtils.isNotBlank(progress)) { |
|
|
if (StringUtils.isNotBlank(progress)) { |
|
|
try { |
|
|
try { |
|
|
progressPercent = Integer.parseInt(progress.replace("%", "")); |
|
|
|
|
|
|
|
|
// 处理百分号 |
|
|
|
|
|
String cleanProgress = progress.replace("%", "").trim(); |
|
|
|
|
|
progressPercent = Integer.parseInt(cleanProgress); |
|
|
} catch (NumberFormatException e) { |
|
|
} catch (NumberFormatException e) { |
|
|
progressPercent = 0; |
|
|
progressPercent = 0; |
|
|
} |
|
|
} |
|
|
@ -460,7 +480,7 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
row.add(progress != null ? progress : ""); // 完成进度% |
|
|
|
|
|
|
|
|
row.add(progressPercent + "%"); // 完成进度% |
|
|
row.add(model.getExcalCompletionDate() != null ? dateFormat.format(model.getExcalCompletionDate()) : ""); // 实际完成日期 |
|
|
row.add(model.getExcalCompletionDate() != null ? dateFormat.format(model.getExcalCompletionDate()) : ""); // 实际完成日期 |
|
|
row.add(model.getPartLeader() != null ? model.getPartLeader() : ""); // 负责人 |
|
|
row.add(model.getPartLeader() != null ? model.getPartLeader() : ""); // 负责人 |
|
|
|
|
|
|
|
|
@ -471,6 +491,7 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
statusText = statusDict.get(status); |
|
|
statusText = statusDict.get(status); |
|
|
} else { |
|
|
} else { |
|
|
// 如果没有字典数据,根据状态值进行映射 |
|
|
// 如果没有字典数据,根据状态值进行映射 |
|
|
|
|
|
if (status != null) { |
|
|
switch (status) { |
|
|
switch (status) { |
|
|
case "2": |
|
|
case "2": |
|
|
statusText = "正常"; |
|
|
statusText = "正常"; |
|
|
@ -490,10 +511,11 @@ public class PmProjectManagePartModelServiceImpl extends ServiceImpl<PmProjectMa |
|
|
statusText = "已完成"; |
|
|
statusText = "已完成"; |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
statusText = status != null ? status : ""; |
|
|
|
|
|
|
|
|
statusText = status; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
row.add(statusText); |
|
|
row.add(statusText); |
|
|
|
|
|
|
|
|
dataList.add(row); |
|
|
dataList.add(row); |
|
|
|