zhangherong
2025-03-31 cb2556fd6ce1a7240e7cb4d005384c28014df87c
art: 设备管理-保养标准-编辑功能
已修改8个文件
329 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java 199 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -44,5 +44,5 @@
     * @param pageSize
     * @return
     */
    List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize);
    List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -166,7 +166,15 @@
    }
    @Override
    public List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize) {
    public List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id) {
        if (StringUtils.isNotBlank(id)) {
            EamEquipment eamEquipment = eamEquipmentMapper.selectById(id);
            if (eamEquipment != null) {
                List<EquipmentSearchResult> resultList = new ArrayList<>();
                resultList.add(new EquipmentSearchResult(eamEquipment));
                return resultList;
            }
        }
        IPage<EamEquipment> page = new Page<>(1, pageSize);
        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
        //用户数据权限
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -283,13 +283,15 @@
     * 检索设备
     * @param keyword 查询关键词 设备编号,设备名称模糊匹配
     * @param pageSize 一次返回多少记录
     * @param id 设备主键
     * @return
     */
    @ApiOperation(value = "设备表-异步加载设备列表", notes = "设备表-异步加载设备列表")
    @GetMapping(value = "/asyncLoadEquipment")
    public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword,
                                        @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize) {
        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize);
                                        @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
                                        @RequestParam(name="id",required = false) String id) {
        List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id);
        return Result.ok(resultList);
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -113,7 +113,16 @@
    @ApiOperation(value="保养标准-编辑", notes="保养标准-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamMaintenanceStandardRequest standardRequest) {
//        eamMaintenanceStandardService.updateById(eamMaintenanceStandard);
        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("编辑成功!");
    }
    
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardDetailController.java
@@ -1,167 +1,70 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
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 com.alibaba.fastjson.JSON;
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.system.base.controller.JeecgController;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 /**
import java.util.List;
/**
 * @Description: 保养标准明细
 * @Author: jeecg-boot
 * @Date:   2025-03-26
 * @Date: 2025-03-26
 * @Version: V1.0
 */
