From ae33e68baf21878ce145d75ac377d14c1e2b2a82 Mon Sep 17 00:00:00 2001 From: “linengliang” <vanSuperEnergy@163.com> Date: 星期三, 13 十二月 2023 14:59:26 +0800 Subject: [PATCH] 设备台账 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java | 310 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 294 insertions(+), 16 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java index 403e04f..b93032f 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyInspectionStandardController.java @@ -2,28 +2,39 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.ImportExcelUtil; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.vo.InspectionStandardImportVo; +import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Autowired; 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.List; -import java.util.Map; +import java.util.*; /** * @Description: mom_eam_inspection_project @@ -44,6 +55,15 @@ @Autowired private IDailyInspectionStandardDetailService dailyInspectionStandardDetailService; + + @Autowired + private IdentityService identityService; + + @Autowired + private IInspectionProjectService inspectionProjectService; + + @Autowired + private IInspectionCycleService inspectionCycleService; /** * 鍒嗛〉鍒楄〃鏌ヨ * @@ -90,8 +110,8 @@ */ @GetMapping("findInspectionStandardList") public Result<?> findInspectionStandardList(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam Map<String, Object> params) { + @RequestParam("pageSize") Integer pageSize, + @RequestParam Map<String, Object> params) { IPage<Map<String, Object>> inspectionStandardList = dailyInspectionStandardService.findInspectionStandardList(pageNo, pageSize, params); return Result.ok(inspectionStandardList); } @@ -107,6 +127,9 @@ @PostMapping(value = "/add") @Transactional(rollbackFor = { Exception.class }) public Result<String> add(@RequestBody DailyInspectionStandard dailyInspectionStandard) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + dailyInspectionStandard.setWritePerson(sysUser.getRealname()); + dailyInspectionStandard.setAssignMode("1"); dailyInspectionStandardService.save(dailyInspectionStandard); List<DailyInspectionStandardDetail> dailyInspectionStandardDetaillist = dailyInspectionStandard.getDailyInspectionStandardDetaillist(); DailyInspectionStandardDetail isd = null; @@ -133,6 +156,7 @@ @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result<String> edit(@RequestBody DailyInspectionStandard dailyInspectionStandard) { + dailyInspectionStandard.setApprovalStatus("1"); dailyInspectionStandardService.updateById(dailyInspectionStandard); //1.鍒犻櫎鍘熺偣妫�椤圭洰 List<DailyInspectionStandardDetail> dailyInspectionStandardDetails = dailyInspectionStandardDetailService.lambdaQuery() @@ -236,8 +260,179 @@ * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, DailyInspectionStandard.class); + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + // 閿欒淇℃伅 + List<String> errorMessage = new ArrayList<>(); + int successLines = 0, errorLines = 0; + //a = 1寮�濮嬭鍙栫偣妫�椤圭洰锛沚 = 1寮�濮嬭鍙栧懆淇濆吇椤圭洰锛沜 = 1璇ヨ澶囧鍏ヤ俊鎭瓨鍦ㄩ敊璇紱projectColumnIndex鐐规椤圭洰鎵�鍦ㄥ垪锛沵aintenanceColumnIndex鍛ㄤ繚鍏婚」鐩墍鍦ㄥ垪 + int a = 0,b = 0,c = 0,projectColumnIndex = -1,maintenanceColumnIndex = 0; + String dailyInspectionStandardId = null; + String equipmentNum = null; + DailyInspectionStandard dailyInspectionStandard = new DailyInspectionStandard(); + List<DailyInspectionStandardDetail> dailyInspectionStandardDetailList = new ArrayList<>(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue(); + ImportParams params = new ImportParams(); + params.setNeedSave(true); + try { + InputStream fis = file.getInputStream(); + Workbook workbook = new XSSFWorkbook(fis); + int sheets = workbook.getNumberOfSheets(); + //鍒ゆ柇鐐规鍛ㄦ湡鏄惁瀛樺湪 + InspectionCycle dayInspectionCycle = inspectionCycleService.lambdaQuery().eq(InspectionCycle::getName,"1鏃�").eq(InspectionCycle::getVersionStatus,"2").one(); + InspectionCycle weekInspectionCycle = inspectionCycleService.lambdaQuery().eq(InspectionCycle::getName,"1鍛�").eq(InspectionCycle::getVersionStatus,"2").one(); + if(dayInspectionCycle == null || weekInspectionCycle == null){ + c = 1; + errorMessage.add("鐐规鍛ㄦ湡涓嶅瓨鍦紝璇峰厛缁存姢鐐规鍛ㄦ湡"); + errorLines++; + }else{ + for(int i = 0;i < sheets;i++){ + Sheet sheet = workbook.getSheetAt(i); + for (Row row : sheet) { + // 閬嶅巻姣忎竴涓崟鍏冩牸 + for (Cell cell : row) { + // 澶勭悊鍗曞厓鏍兼暟鎹紝渚嬪杈撳嚭鍗曞厓鏍肩殑鍊� + if("STRING".equals(cell.getCellType().toString())|| "BLANK".equals(cell.getCellType().toString())){ + //鐐规鍛ㄦ湡瀛樺湪锛屽垽鏂澶囩粺涓�缂栫爜鏄惁瀛樺湪 + if(cell.getStringCellValue().contains("璁惧鍚嶇О锛�")){ + String[] tybh1 = cell.getStringCellValue().split("缁熶竴缂栧彿锛�"); + String[] tybh2 = tybh1[1].split("骞�"); + equipmentNum = tybh2[0].trim().substring(0,tybh2[0].trim().length()-4).trim(); + /*String year = tybh2[0].trim().substring(tybh2[0].trim().length()-4,tybh2[0].trim().length()).trim(); + String[] month1 = tybh2[1].split("鏈�"); + String month = month1[0].trim(); + String[] unit1 = cell.getStringCellValue().split("鍗曚綅锛�"); + String unit = unit1[1].trim();*/ + Equipment equipment = equipmentService.lambdaQuery().eq(Equipment::getNum,equipmentNum).eq(Equipment::getDelFlag, CommonConstant.DEL_FLAG_0).one(); + if(equipment == null){ + c = 1; + errorMessage.add("sheet椤典负"+sheet.getSheetName()+"锛岃澶囩粺涓�缂栫爜涓�"+ equipmentNum + "鐨勬暟鎹鍏ュけ璐�,鍘熷洜:璁惧涓嶅瓨鍦紝璇峰厛缁存姢璁惧鍙拌处锛�"); + errorLines++; + }else { + List<DailyInspectionStandard> dailyInspectionStandardList = dailyInspectionStandardService.lambdaQuery().eq(DailyInspectionStandard::getEquipmentId,equipment.getId()) + .eq(DailyInspectionStandard::getVersionStatus,"2").eq(DailyInspectionStandard::getDelFlag,CommonConstant.DEL_FLAG_0).list(); + if(CollectionUtils.isNotEmpty(dailyInspectionStandardList)){ + c = 1; + errorMessage.add("sheet椤典负"+sheet.getSheetName()+"锛岃澶囩粺涓�缂栫爜涓�"+ equipmentNum + "鐨勬暟鎹鍏ュけ璐�,鍘熷洜:璇ヨ澶囧凡缁忓瓨鍦ㄧ偣妫�鏍囧噯锛�"); + errorLines++; + }else { + c = 0; + dailyInspectionStandard.setNum(identityService.getNumByTypeAndLength("DailylnspectionStandard",4)); + dailyInspectionStandard.setVersionStatus("2"); + dailyInspectionStandard.setVersion("1.0"); + dailyInspectionStandard.setAssignMode("1"); + dailyInspectionStandard.setEquipmentId(equipment.getId()); + dailyInspectionStandard.setApprovalStatus("1"); + //dailyInspectionStandardService.save(dailyInspectionStandard); + //dailyInspectionStandardId = dailyInspectionStandard.getId(); + } + } + break; + } + //璁惧缁熶竴缂栫爜瀛樺湪锛屽垽鏂偣妫�椤圭洰鏄惁瀛樺湪 + if(c == 0){ + System.out.print(cell.getStringCellValue() + "\t"); + if(cell.getStringCellValue().contains("鐐规椤圭洰")){ + a = 1; + projectColumnIndex = cell.getColumnIndex(); + break; + } + if(cell.getStringCellValue().contains("缁存姢璐d换浜虹瀛�")){ + a = 0; + } + if(projectColumnIndex == cell.getColumnIndex() && a == 1){ + DailyInspectionStandardDetail dailyInspectionStandardDetail = new DailyInspectionStandardDetail(); + dailyInspectionStandardDetail.setDailyInspectionStandardId(dailyInspectionStandardId); + String dayInspectionProjectName = row.getCell(projectColumnIndex).toString(); + String standard = row.getCell(projectColumnIndex+1).toString(); + //鏌ヨ鐐瑰嚮椤圭洰锛屽鏋滄病鏈夋柊澧炵偣妫�椤圭洰 + if(StringUtils.isNotBlank(dayInspectionProjectName)){ + List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,dayInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list(); + if(CollectionUtils.isEmpty(inspectionProjectList)){ + InspectionProject inspectionProject = new InspectionProject(); + inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4)); + inspectionProject.setName(dayInspectionProjectName); + inspectionProject.setDetectionStandard(standard); + inspectionProjectService.save(inspectionProject); + dailyInspectionStandardDetail.setInspectionProjectId(inspectionProject.getId()); + dailyInspectionStandardDetail.setInspectionCycleId(dayInspectionCycle.getId()); + dailyInspectionStandardDetailList.add(dailyInspectionStandardDetail); +// c = 1; +// errorMessage.add("sheet椤典负"+sheet.getSheetName()+"锛岃澶囩粺涓�缂栫爜涓�"+ equipmentNum + "鐨勬暟鎹鍏ュけ璐�,鍘熷洜:鐐规椤圭洰涓嶅瓨鍦紝璇峰厛缁存姢鐐规椤圭洰锛�"); +// errorLines++; + }else { + dailyInspectionStandardDetail.setInspectionProjectId(inspectionProjectList.get(0).getId()); + dailyInspectionStandardDetail.setInspectionCycleId(dayInspectionCycle.getId()); + dailyInspectionStandardDetailList.add(dailyInspectionStandardDetail); + //dailyInspectionStandardDetailService.save(dailyInspectionStandardDetail); + } + } + break; + } + if(cell.getStringCellValue().contains("鍛ㄤ繚鍏婚」鐩�")){ + b = 1; + maintenanceColumnIndex = cell.getColumnIndex(); + break; + } + if(cell.getStringCellValue().contains("鍛ㄤ繚鍏绘搷浣滆�呮墽琛�")){ + b = 0; + dailyInspectionStandardService.save(dailyInspectionStandard); + for(DailyInspectionStandardDetail dailyInspectionStandardDetail : dailyInspectionStandardDetailList){ + dailyInspectionStandardDetail.setDailyInspectionStandardId(dailyInspectionStandard.getId()); + } + dailyInspectionStandardDetailService.saveBatch(dailyInspectionStandardDetailList); + successLines++; + dailyInspectionStandard = null; + dailyInspectionStandardDetailList.clear(); + } + if(b == 1 && c == 0 && maintenanceColumnIndex == cell.getColumnIndex()){ + DailyInspectionStandardDetail dailyInspectionStandardDetail = new DailyInspectionStandardDetail(); + dailyInspectionStandardDetail.setDailyInspectionStandardId(dailyInspectionStandardId); + String weekInspectionProjectName = row.getCell(maintenanceColumnIndex).toString(); + String inspectionStandardName = row.getCell(maintenanceColumnIndex+1).toString(); + if(StringUtils.isNotBlank(weekInspectionProjectName)){ + List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getName,weekInspectionProjectName).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list(); + if(CollectionUtils.isEmpty(inspectionProjectList)){ + InspectionProject inspectionProject = new InspectionProject(); + inspectionProject.setNum(identityService.getNumByTypeAndLength("InspectionProject",4)); + inspectionProject.setName(weekInspectionProjectName); + inspectionProject.setDetectionStandard(inspectionStandardName); + inspectionProjectService.save(inspectionProject); + dailyInspectionStandardDetail.setInspectionProjectId(inspectionProject.getId()); + dailyInspectionStandardDetail.setInspectionCycleId(weekInspectionCycle.getId()); + dailyInspectionStandardDetailList.add(dailyInspectionStandardDetail); +// c = 1; +// errorMessage.add("sheet椤典负"+sheet.getSheetName()+"锛岃鏁颁负锛�"+row.getRowNum()+"锛岃澶囩粺涓�缂栫爜涓�"+ equipmentNum + "鐨勬暟鎹鍏ュけ璐�,鍘熷洜:鐐规椤圭洰涓嶅瓨鍦紝璇峰厛缁存姢鐐规椤圭洰锛�"); +// errorLines++; + }else { + + dailyInspectionStandardDetail.setInspectionProjectId(inspectionProjectList.get(0).getId()); + dailyInspectionStandardDetail.setInspectionCycleId(weekInspectionCycle.getId()); + dailyInspectionStandardDetailList.add(dailyInspectionStandardDetail); + //dailyInspectionStandardDetailService.save(dailyInspectionStandardDetail); + } + } + break; + } + } + }/*else if("NUMERIC".equals(cell.getCellType().toString())){ + System.out.print(cell.getNumericCellValue() + "\t"); + } +*/ + } + System.out.println(); + } + } + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage); } /** @@ -246,8 +441,8 @@ */ @GetMapping("getDepartByEquipment") public Result<?> getDepartByEquipment(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam Map<String, Object> params) { + @RequestParam("pageSize") Integer pageSize, + @RequestParam Map<String, Object> params) { IPage<Map<String, Object>> departByEquipment = dailyInspectionStandardService.getDepartByEquipment(pageNo, pageSize, params); return Result.ok(departByEquipment); } @@ -258,7 +453,17 @@ @PostMapping(value = "/revise") @Transactional(rollbackFor = { Exception.class }) public Result<String> revise(@RequestBody DailyInspectionStandard dailyInspectionStandard) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + dailyInspectionStandard.setWritePerson(sysUser.getRealname()); dailyInspectionStandard.setId(""); + dailyInspectionStandard.setApprovalStatus("1"); + dailyInspectionStandard.setCreateTime(new Date()); + dailyInspectionStandard.setTakeEffectTime(null); + dailyInspectionStandard.setLoseEfficacyTime(null); + dailyInspectionStandard.setApprovalFeedback(null); + dailyInspectionStandard.setAuditFeedback(null); + dailyInspectionStandard.setAuditPerson(null); + dailyInspectionStandard.setApprovalPerson(null); dailyInspectionStandardService.save(dailyInspectionStandard); List<DailyInspectionStandardDetail> dailyInspectionStandardDetaillist = dailyInspectionStandard.getDailyInspectionStandardDetaillist(); DailyInspectionStandardDetail isd = null; @@ -301,13 +506,18 @@ @Transactional(rollbackFor = { Exception.class }) public Result<String> versionTakeEffect(@RequestBody DailyInspectionStandard dailyInspectionStandard) { - List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery() - .eq(DailyInspectionStandard::getNum, dailyInspectionStandard.getNum()) - .eq(DailyInspectionStandard::getVersionStatus, "2").list(); - for (DailyInspectionStandard standard : dailyInspectionStandards) { - standard.setVersionStatus("3"); - dailyInspectionStandardService.updateById(standard); - } +// List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery() +// .eq(DailyInspectionStandard::getNum, dailyInspectionStandard.getNum()) +// .eq(DailyInspectionStandard::getVersionStatus, "2").list(); +// for (DailyInspectionStandard standard : dailyInspectionStandards) { +// standard.setVersionStatus("3"); +// standard.setLoseEfficacyTime(new Date()); +// dailyInspectionStandardService.updateById(standard); +// } +// dailyInspectionStandard.setTakeEffectTime(new Date()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + dailyInspectionStandard.setLoseEfficacyPerson(sysUser.getRealname()); + dailyInspectionStandard.setLoseEfficacyTime(new Date()); boolean b = dailyInspectionStandardService.updateById(dailyInspectionStandard); if (b){ return Result.OK("缂栬緫鎴愬姛!"); @@ -316,5 +526,73 @@ } } + /** + * 绛惧娴佺▼ + * qsw 2023-11-16 + */ + @RequestMapping(value = "/auditApproval", method = {RequestMethod.PUT,RequestMethod.POST}) + @Transactional(rollbackFor = { Exception.class }) + public Result<String> auditApproval(@RequestBody DailyInspectionStandard dailyInspectionStandard) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String approvalStatus = dailyInspectionStandard.getApprovalStatus(); + if("5".equals(approvalStatus)){//瀹℃牳閫氳繃鍚庯紝鐗堟湰鐢熸晥 + List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery() + .eq(DailyInspectionStandard::getNum, dailyInspectionStandard.getNum()) + .eq(DailyInspectionStandard::getVersionStatus, "2").list(); + for (DailyInspectionStandard standard : dailyInspectionStandards) { + standard.setVersionStatus("3"); + standard.setLoseEfficacyTime(new Date()); + standard.setLoseEfficacyPerson(sysUser.getRealname()); + dailyInspectionStandardService.updateById(standard); + } + dailyInspectionStandard.setApprovalPerson(sysUser.getRealname()); + dailyInspectionStandard.setVersionStatus("2"); + dailyInspectionStandard.setTakeEffectTime(new Date()); + }else if("3".equals(approvalStatus)){ + dailyInspectionStandard.setAuditPerson(sysUser.getRealname()); + } + boolean b = dailyInspectionStandardService.updateById(dailyInspectionStandard); + if (b){ + return Result.OK("瀹℃牳鎴愬姛!"); + }else{ + return Result.error("瀹℃牳澶辫触!"); + } + } + + /** + * 鎵归噺 绛惧娴佺▼ + * qsw 2023-12-12 + */ + @RequestMapping(value = "/auditApprovalBatch", method = {RequestMethod.PUT,RequestMethod.POST}) + @Transactional(rollbackFor = { Exception.class }) + public Result<String> auditApprovalBatch(@RequestBody DailyInspectionStandard dailyInspectionStandard) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List<DailyInspectionStandard> dailyInspectionStandardlist = dailyInspectionStandard.getDailyInspectionStandardlist(); + for (DailyInspectionStandard inspectionStandard : dailyInspectionStandardlist) { + String approvalStatus = inspectionStandard.getApprovalStatus(); + if("5".equals(approvalStatus)){//瀹℃牳閫氳繃鍚庯紝鐗堟湰鐢熸晥 + List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery() + .eq(DailyInspectionStandard::getNum, inspectionStandard.getNum()) + .eq(DailyInspectionStandard::getVersionStatus, "2").list(); + for (DailyInspectionStandard standard : dailyInspectionStandards) { + standard.setVersionStatus("3"); + standard.setLoseEfficacyTime(new Date()); + standard.setLoseEfficacyPerson(sysUser.getRealname()); + dailyInspectionStandardService.updateById(standard); + } + inspectionStandard.setApprovalPerson(sysUser.getRealname()); + inspectionStandard.setVersionStatus("2"); + inspectionStandard.setTakeEffectTime(new Date()); + }else if("3".equals(approvalStatus)){ + inspectionStandard.setAuditPerson(sysUser.getRealname()); + } + boolean b = dailyInspectionStandardService.updateById(inspectionStandard); + if (!b){ + return Result.error("瀹℃牳澶辫触!"); + } + } + return Result.OK("瀹℃牳鎴愬姛!"); + } } -- Gitblit v1.9.3