车间能级提升-智能设备管理系统
baoshiwei
2025-06-09 df64c34d92cbe8501bbbfe837bc491a47452c0b6
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java
@@ -1,11 +1,21 @@
package org.dromara.eims.controller;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.common.core.constant.DictConstants;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.eims.domain.bo.MaintOrderBo;
import org.dromara.eims.domain.vo.MaintOrdeGroupVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -46,6 +56,41 @@
        return eimsMaintOrderService.queryPageListCustom(bo, pageQuery);
    }
    @SaCheckPermission("eims:maintOrder:list")
    @GetMapping("/groupList")
    public TableDataInfo<MaintOrdeGroupVo> group(EimsMaintOrderBo bo, PageQuery pageQuery) {
        return eimsMaintOrderService.queryPageGroupList(bo, pageQuery);
    }
    @SaCheckPermission("eims:maintOrder:list")
    @GetMapping("/detailList")
    public TableDataInfo<EimsMaintOrderVo> groupDetail(EimsMaintOrderBo bo, PageQuery pageQuery) {
        // 这里使用mintCode传递了 equid + plantime
        String maintCode = bo.getMaintCode();
        if (StringUtils.isEmpty(maintCode) || !maintCode.contains("_")) {
            return TableDataInfo.build(new Page<>(0,0));
        }
        String[] split = maintCode.split("_");
        bo.setEquId(Long.valueOf(split[0]));
        bo.setMaintCode(null);
        LocalDate planTime = DateUtils.parseDate(split[1]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
        LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
        Map<String, Object> params = bo.getParams();
        params.put("beginPlanTime",startOfMonth);
        params.put("endPlanTime",endOfMonth);
        TableDataInfo<EimsMaintOrderVo> tableDataInfo = eimsMaintOrderService.queryPageListCustom(bo, pageQuery);
        tableDataInfo.getRows().forEach(e -> {
            // 如果保养方法是维修,查询关联的备件
            if (DictConstants.MAINT_METHOD_DETAIL.REPAIR.equals(e.getMaintFun())) {
                e.setSpareParts(eimsMaintOrderService.querySpareParts(e.getMaintCode()));
            }
        });
        return tableDataInfo;
    }
    /**
     * 导出保养工单列表
     */
@@ -65,7 +110,7 @@
    @SaCheckPermission("eims:maintOrder:query")
    @GetMapping("/{id}")
    public R<EimsMaintOrderVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long id) {
                                       @PathVariable Long id) {
        return R.ok(eimsMaintOrderService.queryById(id));
    }
@@ -91,6 +136,14 @@
        return toAjax(eimsMaintOrderService.updateByBo(bo));
    }
    @SaCheckPermission("eims:maintOrder:edit")
    @Log(title = "保养工单-批量修改", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping("editBatch")
    public R<Void> editBatch(@Validated(EditGroup.class) @RequestBody MaintOrderBo bo) {
        return toAjax(eimsMaintOrderService.updateBatchByBo(bo));
    }
    /**
     * 删除保养工单
     *