yangkang
2023-09-12 a6d8cfbf89fae62167c99dab7ffddaeb6f2b7de5
预测性维护
已添加42个文件
已修改6个文件
2793 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkOrderController.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanController.java 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanParameterController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanSparePartController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanWarnController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceStandardPlanningMaterial.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkOrder.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlan.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanParameter.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanParameterHistory.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanSparePart.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanWarn.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanWarnHistory.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/PredictiveWorkPlanSparePartJob.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkOrderMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanParameterHistoryMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanParameterMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanSparePartMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanWarnHistoryMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanWarnMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/RepairOrderDetailMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkOrderMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanParameterMapper.xml 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanSparePartMapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanWarnMapper.xml 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderDetailMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/MdcEquipmentAlarmVo.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/MdcEquipmentRunningSectionVo.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/ParameterVo.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkOrderService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanParameterHistoryService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanParameterService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanSparePartService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanWarnHistoryService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanWarnService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IRepairOrderDetailService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkOrderServiceImpl.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanParameterHistoryServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanParameterServiceImpl.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanSparePartServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanWarnHistoryServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanWarnServiceImpl.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderDetailServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkOrderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,270 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.MaintenanceOrderActualWorkingHour;
import org.jeecg.modules.eam.entity.SpecialtyMaintenanceOrder;
import org.jeecg.modules.eam.service.IMaintenanceOrderActualWorkingHourService;
import org.jeecg.modules.eam.service.IPredictiveWorkOrderService;
import org.jeecg.modules.eam.service.ISpecialtyMaintenanceOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
@RestController
@RequestMapping("/eam/predictiveworkorder")
@Slf4j
public class PredictiveWorkOrderController extends JeecgController<SpecialtyMaintenanceOrder, ISpecialtyMaintenanceOrderService> {
    @Autowired
    private IPredictiveWorkOrderService predictiveWorkOrderService;
    @Autowired
    private IMaintenanceOrderActualWorkingHourService maintenanceOrderActualWorkingHourService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param specialtyMaintenanceOrder
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "mom_eam_specialty_maintenance_order-分页列表查询")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-分页列表查询", notes = "mom_eam_specialty_maintenance_order-分页列表查询")
//    @GetMapping(value = "/list")
//    public Result<IPage<SpecialtyMaintenanceOrder>> queryPageList(SpecialtyMaintenanceOrder specialtyMaintenanceOrder,
//                                                                  @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
//                                                                  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
//                                                                  HttpServletRequest req) {
//        QueryWrapper<SpecialtyMaintenanceOrder> queryWrapper = QueryGenerator.initQueryWrapper(specialtyMaintenanceOrder, req.getParameterMap());
//        Page<SpecialtyMaintenanceOrder> page = new Page<SpecialtyMaintenanceOrder>(pageNo, pageSize);
//        IPage<SpecialtyMaintenanceOrder> pageList = specialtyMaintenanceOrderService.page(page, queryWrapper);
//        return Result.OK(pageList);
//    }
    /**
     * èŽ·å–ä¸“ä¸šä¿å…»å·¥å•
     * 2023-4-25 qsw
     */
    @GetMapping(value = "/pageOrderList")
    public Result<?> pageOrderList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> specialtyMaintenanceOrderList = predictiveWorkOrderService.pageOrderList(pageNo, pageSize, params);
//        for (Map<String, Object> record : specialtyMaintenanceOrderList.getRecords()) {
//            String id = (String) record.get("id");
//
//            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
//            actualWorkingHourWrapper.eq("maintenance_order_id", id)
//                    .eq("del_flag", 0);
//            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
//            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
//            BigDecimal actualQuantity = new BigDecimal(0);
//            if (map != null) {
//                actualQuantity = (BigDecimal) map.get("actualQuantity");
//            }
//            record.put("actualWorkingHourQuota", actualQuantity);
//
//            String status = (String) record.get("status");
//            if ("2".equals(status)) {
//                record.put("distable", false);
//            } else {
//                record.put("distable", true);
//            }
//        }
        return Result.ok(specialtyMaintenanceOrderList);
    }
    /**
     * æ·»åŠ 
     *
     * @param specialtyMaintenanceOrder
     * @return
     */
