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.*;
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
/**
|
* @Description: 保养标准
|
* @Author: jeecg-boot
|
* @Date: 2025-03-26
|
* @Version: V1.0
|
*/
|
@Slf4j
|
@Api(tags = "保养标准")
|
@RestController
|
@RequestMapping("/eam/maintenanceStandard")
|
public class EamMaintenanceStandardController extends JeecgController<EamMaintenanceStandard, IEamMaintenanceStandardService> {
|
@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<EamMaintenanceStandard> queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceStandard, req.getParameterMap());
|
Page<EamMaintenanceStandard> page = new Page<EamMaintenanceStandard>(pageNo, pageSize);
|
IPage<EamMaintenanceStandard> 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<EamMaintenanceStandard> 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<String> list = Arrays.asList(ids.split(","));
|
AtomicInteger i = new AtomicInteger();
|
list.forEach(id -> {
|
EamMaintenanceStandard entity = eamMaintenanceStandardService.getById(id);
|
if (entity != null&&entity.getStandardStatus().equals(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name())) {
|
//只删除状态为待提交的
|
i.getAndIncrement();
|
entity.setDelFlag(CommonConstant.DEL_FLAG_1);
|
eamMaintenanceStandardService.updateById(entity);
|
}
|
});
|
return Result.OK("批量删除成功,已删除状态为待提交的保养标准,删除数量为"+i);
|
}
|
|
/**
|
* 通过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<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
|
Map<String, String> results = new LinkedHashMap<>();
|
int successCount = 0;
|
int failureCount = 0;
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
MultipartFile file = entity.getValue();
|
String fileName = file.getOriginalFilename();
|
Result<?> importResult=eamMaintenanceStandardService.importPointInspectionExcel(file);
|
if (importResult.isSuccess()) {
|
successCount++;
|
} else {
|
results.put(fileName, importResult.getMessage());
|
failureCount++;
|
}
|
}
|
|
// 构建最终响应
|
return getResult(results, fileMap.size(), successCount, failureCount);
|
|
} catch (Exception e) {
|
log.error("点检导入处理异常", e);
|
return Result.error("点检导入处理失败: " + e.getMessage());
|
}
|
}
|
|
|
/**
|
* 二保导入
|
*/
|
@PostMapping("/importSecondMaintenanceStandard")
|
public Result<?> importSecondMaintenanceStandard(HttpServletRequest request) {
|
try {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
Map<String, String> results = new LinkedHashMap<>();
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
|
// 统计导入结果
|
int successCount = 0;
|
int failureCount = 0;
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
MultipartFile file = entity.getValue();
|
String fileName = file.getOriginalFilename();
|
Result<?> importResult=eamMaintenanceStandardService.importMaintenanceStandard(file, "SECOND");
|
if (importResult.isSuccess()) {
|
successCount++;
|
} else {
|
results.put(fileName, importResult.getMessage());
|
failureCount++;
|
}
|
}
|
|
// 构建最终响应
|
return getResult(results, fileMap.size(), successCount, failureCount);
|
|
} catch (Exception e) {
|
log.error("导入处理异常", e);
|
return Result.error("导入处理失败: " + e.getMessage());
|
}
|
}
|
|
/**
|
* 三保导入
|
*/
|
@PostMapping("/importThirdMaintenanceStandard")
|
public Result<?> importThirdMaintenanceStandard(HttpServletRequest request) {
|
try {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
Map<String, String> results = new LinkedHashMap<>();
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
|
// 统计导入结果
|
int successCount = 0;
|
int failureCount = 0;
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
MultipartFile file = entity.getValue();
|
String fileName = file.getOriginalFilename();
|
Result<?> importResult= eamMaintenanceStandardService.importMaintenanceStandard(file, "THIRD");
|
if (importResult.isSuccess()) {
|
successCount++;
|
} else {
|
results.put(fileName, importResult.getMessage());
|
failureCount++;
|
}
|
}
|
|
// 构建最终响应
|
return getResult(results, fileMap.size(), successCount, failureCount);
|
|
} catch (Exception e) {
|
log.error("导入处理异常", e);
|
return Result.error("导入处理失败: " + e.getMessage());
|
}
|
}
|
|
private Result<?> getResult(Map<String, String> results, int fileCount, int successCount, int failureCount) {
|
List<String> response = new ArrayList<>();
|
response.add("总文件数:" + fileCount);
|
response.add("成功数:" + successCount);
|
response.add("失败数:" + failureCount);
|
if (failureCount > 0) {
|
response.add("错误信息:" + results.values());
|
return Result.error("部分文件导入失败:" + response);
|
}
|
return Result.ok("所有文件导入成功:" + response);
|
}
|
|
}
|