zhangherong
2025-04-21 b3eabfc54ae08cbce3777aa20142f75cb9d0fb2e
Merge remote-tracking branch 'origin/master'
已添加2个文件
已修改8个文件
415 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
@@ -7,4 +7,15 @@
    WAIT_CONFIRM, // å¾…确认
    COMPLETE, // å·²å®Œæˆ
    ABOLISH, // å·²ä½œåºŸ
    ;
    public static ReportRepairEnum getInstance(String code) {
        ReportRepairEnum[] values = ReportRepairEnum.values();
        for (ReportRepairEnum value : values) {
            if (value.name().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamRepairOrderController.java
@@ -1,32 +1,21 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.util.StrUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
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.system.vo.LoginUser;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
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.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
@@ -82,18 +71,27 @@
    }
    /**
     * æ‰§è¡Œç»´ä¿®
     * æˆ‘的待办 æ‰§è¡Œ/审批
     *
     * @param eamRepairOrder
     * @param request
     * @return
     */
    @AutoLog(value = "维修工单-执行")
    @ApiOperation(value = "维修工单-执行", notes = "维修工单-执行")
    @AutoLog(value = "维修工单-执行/审批")
    @ApiOperation(value = "维修工单-执行/审批", notes = "维修工单-执行/审批")
    @PostMapping(value = "/perform")
    public Result<?> perform(@RequestBody EamRepairOrder eamRepairOrder) {
//        eamRepairOrderService.updateById(eamRepairOrder);
        return Result.OK("执行成功!");
    public Result<?> perform(@RequestBody EamRepairOrderRequest request) {
        if (request == null) {
            return Result.error("审批的对象不能为空!");
        }
        // æ£€æŸ¥è¯·æ±‚参数
        if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) {
            return Result.error("审批任务错误或不存在!");
        }
        EamRepairOrder b = eamRepairOrderService.perform(request);
        if(b == null) {
            return Result.error("操作失败!");
        }
        return Result.OK("操作成功!");
    }
    /**
@@ -106,7 +104,7 @@
    @ApiOperation(value = "维修工单-通过id查询", notes = "维修工单-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id);
        EamRepairOrderResponse eamRepairOrder = eamRepairOrderService.findById(id);
        return Result.OK(eamRepairOrder);
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderQuery.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -24,5 +25,6 @@
    /**
     * è®¾å¤‡ç¼–码
     */
    @ApiModelProperty(value = "设备编码")
    private String equipmentCode;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package org.jeecg.modules.eam.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.List;
/**
 * @Author: Lius
 * @CreateTime: 2025-04-21
 * @Description:
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class EamRepairOrderRequest extends FlowTaskVo implements Serializable {
    private static final long serialVersionUID = 3844096033304425984L;
    /**主键*/
    @ApiModelProperty(value = "主键")
    private String id;
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**
     * ç»´ä¿®çŠ¶æ€
     */
    @ApiModelProperty(value = "维修状态")
    private String repairStatus;
    /**
     * æ˜¯å¦éœ€è¦é¢†ç”¨å¤‡ä»¶  1:是  0:否
     */
    @ApiModelProperty(value = "是否需要领用备件")
    private Integer status;
    /**
     * æ•…障原因
     */
    @ApiModelProperty(value = "故障原因")
    private String faultReason;
    /**
     * ç»´ä¿®ç»“果描述
     */
    @ApiModelProperty(value = "维修结果描述")
    private String repairDescription;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    /**维修图片*/
    @ApiModelProperty(value = "维修图片集合")
    private List<FileUploadResult> imageFilesResult;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.beans.BeanUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-04-21
 * @Description:
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="返回对象", description="维修工单详细")
public class EamRepairOrderResponse extends EamRepairOrder implements Serializable {
    private static final long serialVersionUID = 367152649525625307L;
    /**
     * æ•…障开始时间
     */
    @ApiModelProperty(value = "故障开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date faultStartTime;
    /**
     * æ˜¯å¦åœæœº
     */
    @ApiModelProperty(value = "是否停机")
    @Dict(dicCode = "breakdown_flag")
    private String breakdownFlag;
    /**
     * æ•…障简称
     */
    @ApiModelProperty(value = "故障简称")
    private String faultName;
    /**
     * æ•…障分类
     */
    @ApiModelProperty(value = "故障分类")
    @Dict(dicCode = "fault_reason_category")
    private String faultType;
    /**
     * æ•…障描述
     */
    @ApiModelProperty(value = "故障描述")
    private String faultDescription;
    /**
     * æŠ¥ä¿®çŠ¶æ€
     */
    @ApiModelProperty(value = "报修状态")
    @Dict(dicCode = "report_repair_status")
    private String reportStatus;
    /**
     * ç…§ç‰‡æ–‡ä»¶ids;id以逗号分隔
     */
    @ApiModelProperty(value = "报修照片")
    private String reportImageFiles;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamRepairOrderService.java
@@ -5,6 +5,8 @@
import org.jeecg.modules.eam.entity.EamRepairOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
/**
 * @Description: ç»´ä¿®å·¥å•
@@ -26,4 +28,13 @@
     * @param eamRepairOrder
     */
    void saveRepairOrder(EamRepairOrder eamRepairOrder);
    /**
     * æµç¨‹æ“ä½œ
     * @param request
     * @return
     */
    EamRepairOrder perform(EamRepairOrderRequest request);
    EamRepairOrderResponse findById(String id);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -1,28 +1,48 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamReportRepair;
import org.jeecg.modules.eam.mapper.EamRepairOrderMapper;
import org.jeecg.modules.eam.request.EamRepairOrderQuery;
import org.jeecg.modules.eam.request.EamRepairOrderRequest;
import org.jeecg.modules.eam.request.EamRepairOrderResponse;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamRepairOrderService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,6 +73,18 @@
    @Resource
    private IEamEquipmentService eamEquipmentService;
    @Resource
    private IFlowMyBusinessService flowMyBusinessService;
    @Resource
    private TaskService taskService;
    @Resource
    private IFlowTaskService flowTaskService;
    @Resource
    private ISysUserService sysUserService;
    /**
     * åˆ†é¡µåˆ—表
@@ -113,6 +145,160 @@
        }
    }
    /**
     * æµç¨‹æ“ä½œ
     *
     * @param request
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPAIRED, businessTable = "eam_repair_order")
    public EamRepairOrder perform(EamRepairOrderRequest request) {
        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(request.getId());
        if (eamRepairOrder == null) {
            throw new JeecgBootException("审批的数据已删除,请刷新重试!");
        }
        // èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        request.setAssignee(user.getUsername());
        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId());
        if (flowMyBusiness == null) {
            throw new JeecgBootException("流程实例不存在,请刷新后重试!");
        }
        boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
        if (!userAuthorized) {
            throw new JeecgBootException("用户无权操作此任务,请刷新后重试!");
        }
        // è®¤é¢†ä»»åŠ¡
        if (!claimTask(flowMyBusiness.getTaskId(), user)) {
            throw new JeecgBootException("任务不存在、已完成或已被他人认领!");
        }
        EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在,请检查!");
        }
        ReportRepairEnum status = ReportRepairEnum.getInstance(request.getRepairStatus());
        if (status == null) {
            return null;
        }
        //流程变量
        Map<String, Object> values = new HashMap<>();
        switch (status) {
            case UNDER_REPAIR:
                //维修中:下一步 åˆ¤æ–­æ˜¯å¦éœ€è¦å¤‡ä»¶, éœ€è¦å¤‡ä»¶è½¬è®¾å¤‡ç®¡ç†å‘˜é¢†ç”¨å¤‡ä»¶, ä¸éœ€è¦åˆ™è½¬åˆ°è®¾å¤‡æŠ¥ä¿®å‘˜ç¡®è®¤ç»´ä¿®å®Œæˆ
                if (request.getStatus() == 1) {
                    // éœ€è¦
                    List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                    }
                    values.put("dataId", eamRepairOrder.getId());
                    values.put("organization", "维修工单进入等备件状态");
                    values.put("comment", "维修工单进入等备件状态");
                    values.put("NextAssignee", userSelectors);
                    values.put("status", 1);
                    request.setComment("维修工单进入等备件状态");
                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_SPARES.name());
                } else {
                    // ä¸éœ€è¦
                    EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
                    values.put("dataId", eamRepairOrder.getId());
                    values.put("organization", "维修工单进入报修员确认阶段");
                    values.put("comment", "维修工单进入报修员确认阶段");
                    values.put("NextAssignee", eamReportRepair.getCreateBy());
                    values.put("status", 0);
                    request.setComment("维修工单进入报修员确认阶段");
                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
                    eamRepairOrder.setFaultReason(request.getFaultReason());
                    eamRepairOrder.setRepairDescription(request.getRepairDescription());
                    // å¤„理附件
                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
                        ObjectMapper mapper = new ObjectMapper();
                        try {
                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
                            eamRepairOrder.setImageFiles(referenceFile);
                        } catch (JsonProcessingException e) {
                            log.error("JSON转换失败:" + e.getMessage(), e);
                        }
                    }
                }
                break;
            case WAIT_SPARES:
                // ç­‰å¤‡ä»¶, ç®¡ç†å‘˜ç¡®è®¤å¤‡ä»¶åˆ°ä½ï¼Œæµç¨‹è½¬åˆ°ç»´ä¿®å‘˜ç»§ç»­ç»´ä¿®,状态转为维修中
                values.put("dataId", eamRepairOrder.getId());
                values.put("organization", "维修工单进入维修员继续维修阶段");
                values.put("comment", "维修工单进入维修员继续维修阶段");
                values.put("NextAssignee", eamRepairOrder.getRepairer());
                values.put("status", 0);
                request.setComment("维修工单进入维修员继续维修阶段");
                eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name());
                break;
            case WAIT_CONFIRM:
                // å¾…确认, ç»´ä¿®å‘˜ç»´ä¿®å®Œæˆï¼ŒæŠ¥ä¿®äººç¡®è®¤ç»“束流程
                EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
                values.put("dataId", eamRepairOrder.getId());
                values.put("organization", "维修工单流程结束");
                values.put("comment", "维修工单流程结束");
                values.put("NextAssignee", eamReportRepair.getCreateBy());
                values.put("status", 0);
                request.setComment("维修工单进入报修员确认阶段");
                eamRepairOrder.setRepairStatus(ReportRepairEnum.COMPLETE.name());
                eamRepairOrder.setActualEndTime(new Date());
                break;
        }
        request.setValues(values);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result result = flowTaskService.complete(request);
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        //保存工单
        this.baseMapper.updateById(eamRepairOrder);
        return eamRepairOrder;
    }
    @Override
    public EamRepairOrderResponse findById(String id) {
        EamRepairOrderResponse eamRepairOrderResponse = new EamRepairOrderResponse();
        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(id);
        BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse);
        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
        BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse);
        eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles());
        return eamRepairOrderResponse;
    }
    private boolean claimTask(String taskId, LoginUser user) {
        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
        if (task == null) {
            return false;
        }
        if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
            return false;
        }
        taskService.claim(taskId, user.getUsername());
        return true;
    }
    /**
     * åˆ¤æ–­ç”¨æˆ·æ˜¯å¦æ‹¥æœ‰æ­¤æƒé™
     * @param flowMyBusiness
     * @param user
     * @return
     */
    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
        return todoUsers != null && todoUsers.contains(user.getUsername());
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
@@ -132,7 +318,7 @@
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //获取下一步处理人
        Object object=values.get("NextAssignee");
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -169,8 +169,8 @@
    @Transactional(rollbackFor = Exception.class)
    public void computeOee(MdcOeeComputeVo mdcOeeComputeVo) {
        List<MdcOeeInfo> result = new ArrayList<>();
        String startDate = mdcOeeComputeVo.getStartDate();
        String endDate = mdcOeeComputeVo.getEndDate();
        String startDate = mdcOeeComputeVo.getStartTime();
        String endDate = mdcOeeComputeVo.getEndTime();
        List<String> dateList = DateUtils.getDatesStringList(DateUtils.getShortDate(startDate), DateUtils.getShortDate(endDate));
        if (!dateList.isEmpty()) {
            //获取设备列表
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOeeComputeVo.java
@@ -8,6 +8,6 @@
 */
@Data
public class MdcOeeComputeVo {
    private String startDate;
    private String endDate;
    private String startTime;
    private String endTime;
}
lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
@@ -1,7 +1,7 @@
package org.jeecg;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import lombok.extern.slf4j.Slf4j;
import org.flowable.spring.boot.eventregistry.EventRegistryServicesAutoConfiguration;
import org.jeecg.common.util.oConvertUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration;
@@ -21,7 +21,7 @@
*/
@Slf4j
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class,
        ManagementWebSecurityAutoConfiguration.class, EventRegistryServicesAutoConfiguration.class})
        ManagementWebSecurityAutoConfiguration.class, DruidDataSourceAutoConfigure.class})
public class JeecgSystemApplication extends SpringBootServletInitializer {
    @Override