diff --git a/jeecg-boot-module-system/jeecg-boot-module-system.iml b/jeecg-boot-module-system/jeecg-boot-module-system.iml
index 4a1bf6f..5283289 100644
--- a/jeecg-boot-module-system/jeecg-boot-module-system.iml
+++ b/jeecg-boot-module-system/jeecg-boot-module-system.iml
@@ -191,15 +191,6 @@
-
-
-
-
-
-
-
-
-
@@ -289,6 +280,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -308,7 +311,7 @@
-
+
@@ -328,8 +331,6 @@
-
-
\ No newline at end of file
diff --git a/jeecg-boot-module-system/pom.xml b/jeecg-boot-module-system/pom.xml
index bb5c6a4..c1d91f7 100644
--- a/jeecg-boot-module-system/pom.xml
+++ b/jeecg-boot-module-system/pom.xml
@@ -74,6 +74,32 @@
compile
+
+
+
+ org.apache.poi
+ poi
+ 4.1.2
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.1.2
+
+
+
+ joda-time
+ joda-time
+ 2.10.1
+
+
+
+ junit
+ junit
+ 4.12
+
+
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/workorderController/ExcelController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/workorderController/ExcelController.java
new file mode 100644
index 0000000..c14078c
--- /dev/null
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/workorderController/ExcelController.java
@@ -0,0 +1,43 @@
+package org.jeecg.modules.api.workorderController;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.apiService.ExcelService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+
+@Api(tags="Excel导入导出相关接口")
+@RestController
+@RequestMapping("/workorder/excel")
+@Slf4j
+public class ExcelController {
+
+ //excel信息
+ @Resource
+ private ExcelService excelService;
+ /****************************************************************************************************/
+
+ @ApiOperation(value="导入导出-工单信息导入", notes="导入导出-工单信息导入")
+ @RequestMapping(value = "/templateImport", method = {RequestMethod.POST})
+ public Result> templateImport(String path){
+
+ return excelService.templateImport(path);
+ }
+
+ @ApiOperation(value="导入导出-工单信息导出", notes="导入导出-工单信息导出")
+ @RequestMapping(value = "/templateExport", method = {RequestMethod.POST})
+ public Result> templateExport(String templateId){
+ return excelService.templateExport(templateId);
+ }
+
+
+}
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ExcelService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ExcelService.java
new file mode 100644
index 0000000..b953f14
--- /dev/null
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/ExcelService.java
@@ -0,0 +1,24 @@
+package org.jeecg.modules.apiService;
+
+import org.jeecg.common.api.vo.Result;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+
+public interface ExcelService {
+
+ /**
+ * 工单导入
+ * @param path 导入文件路径
+ * @return
+ */
+ public Result> templateImport(String path);
+
+ /**
+ * 工单导出
+ * @param templateId 工单编号
+ * @return
+ */
+ public Result> templateExport(String templateId);
+
+}
diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ExcelServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ExcelServiceImpl.java
new file mode 100644
index 0000000..6e17fe8
--- /dev/null
+++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/apiService/impl/ExcelServiceImpl.java
@@ -0,0 +1,605 @@
+package org.jeecg.modules.apiService.impl;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.apiService.ExcelService;
+import org.jeecg.modules.workorderGeneralStepfour.entity.WorkorderGeneralStepfour;
+import org.jeecg.modules.workorderGeneralStepfour.service.IWorkorderGeneralStepfourService;
+import org.jeecg.modules.workorderGeneralStepone.entity.WorkorderGeneralStepone;
+import org.jeecg.modules.workorderGeneralStepone.service.IWorkorderGeneralSteponeService;
+import org.jeecg.modules.workorderGeneralStepthree.entity.WorkorderGeneralStepthree;
+import org.jeecg.modules.workorderGeneralStepthree.service.IWorkorderGeneralStepthreeService;
+import org.jeecg.modules.workorderGeneralSteptwo.entity.WorkorderGeneralSteptwo;
+import org.jeecg.modules.workorderGeneralSteptwo.service.IWorkorderGeneralSteptwoService;
+import org.jeecg.modules.workorderItemCheck.entity.WorkorderItemCheck;
+import org.jeecg.modules.workorderItemCheck.service.IWorkorderItemCheckService;
+import org.jeecg.modules.workorderParamStepfour.entity.WorkorderParamStepfour;
+import org.jeecg.modules.workorderParamStepfour.service.IWorkorderParamStepfourService;
+import org.jeecg.modules.workorderParamStepone.entity.WorkorderParamStepone;
+import org.jeecg.modules.workorderParamStepone.service.IWorkorderParamSteponeService;
+import org.jeecg.modules.workorderParamStepthree.entity.WorkorderParamStepthree;
+import org.jeecg.modules.workorderParamStepthree.service.IWorkorderParamStepthreeService;
+import org.jeecg.modules.workorderParamSteptwo.entity.WorkorderParamSteptwo;
+import org.jeecg.modules.workorderParamSteptwo.service.IWorkorderParamSteptwoService;
+import org.jeecg.modules.workorderProcess.entity.WorkorderProcess;
+import org.jeecg.modules.workorderProcess.service.IWorkorderProcessService;
+import org.jeecg.modules.workorderStep.entity.WorkorderStep;
+import org.jeecg.modules.workorderStep.service.IWorkorderStepService;
+import org.jeecg.modules.workorderTemplate.entity.WorkorderTemplate;
+import org.jeecg.modules.workorderTemplate.service.IWorkorderTemplateService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class ExcelServiceImpl implements ExcelService {
+
+ //工单信息
+ @Resource
+ private IWorkorderTemplateService workorderTemplateService;
+
+ //工序卡信息
+ @Resource
+ private IWorkorderStepService workorderStepService;
+
+ //工序流程信息
+ @Resource
+ private IWorkorderProcessService workorderProcessService;
+
+ //检查项目信息
+ @Resource
+ private IWorkorderItemCheckService workorderItemCheckService;
+
+ //工序卡常规参数
+ @Resource
+ private IWorkorderGeneralSteponeService workorderGeneralSteponeService;
+ @Resource
+ private IWorkorderGeneralSteptwoService workorderGeneralSteptwoService;
+ @Resource
+ private IWorkorderGeneralStepthreeService workorderGeneralStepthreeService;
+ @Resource
+ private IWorkorderGeneralStepfourService workorderGeneralStepfourService;
+
+ //工序卡列表参数
+ @Resource
+ private IWorkorderParamSteponeService workorderParamSteponeService;
+ @Resource
+ private IWorkorderParamSteptwoService workorderParamSteptwoService;
+ @Resource
+ private IWorkorderParamStepthreeService workorderParamStepthreeService;
+ @Resource
+ private IWorkorderParamStepfourService workorderParamStepfourService;
+ /******************************************************************************************************************/
+ /**********************************************主体入口************************************************************/
+ //工单导入
+ @Override
+ public Result> templateImport(String path) {
+ try {
+ //1、获取excel数据
+ List templateList = getImportData(path);
+
+ //2、将数据录入到数据库
+ Boolean result = workorderTemplateService.saveBatch(templateList);
+ if(result){
+ return Result.OK("数据导入成功!");
+ }else {
+ return Result.error("数据导入失败!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.error("数据导入失败!");
+ }
+ }
+
+ //工单导出
+ @Override
+ public Result> templateExport(String templateId) {
+ try {
+ template(templateId);
+ System.out.println("test over!");
+ return Result.OK("导出成功!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Result.OK("导出失败!");
+ }
+ }
+
+ /******************************************************************************************************************/
+ /**********************************************工单导入************************************************************/
+ //获取导入工单数据
+ public List getImportData(String path) throws Exception{
+ //path = "F:\\temp\\工单导入测试数据.xlsx";
+ //工单列表
+ List templateList = new ArrayList<>();
+
+ //创建文件流
+ InputStream fileInputStream = null;
+ try{
+ //获取文件流
+ fileInputStream = new FileInputStream(path);
+
+ //1、创建一个工作簿
+ Workbook workbook = new XSSFWorkbook(fileInputStream);
+ //2、得到一个工作表
+ Sheet sheet = workbook.getSheetAt(0);
+
+ //3、获取表中内容
+ //3.1、获取表中有多少行数据
+ int rowCount = sheet.getPhysicalNumberOfRows();
+ for (int rowNum = 1; rowNum < rowCount; rowNum++) {
+ WorkorderTemplate template = new WorkorderTemplate();
+ Row rowData = sheet.getRow(rowNum);
+ if(rowData != null){
+ template.setTaskNo(rowData.getCell(0).getStringCellValue());
+ template.setResponsibler(rowData.getCell(1).getStringCellValue());
+ template.setModel(rowData.getCell(2).getStringCellValue());
+ template.setNumber((int)rowData.getCell(3).getNumericCellValue());
+ }
+ templateList.add(template);
+ }
+
+ return templateList;
+
+ }catch (Exception e){
+ e.printStackTrace();
+ return null;
+ }finally {
+ if(null != fileInputStream){
+ //操作结束,关闭文件
+ fileInputStream.close();
+ }
+ }
+ }
+
+
+
+
+
+ /******************************************************************************************************************/
+ /**********************************************工单导出************************************************************/
+ //创建工作表
+ public void template(String templateId) throws Exception{
+ //创建一个工作表
+ Workbook workbook = new SXSSFWorkbook();
+
+ //编辑工作表内容
+ sheet(workbook, templateId);
+
+ //导出工作表
+ FileOutputStream out = new FileOutputStream("F:\\temp\\test0001.xlsx");
+ workbook.write(out);
+
+ //操作结束,关闭文件流
+ out.close();
+
+ //清除临时文件
+ ((SXSSFWorkbook) workbook).dispose();
+
+ }
+
+ //工作簿
+ public void sheet(Workbook workbook, String templateId) {
+ WorkorderTemplate template = getExportData(templateId);
+
+ int stepCount = template.getWorkorderStepList().size();//工序卡数量
+ for (int stepNum = 0; stepNum < stepCount; stepNum++) {
+ int lineNum = 0;//写入单元行
+ int firstLine= 0;//合并单元起始行
+ String stepName = template.getWorkorderStepList().get(stepNum).getName();//工序卡名称
+ Sheet sheet = workbook.createSheet(stepName);//创建工序卡
+ int processCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().size();//工序数量
+ //工序卡1
+ String stepId = template.getWorkorderStepList().get(stepNum).getId();//工序卡id
+ for (int processNum = 0; processNum < processCount; processNum++) {
+ int line = 0;//合并行数(检查项目)
+ //工序
+ String p_stepId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getStepId();//关联工序卡id
+ if(p_stepId.equals(stepId)){
+ String processId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getId();//工序id
+ String processName = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getName();//工序名称
+ int itemCheckCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().size();//检查项目数量
+
+ for (int itemNum = 0; itemNum < itemCheckCount; itemNum++) {
+ //检查项目
+ String i_processId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getProcessId();//关联工序id
+ if(i_processId.equals(processId)){
+ line++;
+ String itemCheckId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getId();//检查项目id
+ String itemCheckName = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getName();//检查项目名称
+ int paramOneCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteponeList().size();
+ for (int paramNum = 0; paramNum < paramOneCount; paramNum++) {
+ String p_itemCheckId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteponeList().get(paramNum).getProcessId();//关联检查项目id
+ if(p_itemCheckId.equals(itemCheckId)){
+ //检查项目参数-工序卡1
+ WorkorderParamStepone paramStepone = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteponeList().get(paramNum);
+ if (null != paramStepone) {
+ //第n行
+ //int lineNum = (stepNum * processCount * itemCheckCount) + (itemCheckCount * itemNum) + itemNum;
+ Row row = sheet.createRow((lineNum));
+ //第n行第n列
+ Cell process = row.createCell(0);
+ process.setCellValue(processName);
+ Cell itemCheck = row.createCell(1);
+ itemCheck.setCellValue(itemCheckName);
+ Cell specs = row.createCell(2);
+ specs.setCellValue(paramStepone.getSpecs());
+ Cell param1 = row.createCell(3);
+ param1.setCellValue(paramStepone.getParam1());
+ Cell param2 = row.createCell(4);
+ param2.setCellValue(paramStepone.getParam2());
+ Cell param3 = row.createCell(5);
+ param3.setCellValue(paramStepone.getParam3());
+ Cell param4 = row.createCell(6);
+ param4.setCellValue(paramStepone.getParam4());
+ Cell param5 = row.createCell(7);
+ param5.setCellValue(paramStepone.getParam5());
+ Cell param6 = row.createCell(8);
+ param6.setCellValue(paramStepone.getParam6());
+ Cell param7 = row.createCell(9);
+ param7.setCellValue(paramStepone.getParam7());
+ Cell param8 = row.createCell(10);
+ param8.setCellValue(paramStepone.getParam8());
+ Cell param9 = row.createCell(11);
+ param9.setCellValue(paramStepone.getParam9());
+ Cell param10 = row.createCell(12);
+ param10.setCellValue(paramStepone.getParam10());
+ Cell param11 = row.createCell(13);
+ param11.setCellValue(paramStepone.getParam11());
+ Cell param12 = row.createCell(14);
+ param12.setCellValue(paramStepone.getParam12());
+ Cell param13 = row.createCell(15);
+ param13.setCellValue(paramStepone.getParam13());
+ Cell param14 = row.createCell(16);
+ param14.setCellValue(paramStepone.getParam14());
+ Cell param15 = row.createCell(17);
+ param15.setCellValue(paramStepone.getParam15());
+ Cell param16 = row.createCell(18);
+ param16.setCellValue(paramStepone.getParam16());
+ Cell param17 = row.createCell(19);
+ param17.setCellValue(paramStepone.getParam17());
+ Cell param18 = row.createCell(20);
+ param18.setCellValue(paramStepone.getParam18());
+ Cell param19 = row.createCell(21);
+ param19.setCellValue(paramStepone.getParam19());
+ Cell param20 = row.createCell(22);
+ param20.setCellValue(paramStepone.getParam20());
+ Cell remark = row.createCell(23);
+ remark.setCellValue(paramStepone.getRemark());
+ lineNum++;
+ } else {
+ break;
+ }
+
+ }
+ }
+
+ //检查项目参数-工序卡2
+ int paramTwoCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteptwoList().size();
+ for (int paramNum = 0; paramNum < paramTwoCount; paramNum++) {
+ String p_itemCheckId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteptwoList().get(paramNum).getProcessId();//关联检查项目id
+ if(p_itemCheckId.equals(itemCheckId)){
+ //工序卡1
+ WorkorderParamSteptwo paramSteptwo = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamSteptwoList().get(paramNum);
+ if (null != paramSteptwo) {
+ //第n行
+ //int lineNum = (stepNum * processCount * itemCheckCount) + (itemCheckCount * itemNum) + itemNum;
+ Row row = sheet.createRow((lineNum));
+ //第n行第n列
+ Cell process = row.createCell(0);
+ process.setCellValue(processName);
+ Cell itemCheck = row.createCell(1);
+ itemCheck.setCellValue(itemCheckName);
+ Cell specs = row.createCell(2);
+ specs.setCellValue(paramSteptwo.getSpecs());
+ Cell param1 = row.createCell(3);
+ param1.setCellValue(paramSteptwo.getParam1());
+ Cell param2 = row.createCell(4);
+ param2.setCellValue(paramSteptwo.getParam2());
+ Cell param3 = row.createCell(5);
+ param3.setCellValue(paramSteptwo.getParam3());
+ Cell param4 = row.createCell(6);
+ param4.setCellValue(paramSteptwo.getParam4());
+ Cell param5 = row.createCell(7);
+ param5.setCellValue(paramSteptwo.getParam5());
+ Cell param6 = row.createCell(8);
+ param6.setCellValue(paramSteptwo.getParam6());
+ Cell param7 = row.createCell(9);
+ param7.setCellValue(paramSteptwo.getParam7());
+ Cell param8 = row.createCell(10);
+ param8.setCellValue(paramSteptwo.getParam8());
+ Cell param9 = row.createCell(11);
+ param9.setCellValue(paramSteptwo.getParam9());
+ Cell param10 = row.createCell(12);
+ param10.setCellValue(paramSteptwo.getParam10());
+ Cell operator = row.createCell(23);
+ operator.setCellValue(paramSteptwo.getOperator());
+ lineNum++;
+ } else {
+ break;
+ }
+
+ }
+ }
+
+ //检查项目参数-工序卡3
+ int paramThreeCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepthreeList().size();
+ for (int paramNum = 0; paramNum < paramThreeCount; paramNum++) {
+ String p_itemCheckId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepthreeList().get(paramNum).getProcessId();//关联检查项目id
+ if(p_itemCheckId.equals(itemCheckId)){
+ //工序卡1
+ WorkorderParamStepthree paramStepthree = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepthreeList().get(paramNum);
+ if (null != paramStepthree) {
+ //第n行
+ //int lineNum = (stepNum * processCount * itemCheckCount) + (itemCheckCount * itemNum) + itemNum;
+ Row row = sheet.createRow((lineNum));
+ //第n行第n列
+ Cell process = row.createCell(0);
+ process.setCellValue(processName);
+ Cell itemCheck = row.createCell(1);
+ itemCheck.setCellValue(itemCheckName);
+ Cell specs = row.createCell(2);
+ specs.setCellValue(paramStepthree.getSpecs());
+ Cell param1 = row.createCell(3);
+ param1.setCellValue(paramStepthree.getParam1());
+ Cell param2 = row.createCell(4);
+ param2.setCellValue(paramStepthree.getParam2());
+ Cell param3 = row.createCell(5);
+ param3.setCellValue(paramStepthree.getParam3());
+ Cell param4 = row.createCell(6);
+ param4.setCellValue(paramStepthree.getParam4());
+ Cell param5 = row.createCell(7);
+ param5.setCellValue(paramStepthree.getParam5());
+ Cell param6 = row.createCell(8);
+ param6.setCellValue(paramStepthree.getParam6());
+ Cell param7 = row.createCell(9);
+ param7.setCellValue(paramStepthree.getParam7());
+ Cell param8 = row.createCell(10);
+ param8.setCellValue(paramStepthree.getParam8());
+ Cell param9 = row.createCell(11);
+ param9.setCellValue(paramStepthree.getParam9());
+ Cell param10 = row.createCell(12);
+ param10.setCellValue(paramStepthree.getParam10());
+ Cell operator = row.createCell(23);
+ operator.setCellValue(paramStepthree.getOperator());
+ lineNum++;
+ } else {
+ break;
+ }
+
+ }
+ }
+
+ //检查项目参数-工序卡4
+ int paramFourCount = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepfourList().size();
+ for (int paramNum = 0; paramNum < paramFourCount; paramNum++) {
+ String p_itemCheckId = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepfourList().get(paramNum).getProcessId();//关联检查项目id
+ if(p_itemCheckId.equals(itemCheckId)){
+ //工序卡1
+ WorkorderParamStepfour paramStepfour = template.getWorkorderStepList().get(stepNum).getWorkorderProcessList().get(processNum).getWorkorderItemCheckList().get(itemNum).getWorkorderParamStepfourList().get(paramNum);
+ if (null != paramStepfour) {
+ //第n行
+ //int lineNum = (stepNum * processCount * itemCheckCount) + (itemCheckCount * itemNum) + itemNum;
+ Row row = sheet.createRow((lineNum));
+ //第n行第n列
+ Cell process = row.createCell(0);
+ process.setCellValue(processName);
+ Cell itemCheck = row.createCell(1);
+ itemCheck.setCellValue(itemCheckName);
+ Cell specs = row.createCell(2);
+ specs.setCellValue(paramStepfour.getSpecs());
+ Cell param1 = row.createCell(3);
+ param1.setCellValue(paramStepfour.getParam1());
+ Cell param2 = row.createCell(4);
+ param2.setCellValue(paramStepfour.getParam2());
+ Cell param3 = row.createCell(5);
+ param3.setCellValue(paramStepfour.getParam3());
+ Cell param4 = row.createCell(6);
+ param4.setCellValue(paramStepfour.getParam4());
+ Cell param5 = row.createCell(7);
+ param5.setCellValue(paramStepfour.getParam5());
+ Cell param6 = row.createCell(8);
+ param6.setCellValue(paramStepfour.getParam6());
+ Cell param7 = row.createCell(9);
+ param7.setCellValue(paramStepfour.getParam7());
+ Cell param8 = row.createCell(10);
+ param8.setCellValue(paramStepfour.getParam8());
+ Cell param9 = row.createCell(11);
+ param9.setCellValue(paramStepfour.getParam9());
+ Cell param10 = row.createCell(12);
+ param10.setCellValue(paramStepfour.getParam10());
+ Cell operator = row.createCell(23);
+ operator.setCellValue(paramStepfour.getOperator());
+ lineNum++;
+ } else {
+ break;
+ }
+
+ }
+ }
+
+ }
+ }
+ }
+ sheet.addMergedRegion(new CellRangeAddress(firstLine,firstLine+line,0,0));//合并单元格
+ firstLine = firstLine+line+1;//改变下一个起始行位置
+ }
+ }
+ }
+
+ //获取数据
+ public WorkorderTemplate getExportData(String templateId){
+ //查询工单信息
+ WorkorderTemplate workorderTemplate = workorderTemplateService
+ .lambdaQuery()
+ .eq(WorkorderTemplate::getId, templateId)
+ .one();
+
+ //查询工序卡信息
+ List stepList = workorderStepService
+ .lambdaQuery()
+ .list();
+
+ //查询工序信息
+ List processList = workorderProcessService
+ .lambdaQuery()
+ .list();
+
+ //查询检查项目信息
+ List itemCheckList = workorderItemCheckService
+ .lambdaQuery()
+ .list();
+
+ //根据工单id查询常规参数
+ List GeneralSteponeList = workorderGeneralSteponeService
+ .lambdaQuery()
+ .eq(WorkorderGeneralStepone::getTemplateId, templateId)
+ .list();
+ List GeneralSteptwoList = workorderGeneralSteptwoService
+ .lambdaQuery()
+ .eq(WorkorderGeneralSteptwo::getTemplateId, templateId)
+ .list();
+ List GeneralStepthreeList = workorderGeneralStepthreeService
+ .lambdaQuery()
+ .eq(WorkorderGeneralStepthree::getTemplateId, templateId)
+ .list();
+ List GeneralStepfourList = workorderGeneralStepfourService
+ .lambdaQuery()
+ .eq(WorkorderGeneralStepfour::getTemplateId, templateId)
+ .list();
+
+ //根据工单id查询检查项目参数
+ List paramSteponeList = workorderParamSteponeService
+ .lambdaQuery()
+ .eq(WorkorderParamStepone::getTemplateId, templateId)
+ .list();
+ List paramSteptwoList = workorderParamSteptwoService
+ .lambdaQuery()
+ .eq(WorkorderParamSteptwo::getTemplateId, templateId)
+ .list();
+ List paramStepthreeList = workorderParamStepthreeService
+ .lambdaQuery()
+ .eq(WorkorderParamStepthree::getTemplateId, templateId)
+ .list();
+ List paramStepfourList = workorderParamStepfourService
+ .lambdaQuery()
+ .eq(WorkorderParamStepfour::getTemplateId, templateId)
+ .list();
+
+ //一、将检查项目参数对象放入对应检查项目对象下
+ for (WorkorderItemCheck workorderItemCheck : itemCheckList) {
+ //工序卡1
+ List workorderParamSteponeList = new ArrayList<>();
+ for (WorkorderParamStepone workorderParamStepone : paramSteponeList) {
+ if(workorderParamStepone.getProcessId().equals(workorderItemCheck.getId()) ){
+ workorderParamSteponeList.add(workorderParamStepone);
+ }
+ }
+ workorderItemCheck.setWorkorderParamSteponeList(workorderParamSteponeList);
+
+ //工序卡2
+ List workorderParamSteptwoList = new ArrayList<>();
+ for (WorkorderParamSteptwo workorderParamSteptwo : paramSteptwoList) {
+ if(workorderParamSteptwo.getProcessId().equals(workorderItemCheck.getId())){
+ workorderParamSteptwoList.add(workorderParamSteptwo);
+ }
+ }
+ workorderItemCheck.setWorkorderParamSteptwoList(workorderParamSteptwoList);
+
+ //工序卡3
+ List workorderParamStepthreeList = new ArrayList<>();
+ for (WorkorderParamStepthree workorderParamStepthree : paramStepthreeList) {
+ if(workorderParamStepthree.getProcessId().equals(workorderItemCheck.getId())){
+ workorderParamStepthreeList.add(workorderParamStepthree);
+ }
+ }
+ workorderItemCheck.setWorkorderParamStepthreeList(workorderParamStepthreeList);
+
+ //工序卡4
+ List workorderParamStepfourList = new ArrayList<>();
+ for (WorkorderParamStepfour workorderParamStepfour : paramStepfourList) {
+ if(workorderParamStepfour.getProcessId().equals(workorderItemCheck.getId())){
+ workorderParamStepfourList.add(workorderParamStepfour);
+ }
+ }
+ workorderItemCheck.setWorkorderParamStepfourList(workorderParamStepfourList);
+
+ }
+
+ //二、将检查项目对象放入对应工序流程对象下
+ for (WorkorderProcess workorderProcess : processList) {
+ List workorderItemCheckList = new ArrayList<>();
+ for (WorkorderItemCheck workorderItemCheck : itemCheckList) {
+ if(workorderItemCheck.getProcessId().equals(workorderProcess.getId())){
+ workorderItemCheckList.add(workorderItemCheck);
+ }
+ }
+ workorderProcess.setWorkorderItemCheckList(workorderItemCheckList);
+ }
+
+ //三、将工序流程对象放入对应工序卡对象下
+ for (WorkorderStep workorderStep : stepList) {
+ //工序参数
+ List workorderProcessList = new ArrayList<>();
+ for (WorkorderProcess workorderProcess : processList) {
+ if (workorderProcess.getStepId().equals(workorderStep.getId())) {
+ workorderProcessList.add(workorderProcess);
+ }
+ }
+ workorderStep.setWorkorderProcessList(workorderProcessList);
+
+ //常规参数(待优化--冗余list)
+ //工序卡1
+ List workorderGeneralSteponeList = new ArrayList<>();
+ for (WorkorderGeneralStepone generalStepone : GeneralSteponeList) {
+ if (generalStepone.getStepId().equals(workorderStep.getId())) {
+ workorderGeneralSteponeList.add(generalStepone);
+ }
+ }
+ workorderStep.setWorkorderGeneralSteponeList(workorderGeneralSteponeList);
+
+ //工序卡2
+ List workorderGeneralSteptwoList = new ArrayList<>();
+ for (WorkorderGeneralSteptwo generalSteptwo : GeneralSteptwoList) {
+ if (generalSteptwo.getStepId().equals(workorderStep.getId())) {
+ workorderGeneralSteptwoList.add(generalSteptwo);
+ }
+ }
+ workorderStep.setWorkorderGeneralSteptwoList(workorderGeneralSteptwoList);
+
+ //工序卡3
+ List workorderGeneralStepthreeList = new ArrayList<>();
+ for (WorkorderGeneralStepthree generalStepthree : GeneralStepthreeList) {
+ if (generalStepthree.getStepId().equals(workorderStep.getId())) {
+ workorderGeneralStepthreeList.add(generalStepthree);
+ }
+ }
+ workorderStep.setWorkorderGeneralStepthreeList(workorderGeneralStepthreeList);
+
+ //工序卡4
+ List workorderGeneralStepfourList = new ArrayList<>();
+ for (WorkorderGeneralStepfour generalStepfour : GeneralStepfourList) {
+ if (generalStepfour.getStepId().equals(workorderStep.getId())) {
+ workorderGeneralStepfourList.add(generalStepfour);
+ }
+ }
+ workorderStep.setWorkorderGeneralStepfourList(workorderGeneralStepfourList);
+ }
+
+ //四、将工序卡对象放入对应工单对象下
+ workorderTemplate.setWorkorderStepList(stepList);
+
+ return workorderTemplate;
+ }
+
+}