//    @AutoLog(value = "mom_eam_specialty_maintenance_order-添加")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-添加", notes = "mom_eam_specialty_maintenance_order-添加")
//    //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:add")
//    @PostMapping(value = "/add")
//    public Result<String> add(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        boolean b = specialtyMaintenanceOrderService.add(specialtyMaintenanceOrder);
//        if (b) {
//            return Result.OK("添加成功!");
//        }
//        return Result.error("添加失败!");
//    }
//
//    /**
//     * ç¼–辑
//     *
//     * @param specialtyMaintenanceOrder
//     * @return
//     */
//    @AutoLog(value = "mom_eam_specialty_maintenance_order-编辑")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-编辑", notes = "mom_eam_specialty_maintenance_order-编辑")
//    //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:edit")
//    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> edit(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        boolean b = specialtyMaintenanceOrderService.edit(specialtyMaintenanceOrder);
//        if (b) {
//            return Result.OK("编辑成功!");
//        }
//        return Result.error("编辑失败!");
//    }
//
//
//    @RequestMapping(value = "/editStatus", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> editStatus(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        specialtyMaintenanceOrder.setActualStartTime(new Date());
//        boolean b = specialtyMaintenanceOrderService.updateById(specialtyMaintenanceOrder);
//        if (b) {
//            return Result.OK("下发成功!");
//        } else {
//            return Result.error("下发失败!");
//        }
//    }
//
//    @RequestMapping(value = "/report", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> report(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        specialtyMaintenanceOrder.setActualEndTime(new Date());
//        boolean b = specialtyMaintenanceOrderService.updateById(specialtyMaintenanceOrder);
//        if (!b) {
//            return Result.error("报工失败!");
//        } else {
//            return Result.ok("报工成功!");
//        }
//    }
//
//    @RequestMapping(value = "/revocation", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> revocation(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        String id = specialtyMaintenanceOrder.getId();
//        SpecialtyMaintenanceOrder maintenanceOrder = specialtyMaintenanceOrderService.getById(id);
//        String status = maintenanceOrder.getStatus();
//        if ("5".equals(status)) {
//            maintenanceOrder.setActualEndTime(null);
//            boolean b = specialtyMaintenanceOrderService.updateById(specialtyMaintenanceOrder);
//            if (b) {
//                return Result.OK("撤销成功!");
//            } else {
//                return Result.error("撤销失败!");
//            }
//        } else {
//            return Result.error("仅限已完工状态撤销完成操作!");
//        }
//    }
//
//    @RequestMapping(value = "/orderGet", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> orderGet(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//        String userId = sysUser.getId();
//        specialtyMaintenanceOrder.setRecipientUserId(userId);
//        specialtyMaintenanceOrder.setMaintenanceUserId(userId);
//        specialtyMaintenanceOrder.setStatus("3");
//        boolean b = specialtyMaintenanceOrderService.updateById(specialtyMaintenanceOrder);
//        if (b) {
//            return Result.OK("领取成功!");
//        } else {
//            return Result.error("领取失败!");
//        }
//    }
//
//    /**
//     * é€šè¿‡id删除
//     *
//     * @param id
//     * @return
//     */
//    @AutoLog(value = "mom_eam_specialty_maintenance_order-通过id删除")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-通过id删除", notes = "mom_eam_specialty_maintenance_order-通过id删除")
//    //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:delete")
//    @DeleteMapping(value = "/delete")
//    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
//        specialtyMaintenanceOrderService.removeById(id);
//        return Result.OK("删除成功!");
//    }
//
//    /**
//     * æ‰¹é‡åˆ é™¤
//     *
//     * @param ids
//     * @return
//     */
//    @AutoLog(value = "mom_eam_specialty_maintenance_order-批量删除")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-批量删除", notes = "mom_eam_specialty_maintenance_order-批量删除")
//    //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:deleteBatch")
//    @DeleteMapping(value = "/deleteBatch")
//    public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
//        this.specialtyMaintenanceOrderService.removeByIds(Arrays.asList(ids.split(",")));
//        return Result.OK("批量删除成功!");
//    }
//
//    /**
//     * é€šè¿‡id查询
//     *
//     * @param id
//     * @return
//     */
//    //@AutoLog(value = "mom_eam_specialty_maintenance_order-通过id查询")
//    @ApiOperation(value = "mom_eam_specialty_maintenance_order-通过id查询", notes = "mom_eam_specialty_maintenance_order-通过id查询")
//    @GetMapping(value = "/queryById")
//    public Result<SpecialtyMaintenanceOrder> queryById(@RequestParam(name = "id", required = true) String id) {
//        SpecialtyMaintenanceOrder specialtyMaintenanceOrder = specialtyMaintenanceOrderService.getById(id);
//        if (specialtyMaintenanceOrder == null) {
//            return Result.error("未找到对应数据");
//        }
//        return Result.OK(specialtyMaintenanceOrder);
//    }
//
//    /**
//     * å¯¼å‡ºexcel
//     *
//     * @param request
//     * @param specialtyMaintenanceOrder
//     */
//    //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:exportXls")
//    @RequestMapping(value = "/exportXls")
//    public ModelAndView exportXls(HttpServletRequest request, SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        return super.exportXls(request, specialtyMaintenanceOrder, SpecialtyMaintenanceOrder.class, "mom_eam_specialty_maintenance_order");
//    }
//
//    /**
//     * é€šè¿‡excel导入数据
//     *
//     * @param request
//     * @param response
//     * @return
//     */
//    //@RequiresPermissions("mom_eam_specialty_maintenance_order:importExcel")
//    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
//    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
//        return super.importExcel(request, response, SpecialtyMaintenanceOrder.class);
//    }
//
//    @RequestMapping(value = "/assign", method = {RequestMethod.PUT, RequestMethod.POST})
//    public Result<String> assign(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//        boolean b = specialtyMaintenanceOrderService.assign(specialtyMaintenanceOrder);
//        if (b) {
//            return Result.OK("改派成功!");
//        } else {
//            return Result.error("改派失败!");
//        }
//    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,423 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
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.api.ISysBaseAPI;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.base.entity.SysUpload;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.model.DepartVo;
import org.jeecg.modules.eam.service.*;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.transaction.annotation.Transactional;
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 javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/eam/predictiveworkplan")
@Slf4j
public class PredictiveWorkPlanController extends JeecgController<PredictiveWorkPlan, IPredictiveWorkPlanService> {
    @Autowired
    private IPredictiveWorkPlanService predictiveWorkPlanService;
    /**
     * é¢„测性维护方案 åˆ—表
     */
    @GetMapping(value = "/pagePredictiveWorkPlan")
    public Result<IPage<Map<String, Object>>> pagePredictiveWorkPlan(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> maintenanceStandardList = predictiveWorkPlanService.pagePredictiveWorkPlan(pageNo, pageSize, params);
        return Result.OK(maintenanceStandardList);
    }
    /**
     * æ·»åŠ 
     */
    @AutoLog(value = "predictive_work_plan-添加")
    @ApiOperation(value = "predictive_work_plan-添加", notes = "predictive_work_plan-添加")
    @PostMapping(value = "/add")
    @Transactional(rollbackFor = {Exception.class})
    public Result<String> add(@RequestBody PredictiveWorkPlan predictiveWorkPlan) {
        predictiveWorkPlanService.save(predictiveWorkPlan);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     */
    @AutoLog(value = "predictive_work_plan-编辑")
    @ApiOperation(value = "predictive_work_plan-编辑", notes = "predictive_work_plan-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    @Transactional(rollbackFor = {Exception.class})
    public Result<String> edit(@RequestBody PredictiveWorkPlan predictiveWorkPlan) {
        predictiveWorkPlanService.updateById(predictiveWorkPlan);
        return Result.OK("编辑成功!");
    }
//   /**
//    *   é€šè¿‡id删除
//    *
//    * @param id
//    * @return
//    */
//   @AutoLog(value = "mom_eam_equipment-通过id删除")
//   @ApiOperation(value="mom_eam_equipment-通过id删除", notes="mom_eam_equipment-通过id删除")
//   //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment:delete")
//   @DeleteMapping(value = "/delete")
//   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
//       Equipment equipment = equipmentService.getById(id);
//       equipment.setDelFlag(1);
//       equipmentService.updateById(equipment);
//       return Result.OK("删除成功!");
//   }
//
//   /**
//    *  æ‰¹é‡åˆ é™¤
//    *
//    * @param ids
//    * @return
//    */
//   @AutoLog(value = "mom_eam_equipment-批量删除")
//   @ApiOperation(value="mom_eam_equipment-批量删除", notes="mom_eam_equipment-批量删除")
//   //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment:deleteBatch")
//   @DeleteMapping(value = "/deleteBatch")
//   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
//       List<String> stringList = Arrays.asList(ids.split(","));
//       for (String id : stringList) {
//           Equipment equipment = equipmentService.getById(id);
//           equipment.setDelFlag(1);
//           equipmentService.updateById(equipment);
//       }
////        this.equipmentService.removeByIds(Arrays.asList(ids.split(",")));
//       return Result.OK("批量删除成功!");
//   }
//
//   /**
//    * é€šè¿‡id查询
//    *
//    * @param id
//    * @return
//    */
//   //@AutoLog(value = "mom_eam_equipment-通过id查询")
//   @ApiOperation(value="mom_eam_equipment-通过id查询", notes="mom_eam_equipment-通过id查询")
//   @GetMapping(value = "/queryById")
//   public Result<Equipment> queryById(@RequestParam(name="id",required=true) String id) {
//       Equipment equipment = equipmentService.getById(id);
//       if(equipment==null) {
//           return Result.error("未找到对应数据");
//       }
//       return Result.OK(equipment);
//   }
//
//   /**
//   * å¯¼å‡ºexcel
//   *
//   * @param request
//   * @param equipment
//   */
//   //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment:exportXls")
//   @RequestMapping(value = "/exportXls")
//   public ModelAndView exportXls(HttpServletRequest request, Equipment equipment) {
//       return super.exportXls(request, equipment, Equipment.class, "mom_eam_equipment");
//   }
//
////    /**
////      * é€šè¿‡excel导入数据
////    *
////    * @param request
////    * @param response
////    * @return
////    */
////    //@RequiresPermissions("mom_eam_equipment:importExcel")
////    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
////    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
////        return super.importExcel(request, response, Equipment.class);
////    }
//
//
//    /**
//     * è®¾å¤‡å»ºè´¦  èŽ·å–ç»„ç»‡éƒ¨é—¨
//     * qsw 2023-4-28
//     */
//    @GetMapping("getSysDeparts")
//    public Result<?> getSysDeparts() {
//        List<DepartVo> sysDeparts = equipmentService.getSysDeparts();
//        return Result.ok(sysDeparts);
//    }
//
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡ä½¿ç”¨è®°å½•
//     * qsw 2023-7-28
//     */
//    @GetMapping(value = "/getResumeUseRecordList")
//    public Result<?> getResumeUseRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeUseRecordList = equipmentService.getResumeUseRecordList(pageNo, pageSize, params);
//        return Result.ok(resumeUseRecordList);
//    }
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡ç‚¹æ£€è®°å½•
//     * qsw 2023-7-28
//     */
//    @GetMapping(value = "/getResumeInspectionRecordList")
//    public Result<?> getResumeInspectionRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeInspectionRecordList = equipmentService.getResumeInspectionRecordList(pageNo, pageSize, params);
//        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
//        for (Map<String, Object> record : resumeInspectionRecordList.getRecords()) {
//            String id = (String)record.get("id");
//            String inspectionType = (String)record.get("inspectionType");
//            if("日常点检".equals(inspectionType)){
//                List<InspectionOrderDetail> failCount = inspectionOrderDetailService.lambdaQuery()
//                        .eq(InspectionOrderDetail::getInspectionOrderId, id)
//                        .eq(InspectionOrderDetail::getJudgmentResult, "fail")
//                        .eq(InspectionOrderDetail::getDelFlag, 0).list();
//
//                List<InspectionOrderDetail> passCount = inspectionOrderDetailService.lambdaQuery()
//                        .eq(InspectionOrderDetail::getInspectionOrderId, id)
//                        .eq(InspectionOrderDetail::getJudgmentResult,"pass")
//                        .eq(InspectionOrderDetail::getDelFlag, 0).list();
//                record.put("result","正常:"+passCount.size()+","+"异常:"+failCount.size());
//            }else{
//                List<SpecialtyInspectionOrderDetail> failCount = specialtyInspectionOrderDetailService.lambdaQuery()
//                        .eq(SpecialtyInspectionOrderDetail::getSpecialtyInspectionOrderId, id)
//                        .eq(SpecialtyInspectionOrderDetail::getJudgmentResult,"fail")
//                        .eq(SpecialtyInspectionOrderDetail::getDelFlag, 0).list();
//
//                List<SpecialtyInspectionOrderDetail> passCount = specialtyInspectionOrderDetailService.lambdaQuery()
//                        .eq(SpecialtyInspectionOrderDetail::getSpecialtyInspectionOrderId, id)
//                        .eq(SpecialtyInspectionOrderDetail::getJudgmentResult,"pass")
//                        .eq(SpecialtyInspectionOrderDetail::getDelFlag, 0).list();
//                record.put("result","正常:"+passCount.size()+","+"异常:"+failCount.size());
//            }
//        }
//        return Result.ok(resumeInspectionRecordList);
//    }
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡ä¿å…»è®°å½•
//     * qsw 2023-7-31
//     */
//    @GetMapping(value = "/getResumeMaintenanceRecordList")
//    public Result<?> getResumeMaintenanceRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeMaintenanceRecordList = equipmentService.getResumeMaintenanceRecordList(pageNo, pageSize, params);
//        return Result.ok(resumeMaintenanceRecordList);
//    }
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡ç»´ä¿®è®°å½•
//     * qsw 2023-7-31
//     */
//    @GetMapping(value = "/getResumeRepairRecordList")
//    public Result<?> getResumeRepairRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeRepairRecordList = equipmentService.getResumeRepairRecordList(pageNo, pageSize, params);
//        return Result.ok(resumeRepairRecordList);
//    }
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡æ£€å®šè®°å½•
//     * qsw 2023-7-31
//     */
//    @GetMapping(value = "/getResumeCalibrationRecordList")
//    public Result<?> getResumeCalibrationRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeCalibrationRecordList = equipmentService.getResumeCalibrationRecordList(pageNo, pageSize, params);
//        for (Map<String, Object> record : resumeCalibrationRecordList.getRecords()) {
//            String id = (String)record.get("id");
//            String status = (String)record.get("status");
//            String managementMode = (String)record.get("managementMode");
//            if("4".equals(status)){
//                if("data".equals(managementMode)){
//                    List<CalibrationOrderDetail> calibrationOrderDetails = calibrationOrderDetailService.lambdaQuery()
//                            .eq(CalibrationOrderDetail::getCalibrationOrderId, id)
//                            .eq(CalibrationOrderDetail::getJudgmentResult, "fail")
//                            .eq(CalibrationOrderDetail::getDelFlag,"0").list();
//                    if(calibrationOrderDetails.size()>0){
//                        record.put("calibrationResult","异常");
//                    }else{
//                        record.put("calibrationResult","正常常");
//                    }
//                }else{
//                    List<CalibrationOrderReport> calibrationOrderReports = calibrationOrderReportService.lambdaQuery()
//                            .eq(CalibrationOrderReport::getCalibrationOrderId, id)
//                            .eq(CalibrationOrderReport::getJudgmentResult, "fail")
//                            .eq(CalibrationOrderReport::getDelFlag, "0").list();
//                    if(calibrationOrderReports.size()>0){
//                        record.put("calibrationResult","异常");
//                    }else{
//                        record.put("calibrationResult","正常常");
//                    }
//                }
//            }
//        }
//        return Result.ok(resumeCalibrationRecordList);
//    }
//
//    /**
//     *设备履历 èŽ·å–è®¾å¤‡å¤„ç½®è®°å½•
//     * qsw 2023-7-31
//     */
//    @GetMapping(value = "/getResumeChangeRecordList")
//    public Result<?> getResumeChangeRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
//        IPage<Map<String, Object>> resumeChangeRecordList = equipmentService.getResumeChangeRecordList(pageNo, pageSize, params);
//        return Result.ok(resumeChangeRecordList);
//    }
//
//    /**
//     * æ ¹æ®çŠ¶æ€æŸ¥è¯¢è®¾å¤‡åˆ—è¡¨
//     */
//    @GetMapping(value = "/getEquipmentListByStatus")
//    public Result<IPage<Equipment>> getEquipmentList(Equipment equipment,String status,
//                                                     @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
//                                                     @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
//                                                     HttpServletRequest req) {
//        QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
//        List<String> statusList = Arrays.asList(status.split(","));
//        Page<Equipment> page = new Page<Equipment>(pageNo, pageSize);
//        queryWrapper.in("equipment_status",statusList);
//        IPage<Equipment> pageList = equipmentService.page(page, queryWrapper);
//        return Result.OK(pageList);
//    }/**
//     * å¯¼å…¥
//     * @return
//     */
//    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
//    @Transactional(rollbackFor = Exception.class)
//    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
//        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
//        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
//        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
//        String exceptionInfo = "";
//        int exceptionNum = 0;
//        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
//            MultipartFile file = entity.getValue();
//            ImportParams params = new ImportParams();
//            params.setNeedSave(true);
//            try {
//                List<EquipmentImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), EquipmentImportVo.class, params);
//                for(int i = 0;i<list.size();i++){
//                    EquipmentImportVo equipmentImportVo = list.get(i);
//                    EquipmentCategory equipmentCategory = equipmentCategoryService.getOne(new QueryWrapper<EquipmentCategory>().eq("name",equipmentImportVo.getEquipmentCategoryName()),false);
//                    if(
//                            StringUtils.isBlank(equipmentImportVo.getNum())
//                                   || StringUtils.isBlank(equipmentImportVo.getName())
//                                   || StringUtils.isBlank(equipmentImportVo.getUseId())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentUda1())
//                                   || StringUtils.isBlank(equipmentImportVo.getManageId())
//                                   || StringUtils.isBlank(equipmentImportVo.getTeamId())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentImportanceId())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentCategoryName())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentStatus())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentUda3())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentUda5())
//                                   || StringUtils.isBlank(equipmentImportVo.getEquipmentUda2())
//                                   || StringUtils.isBlank(equipmentImportVo.getLeaveFactoryDate())
//                                   || StringUtils.isBlank(equipmentImportVo.getProjectApprovalNo())
//                                   || StringUtils.isBlank(equipmentImportVo.getFundSource())
//                                   || StringUtils.isBlank(equipmentImportVo.getAcceptanceCheckDate())
//                                   || StringUtils.isBlank(equipmentImportVo.getLeaveFactoryDate())
//                                   || StringUtils.isBlank(equipmentImportVo.getFactoryNo())
//                                   || StringUtils.isBlank(equipmentImportVo.getConstructorId())
//                                   || StringUtils.isBlank(equipmentImportVo.getSourceCountry())
//                                   || StringUtils.isBlank(equipmentImportVo.getModel())
//                                   || StringUtils.isBlank(equipmentImportVo.getSpecification())
//                                   || StringUtils.isBlank(equipmentImportVo.getGpo())
//                    ){
//                        exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:数据有未填项,请填写必填项后再导入;";
//                        exceptionNum++;
//                    }else if(ObjectUtils.isNull(equipmentCategory))
//                          {
//                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:该设备所属类别不存在,请先维护设备类别;";
//                             exceptionNum++;
//                          }
//                     else{
//                        Equipment oriEquipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentImportVo.getNum()),false);
//                        if(ObjectUtils.isNull(oriEquipment)){
//                            Equipment equipment = new Equipment();
//                            equipment.setNum(equipmentImportVo.getNum())
//                                    .setName(equipmentImportVo.getName())
//                                    .setUseId(equipmentImportVo.getUseId())
//                                    .setEquipmentUda1(equipmentImportVo.getEquipmentUda1())
//                                    .setManageId(equipmentImportVo.getManageId())
//                                    .setTeamId(equipmentImportVo.getTeamId())
//                                    .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
//                                    .setEquipmentCategoryId(equipmentCategory.getId())
//                                    .setSpecificEquipment(equipmentImportVo.getKeyEquipmentIdentification())
//                                    .setSecurityConfiguration(equipmentImportVo.getSecurityConfiguration())
//                                    .setCoolingSystem(equipmentImportVo.getCoolingSystem())
//                                    .setFireExtinguisher(equipmentImportVo.getFireExtinguisher())
//                                    .setFireExtinguisherValidityPeriod(equipmentImportVo.getFireExtinguisherValidityPeriod())
//                                    .setOperatingSystem(equipmentImportVo.getOperatingSystem())
//                                    .setSystem(equipmentImportVo.getSystem())
//                                    .setPort(equipmentImportVo.getPort())
//                                    .setCoordinateNum(equipmentImportVo.getCoordinateNum())
//                                    .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
//                                    .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
//                                    .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
//                                    .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
//                                    .setLocation(equipmentImportVo.getEquipmentUda2())
//                                    .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
//                                    .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
//                                    .setFundSource(equipmentImportVo.getFundSource())
//                                    .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
//                                    .setFactoryNumber(equipmentImportVo.getFactoryNo())
//                                    .setConstructorId(equipmentImportVo.getConstructorId())
//                                    .setSourceCountry(equipmentImportVo.getSourceCountry())
//                                    .setModel(equipmentImportVo.getModel())
//                                    .setSpecification(equipmentImportVo.getSpecification())
//                                    .setGpo(equipmentImportVo.getGpo());
//                            equipmentService.save(equipment);
//                        }else {
//                            exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
//                            exceptionNum++;
//                        }
//                    }
//                }
//                if(exceptionNum!=0){
//                    String headInfo = "小导提醒您!设备台账:导入成功"+(list.size()-exceptionNum)+"条,失败"+exceptionNum+"条";
//                    MessageDTO messageDTO = new MessageDTO();
//                    messageDTO.setTitle(headInfo);
//                    messageDTO.setFromUser("数据导入小助手-小导");
//                    messageDTO.setCategory("导入操作附加信息");
//                    messageDTO.setContent(exceptionInfo);
//                    messageDTO.setToUser(user.getUsername());
//                    sysBaseApi.sendSysAnnouncement(messageDTO);
//                    return Result.OK(headInfo+",可在-系统消息-查看导入详情");
//                }
//                return Result.OK("导入成功,已导入全部数据。");
//            } catch (Exception e) {
//                log.error(e.getMessage(), e);
//                return Result.error("文件导入失败:" + e.getMessage());
//            }
//        }
//        return Result.error("文件导入失败!");
//    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanParameterController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.PredictiveWorkPlanParameter;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanSparePartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/eam/predictiveworkplanparameter")
@Slf4j
public class PredictiveWorkPlanParameterController extends JeecgController<PredictiveWorkPlanParameter, IPredictiveWorkPlanParameterService> {
    @Autowired
    private IPredictiveWorkPlanParameterService predictiveWorkPlanParameterService;
    /**
     * å‚数列表
     */
    @GetMapping("listPredictiveWorkPlanParameter")
    public Result<?> listPredictiveWorkPlanParameter(@RequestParam Map<String, Object> params) {
        List<PredictiveWorkPlanParameter> materials = predictiveWorkPlanParameterService.listPredictiveWorkPlanParameter(params);
        return Result.ok(materials);
    }
    /**
     * å‚数控制列表
     */
    @GetMapping("pagePredictiveWorkPlanParameter")
    public Result<?> pagePredictiveWorkPlanParameter(@RequestParam("pageNo") Integer pageNo,
                                                     @RequestParam("pageSize") Integer pageSize,
                                                     @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> materials = predictiveWorkPlanParameterService.pagePredictiveWorkPlanParameter(pageNo, pageSize, params);
        return Result.ok(materials);
    }
    /**
     * æ·»åŠ 
     */
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody PredictiveWorkPlanParameter predictiveWorkPlanParameter) {
        predictiveWorkPlanParameterService.save(predictiveWorkPlanParameter);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     */
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody PredictiveWorkPlanParameter predictiveWorkPlanParameter) {
        predictiveWorkPlanParameterService.updateById(predictiveWorkPlanParameter);
        return Result.OK("编辑成功!");
    }
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        predictiveWorkPlanParameterService.removeById(id);
        return Result.OK("删除成功!");
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanSparePartController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.system.base.controller.JeecgController;
import org.jeecg.modules.eam.entity.MaintenanceStandardPlanningMaterial;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanSparePartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/eam/predictiveworkplansparepart")
@Slf4j
public class PredictiveWorkPlanSparePartController extends JeecgController<PredictiveWorkPlanSparePart, IPredictiveWorkPlanSparePartService> {
    @Autowired
    private IPredictiveWorkPlanSparePartService predictiveWorkPlanSparePartService;
    /**
     * å¤‡ä»¶æŽ§åˆ¶åˆ—表
     */
    @GetMapping("pagePredictiveWorkPlanSparePart")
    public Result<?> pagePredictiveWorkPlanSparePart(@RequestParam("pageNo") Integer pageNo,
                                                     @RequestParam("pageSize") Integer pageSize,
                                                     @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> materials = predictiveWorkPlanSparePartService.pagePredictiveWorkPlanSparePart(pageNo, pageSize, params);
        return Result.ok(materials);
    }
    /**
     * æ·»åŠ 
     */
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody PredictiveWorkPlanSparePart predictiveWorkPlanSparePart) {
        predictiveWorkPlanSparePartService.save(predictiveWorkPlanSparePart);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     */
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody PredictiveWorkPlanSparePart predictiveWorkPlanSparePart) {
        predictiveWorkPlanSparePartService.updateById(predictiveWorkPlanSparePart);
        return Result.OK("编辑成功!");
    }
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        predictiveWorkPlanSparePartService.removeById(id);
        return Result.OK("删除成功!");
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PredictiveWorkPlanWarnController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.PredictiveWorkPlanWarn;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanWarnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/eam/predictiveworkplanwarn")
@Slf4j
public class PredictiveWorkPlanWarnController extends JeecgController<PredictiveWorkPlanWarn, IPredictiveWorkPlanWarnService> {
    @Autowired
    private IPredictiveWorkPlanWarnService predictiveWorkPlanWarnService;
    /**
     * æŠ¥è­¦åˆ—表
     */
    @GetMapping("listPredictiveWorkPlanWarn")
    public Result<?> listPredictiveWorkPlanWarn(@RequestParam Map<String, Object> params) {
        List<PredictiveWorkPlanWarn> materials = predictiveWorkPlanWarnService.listPredictiveWorkPlanWarn(params);
        return Result.ok(materials);
    }
    @GetMapping("pagePredictiveWorkPlanWarn")
    public Result<?> pagePredictiveWorkPlanParameter(@RequestParam("pageNo") Integer pageNo,
                                                     @RequestParam("pageSize") Integer pageSize,
                                                     @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> materials = predictiveWorkPlanWarnService.pagePredictiveWorkPlanWarn(pageNo, pageSize, params);
        return Result.ok(materials);
    }
    /**
     * æ·»åŠ 
     */
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody PredictiveWorkPlanWarn predictiveWorkPlanWarn) {
        predictiveWorkPlanWarnService.save(predictiveWorkPlanWarn);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     */
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> edit(@RequestBody PredictiveWorkPlanWarn predictiveWorkPlanWarn) {
        predictiveWorkPlanWarnService.updateById(predictiveWorkPlanWarn);
        return Result.OK("编辑成功!");
    }
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
        predictiveWorkPlanWarnService.removeById(id);
        return Result.OK("删除成功!");
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java
@@ -351,6 +351,14 @@
        return Result.OK(pageList);
    }
     @GetMapping(value = "/pageRepairOrderDetailByMainId")
     public Result<IPage<RepairOrderDetail>> pageRepairOrderDetailByMainId(@RequestParam("pageNo") Integer pageNo,
                                                                           @RequestParam("pageSize") Integer pageSize,
                                                                           @RequestParam Map<String, Object> params) {
         IPage<RepairOrderDetail> pageList = repairOrderDetailService.pageRepairOrderDetailByMainId(pageNo, pageSize, params);
         return Result.OK(pageList);
     }
    /**
     * æ·»åŠ 
     * @param repairOrderDetail
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceStandardPlanningMaterial.java
@@ -34,8 +34,8 @@
    private static final long serialVersionUID = 1L;
    /**保养标准id*/
    @Excel(name = "保养标准id", width = 15)
    @ApiModelProperty(value = "保养标准id")
    @Excel(name = "保养标准id/业务表主键ID", width = 15)
    @ApiModelProperty(value = "保养标准id/业务表主键ID")
    private String maintenanceStandardId;
    /**物料id*/
    @Excel(name = "物料id", width = 15)
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkOrder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
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.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("mom_eam_predictive_work_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkOrder extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸“业保养工单号
     */
    @Excel(name = "预测性维护工单号", width = 15)
    @ApiModelProperty(value = "预测性维护工单号")
    private String num;
    /**
     * å®žé™…开始时间
     */
    @Excel(name = "实际开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际开始时间")
    private Date actualStartTime;
    /**
     * å®žé™…结束时间
     */
    @Excel(name = "实际结束时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "实际结束时间")
    private Date actualEndTime;
    /**
     * ä¿å…»äºº
     */
    @Excel(name = "保养人", width = 15)
    @ApiModelProperty(value = "保养人")
    private String maintenanceUserId;
    /**
     * è®¡åˆ’开始时间
     */
    @Excel(name = "计划开始时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划开始时间")
    private Date planStartTime;
    /**
     * è®¡åˆ’结束时间
     */
    @Excel(name = "计划结束时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划结束时间")
    private Date planEndTime;
    /**
     * é¢†å–人id
     */
    @Excel(name = "领取人id", width = 15)
    @ApiModelProperty(value = "领取人id")
    private String recipientUserId;
    /**
     * åˆ é™¤çŠ¶æ€(0-正常,1-已删除)
     */
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    /**
     * çŠ¶æ€
     */
    @Excel(name = "状态", width = 15)
    @ApiModelProperty(value = "状态")
    private String status = CommonConstant.STATUS_1;
    /**
     * å¤‡ç”¨å­—段1
     */
    @Excel(name = "备用字段1", width = 15)
    @ApiModelProperty(value = "备用字段1")
    private String maintenanceOrderUda1;
    /**
     * å¤‡ç”¨å­—段2
     */
    @Excel(name = "备用字段2", width = 15)
    @ApiModelProperty(value = "备用字段2")
    private String maintenanceOrderUda2;
    /**
     * å¤‡ç”¨å­—段3
     */
    @Excel(name = "备用字段3", width = 15)
    @ApiModelProperty(value = "备用字段3")
    private String maintenanceOrderUda3;
    /**
     * å¤‡ç”¨å­—段4
     */
    @Excel(name = "备用字段4", width = 15)
    @ApiModelProperty(value = "备用字段4")
    private String maintenanceOrderUda4;
    /**
     * å¤‡ç”¨å­—段5
     */
    @Excel(name = "备用字段5", width = 15)
    @ApiModelProperty(value = "备用字段5")
    private String maintenanceOrderUda5;
    /**
     * åˆ›å»ºç±»åž‹ï¼ˆ1手动创建,2自动创建)
     */
    @Excel(name = "创建类型(1手动创建,2自动创建)", width = 15)
    @ApiModelProperty(value = "创建类型(1手动创建,2自动创建)")
    private String createType;
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "设备ID", width = 36)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    private String itemId;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
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.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
//预测性维护方案
@Data
@TableName("mom_eam_predictive_work_plan")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlan extends JeecgEntity implements Serializable {
    @Excel(name = "方案编码", width = 30)
    @ApiModelProperty(value = "方案编码")
    private String num;
    @Excel(name = "方案名称", width = 30)
    @ApiModelProperty(value = "方案名称")
    private String name;
    @Excel(name = "设备ID", width = 36)
    @ApiModelProperty(value = "设备ID")
    private String  equipmentId;
    @Excel(name = "版本", width = 30)
    @ApiModelProperty(value = "版本")
    private String planVersion;
    @Excel(name = "维保方式", width = 15)
    @ApiModelProperty(value = "维保方式")
    private String maintenanceMethod;
    @Excel(name = "监控类型", width = 15)
    @ApiModelProperty(value = "监控类型")
    private String monitorType;
    @Excel(name = "派工方式", width = 15)
    @ApiModelProperty(value = "派工方式")
    private String assignMode;
    @Excel(name = "责任班组", width = 15)
    @ApiModelProperty(value = "责任班组")
    @Dict(dicCode = "id",dictTable="mom_base_team",dicText="name")
    private String teamId;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    @Excel(name = "状态(1未生效,2已生效,3已失效)", width = 15)
    @ApiModelProperty(value = "状态(1未生效,2已生效,3已失效)")
    private String status;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanParameter.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
//预测性维护方案 è§¦å‘条件参数
@Data
@TableName("mom_eam_predictive_work_plan_parameter")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlanParameter extends JeecgEntity implements Serializable {
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "参数ID", width = 30)
    @ApiModelProperty(value = "参数ID")
    private String parameterId;
    @Excel(name = "参数代码", width = 36)
    @ApiModelProperty(value = "参数代码")
    private String parameterCode;
    @Excel(name = "参数名称", width = 30)
    @ApiModelProperty(value = "参数名称")
    private String parameterName;
    @Excel(name = "单位", width = 15)
    @ApiModelProperty(value = "单位")
    private String parameterUnit;
    @Excel(name = "条件", width = 15)
    @ApiModelProperty(value = "条件")
    private String parameterCondition;
    @Excel(name = "上限值", width = 15)
    @ApiModelProperty(value = "上限值")
    private float upperLimitValue;
    @Excel(name = "下限值", width = 15)
    @ApiModelProperty(value = "下限值")
    private float lowerLimitValue;
    private String saveTableName;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    @TableField(exist = false)
    private float actualValue;
    @TableField(exist = false)
    private Date collectTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanParameterHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("mom_eam_predictive_work_plan_parameter_history")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlanParameterHistory extends JeecgEntity implements Serializable {
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "参数ID", width = 30)
    @ApiModelProperty(value = "参数ID")
    private String parameterId;
    @Excel(name = "参数代码", width = 30)
    @ApiModelProperty(value = "参数代码")
    private String parameterCode;
    @Excel(name = "参数名称", width = 30)
    @ApiModelProperty(value = "参数名称")
    private String parameterName;
    @Excel(name = "上限值", width = 15)
    @ApiModelProperty(value = "上限值")
    private float upperLimitValue;
    @Excel(name = "下限值", width = 15)
    @ApiModelProperty(value = "下限值")
    private float lowerLimitValue;
    @Excel(name = "实际值", width = 15)
    @ApiModelProperty(value = "实际值")
    private float actualValue;
    @Excel(name = "条件", width = 15)
    @ApiModelProperty(value = "条件")
    private String parameterCondition;
    @Excel(name = "监测时间", width = 15)
    @ApiModelProperty(value = "监测时间")
    private Date collectTime;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanSparePart.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
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.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
//预测性维护方案 è§¦å‘条件寿命
@Data
@TableName("mom_eam_predictive_work_plan_spare_part")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlanSparePart extends JeecgEntity implements Serializable {
    @Excel(name = "备件ID", width = 30)
    @ApiModelProperty(value = "备件ID")
    private String sparePartId;
    @Excel(name = "配套数量", width = 30)
    @ApiModelProperty(value = "配套数量")
    private float supportingQuantity;
    @Excel(name = "额定寿命/小时", width = 36)
    @ApiModelProperty(value = "额定寿命/小时")
    private float ratedLife;
    @Excel(name = "寿命控制限", width = 30)
    @ApiModelProperty(value = "寿命控制限")
    private float lifeWarning;
    @Excel(name = "实际寿命", width = 15)
    @ApiModelProperty(value = "实际寿命")
    private float actualLife;
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    @TableField(exist = false)
    private String equipmentId;
    @TableField(exist = false)
    private String mdcEquipmentId;
    @TableField(exist = false)
    private Date replacementTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanWarn.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
//预测性维护方案 è§¦å‘条件告警
@Data
@TableName("mom_eam_predictive_work_plan_warn")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlanWarn extends JeecgEntity implements Serializable {
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "mdc设备ID", width = 15)
    @ApiModelProperty(value = "mdc设备ID")
    private String mdcEquipmentId;
    @Excel(name = "条件", width = 15)
    @ApiModelProperty(value = "条件")
    private String parameterCondition;
    @Excel(name = "报警ID", width = 30)
    @ApiModelProperty(value = "报警ID")
    private String warnId;
    @Excel(name = "报警代码", width = 36)
    @ApiModelProperty(value = "报警代码")
    private String warnCode;
    @Excel(name = "报警名称", width = 30)
    @ApiModelProperty(value = "报警名称")
    private String warnName;
    @Excel(name = "报警周期", width = 15)
    @ApiModelProperty(value = "报警周期")
    private int warnCycle;
    @Excel(name = "报警周期单位", width = 15)
    @ApiModelProperty(value = "报警周期单位")
    private String cycleUnit;
    @Excel(name = "报警次数", width = 15)
    @ApiModelProperty(value = "报警次数")
    private int times;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/PredictiveWorkPlanWarnHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("mom_eam_predictive_work_plan_warn_history")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class PredictiveWorkPlanWarnHistory extends JeecgEntity implements Serializable {
    @Excel(name = "维护方案ID", width = 15)
    @ApiModelProperty(value = "维护方案ID")
    private String workPlanId;
    @Excel(name = "条件", width = 15)
    @ApiModelProperty(value = "条件")
    private String parameterCondition;
    @Excel(name = "报警ID", width = 30)
    @ApiModelProperty(value = "报警ID")
    private String warnId;
    @Excel(name = "报警代码", width = 36)
    @ApiModelProperty(value = "报警代码")
    private String warnCode;
    @Excel(name = "报警名称", width = 30)
    @ApiModelProperty(value = "报警名称")
    private String warnName;
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag = CommonConstant.DEL_FLAG_0;
    @Excel(name = "监测时间", width = 15)
    @ApiModelProperty(value = "监测时间")
    private Date collectTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/PredictiveWorkPlanSparePartJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package org.jeecg.modules.eam.job;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanSparePartService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import javax.annotation.Resource;
/**
 * å¤‡ä»¶å¯¿å‘½æ£€æŸ¥ï¼Œç”Ÿæˆé¢„测工单
 */
@Slf4j
public class PredictiveWorkPlanSparePartJob implements Job {
    @Resource
    private IPredictiveWorkPlanSparePartService predictiveWorkPlanSparePartService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        log.info("备件寿命检查,生成预测工单任务 PredictiveWorkPlanSparePartJob start!  æ—¶é—´:" + DateUtils.now());
        try {
            predictiveWorkPlanSparePartService.createSparePartWorkPlan();
            log.info("备件寿命检查,生成预测工单任务 PredictiveWorkPlanSparePartJob æ‰§è¡ŒæˆåŠŸ!");
        } catch (Exception e) {
            log.error("备件寿命检查,生成预测工单任务 PredictiveWorkPlanSparePartJob æ‰§è¡Œå¤±è´¥!");
            log.error(e.getMessage(), e);
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkOrderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.eam.entity.PredictiveWorkOrder;
import org.jeecg.modules.eam.entity.SpecialtyMaintenanceOrder;
import java.util.List;
import java.util.Map;
public interface PredictiveWorkOrderMapper extends BaseMapper<PredictiveWorkOrder> {
    public IPage<Map<String, Object>> pageOrderList(IPage<Map> pageData,@Param("params")  Map<String, Object> params);
    @Select("<script> select dbo.F_GET_SEQ_ID('${predictiveWorkOrder}') </script>")
    public String getOrderNum(@Param("predictiveWorkOrder")String predictiveWorkOrder);
//    List<Map<String,Object>> getMaintenanceProjectList(@Param("maintenanceCycleId") String maintenanceCycleId, @Param("maintenanceMode") String maintenanceMode, @Param("maintenanceStandardId") String maintenanceStandardId);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import java.util.Map;
//预测性维护方案
public interface PredictiveWorkPlanMapper extends BaseMapper<PredictiveWorkPlan> {
    public IPage<Map<String, Object>> pagePredictiveWorkPlan(IPage<Map> pageData, @Param("params") Map<String, Object> params);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanParameterHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameterHistory;
public interface PredictiveWorkPlanParameterHistoryMapper extends BaseMapper<PredictiveWorkPlanParameterHistory> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanParameterMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter;
import org.jeecg.modules.eam.model.ParameterVo;
import java.util.List;
import java.util.Map;
//预测性维护方案 è§¦å‘条件参数
public interface PredictiveWorkPlanParameterMapper extends BaseMapper<PredictiveWorkPlanParameter> {
    public List<PredictiveWorkPlanParameter> listPredictiveWorkPlanParameter(@Param("params") Map<String, Object> params);
    public IPage<Map<String, Object>> pagePredictiveWorkPlanParameter(IPage<Map> pageData, @Param("params") Map<String, Object> params);
    public List<PredictiveWorkPlanParameter> listParameter(@Param("predictiveWorkPlanId") String predictiveWorkPlanId);
    public ParameterVo findParameterInfo(@Param("saveTableName") String saveTableName, @Param("lowerLimitValue") float lowerLimitValue,
                                         @Param("upperLimitValue") float upperLimitValue, @Param("parameterCode") String parameterCode);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanSparePartMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.MaintenanceOrderActualMaterial;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.model.MdcEquipmentRunningSectionVo;
import java.util.List;
import java.util.Map;
//预测性维护方案 è§¦å‘条件寿命
public interface PredictiveWorkPlanSparePartMapper extends BaseMapper<PredictiveWorkPlanSparePart> {
    public IPage<Map<String, Object>> pagePredictiveWorkPlanSparePart(IPage<Map> pageData, @Param("params") Map<String, Object> params);
    public List<PredictiveWorkPlanSparePart> listPredictiveWorkPlanSparePart(@Param("predictiveWorkPlanId") String predictiveWorkPlanId);
    public List<MaintenanceOrderActualMaterial> listMaintenanceOrderActualMaterial( @Param("equipmentId") String equipmentId, @Param("sparePartId") String sparePartId);
    public List<MdcEquipmentRunningSectionVo> listMdcEquipmentRunningSectionVo( @Param("mdcEquipmentId") String mdcEquipmentId);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanWarnHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarnHistory;
public interface PredictiveWorkPlanWarnHistoryMapper extends BaseMapper<PredictiveWorkPlanWarnHistory> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/PredictiveWorkPlanWarnMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.eam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarn;
import org.jeecg.modules.eam.model.MdcEquipmentAlarmVo;
import java.util.List;
import java.util.Map;
//预测性维护方案 è§¦å‘条件报警
public interface PredictiveWorkPlanWarnMapper extends BaseMapper<PredictiveWorkPlanWarn> {
    public List<PredictiveWorkPlanWarn> listPredictiveWorkPlanWarn(@Param("params") Map<String, Object> params);
    public IPage<Map<String, Object>> pagePredictiveWorkPlanWarn(IPage<Map> pageData, @Param("params") Map<String, Object> params);
    public List<PredictiveWorkPlanWarn> listWarn(@Param("predictiveWorkPlanId") String predictiveWorkPlanId);
    public List<MdcEquipmentAlarmVo> findWarnInfo(@Param("mdcEquipmentId") String mdcEquipmentId, @Param("times") int times, @Param("warnCode") String warnCode);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/RepairOrderDetailMapper.java
@@ -1,6 +1,9 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.jeecg.modules.eam.entity.RepairOrderDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@@ -29,4 +32,5 @@
    */
    public List<RepairOrderDetail> selectByMainId(@Param("mainId") String mainId);
    public IPage<RepairOrderDetail> pageRepairOrderDetailByMainId(IPage<Map> pageData, @Param("params") Map<String, Object> params);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.PredictiveWorkOrderMapper">
    <select id="getSpecialtyMaintenanceOrderList"  parameterType="Map" resultType="Map">
        SELECT DISTINCT
        t1.id,
        t1.num,
        t1.status,
        t1.maintenance_user_id maintenanceUserId,
        t12.realname maintenanceUserName,
        t2.id as specialtyMaintenancePlanId,
        t2.num AS specialtyMaintenancePlanNum,
        t2.assign_mode assignMode,
        t11.item_text assignModeName,
        t7.item_text AS statusName,
        t5.item_text AS maintenanceMode,
        t4.depart_name AS departName,
        t2.team_id teamId,
        t6.name AS teamName,
        concat(t8.code, '/', t8.name) AS maintenanceCycleName,
        t9.NAME AS maintenanceTypeName,
        t1.plan_start_time as planStartTime,
        t1.plan_end_time as planEndTime,
        t1.actual_start_time as actualStartTime,
        t1.actual_end_time as actualEndTime,
        t10.realname,
        t1.create_time as createTime,
        t1.create_by as createBy
        FROM
        mom_eam_specialty_maintenance_order t1
        LEFT JOIN mom_eam_specialty_maintenance_plan t2 ON t1.specialty_maintenance_plan_id = t2.id
        LEFT JOIN sys_depart t4 ON t2.depart_id = t4.id
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'maintenance_method' ) t5 ON t5.item_value = t2.maintenance_mode
        LEFT JOIN mom_base_team t6 ON t2.team_id = t6.id
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'maintenance_order_status' ) t7 ON t7.item_value = t1.STATUS
        left join (select * from v_sys_dict where dict_code = 'assign_mode') t11 on t2.assign_mode = t11.item_value
        LEFT JOIN mom_eam_maintenance_cycle t8 ON t8.id = t2.maintenance_cycle_id
        LEFT JOIN mom_eam_maintenance_type t9 ON t9.id = t2.maintenance_type_id
        left join sys_user t10 on t1.recipient_user_id = t10.id
        left join sys_user t12 on t1.maintenance_user_id = t12.id
        WHERE t1.del_flag = 0 and t2.del_flag = 0 and t8.del_flag = 0 and t9.del_flag = 0
        <if test="params.num != null and params.num != ''">
            and t1.num like concat('%',#{params.num},'%')
        </if>
        ORDER BY t1.create_time desc
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.PredictiveWorkPlanMapper">
    <select id="pagePredictiveWorkPlan"  parameterType="Map" resultType="Map">
        SELECT
            t1.*,
            t2.num deviceNum,
            t2.name deviceName,
            t2.model deviceModel,
            t3.item_text assignModeName,
            t4.item_text maintenanceMethodName,
            t5.name teamName,
            t6.item_text statusName,
            t7.item_text monitorTypeName,
            t1.plan_version planVersion,
            t1.create_by createBy,
            t1.create_time createTime
        FROM
        mom_eam_predictive_work_plan t1
        LEFT JOIN mom_eam_equipment t2 on t1.equipment_id = t2.id
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'assign_mode' ) t3 ON t3.item_value = t1.assign_mode
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'maintenance_method' ) t4 ON t4.item_value = t1.maintenance_method
        LEFT JOIN mom_base_team t5 ON t5.id = t2.team_id
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'version_status' ) t6 ON t6.item_value = t1.status
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'monitor_type' ) t7 ON t7.item_value = t1.monitor_type
        WHERE t1.del_flag = 0 and t2.del_flag = 0
        <if test="params.planNum != null and params.planNum != ''">
            and t1.num = concat('%',#{params.planNum},'%')
        </if>
        <if test="params.deviceName != null and params.deviceName != ''">
            and t2.name = concat('%',#{params.deviceName},'%')
        </if>
        ORDER BY t1.create_time desc
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanParameterMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.PredictiveWorkPlanParameterMapper">
    <select id="listPredictiveWorkPlanParameter"  parameterType="Map" resultType="org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter">
        SELECT
        t1.id parameterId,
        t1.chinese_name parameterName,
        t1.english_name parameterCode,
        t2.saveTableName
        FROM
        mdc_drive_type_param_config t1
        LEFT JOIN Equipment t2 ON t2.controlSystem = t1.control_system_type
        LEFT JOIN mom_eam_equipment t3 ON t3.num = t2.EquipmentID
        WHERE t3.id = #{params.equipmentId}
            <if test="params.parameterCode != null and params.parameterCode != ''">
                and t1.english_name = concat('%',#{params.parameterCode},'%')
            </if>
            <if test="params.parameterName != null and params.parameterName != ''">
                and t1.chinese_name = concat('%',#{params.parameterName},'%')
            </if>
        ORDER BY t1.create_time desc
    </select>
    <select id="pagePredictiveWorkPlanParameter"  parameterType="Map" resultType="Map">
        SELECT
        t1.*,
        t1.parameter_code parameterCode,
        t1.parameter_name parameterName,
        t1.upper_limit_value upperLimitValue,
        t1.lower_limit_value lowerLimitValue,
        t2.name unitName,
        t3.item_text conditionalRelationName
        FROM
        mom_eam_predictive_work_plan_parameter t1
        LEFT JOIN mom_base_unit t2 ON t2.id = t1.parameter_unit
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'conditional_relation' ) t3 ON t3.item_value = t1.parameter_condition
        WHERE
        t1.del_flag = 0
        <if test="params.planId != null and params.planId != ''">
            and t1.work_plan_id = #{params.planId}
        </if>
        ORDER BY t1.create_time desc
    </select>
    <select id="listParameter"  parameterType="Map" resultType="org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter">
        SELECT
            t1.work_plan_id workPlanId,
            t1.parameter_id parameterId,
            t1.parameter_code parameterCode,
            t1.parameter_name parameterName,
            t1.upper_limit_value upperLimitValue,
            t1.lower_limit_value lowerLimitValue,
            t1.parameter_condition parameterCondition,
            t1.save_table_name saveTableName
        FROM
            mom_eam_predictive_work_plan_parameter t1
        WHERE t1.del_flag = 0
        <if test="params.planId != null and params.planId != ''">
            and t1.work_plan_id = #{params.planId}
        </if>
        ORDER BY t1.create_time desc
    </select>
    <select id="findParameterInfo"  parameterType="Map" resultType="org.jeecg.modules.eam.model.ParameterVo">
        SELECT TOP 1
            t1.CollectTime collectTime,
            t1.${parameterCode} actualValue
        FROM
            [${saveTableName}] t1
        WHERE
            t1.${parameterCode} <![CDATA[ < ]]>  #{lowerLimitValue}
            OR t1.${parameterCode} > #{upperLimitValue}
        ORDER BY
            t1.CollectTime DESC
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanSparePartMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.PredictiveWorkPlanSparePartMapper">
    <select id="pagePredictiveWorkPlanSparePart" parameterType="Map" resultType="Map">
        SELECT
        t1.*,
        t1.actual_life actualLife,
        t1.create_by createBy,
        t1.life_warning lifeWarning,
        t1.rated_life ratedLife,
        t1.work_plan_id workPlanId,
        t1.supporting_quantity supportingQuantity,
        t1.spare_part_id sparePartId,
        t2.num sparePartNum,
        t2.name sparePartName,
        t2.model sparePartModel,
        t2.specification sparePartSpecification,
        t3.name mainUnitName,
        t2.constructor_id constructorId,
        t4.name constructorName
        FROM mom_eam_predictive_work_plan_spare_part t1
        LEFT JOIN mom_eam_spare_part t2 ON t1.spare_part_id = t2.id
        LEFT JOIN mom_base_unit t3 ON t2.main_unit_id = t3.id
        LEFT JOIN mom_base_constructor t4 ON t4.id = t2.constructor_id
        WHERE t1.del_flag = 0 and t2.del_flag = 0
        <if test="params.planId != null and params.planId != ''">
            and t1.work_plan_id = #{params.planId}
        </if>
        ORDER BY t1.create_time desc
    </select>
    <select id="listPredictiveWorkPlanSparePart" resultType="org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart">
        SELECT
            t1.id,
            t1.spare_part_id sparePartId,
            t1.supporting_quantity supportingQuantity,
            t1.rated_life ratedLife,
            t1.life_warning lifeWarning,
            t1.actual_life actualLife,
            t1.work_plan_id workPlanId,
            t2.equipment_id equipmentId,
            t3.num mdcEquipmentId
        FROM
        mom_eam_predictive_work_plan_spare_part t1
        LEFT JOIN mom_eam_predictive_work_plan t2 ON t1.work_plan_id = t2.id
        LEFT JOIN mom_eam_equipment t3 ON t3.id = t2.equipment_id
        WHERE
        t1.del_flag = 0 and t1.work_plan_id = #{predictiveWorkPlanId}
    </select>
    <select id="listMaintenanceOrderActualMaterial"
            resultType="org.jeecg.modules.eam.entity.MaintenanceOrderActualMaterial">
       SELECT
            t1.id,
            t1.create_time createTime
        FROM
            mom_eam_maintenance_order_actual_material t1
        WHERE
            t1.equipment_id = #{equipmentId}
            AND t1.spare_part_id = #{sparePartId}
            AND t1.del_flag = 0
        ORDER BY
            t1.create_time DESC
    </select>
    <select id="listMdcEquipmentRunningSectionVo" resultType="org.jeecg.modules.eam.model.MdcEquipmentRunningSectionVo">
          select t1.equipment_id equipmentId,
            t1.duration,
            t1.start_time startTime,
            t1.start_long startLong,
            t1.start_time startTime,
            t1.start_long startLong
--             çŠ¶æ€,0:关机,1:开机,2:待机,3:工作,22:报警
        from mdc_equipment_running_section t1  where t1.status IN (1,2,3,22) t1.equipment_id = #{mdcEquipmentId} order by start_time desc
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/PredictiveWorkPlanWarnMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.PredictiveWorkPlanWarnMapper">
    <select id="listPredictiveWorkPlanWarn" parameterType="Map"
            resultType="org.jeecg.modules.eam.entity.PredictiveWorkPlanWarn">
        SELECT MAX(t1.AlarmNo) warnCode,
        MAX (t1.AlarmContent) warnName,
        max(t1.EquipmentID) mdcEquipmentId
        FROM
        EquipmentAlarm t1
        LEFT JOIN Equipment t2 ON t2.EquipmentID = t1.EquipmentID
        LEFT JOIN mom_eam_equipment t3 ON t3.num = t2.EquipmentID
        WHERE t3.id = #{params.equipmentId} AND t1.AlarmNo <![CDATA[ <> ]]>  ''
        <if test="params.warnCode != null and params.warnCode != ''">
            and t1.AlarmNo = concat('%',#{params.warnCode},'%')
        </if>
        <if test="params.warnName != null and params.warnName != ''">
            and t1.AlarmContent = concat('%',#{params.warnName},'%')
        </if>
        GROUP BY t1.AlarmNo, t1.AlarmContent, t1.EquipmentID
    </select>
    <select id="pagePredictiveWorkPlanWarn" parameterType="Map" resultType="Map">
        SELECT
        t1.id,
        t1.work_plan_id workPlanId,
        t1.parameter_condition parameterCondition,
        t1.warn_id warnId,
        t1.warn_code warnCode,
        t1.warn_name warnName,
        t1.warn_cycle warnCycle,
        t1.cycle_unit cycleUnit,
        t1.times,
        t2.item_text conditionalRelationName,
        t3.item_text cycleUnitName
        FROM
        mom_eam_predictive_work_plan_warn t1
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'conditional_relation' ) t2 ON t2.item_value =
        t1.parameter_condition
        LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'warn_cycle_unit' ) t3 ON t3.item_value = t1.cycle_unit
        WHERE
        t1.del_flag = 0
        <if test="params.planId != null and params.planId != ''">
            and t1.work_plan_id = #{params.planId}
        </if>
        ORDER BY t1.create_time desc
    </select>
    <select id="listWarn" resultType="org.jeecg.modules.eam.entity.PredictiveWorkPlanWarn">
        SELECT
        t1.id,
        t1.work_plan_id workPlanId,
        t1.parameter_condition parameterCondition,
        t1.warn_id warnId,
        t1.warn_code warnCode,
        t1.warn_name warnName,
        t1.warn_cycle warnCycle,
        t1.cycle_unit cycleUnit,
        t1.times,
        t1.mdc_equipment_id mdcEquipmentId
        FROM
        mom_eam_predictive_work_plan_warn t1
        WHERE
        t1.del_flag = 0 and t1.work_plan_id = #{predictiveWorkPlanId}
        ORDER BY t1.create_time desc
    </select>
    <select id="findWarnInfo" resultType="org.jeecg.modules.eam.model.MdcEquipmentAlarmVo">
        SELECT TOP ${times}
            t1.EquipmentID equipmentId,
            t1.collectTime,
            t1.AlarmNo,
            t1.AlarmContent
        FROM
            EquipmentAlarm t1
        WHERE
            t1.EquipmentID = #{mdcEquipmentId}
            AND t1.AlarmNo = #{warnCode}
        ORDER BY
            t1.collectTime DESC
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/RepairOrderDetailMapper.xml
@@ -15,4 +15,12 @@
        WHERE
             repair_order_id = #{mainId}
    </select>
    <select id="pageRepairOrderDetailByMainId"  resultType="org.jeecg.modules.eam.entity.RepairOrderDetail">
        SELECT *
        FROM  mom_eam_repair_order_detail
        WHERE
             repair_order_id = #{params.mainId}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/MdcEquipmentAlarmVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.eam.model;
import lombok.Data;
import java.util.Date;
@Data
public class MdcEquipmentAlarmVo {
    private String equipmentId;
    private Date collectTime;
    private String alarmNo;
    private String alarmContent;
    private String isexamine;
    private String iseffective;
    private Date examinetime;
    private String examineperson;
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/MdcEquipmentRunningSectionVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package org.jeecg.modules.eam.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class MdcEquipmentRunningSectionVo {
    /**
     * è®¾å¤‡ç¼–号
     */
    @Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
    private String equipmentId;
    /**
     * æ—¶é•¿
     */
    @Excel(name = "时长", width = 15)
    @ApiModelProperty(value = "时长")
    private Long duration;
    /**
     * çŠ¶æ€,0:关机,1:开机,2:待机,3:工作,22:报警
     */
    @Excel(name = "状态,0:关机,1:开机,2:待机,3:工作,22:报警", width = 15)
    @ApiModelProperty(value = "状态,0:关机,1:开机,2:待机,3:工作,22:报警")
    private Integer status;
    /**
     * ç¨‹åºå·
     */
    @Excel(name = "程序号", width = 15)
    @ApiModelProperty(value = "程序号")
    private String sequenceNumber;
    /**
     * beltLine
     */
    @Excel(name = "beltLine", width = 15)
    @ApiModelProperty(value = "beltLine")
    private String beltLine;
    /**
     * å¼€å§‹æ—¶é—´
     */
    @Excel(name = "开始时间", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date startTime;
    /**
     * ç»“束时间
     */
    @Excel(name = "结束时间", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
    /**
     * å¼€å§‹æ—¶é—´æˆ³
     */
    @Excel(name = "开始时间戳", width = 15)
    @ApiModelProperty(value = "开始时间戳")
    private Long startLong;
    /**
     * ç»“束时间戳
     */
    @Excel(name = "结束时间戳", width = 15)
    @ApiModelProperty(value = "结束时间戳")
    private Long endLong;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/model/ParameterVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.eam.model;
import lombok.Data;
import java.util.Date;
@Data
public class ParameterVo {
    private String workPlanId;
    private String parameterId;
    private String parameterCode;
    private String parameterName;
    private float upperLimitValue;
    private float lowerLimitValue;
    private float actualValue;
    private String parameterCondition;
    private String saveTableName;
    private Date collectTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkOrder;
import java.util.Map;
public interface IPredictiveWorkOrderService extends IService<PredictiveWorkOrder> {
    public IPage<Map<String, Object>> pageOrderList(Integer pageNo, Integer pageSize, Map<String, Object> params);
    /**
     *新增 å·¥å•
     */
    public boolean add(PredictiveWorkOrder predictiveWorkOrder);
//    /**
//     *编辑 ä¸“业保养工单
//     */
//    boolean edit(SpecialtyMaintenanceOrder specialtyMaintenanceOrder);
//    /**
//     *改派 ä¸“业保工单
//     */
//    boolean assign(SpecialtyMaintenanceOrder specialtyMaintenanceOrder);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanParameterHistoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameterHistory;
public interface IPredictiveWorkPlanParameterHistoryService extends IService<PredictiveWorkPlanParameterHistory> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanParameterService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter;
import java.util.List;
import java.util.Map;
//预测性维护方案 è§¦å‘条件参数
public interface IPredictiveWorkPlanParameterService extends IService<PredictiveWorkPlanParameter> {
    public List<PredictiveWorkPlanParameter> listPredictiveWorkPlanParameter(Map<String, Object> params);
    public IPage<Map<String, Object>> pagePredictiveWorkPlanParameter(Integer pageNo, Integer pageSize, Map<String, Object> params);
    public void createParameterWorkPlan();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import java.util.List;
import java.util.Map;
//预测性维护方案
public interface IPredictiveWorkPlanService extends IService<PredictiveWorkPlan> {
    public IPage<Map<String, Object>> pagePredictiveWorkPlan(Integer pageNo, Integer pageSize, Map<String, Object> params);
    public List<PredictiveWorkPlan> listWorkPlan(String monitorType);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanSparePartService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import java.util.Map;
//预测性维护方案 è§¦å‘条件寿命
public interface IPredictiveWorkPlanSparePartService extends IService<PredictiveWorkPlanSparePart> {
    public IPage<Map<String, Object>> pagePredictiveWorkPlanSparePart(Integer pageNo, Integer pageSize, Map<String, Object> params);
    public void createSparePartWorkPlan();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanWarnHistoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarnHistory;
import java.util.Map;
public interface IPredictiveWorkPlanWarnHistoryService extends IService<PredictiveWorkPlanWarnHistory> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IPredictiveWorkPlanWarnService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarn;
import java.util.List;
import java.util.Map;
//预测性维护方案 è§¦å‘条件报警
public interface IPredictiveWorkPlanWarnService extends IService<PredictiveWorkPlanWarn> {
    public List<PredictiveWorkPlanWarn> listPredictiveWorkPlanWarn(Map<String, Object> params);
    public IPage<Map<String, Object>> pagePredictiveWorkPlanWarn(Integer pageNo, Integer pageSize, Map<String, Object> params);
    public void createWarnWorkPlan();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IRepairOrderDetailService.java
@@ -1,8 +1,10 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.jeecg.modules.eam.entity.RepairOrderDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * @Description: ç»´ä¿®å†…容
@@ -19,4 +21,6 @@
   * @return List<RepairOrderDetail>
   */
    public List<RepairOrderDetail> selectByMainId(String mainId);
    public IPage<RepairOrderDetail> pageRepairOrderDetailByMainId(Integer pageNo, Integer pageSize, Map<String, Object> params);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,171 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.ibatis.annotations.Select;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.InspectionCycleMapper;
import org.jeecg.modules.eam.mapper.PredictiveWorkOrderMapper;
import org.jeecg.modules.eam.mapper.SpecialtyMaintenanceOrderMapper;
import org.jeecg.modules.eam.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class PredictiveWorkOrderServiceImpl extends ServiceImpl<PredictiveWorkOrderMapper, PredictiveWorkOrder> implements IPredictiveWorkOrderService {
    @Override
    public IPage<Map<String, Object>> pageOrderList(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.getBaseMapper().pageOrderList(pageData, params) ;
    }
//    @Autowired
//    private ISpecialtyMaintenancePlanService specialtyMaintenancePlanService;
//
//    @Autowired
//    private IMaintenanceCycleService maintenanceCycleService;
//
//    @Autowired
//    private ISpecialtyMaintenancePlanDetailService specialtyMaintenancePlanDetailService;
//
//    @Autowired
//    private ISpecialtyMaintenanceOrderDetailService specialtyMaintenanceOrderDetailService;
//
    @Override
    public boolean add(PredictiveWorkOrder predictiveWorkOrder) {
        String predictiveWorkOrderStr = super.getBaseMapper().getOrderNum("PredictiveWorkOrder") ;
        String num = "YCWH" + DateUtils.date2Str(DateUtils.yyyyMMdd.get()) + predictiveWorkOrderStr;
        predictiveWorkOrder.setNum(num);
        predictiveWorkOrder.setCreateType("2");
        return super.save(predictiveWorkOrder);
//
//        Date planStartTime = specialtyMaintenanceOrder.getPlanStartTime();
//        String specialtyMaintenancePlanId = specialtyMaintenanceOrder.getSpecialtyMaintenancePlanId();
//        SpecialtyMaintenancePlan specialtyMaintenancePlan = specialtyMaintenancePlanService.getById(specialtyMaintenancePlanId);
////        String departId = specialtyMaintenancePlan.getDepartId();
//        String maintenanceMode = specialtyMaintenancePlan.getMaintenanceMode();
//        String maintenanceCycleId = specialtyMaintenancePlan.getMaintenanceCycleId();
//        MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
//        String unit = maintenanceCycle.getUnit();
//        BigDecimal effectiveTime = maintenanceCycle.getEffectiveTime();
//
//        Date date = null;
//        if("min".equals(unit)){
//            date = DateUtils.getMinAfter(planStartTime, effectiveTime.intValue());
//        }else if("hour".equals(unit)){
//            date = DateUtils.getHourAfter(planStartTime, effectiveTime.intValue());
//        }else if("day".equals(unit)){
//            date = DateUtils.getDayAfter(planStartTime, effectiveTime.intValue());
//        }
//
//        specialtyMaintenanceOrder.setPlanEndTime(date);
//        specialtyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建)
//        boolean b = super.save(specialtyMaintenanceOrder);
//        if(!b){
//            return false;
//        }
//        List<SpecialtyMaintenancePlanDetail> specialtyMaintenancePlanDetails = specialtyMaintenancePlanDetailService.lambdaQuery()
//                .eq(SpecialtyMaintenancePlanDetail::getSpecialtyMaintenancePlanId, specialtyMaintenancePlanId)
//                .eq(SpecialtyMaintenancePlanDetail::getDelFlag, 0).list();
//
//        for (SpecialtyMaintenancePlanDetail specialtyMaintenancePlanDetail : specialtyMaintenancePlanDetails) {
//            String specialtyMaintenancePlanDetailId = specialtyMaintenancePlanDetail.getId();
//            String equipmentId = specialtyMaintenancePlanDetail.getEquipmentId();
//            String maintenanceStandardId = specialtyMaintenancePlanDetail.getMaintenanceStandardId();
//
//            SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail = null;
//            List<Map<String, Object>> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId);
//            for (Map<String, Object> maintenanceProject : maintenanceProjectList) {
//                specialtyMaintenanceOrderDetail = new SpecialtyMaintenanceOrderDetail();
//                specialtyMaintenanceOrderDetail.setSpecialtyMaintenanceOrderId(specialtyMaintenanceOrder.getId());
//                specialtyMaintenanceOrderDetail.setMaintenanceStandardId(maintenanceStandardId);
//                specialtyMaintenanceOrderDetail.setMaintenanceStandardDetailId((String)maintenanceProject.get("id"));
//                specialtyMaintenanceOrderDetail.setEquipmentId(equipmentId);
//                specialtyMaintenanceOrderDetail.setSpecialtyMaintenancePlanDetailId(specialtyMaintenancePlanDetailId);
//                specialtyMaintenanceOrderDetail.setMaintenanceProjectId((String)maintenanceProject.get("maintenanceProjectId"));
//                specialtyMaintenanceOrderDetailService.save(specialtyMaintenanceOrderDetail);
//            }
//        }
    }
//    @Override
//    @Transactional(rollbackFor = { Exception.class })
//    public boolean edit(SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//
//        Date planStartTime = specialtyMaintenanceOrder.getPlanStartTime();
//        String specialtyMaintenancePlanId = specialtyMaintenanceOrder.getSpecialtyMaintenancePlanId();
//        SpecialtyMaintenancePlan specialtyMaintenancePlan = specialtyMaintenancePlanService.getById(specialtyMaintenancePlanId);
//        String maintenanceMode = specialtyMaintenancePlan.getMaintenanceMode();
//        String maintenanceCycleId = specialtyMaintenancePlan.getMaintenanceCycleId();
//        MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
//        String unit = maintenanceCycle.getUnit();
//        BigDecimal effectiveTime = maintenanceCycle.getEffectiveTime();
//
//        Date date = null;
//        if("min".equals(unit)){
//            date = DateUtils.getMinAfter(planStartTime, effectiveTime.intValue());
//        }else if("hour".equals(unit)){
//            date = DateUtils.getHourAfter(planStartTime, effectiveTime.intValue());
//        }else if("day".equals(unit)){
//            date = DateUtils.getDayAfter(planStartTime, effectiveTime.intValue());
//        }
//
//        specialtyMaintenanceOrder.setPlanEndTime(date);
//        specialtyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建)
//        boolean b = super.updateById(specialtyMaintenanceOrder);
//        if(!b){
//            return false;
//        }
//
//        List<SpecialtyMaintenanceOrderDetail> specialtyMaintenanceOrderDetails = specialtyMaintenanceOrderDetailService.lambdaQuery().eq(SpecialtyMaintenanceOrderDetail::getSpecialtyMaintenanceOrderId, specialtyMaintenanceOrder.getId()).eq(SpecialtyMaintenanceOrderDetail::getDelFlag, 0).list();
//        for (SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail : specialtyMaintenanceOrderDetails) {
//            specialtyMaintenanceOrderDetailService.removeById(specialtyMaintenanceOrderDetail);
//        }
//
//        List<SpecialtyMaintenancePlanDetail> specialtyMaintenancePlanDetails = specialtyMaintenancePlanDetailService.lambdaQuery()
//                .eq(SpecialtyMaintenancePlanDetail::getSpecialtyMaintenancePlanId, specialtyMaintenancePlanId)
//                .eq(SpecialtyMaintenancePlanDetail::getDelFlag, 0).list();
//
//        for (SpecialtyMaintenancePlanDetail specialtyMaintenancePlanDetail : specialtyMaintenancePlanDetails) {
//            String specialtyMaintenancePlanDetailId = specialtyMaintenancePlanDetail.getId();
//            String equipmentId = specialtyMaintenancePlanDetail.getEquipmentId();
//            String maintenanceStandardId = specialtyMaintenancePlanDetail.getMaintenanceStandardId();
//
//            SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail = null;
//            List<Map<String, Object>> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId);
//            for (Map<String, Object> maintenanceProject : maintenanceProjectList) {
//                specialtyMaintenanceOrderDetail = new SpecialtyMaintenanceOrderDetail();
//                specialtyMaintenanceOrderDetail.setSpecialtyMaintenanceOrderId(specialtyMaintenanceOrder.getId());
//                specialtyMaintenanceOrderDetail.setMaintenanceStandardId(maintenanceStandardId);
//                specialtyMaintenanceOrderDetail.setMaintenanceStandardDetailId((String)maintenanceProject.get("id"));
//                specialtyMaintenanceOrderDetail.setEquipmentId(equipmentId);
//                specialtyMaintenanceOrderDetail.setSpecialtyMaintenancePlanDetailId(specialtyMaintenancePlanDetailId);
//                specialtyMaintenanceOrderDetail.setMaintenanceProjectId((String)maintenanceProject.get("maintenanceProjectId"));
//                specialtyMaintenanceOrderDetailService.save(specialtyMaintenanceOrderDetail);
//            }
//        }
//
//        return true;
//    }
//    @Override
//    public boolean assign(SpecialtyMaintenanceOrder specialtyMaintenanceOrder) {
//       specialtyMaintenanceOrder.setStatus("3");
//        boolean b1 = super.updateById(specialtyMaintenanceOrder);
//        if(!b1){
//            return false;
//        }
//        return true;
//    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanParameterHistoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameterHistory;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanParameterHistoryMapper;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterHistoryService;
import org.springframework.stereotype.Service;
@Service
public class PredictiveWorkPlanParameterHistoryServiceImpl extends ServiceImpl<PredictiveWorkPlanParameterHistoryMapper, PredictiveWorkPlanParameterHistory>
        implements IPredictiveWorkPlanParameterHistoryService {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanParameterServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.PredictiveWorkOrder;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameter;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanParameterHistory;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanParameterMapper;
import org.jeecg.modules.eam.model.ParameterVo;
import org.jeecg.modules.eam.service.IPredictiveWorkOrderService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterHistoryService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanParameterService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanService;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class PredictiveWorkPlanParameterServiceImpl extends ServiceImpl<PredictiveWorkPlanParameterMapper, PredictiveWorkPlanParameter> implements IPredictiveWorkPlanParameterService {
    @Autowired
    private IPredictiveWorkPlanService predictiveWorkPlanService;
    @Autowired
    private IPredictiveWorkPlanParameterHistoryService predictiveWorkPlanParameterHistoryService;
    @Autowired
    private IPredictiveWorkOrderService predictiveWorkOrderService;
    @Override
    public List<PredictiveWorkPlanParameter> listPredictiveWorkPlanParameter(Map<String, Object> params) {
        return super.baseMapper.listPredictiveWorkPlanParameter(params);
    }
    @Override
    public IPage<Map<String, Object>> pagePredictiveWorkPlanParameter(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.baseMapper.pagePredictiveWorkPlanParameter(pageData, params);
    }
    //    1.查询配置的 å‚数触发条件
    //    2.查询设备的参数
    //    3.生成维护工单
    @Override
    public void createParameterWorkPlan() {
        List<PredictiveWorkPlan> PredictiveWorkPlanList = predictiveWorkPlanService.listWorkPlan("cskz");
        for (PredictiveWorkPlan predictiveWorkPlan : PredictiveWorkPlanList) {
            //方案对应的参数信息
            List<PredictiveWorkPlanParameter> predictiveWorkPlanParameterList = listParameter(predictiveWorkPlan.getId());
            boolean needCreateFlag = false;
            int needCreateFlagTimes = 0;
            //处理每一个配置
            for (PredictiveWorkPlanParameter predictiveWorkPlanParameter : predictiveWorkPlanParameterList) {
                ParameterVo parameterVo = this.findParameterInfo(predictiveWorkPlanParameter.getSaveTableName(), predictiveWorkPlanParameter.getLowerLimitValue(),
                        predictiveWorkPlanParameter.getUpperLimitValue(), predictiveWorkPlanParameter.getParameterCode());
                if (isNewParameter(predictiveWorkPlan.getId(), parameterVo.getCollectTime())) {
                    predictiveWorkPlanParameter.setActualValue(parameterVo.getActualValue());
                    predictiveWorkPlanParameter.setCollectTime(parameterVo.getCollectTime());
                    needCreateFlagTimes++;
                }
            }
            if ("and".equals(predictiveWorkPlanParameterList.get(0).getParameterCondition())) {
                if (needCreateFlagTimes == predictiveWorkPlanParameterList.size()) {
                    needCreateFlag = true;
                }
            } else if ("or".equals(predictiveWorkPlanParameterList.get(0).getParameterCondition())) {
                if (needCreateFlagTimes > 0) {
                    needCreateFlag = true;
                }
            }
            if (needCreateFlag) {
                //生成工单 ,将参数信息备份
                this.createOrder(predictiveWorkPlan.getId(), predictiveWorkPlan.getEquipmentId());
                this.backInfo(predictiveWorkPlan.getId(), predictiveWorkPlanParameterList);
            }
        }
    }
    private void createOrder(String workPlanId, String equipmentId) {
        PredictiveWorkOrder predictiveWorkOrder = new PredictiveWorkOrder();
        predictiveWorkOrder.setWorkPlanId(workPlanId);
        predictiveWorkOrder.setEquipmentId(equipmentId);
        predictiveWorkOrderService.add(predictiveWorkOrder);
    }
    private void backInfo(String workPlanId, List<PredictiveWorkPlanParameter> predictiveWorkPlanParameterList) {
        List<PredictiveWorkPlanParameterHistory> list = new ArrayList<>();
        for (PredictiveWorkPlanParameter predictiveWorkPlanParameter : predictiveWorkPlanParameterList) {
            PredictiveWorkPlanParameterHistory predictiveWorkPlanParameterHistory = new PredictiveWorkPlanParameterHistory();
            predictiveWorkPlanParameterHistory.setWorkPlanId(workPlanId);
            predictiveWorkPlanParameterHistory.setParameterId(predictiveWorkPlanParameter.getParameterId());
            predictiveWorkPlanParameterHistory.setParameterCode(predictiveWorkPlanParameter.getParameterCode());
            predictiveWorkPlanParameterHistory.setParameterName(predictiveWorkPlanParameter.getParameterName());
            predictiveWorkPlanParameterHistory.setUpperLimitValue(predictiveWorkPlanParameter.getUpperLimitValue());
            predictiveWorkPlanParameterHistory.setLowerLimitValue(predictiveWorkPlanParameter.getLowerLimitValue());
            predictiveWorkPlanParameterHistory.setActualValue(predictiveWorkPlanParameter.getActualValue());
            predictiveWorkPlanParameterHistory.setParameterCondition(predictiveWorkPlanParameter.getParameterCondition());
            predictiveWorkPlanParameterHistory.setCollectTime(predictiveWorkPlanParameter.getCollectTime());
            list.add(predictiveWorkPlanParameterHistory);
        }
        predictiveWorkPlanParameterHistoryService.saveBatch(list);
    }
    private boolean isNewParameter(String workPlanId, Date collectTime) {
        LambdaQueryChainWrapper<PredictiveWorkPlanParameterHistory> lambdaQuery = predictiveWorkPlanParameterHistoryService.lambdaQuery();
        lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getWorkPlanId, workPlanId);
        lambdaQuery.eq(PredictiveWorkPlanParameterHistory::getCollectTime, collectTime);
        List<PredictiveWorkPlanParameterHistory> list = lambdaQuery.list();
        if (list != null && list.size() > 0) {
            return false;
        }
        return true;
    }
    private ParameterVo findParameterInfo(String saveTableName, float lowerLimitValue, float upperLimitValue, String parameterCode) {
        return this.getBaseMapper().findParameterInfo(saveTableName, lowerLimitValue, upperLimitValue, parameterCode);
    }
    private List<PredictiveWorkPlanParameter> listParameter(String predictiveWorkPlanId) {
        return this.getBaseMapper().listParameter(predictiveWorkPlanId);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanMapper;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class PredictiveWorkPlanServiceImpl extends ServiceImpl<PredictiveWorkPlanMapper, PredictiveWorkPlan> implements IPredictiveWorkPlanService {
    @Override
    public IPage<Map<String, Object>> pagePredictiveWorkPlan(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.baseMapper.pagePredictiveWorkPlan(pageData,params);
    }
    @Override
    public List<PredictiveWorkPlan> listWorkPlan(String monitorType) {
        LambdaQueryChainWrapper<PredictiveWorkPlan> lambdaQuery = this.lambdaQuery();
        lambdaQuery.eq(PredictiveWorkPlan::getDelFlag,0);
        lambdaQuery.eq(PredictiveWorkPlan::getMonitorType,monitorType);
        return lambdaQuery.list();
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanSparePartServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.eam.entity.MaintenanceOrderActualMaterial;
import org.jeecg.modules.eam.entity.PredictiveWorkOrder;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanSparePart;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanSparePartMapper;
import org.jeecg.modules.eam.model.MdcEquipmentRunningSectionVo;
import org.jeecg.modules.eam.service.IPredictiveWorkOrderService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanSparePartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import sun.reflect.generics.tree.ArrayTypeSignature;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class PredictiveWorkPlanSparePartServiceImpl extends ServiceImpl<PredictiveWorkPlanSparePartMapper, PredictiveWorkPlanSparePart> implements IPredictiveWorkPlanSparePartService {
    @Autowired
    private IPredictiveWorkPlanService predictiveWorkPlanService;
    @Autowired
    private IPredictiveWorkOrderService predictiveWorkOrderService;
    @Override
    public IPage<Map<String, Object>> pagePredictiveWorkPlanSparePart(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.getBaseMapper().pagePredictiveWorkPlanSparePart(pageData, params);
    }
    //    1.查询配置的 å¤‡ä»¶è§¦å‘条件
    //    2.获取备件的的实际寿命    è®¾å¤‡å¼€æœºæ—¶é—´ - æ¢ä»¶æ—¶é—´ ï¼ˆè®¾å¤‡å¼€æœºæ—¶é—´ä¿¡æ¯æˆªæ­¢åˆ°æ˜¨æ—¥ï¼‰
    //    3.判断实际寿命是否大于控制寿命,并生成维护工单
    @Override
    public void createSparePartWorkPlan() {
        List<PredictiveWorkPlan> predictiveWorkPlanList = predictiveWorkPlanService.listWorkPlan("bjkz");
        for (PredictiveWorkPlan predictiveWorkPlan : predictiveWorkPlanList) {
            List<PredictiveWorkPlanSparePart> predictiveWorkPlanSparePartList = listPredictiveWorkPlanSparePart(predictiveWorkPlan.getId());
            for (PredictiveWorkPlanSparePart predictiveWorkPlanSparePart : predictiveWorkPlanSparePartList) {
                Date replacementTime = findReplacementTime(predictiveWorkPlanSparePart.getEquipmentId(), predictiveWorkPlanSparePart.getSparePartId());
                predictiveWorkPlanSparePart.setReplacementTime(replacementTime);
                long actualLife = findActualLife(predictiveWorkPlanSparePart.getMdcEquipmentId(), replacementTime);
                predictiveWorkPlanSparePart.setActualLife(actualLife);
                if (actualLife > predictiveWorkPlanSparePart.getLifeWarning()) {
                    //1.判断是否生成维护工单, 2.生成维护工单
                    this.createOrder(predictiveWorkPlan.getId(), predictiveWorkPlan.getEquipmentId(), predictiveWorkPlanSparePart.getId());
                }
            }
        }
    }
    //没有对应的维护工单就生成工单
    private void createOrder(String workPlanId, String equipmentId, String itemId) {
        LambdaQueryChainWrapper<PredictiveWorkOrder> lambdaQuery = predictiveWorkOrderService.lambdaQuery();
        lambdaQuery.eq(PredictiveWorkOrder::getEquipmentId, equipmentId).eq(PredictiveWorkOrder::getItemId, itemId).eq(PredictiveWorkOrder::getWorkPlanId, workPlanId);
        //已创建 0     å·²ä¸‹å‘    1     æœªå¼€å§‹    2     æ‰§è¡Œä¸­    3
        lambdaQuery.in(PredictiveWorkOrder::getStatus, Arrays.asList(new String[]{"0", "1", "2", "3"}));
        lambdaQuery.eq(PredictiveWorkOrder::getDelFlag, 0);
        List<PredictiveWorkOrder> list = lambdaQuery.list();
        if (list == null || list.size() == 0) {
            PredictiveWorkOrder predictiveWorkOrder = new PredictiveWorkOrder();
            predictiveWorkOrder.setItemId(itemId);
            predictiveWorkOrder.setEquipmentId(equipmentId);
            predictiveWorkOrder.setWorkPlanId(workPlanId);
            predictiveWorkOrderService.add(predictiveWorkOrder);
        }
    }
    //查询配置的 å¤‡ä»¶è§¦å‘条件
    public List<PredictiveWorkPlanSparePart> listPredictiveWorkPlanSparePart(String predictiveWorkPlanId) {
        return super.getBaseMapper().listPredictiveWorkPlanSparePart(predictiveWorkPlanId);
    }
    //最后换件时间
    public Date findReplacementTime(String equipmentId, String sparePartId) {
        List<MaintenanceOrderActualMaterial> maintenanceOrderActualMaterialList = super.getBaseMapper().listMaintenanceOrderActualMaterial(equipmentId, sparePartId);
        if (maintenanceOrderActualMaterialList.size() > 0) {
            return maintenanceOrderActualMaterialList.get(0).getCreateTime();
        }
        return new Date();
    }
    //实际寿命
    //1.倒序设备状态
    //2.累加设备非关机的时间 å½“设备状态的开始时间小于换件时间 æˆ–者 æ¢ä»¶æ—¶é—´ä»‹äºŽè®¾å¤‡çŠ¶æ€çš„å¼€å§‹æ—¶é—´å’Œç»“æŸæ—¶é—´ä¹‹é—´çš„æ•°æ®åŽï¼Œåœæ­¢ç´¯åŠ 
    //3.换算单位为小时
    public long findActualLife(String mdcEquipmentId, Date replacementTime) {
        long actualLife = 0l;
        long replacementTimeLong = replacementTime.getTime();
        List<MdcEquipmentRunningSectionVo> mdcEquipmentRunningSectionVoList = super.getBaseMapper().listMdcEquipmentRunningSectionVo(mdcEquipmentId);
        for (MdcEquipmentRunningSectionVo temp : mdcEquipmentRunningSectionVoList) {
            if (replacementTimeLong < temp.getStartLong()) {
                actualLife = actualLife + temp.getDuration();
            } else if (replacementTimeLong >= temp.getStartLong() && replacementTimeLong <= temp.getEndLong()) {
                actualLife = actualLife + (temp.getEndLong() - replacementTimeLong);
            } else {
                continue;
            }
        }
        return actualLife / 60 / 60;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanWarnHistoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarnHistory;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanWarnHistoryMapper;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanWarnHistoryService;
import org.springframework.stereotype.Service;
@Service
public class PredictiveWorkPlanWarnHistoryServiceImpl extends ServiceImpl<PredictiveWorkPlanWarnHistoryMapper, PredictiveWorkPlanWarnHistory> implements IPredictiveWorkPlanWarnHistoryService {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/PredictiveWorkPlanWarnServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.swagger.annotations.ApiModelProperty;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.modules.eam.entity.PredictiveWorkOrder;
import org.jeecg.modules.eam.entity.PredictiveWorkPlan;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarn;
import org.jeecg.modules.eam.entity.PredictiveWorkPlanWarnHistory;
import org.jeecg.modules.eam.mapper.PredictiveWorkPlanWarnMapper;
import org.jeecg.modules.eam.model.MdcEquipmentAlarmVo;
import org.jeecg.modules.eam.service.IPredictiveWorkOrderService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanWarnHistoryService;
import org.jeecg.modules.eam.service.IPredictiveWorkPlanWarnService;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class PredictiveWorkPlanWarnServiceImpl extends ServiceImpl<PredictiveWorkPlanWarnMapper, PredictiveWorkPlanWarn> implements IPredictiveWorkPlanWarnService {
    @Autowired
    private IPredictiveWorkPlanService predictiveWorkPlanService;
    @Autowired
    private IPredictiveWorkOrderService predictiveWorkOrderService;
    @Autowired
    private IPredictiveWorkPlanWarnHistoryService predictiveWorkPlanWarnHistoryService;
    @Override
    public List<PredictiveWorkPlanWarn> listPredictiveWorkPlanWarn(Map<String, Object> params) {
        return super.baseMapper.listPredictiveWorkPlanWarn(params);
    }
    @Override
    public IPage<Map<String, Object>> pagePredictiveWorkPlanWarn(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.baseMapper.pagePredictiveWorkPlanWarn(pageData, params);
    }
    //    1.通过预测性方案 æŸ¥è¯¢é…ç½®çš„ æŠ¥è­¦è§¦å‘æ¡ä»¶
    //    2.倒序取N条数据,判断首尾两条数据是否在报警条件周期内
    //    3.判断是否生产维护工单,并生成维护工单
    @Override
    public void createWarnWorkPlan() {
        List<PredictiveWorkPlan> predictiveWorkPlanList = predictiveWorkPlanService.listWorkPlan("bjkz");
        for (PredictiveWorkPlan predictiveWorkPlan : predictiveWorkPlanList) {
            List<PredictiveWorkPlanWarn> predictiveWorkPlanWarnList = listPredictiveWorkPlanWarn(predictiveWorkPlan.getId());
            //方案对应的告警信息
            boolean needWarnFlag = false;
            int needWarnFlagTimes = 0;
            List<MdcEquipmentAlarmVo> insertList = new ArrayList<>();
            for (PredictiveWorkPlanWarn predictiveWorkPlanWarn : predictiveWorkPlanWarnList) {
                List<MdcEquipmentAlarmVo> mdcEquipmentAlarmVoList = this.findWarnInfo(predictiveWorkPlanWarn.getMdcEquipmentId(),
                        predictiveWorkPlanWarn.getTimes(), predictiveWorkPlanWarn.getWarnCode());
                if (mdcEquipmentAlarmVoList.size() >= predictiveWorkPlanWarn.getTimes() &&
                        isTimeInWarnCycle(predictiveWorkPlanWarn.getWarnCycle(), predictiveWorkPlanWarn.getCycleUnit(),
                                mdcEquipmentAlarmVoList.get(0).getCollectTime(), mdcEquipmentAlarmVoList.get(mdcEquipmentAlarmVoList.size() - 1).getCollectTime())) {
                    insertList.addAll(mdcEquipmentAlarmVoList);
                    needWarnFlagTimes++;
                }
            }
            if ("and".equals(predictiveWorkPlanWarnList.get(0).getParameterCondition())) {
                if (needWarnFlagTimes == predictiveWorkPlanWarnList.size()) {
                    needWarnFlag = true;
                }
            } else if ("or".equals(predictiveWorkPlanWarnList.get(0).getParameterCondition())) {
                if (needWarnFlagTimes > 0) {
                    needWarnFlag = true;
                }
            }
            if (needWarnFlag) {
                //判断是否生成工单 ,将报警信息备份
                boolean flag = this.createOrder(predictiveWorkPlan.getId(), predictiveWorkPlan.getEquipmentId());
                if (flag) {
                    this.backInfo(predictiveWorkPlan.getId(), insertList);
                }
            }
        }
    }
    private void backInfo(String workPlanId, List<MdcEquipmentAlarmVo> predictiveWorkPlanWarnList) {
        List<PredictiveWorkPlanWarnHistory> list = new ArrayList<>();
        for (MdcEquipmentAlarmVo mdcEquipmentAlarmVo : predictiveWorkPlanWarnList) {
            PredictiveWorkPlanWarnHistory predictiveWorkPlanWarnHistory = new PredictiveWorkPlanWarnHistory();
            predictiveWorkPlanWarnHistory.setWorkPlanId(workPlanId);
            predictiveWorkPlanWarnHistory.setWarnId(mdcEquipmentAlarmVo.getAlarmNo());
            predictiveWorkPlanWarnHistory.setWarnCode(mdcEquipmentAlarmVo.getAlarmNo());
            predictiveWorkPlanWarnHistory.setWarnName(mdcEquipmentAlarmVo.getAlarmContent());
            predictiveWorkPlanWarnHistory.setCollectTime(mdcEquipmentAlarmVo.getCollectTime());
            list.add(predictiveWorkPlanWarnHistory);
        }
        predictiveWorkPlanWarnHistoryService.saveBatch(list);
    }
    private boolean createOrder(String workPlanId, String equipmentId) {
        LambdaQueryChainWrapper<PredictiveWorkOrder> lambdaQuery = predictiveWorkOrderService.lambdaQuery();
        lambdaQuery.eq(PredictiveWorkOrder::getWorkPlanId, workPlanId).eq(PredictiveWorkOrder::getEquipmentId, equipmentId);
        //已创建 0     å·²ä¸‹å‘    1     æœªå¼€å§‹    2     æ‰§è¡Œä¸­    3
        lambdaQuery.in(PredictiveWorkOrder::getStatus, Arrays.asList(new String[]{"0", "1", "2", "3"}));
        lambdaQuery.eq(PredictiveWorkOrder::getDelFlag, 0);
        List<PredictiveWorkOrder> list = lambdaQuery.list();
        if (list == null || list.size() == 0) {
            PredictiveWorkOrder predictiveWorkOrder = new PredictiveWorkOrder();
            predictiveWorkOrder.setEquipmentId(equipmentId);
            predictiveWorkOrder.setWorkPlanId(workPlanId);
            predictiveWorkOrderService.add(predictiveWorkOrder);
            return true;
        }
        return false;
    }
    //单位统一换算为秒
    private boolean isTimeInWarnCycle(int warnCycle, String cycleUnit, Date endCollectTime, Date startCollectTime) {
        long warnCycleSecond = 0l;
        if ("minute".equals(cycleUnit)) {
            warnCycleSecond = warnCycle * 60;
        } else if ("hour".equals(cycleUnit)) {
            warnCycleSecond = warnCycle * 60 * 60;
        } else if ("day".equals(cycleUnit)) {
            warnCycleSecond = warnCycle * 60 * 60 * 24;
        }
        long startCollectTimeLong = startCollectTime.getTime();
        long endCollectTimeLong = endCollectTime.getTime();
        if ((endCollectTimeLong - startCollectTimeLong) <= warnCycleSecond) {
            return true;
        }
        return false;
    }
    private List<MdcEquipmentAlarmVo> findWarnInfo(String mdcEquipmentId, int times, String warnCode) {
        return this.getBaseMapper().findWarnInfo(mdcEquipmentId, times, warnCode);
    }
    //方案对应的告警条件配置
    private List<PredictiveWorkPlanWarn> listPredictiveWorkPlanWarn(String predictiveWorkPlanId) {
        return this.getBaseMapper().listWarn(predictiveWorkPlanId);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/RepairOrderDetailServiceImpl.java
@@ -1,10 +1,14 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.RepairOrderDetail;
import org.jeecg.modules.eam.mapper.RepairOrderDetailMapper;
import org.jeecg.modules.eam.service.IRepairOrderDetailService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,4 +28,10 @@
    public List<RepairOrderDetail> selectByMainId(String mainId) {
        return repairOrderDetailMapper.selectByMainId(mainId);
    }
    @Override
    public IPage<RepairOrderDetail> pageRepairOrderDetailByMainId(Integer pageNo, Integer pageSize, Map<String, Object> params) {
        IPage<Map> pageData = new Page<Map>(pageNo, pageSize);
        return super.baseMapper.pageRepairOrderDetailByMainId(pageData, params);
    }
}