@Slf4j
@Api(tags="保养标准明细")
@Api(tags = "保养标准明细")
@RestController
@RequestMapping("/eam/eamMaintenanceStandardDetail")
public class EamMaintenanceStandardDetailController extends JeecgController<EamMaintenanceStandardDetail, IEamMaintenanceStandardDetailService> {
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    /**
     * 分页列表查询
     *
     * @param eamMaintenanceStandardDetail
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @AutoLog(value = "保养标准明细-分页列表查询")
    @ApiOperation(value="保养标准明细-分页列表查询", notes="保养标准明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamMaintenanceStandardDetail eamMaintenanceStandardDetail,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamMaintenanceStandardDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamMaintenanceStandardDetail, req.getParameterMap());
        Page<EamMaintenanceStandardDetail> page = new Page<EamMaintenanceStandardDetail>(pageNo, pageSize);
        IPage<EamMaintenanceStandardDetail> pageList = eamMaintenanceStandardDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     * 添加
     *
     * @param eamMaintenanceStandardDetail
     * @return
     */
    @AutoLog(value = "保养标准明细-添加")
    @ApiOperation(value="保养标准明细-添加", notes="保养标准明细-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamMaintenanceStandardDetail eamMaintenanceStandardDetail) {
        eamMaintenanceStandardDetailService.save(eamMaintenanceStandardDetail);
        return Result.OK("添加成功!");
    }
    /**
     * 编辑
     *
     * @param eamMaintenanceStandardDetail
     * @return
     */
    @AutoLog(value = "保养标准明细-编辑")
    @ApiOperation(value="保养标准明细-编辑", notes="保养标准明细-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamMaintenanceStandardDetail eamMaintenanceStandardDetail) {
        eamMaintenanceStandardDetailService.updateById(eamMaintenanceStandardDetail);
        return Result.OK("编辑成功!");
    }
    /**
     * 通过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) {
        eamMaintenanceStandardDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "保养标准明细-批量删除")
    @ApiOperation(value="保养标准明细-批量删除", notes="保养标准明细-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamMaintenanceStandardDetailService.removeByIds(Arrays.asList(ids.split(",")));
        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) {
        EamMaintenanceStandardDetail eamMaintenanceStandardDetail = eamMaintenanceStandardDetailService.getById(id);
        return Result.OK(eamMaintenanceStandardDetail);
    }
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
  /**
   * 导出excel
   *
   * @param request
   * @param eamMaintenanceStandardDetail
   */
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamMaintenanceStandardDetail eamMaintenanceStandardDetail) {
      return super.exportXls(request, eamMaintenanceStandardDetail, EamMaintenanceStandardDetail.class, "保养标准明细");
  }
    /**
     * 分页列表查询
     *
     * @param standardId
     * @param pageNo
     * @param pageSize
     * @return
     */
    @ApiOperation(value = "保养标准明细-分页列表查询", notes = "保养标准明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(@RequestParam("standardId") String standardId,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId);
        Page<EamMaintenanceStandardDetail> page = new Page<>(pageNo, pageSize);
        IPage<EamMaintenanceStandardDetail> pageList = eamMaintenanceStandardDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
  /**
   * 通过excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamMaintenanceStandardDetail.class);
  }
    /**
     * 一次加载
     *
     * @param standardId
     * @return
     */
    @ApiOperation(value = "保养标准明细-不分页列表查询", notes = "保养标准明细-不分页列表查询")
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("standardId") String standardId) {
        LambdaQueryWrapper<EamMaintenanceStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandardDetail::getStandardId, standardId);
        List<EamMaintenanceStandardDetail> list = eamMaintenanceStandardDetailService.list(queryWrapper);
        return Result.OK(list);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -9,6 +9,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@@ -68,16 +69,19 @@
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date initialDate;
    /**保养分类*/
    @Excel(name = "保养分类", width = 15)
    @Excel(name = "保养分类", width = 15, dicCode = "maintenance_category")
    @ApiModelProperty(value = "保养分类")
    @Dict(dicCode = "maintenance_category")
    private String maintenanceCategory;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    /**设备编号*/
    @Excel(name = "设备编号", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
    @ApiModelProperty(value = "设备编号")
    @Dict(dicCode = "eam_equipment, equipment_code, id")
    private String equipmentId;
    /**标准状态*/
    @Excel(name = "标准状态", width = 15)
    @Excel(name = "标准状态", width = 15, dicCode = "maintenance_standard_status")
    @ApiModelProperty(value = "标准状态")
    @Dict(dicCode = "maintenance_standard_status")
    private String standardStatus;
    /**标准版本*/
    @Excel(name = "标准版本", width = 15)
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -23,4 +23,12 @@
     * @param standardRequest
     */
    boolean editMaintenanceStandard(EamMaintenanceStandardRequest standardRequest);
    /**
     * 重复性校验
     * @param equipmentId 设备编号
     * @param maintenanceCategory 保养类型
     * @return
     */
    EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -1,24 +1,28 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @Description: 保养标准
@@ -50,8 +54,13 @@
        entity.setStandardVersion(CommonConstant.OPERATE_TYPE_1);
        //设备处理
        entity.setEquipmentId(standardRequest.getEquipmentId());
        //删除标记
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
        //TODO
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory());
        if(exist != null){
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
        //处理附件
        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
@@ -77,6 +86,66 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean editMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) {
        return false;
        EamMaintenanceStandard entity = eamMaintenanceStandardMapper.selectById(standardRequest.getId());
        if(entity == null){
            throw new JeecgBootException("编辑的数据已删除,请刷新重试!");
        }
        entity.setStandardName(standardRequest.getStandardName());
        entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
        entity.setFileCode(standardRequest.getFileCode());
        //处理附件
        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(fileUploadResult);
                entity.setReferenceFile(referenceFile);
            } catch (JsonProcessingException e) {
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }else {
            entity.setReferenceFile(null);
        }
        eamMaintenanceStandardMapper.updateById(entity);
        //处理详情
        if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) {
            List<EamMaintenanceStandardDetail> addList = new ArrayList<>();
            List<EamMaintenanceStandardDetail> updateList = new ArrayList<>();
            standardRequest.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setStandardId(entity.getId());
                if(tableDetail.getId() == null){
                    addList.add(tableDetail);
                }else {
                    updateList.add(tableDetail);
                }
            });
            if(CollectionUtil.isNotEmpty(addList)){
                eamMaintenanceStandardDetailService.saveBatch(addList);
            }
            if(CollectionUtil.isNotEmpty(updateList)){
                eamMaintenanceStandardDetailService.updateBatchById(updateList);
            }
        }
        if(CollectionUtil.isNotEmpty(standardRequest.getRemoveDetailList())) {
            List<String> ids = standardRequest.getRemoveDetailList().stream().map(EamMaintenanceStandardDetail::getId).collect(Collectors.toList());
            eamMaintenanceStandardDetailService.removeBatchByIds(ids);
        }
        return true;
    }
    @Override
    public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) {
        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
        queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
        List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
        if(CollectionUtil.isNotEmpty(list)) {
            return null;
        }
        return list.get(0);
    }
}