From 12bfd8a94f5b5afe8c149e8de7e275a81a4bf77e Mon Sep 17 00:00:00 2001 From: “linengliang” <vanSuperEnergy@163.com> Date: 星期一, 04 十二月 2023 17:20:05 +0800 Subject: [PATCH] 保养标准导入 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java | 243 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 240 insertions(+), 3 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java index 5abbfad..3606d73 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java @@ -9,6 +9,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.*; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; @@ -19,14 +22,19 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.*; +import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; @@ -64,6 +72,19 @@ @Autowired @Lazy private IMaintenanceStandardWorkInstructionService maintenanceStandardWorkInstructionService; + + @Autowired + private IMaintenanceProjectService maintenanceProjectService; + + @Autowired + @Lazy + private IdentityService sysIdentityService; + @Autowired + @Lazy + private IMaintenanceProjectCategoryService maintenanceProjectCategoryService; + @Lazy + @Autowired + private IMaintenanceCycleService maintenanceCycleService; @@ -251,9 +272,220 @@ * @param response * @return */ - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, MaintenanceStandard.class); + @RequestMapping(value = "/importExcelOfTwoMaintenance", method = RequestMethod.POST) + public Result<?> importExcelOfTwoMaintenance(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + String exceptionInfo = ""; + int exceptionNum = 0; + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + try { + InputStream fis = file.getInputStream(); + XWPFDocument document = new XWPFDocument(fis); + XWPFParagraph mainTitleParagraph = document.getParagraphs().get(0); + if (mainTitleParagraph != null) { + // 鑾峰彇涓绘爣棰樻枃鏈唴瀹� + String mainTitle = mainTitleParagraph.getText(); + if(mainTitle.equals("鐢熶骇璁惧浜岀骇淇濆吇瑙勮寖")){ + for (XWPFTable table : document.getTables()) { + // 閬嶅巻琛ㄦ牸涓殑鎵�鏈夎 + int rowNumber = 0; + String equipmentNum = ""; + Equipment equipment = null; + MaintenanceStandard maintenanceStandard = null; + XWPFTableRow row0= table.getRow(0); + if(ObjectUtils.isNotNull(row0)){ + XWPFTableCell cellEquipmentNum = row0.getCell(3); + if(ObjectUtils.isNotNull(cellEquipmentNum)){ + equipmentNum =cellEquipmentNum.getText(); + equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentNum).eq("del_flag",0),false); + if(ObjectUtils.isNotNull(equipment)){ + maintenanceStandard = maintenanceStandardService.getOne(new QueryWrapper<MaintenanceStandard>().eq("version_status",2).eq("del_flag",0).eq("equipment_id",equipment.getId()),false); + if(ObjectUtils.isNull(maintenanceStandard)){ + maintenanceStandard = new MaintenanceStandard(); + maintenanceStandard.setNum(sysIdentityService.getNumByTypeAndLength("DailyMaintenanceStandard",4)); + maintenanceStandard.setEquipmentId(equipment.getId()); + maintenanceStandard.setAssignMode("1"); + maintenanceStandard.setVersion("1.0"); + maintenanceStandard.setVersionStatus("2"); + maintenanceStandardService.save(maintenanceStandard); + } + else { + continue; + } + } + else { + continue; + } + } + else { + continue; + } + } + else { + continue; + } + for (XWPFTableRow row : table.getRows()) { + XWPFTableCell cell0 = row.getCell(0); + XWPFTableCell cell2 = row.getCell(2); + if(rowNumber>3){ + String role = getMergedCellValue(cell0); + String projectName = cell2.getText(); + MaintenanceStandardDetail maintenanceStandardDetail = new MaintenanceStandardDetail(); + MaintenanceProjectCategory maintenanceProjectCategory = maintenanceProjectCategoryService.getOne(new QueryWrapper<MaintenanceProjectCategory>().eq("name","浜岀骇淇濆吇").eq("del_flag",0),false); + if(ObjectUtils.isNotNull(maintenanceProjectCategory)){ + MaintenanceProject maintenanceProject = maintenanceProjectService.getOne(new QueryWrapper<MaintenanceProject>().eq("name",projectName).eq("del_flag",0).eq("maintenance_project_category_id",maintenanceProjectCategory.getId()),false); + MaintenanceCycle maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","6鏈�").eq("version_status",2).eq("del_flag",0),false); + if (!ObjectUtils.isNotNull(maintenanceProject)) { + maintenanceProject = new MaintenanceProject(); + maintenanceProject.setNum(sysIdentityService.getNumByTypeAndLength("MainOfTwo", 4)); + maintenanceProject.setName(projectName); + maintenanceProject.setMaintenanceProjectCategoryId(maintenanceProjectCategory.getId()); + maintenanceProject.setDelFlag(0); + maintenanceProjectService.save(maintenanceProject); + } + maintenanceStandardDetail.setMaintenanceProjectId(maintenanceProject.getId()); + if(role.equals("缁翠慨浜哄憳淇濆吇鍐呭")){ + maintenanceStandardDetail.setMaintenanceRole("maintenance"); + } else if(role.equals("鎿嶄綔浜哄憳淇濆吇鍐呭")){ + maintenanceStandardDetail.setMaintenanceRole("operator"); + } + if(ObjectUtils.isNotNull(maintenanceCycle)){ + maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId()); + } + maintenanceStandardDetailService.save(maintenanceStandardDetail); + } + + } + rowNumber++; + } + } + } + } else { + System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�"); + } + + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + return Result.error("鏂囦欢瀵煎叆澶辫触锛�"); + } + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcelOfThreeMaintenance", method = RequestMethod.POST) + public Result<?> importExcelOfThreeMaintenance(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + String exceptionInfo = ""; + int exceptionNum = 0; + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + try { + InputStream fis = file.getInputStream(); + XWPFDocument document = new XWPFDocument(fis); + XWPFParagraph mainTitleParagraph = document.getParagraphs().get(0); + if (mainTitleParagraph != null) { + // 鑾峰彇涓绘爣棰樻枃鏈唴瀹� + String mainTitle = mainTitleParagraph.getText(); + if(mainTitle.equals("鐢熶骇璁惧涓夌骇淇濆吇瑙勮寖")){ + for (XWPFTable table : document.getTables()) { + // 閬嶅巻琛ㄦ牸涓殑鎵�鏈夎 + int rowNumber = 0; + String equipmentNum = ""; + Equipment equipment = null; + MaintenanceStandard maintenanceStandard = null; + XWPFTableRow row0= table.getRow(0); + if(ObjectUtils.isNotNull(row0)){ + XWPFTableCell cellEquipmentNum = row0.getCell(3); + if(ObjectUtils.isNotNull(cellEquipmentNum)){ + equipmentNum =cellEquipmentNum.getText(); + equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentNum).eq("del_flag",0),false); + if(ObjectUtils.isNotNull(equipment)){ + maintenanceStandard = maintenanceStandardService.getOne(new QueryWrapper<MaintenanceStandard>().eq("version_status",2).eq("del_flag",0).eq("equipment_id",equipment.getId()),false); + if(ObjectUtils.isNull(maintenanceStandard)){ + maintenanceStandard = new MaintenanceStandard(); + maintenanceStandard.setNum(sysIdentityService.getNumByTypeAndLength("DailyMaintenanceStandard",4)); + maintenanceStandard.setEquipmentId(equipment.getId()); + maintenanceStandard.setAssignMode("1"); + maintenanceStandard.setVersion("1.0"); + maintenanceStandard.setVersionStatus("2"); + maintenanceStandardService.save(maintenanceStandard); + } + else { + continue; + } + } + else { + continue; + } + } + else { + continue; + } + } + else { + continue; + } + for (XWPFTableRow row : table.getRows()) { + XWPFTableCell cell0 = row.getCell(0); + XWPFTableCell cell1 = row.getCell(1); + XWPFTableCell cell2 = row.getCell(2); + if(rowNumber>2){ + String location = getMergedCellValue(cell0); + String projectName = cell1.getText(); + String projectStandard = cell2.getText(); + MaintenanceStandardDetail maintenanceStandardDetail = new MaintenanceStandardDetail(); + MaintenanceProjectCategory maintenanceProjectCategory = maintenanceProjectCategoryService.getOne(new QueryWrapper<MaintenanceProjectCategory>().eq("name","涓夌骇淇濆吇").eq("del_flag",0),false); + if(ObjectUtils.isNotNull(maintenanceProjectCategory)){ + MaintenanceProject maintenanceProject = maintenanceProjectService.getOne(new QueryWrapper<MaintenanceProject>().eq("name",projectName).eq("standard",projectStandard).eq("del_flag",0).eq("maintenance_project_category_id",maintenanceProjectCategory.getId()),false); + MaintenanceCycle maintenanceCycle = null; + if(equipment.getEquipmentImportanceId().equals("A")){ + maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","3骞�").eq("version_status",2).eq("del_flag",0),false); + }else { + maintenanceCycle = maintenanceCycleService.getOne(new QueryWrapper<MaintenanceCycle>().eq("name","4骞�").eq("version_status",2).eq("del_flag",0),false); + } + if (!ObjectUtils.isNotNull(maintenanceProject)) { + maintenanceProject = new MaintenanceProject(); + maintenanceProject.setNum(sysIdentityService.getNumByTypeAndLength("MainOfTwo", 4)); + maintenanceProject.setName(projectName); + maintenanceProject.setLocation(location); + maintenanceProject.setMaintenanceProjectCategoryId(maintenanceProjectCategory.getId()); + maintenanceProject.setDelFlag(0); + maintenanceProjectService.save(maintenanceProject); + } + maintenanceStandardDetail.setMaintenanceProjectId(maintenanceProject.getId()); + maintenanceStandardDetail.setLocation(location); + maintenanceStandardDetail.setMaintenanceCycleId(maintenanceCycle.getId()); + maintenanceStandardDetailService.save(maintenanceStandardDetail); + } + + } + rowNumber++; + } + } + } + } else { + System.out.println("鏃犳硶瑙f瀽璇ユ枃浠�"); + } + + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + return Result.error("鏂囦欢瀵煎叆澶辫触锛�"); } /** @@ -406,5 +638,10 @@ return Result.error("瀹℃牳澶辫触!"); } } + // 鑾峰彇鍚堝苟鍗曞厓鏍肩殑鍊� + private String getMergedCellValue(XWPFTableCell cell) { + // 瀵逛簬鍚堝苟鍗曞厓鏍硷紝鑾峰彇绗竴涓钀界殑鏂囨湰浣滀负鍚堝苟鍗曞厓鏍肩殑鍊� + return cell.getParagraphs().get(0).getText(); + } } -- Gitblit v1.9.3