package org.jeecg.modules.eam.controller; import java.util.Arrays; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.ReportRepairEnum; import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.request.EamReportRepairQuery; import org.jeecg.modules.eam.service.IEamReportRepairService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * @Description: 故障报修 * @Author: Lius * @Date: 2025-04-01 */ @Slf4j @Api(tags = "故障报修") @RestController @RequestMapping("/eam/eamReportRepair") public class EamReportRepairController extends JeecgController { @Resource private IEamReportRepairService eamReportRepairService; @Resource private ObjectMapper objectMapper; @Resource private TranslateDictTextUtils translateDictTextUtils; /** * 分页列表查询 * * @param eamReportRepairQuery * @param pageNo * @param pageSize * @return */ @AutoLog(value = "故障报修-分页列表查询") @ApiOperation(value = "故障报修-分页列表查询", notes = "故障报修-分页列表查询") @GetMapping(value = "/list") public Result queryPageList(EamReportRepairQuery eamReportRepairQuery, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page(pageNo, pageSize); IPage pageList = eamReportRepairService.pageList(page, eamReportRepairQuery); return Result.OK(pageList); } /** * 添加 * * @param eamReportRepair * @return */ @AutoLog(value = "故障报修-添加") @ApiOperation(value = "故障报修-添加", notes = "故障报修-添加") @PostMapping(value = "/add") public Result add(@RequestBody EamReportRepair eamReportRepair) { EamReportRepair b = eamReportRepairService.add(eamReportRepair); if(b == null) { return Result.error("添加失败!"); } return Result.OK("添加成功!"); } /** * 编辑 * * @param eamReportRepair * @return */ @AutoLog(value = "故障报修-编辑") @ApiOperation(value = "故障报修-编辑", notes = "故障报修-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody EamReportRepair eamReportRepair) { eamReportRepairService.updateById(eamReportRepair); 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) { eamReportRepairService.update(new LambdaUpdateWrapper().set(EamReportRepair::getReportStatus, ReportRepairEnum.ABOLISH.name()).eq(EamReportRepair::getId, id)); return Result.OK("作废成功!"); } /** * 批量作废 * * @param ids * @return */ @AutoLog(value = "故障报修-批量作废") @ApiOperation(value = "故障报修-批量作废", notes = "故障报修-批量作废") @DeleteMapping(value = "/abolishBatch") public Result abolishBatch(@RequestParam(name = "ids", required = true) String ids) { List eamReportRepairs = eamReportRepairService.listByIds(Arrays.asList(ids.split(","))); eamReportRepairs.forEach(eamReportRepair -> eamReportRepair.setReportStatus(ReportRepairEnum.ABOLISH.name())); this.eamReportRepairService.updateBatchById(eamReportRepairs); return Result.OK("批量作废成功!"); } /** * 通过id查询 * * @param id * @return */ @AutoLog(value = "故障报修-通过id查询") @ApiOperation(value = "故障报修-通过id查询", notes = "故障报修-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { EamReportRepair eamReportRepair = eamReportRepairService.getById(id); if (eamReportRepair == null) { return Result.error("未找到对应数据!"); } try { String json = objectMapper.writeValueAsString(eamReportRepair); JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); translateDictTextUtils.translateField("createBy", eamReportRepair.getCreateBy(), item, "sys_user,realname,username"); translateDictTextUtils.translateField("breakdownFlag", eamReportRepair.getBreakdownFlag(), item, "breakdown_flag"); translateDictTextUtils.translateField("faultType", eamReportRepair.getFaultType(), item, "fault_reason_category"); translateDictTextUtils.translateField("reportStatus", eamReportRepair.getReportStatus(), item, "report_repair_status"); translateDictTextUtils.translateField("equipmentId", eamReportRepair.getEquipmentId(), item, "eam_equipment,id,equipment_code"); return Result.OK(item); } catch (Exception e) { return Result.error("数据转译失败!"); } } /** * 导出excel * * @param request * @param eamReportRepair */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamReportRepair eamReportRepair) { return super.exportXls(request, eamReportRepair, EamReportRepair.class, "故障报修"); } }