| | |
| | | |
| | | 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.modules.eam.entity.DailyInspectionStandard; |
| | | import org.jeecg.modules.eam.entity.DailyInspectionStandardDetail; |
| | | import org.jeecg.modules.eam.service.IDailyInspectionStandardDetailService; |
| | | import org.jeecg.modules.eam.service.IDailyInspectionStandardService; |
| | | import org.jeecg.modules.eam.service.IEamEquipmentService; |
| | | 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.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @Description: mom_eam_inspection_project |
| | |
| | | |
| | | @Autowired |
| | | private IDailyInspectionStandardDetailService dailyInspectionStandardDetailService; |
| | | |
| | | @Autowired |
| | | private IdentityService identityService; |
| | | |
| | | @Autowired |
| | | private IInspectionProjectService inspectionProjectService; |
| | | |
| | | @Autowired |
| | | private IInspectionCycleService inspectionCycleService; |
| | | /** |
| | | * å页å表æ¥è¯¢ |
| | | * |
| | |
| | | */ |
| | | @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); |
| | | } |
| | |
| | | * @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å¼å§è¯»åç¹æ£é¡¹ç®ï¼b = 1å¼å§è¯»åå¨ä¿å
»é¡¹ç®ï¼c = 1该设å¤å¯¼å
¥ä¿¡æ¯åå¨é误ï¼projectColumnIndexç¹æ£é¡¹ç®æå¨åï¼maintenanceColumnIndexå¨ä¿å
»é¡¹ç®æå¨å |
| | | 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()); |
| | | //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("ç»´æ¤è´£ä»»äººç¾å")){ |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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); |
| | | } |