package org.jeecg.modules.eam.controller; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.metadata.IPage; 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.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.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum; import org.jeecg.modules.eam.entity.EamMaintenanceStandard; import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; 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 java.util.*; /** * @Description: 保养标准 * @Author: jeecg-boot * @Date: 2025-03-26 * @Version: V1.0 */ @Slf4j @Api(tags = "保养标准") @RestController @RequestMapping("/eam/maintenanceStandard") public class EamMaintenanceStandardController extends JeecgController { @Autowired private IEamMaintenanceStandardService eamMaintenanceStandardService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private IEamEquipmentService eamEquipmentService; /** * 流程启动,保存对应的数据 * * @param id * @return */ @ApiOperation(value = "保养标准-流程启动保存对应的数据", notes = "保养标准-流程启动保存对应的数据") @GetMapping(value = "/saveEamMaintenanceStandardProcess") public Result saveEamMaintenanceStandardProcess(String id) { return eamMaintenanceStandardService.saveEamMaintenanceStandardProcess(id); } /** * 流程审核 * * @param eamMaintenanceStandardVo * @return */ @ApiOperation(value = "保养标准-流程审核", notes = "保养标准-流程审核") @PostMapping(value = "/audit") public Result auditEamMaintenanceStandard(@RequestBody EamMaintenanceStandardVo eamMaintenanceStandardVo) { return eamMaintenanceStandardService.auditEamMaintenanceStandard(eamMaintenanceStandardVo); } /** * 分页列表查询 * * @param eamMaintenanceStandard * @param pageNo * @param pageSize * @param req * @return */ @ApiOperation(value = "保养标准-分页列表查询", notes = "保养标准-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(EamMaintenanceStandard eamMaintenanceStandard, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { // QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceStandard, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = eamMaintenanceStandardService.queryPageList(page, eamMaintenanceStandard); return Result.OK(pageList); } /** * 添加 * * @param standardRequest * @return */ @AutoLog(value = "保养标准-添加") @ApiOperation(value = "保养标准-添加", notes = "保养标准-添加") @PostMapping(value = "/add") public Result add(@RequestBody EamMaintenanceStandardRequest standardRequest) { if (standardRequest == null) { return Result.error("添加的对象不能为空!"); } if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { return Result.error("保养项不能为空!"); } String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); standardRequest.setStandardCode(codeSeq); boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest); if (!b) { return Result.error("添加失败!"); } return Result.OK("添加成功!"); } /** * 编辑 * * @param standardRequest * @return */ @AutoLog(value = "保养标准-编辑") @ApiOperation(value = "保养标准-编辑", notes = "保养标准-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody EamMaintenanceStandardRequest standardRequest) { if (standardRequest == null) { return Result.error("添加的对象不能为空!"); } if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { return Result.error("保养项不能为空!"); } boolean b = eamMaintenanceStandardService.editMaintenanceStandard(standardRequest); if (!b) { return Result.error("编辑失败!"); } return Result.OK("编辑成功!"); } /** * 升版 * * @param standardRequest * @return */ @AutoLog(value = "保养标准-升版") @ApiOperation(value = "保养标准-升版", notes = "保养标准-升版") @PutMapping(value = "/upgrade") public Result upgrade(@RequestBody EamMaintenanceStandardRequest standardRequest) { if (standardRequest == null) { return Result.error("添加的对象不能为空!"); } if (CollectionUtil.isEmpty(standardRequest.getTableDetailList())) { return Result.error("保养项不能为空!"); } String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE); standardRequest.setStandardCode(codeSeq); boolean b = eamMaintenanceStandardService.upgradeMaintenanceStandard(standardRequest); if (!b) { return Result.error("升版失败!"); } return Result.OK("升版成功!"); } /** * 查询标准列表-前端展示该用户拥有的标准 * * @param keyword 设备编号 * @param maintenanceCategory 保养类型 * @return */ @AutoLog(value = "保养标准-查询标准列表-前端展示该用户拥有的标准") @ApiOperation(value = "保养标准-查询标准列表-前端展示该用户拥有的标准", notes = "保养标准-查询标准列表-前端展示该用户拥有的标准") @GetMapping(value = "/listByUser") public Result listByUser(@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(name = "equipmentId", required = false) String equipmentId, @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize, @RequestParam(name = "maintenanceCategory", required = false) String maintenanceCategory) { List list = eamMaintenanceStandardService.queryListByKeywordAndCategory(keyword, equipmentId, pageSize, maintenanceCategory); return Result.OK(list); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "保养标准-通过id删除") @ApiOperation(value = "保养标准-通过id删除", notes = "保养标准-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamMaintenanceStandardService.updateById(entity); } return Result.OK("删除成功!"); } /** * 通过id作废 * * @param id * @return */ @AutoLog(value = "保养标准-作废") @ApiOperation(value = "保养标准-作废", notes = "保养标准-作废") @DeleteMapping(value = "/abolish") public Result abolish(@RequestParam(name = "id", required = true) String id) { EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); if (entity != null) { entity.setStandardStatus(MaintenanceStandardStatusEnum.ABOLISH.name()); eamMaintenanceStandardService.updateById(entity); } return Result.OK("作废成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "保养标准-批量删除") @ApiOperation(value = "保养标准-批量删除", notes = "保养标准-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { List list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id); if (entity != null&&entity.getStandardStatus().equals(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name())) { //只删除状态为待提交的 entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamMaintenanceStandardService.updateById(entity); } }); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value = "保养标准-通过id查询", notes = "保养标准-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { EamMaintenanceStandard eamMaintenanceStandard = eamMaintenanceStandardService.getById(id); return Result.OK(eamMaintenanceStandard); } /** * 导出excel * * @param request * @param eamMaintenanceStandard */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamMaintenanceStandard eamMaintenanceStandard) { return super.exportXls(request, eamMaintenanceStandard, EamMaintenanceStandard.class, "保养标准"); } /** * 点检导入 */ @PostMapping("/importPointInspection") public Result importPointInspectionExcel(HttpServletRequest request) { try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); Map results = new LinkedHashMap<>(); int successCount = 0; int failureCount = 0; for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue(); String fileName = file.getOriginalFilename(); Result importResult = eamMaintenanceStandardService.importPointInspectionExcel(file); if (importResult.isSuccess()) { results.put(fileName, "成功: " + importResult.getMessage()); successCount++; } else { results.put(fileName, "失败: " + importResult.getMessage()); failureCount++; } } // 构建响应 Map response = new HashMap<>(); response.put("results", results); response.put("totalFiles", fileMap.size()); response.put("successCount", successCount); response.put("failureCount", failureCount); if (failureCount == 0) { return Result.ok("所有点检文件导入成功"+response); } else if (successCount == 0) { return Result.error("所有点检文件导入失败", response); } else { return Result.error("部分点检文件导入失败", response); } } catch (Exception e) { log.error("点检导入处理异常", e); return Result.error("点检导入处理失败: " + e.getMessage()); } } /** * 二保导入 */ @PostMapping("/importSecondMaintenanceStandard") public Result importSecondMaintenanceStandard(HttpServletRequest request) { try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map results = new LinkedHashMap<>(); Map fileMap = multipartRequest.getFileMap(); // 统计导入结果 int successCount = 0; int failureCount = 0; for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue(); String fileName = file.getOriginalFilename(); Result importResult = eamMaintenanceStandardService.importMaintenanceStandard(file, "SECOND"); if (importResult.isSuccess()) { results.put(fileName, "成功: " + importResult.getMessage()); successCount++; } else { results.put(fileName, "失败: " + importResult.getMessage()); failureCount++; } } // 构建最终响应 Map response = new HashMap<>(); response.put("results", results); response.put("totalFiles", fileMap.size()); response.put("successCount", successCount); response.put("failureCount", failureCount); if (failureCount > 0) { return Result.error("部分文件导入失败", response); } return Result.ok("所有文件导入成功"+response); } catch (Exception e) { log.error("导入处理异常", e); return Result.error("导入处理失败: " + e.getMessage()); } } /** * 三保导入 */ @PostMapping("/importThirdMaintenanceStandard") public Result importThirdMaintenanceStandard(HttpServletRequest request) { try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map results = new LinkedHashMap<>(); Map fileMap = multipartRequest.getFileMap(); // 统计导入结果 int successCount = 0; int failureCount = 0; for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue(); String fileName = file.getOriginalFilename(); Result importResult = eamMaintenanceStandardService.importMaintenanceStandard(file, "THIRD"); if (importResult.isSuccess()) { results.put(fileName, "成功: " + importResult.getMessage()); successCount++; } else { results.put(fileName, "失败: " + importResult.getMessage()); failureCount++; } } // 构建最终响应 Map response = new HashMap<>(); response.put("results", results); response.put("totalFiles", fileMap.size()); response.put("successCount", successCount); response.put("failureCount", failureCount); if (failureCount > 0) { return Result.error("部分文件导入失败", response); } return Result.ok("所有文件导入成功"+response); } catch (Exception e) { log.error("导入处理异常", e); return Result.error("导入处理失败: " + e.getMessage()); } } }