qushaowei
2024-07-25 654dc30c50b1c176966ad8e6e7d791b92531de83
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.eam.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,19 +9,25 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.entity.FaultIntervalTime;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IFaultIntervalTimeService;
import org.jeecg.modules.eam.vo.EquipmentAvailabilityVo;
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.util.Arrays;
import java.text.ParseException;
import java.util.*;
 /**
/**
 * @Description: mom_eam_fault_interval_time
 * @Author: jeecg-boot
 * @Date:   2023-08-30
@@ -31,8 +38,11 @@
@RequestMapping("/eam/faultIntervalTime")
@Slf4j
public class FaultIntervalTimeController extends JeecgController<FaultIntervalTime, IFaultIntervalTimeService> {
   @Autowired
   private IFaultIntervalTimeService faultIntervalTimeService;
   @Autowired
   private IEamEquipmentService equipmentService;
   
   /**
    * 分页列表查询
@@ -158,4 +168,300 @@
        return super.importExcel(request, response, FaultIntervalTime.class);
    }
   /**
    * 生产设备平均故障间隔时间MTBF
    * (说明:设备平均技障间隔期 (MTBF): 指在规定期内,设备无故障工作时间的平均值。设备的平均故障同隔期指标越大好,表明设备无故障运行时间长。
    * 设备平均故障间隔期(MTBP)=(日历时间-总故障停机时间)/总故障次数)
    *
    * @return
    */
   @GetMapping("/getMTBF")
   public JSONObject getMTBF(@RequestParam Map<String, String> query) throws ParseException {
      Map<String,Object> result= new HashMap<>();
      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",list);
      return jsonObject;
   }
   /**
    * 生产设备平均故障间隔时间MTBF
    */
   @GetMapping("/get2MTBF")
   public JSONObject get2MTBF(@RequestParam Map<String, Object> query) throws ParseException {
      List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query);
      List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
      for (Map<String, Object> map : equipmentList) {
         query.put("equipmentId",map.get("id"));
         List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getEquipmentMTBF(query);
         FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
         faultIntervalTime.setEquipmentId((String)map.get("id"));
         faultIntervalTime.setEquipmentNum((String)map.get("num"));
         faultIntervalTime.setEquipmentName((String)map.get("name"));
         faultIntervalTime.setEquipmentModel((String)map.get("model"));
         faultIntervalTime.setUserDepart((String)map.get("departName"));
         if(equipmentMTBF.size()>0){
            faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
            faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
            faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
            faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
            faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
            faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
            faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
            faultIntervalTimeList.add(faultIntervalTime);
         }else{
            List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query);
            if(query.get("startTime") != "" && query.get("endTime") != ""){
               faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
            }else{
               faultIntervalTime.setTotalAvailableTime("0");
               faultIntervalTime.setNoFaultTime("0");
               faultIntervalTime.setAverageFaultIntervalTime("0");
            }
            faultIntervalTime.setFaultTime("0");
            faultIntervalTime.setFaultNumber("0");
            faultIntervalTime.setAverageRepairTime("0");
            faultIntervalTime.setRepairTime("0");
            faultIntervalTimeList.add(faultIntervalTime);
         }
      }
//      Map<String,Object> result= new HashMap<>();
//      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
//      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",faultIntervalTimeList);
      return jsonObject;
   }
   /**
    * A类生产设备平均故障间隔时间MTBF
    */
   @GetMapping("/getAMTBF")
   public JSONObject getAMTBF(@RequestParam Map<String, Object> query) throws ParseException {
      query.put("abc","A");
      List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query);
      List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
      for (Map<String, Object> map : equipmentList) {
         query.put("equipmentId",map.get("id"));
         List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getEquipmentMTBF(query);
         FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
         faultIntervalTime.setEquipmentId((String)map.get("id"));
         faultIntervalTime.setEquipmentNum((String)map.get("num"));
         faultIntervalTime.setEquipmentName((String)map.get("name"));
         faultIntervalTime.setEquipmentModel((String)map.get("model"));
         faultIntervalTime.setUserDepart((String)map.get("departName"));
         if(equipmentMTBF.size()>0){
            faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
            faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
            faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
            faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
            faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
            faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
            faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
            faultIntervalTimeList.add(faultIntervalTime);
         }else{
            List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query);
            if(query.get("startTime") != "" && query.get("endTime") != ""){
               faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
            }else{
               faultIntervalTime.setTotalAvailableTime("0");
               faultIntervalTime.setNoFaultTime("0");
               faultIntervalTime.setAverageFaultIntervalTime("0");
            }
            faultIntervalTime.setFaultTime("0");
            faultIntervalTime.setFaultNumber("0");
            faultIntervalTime.setAverageRepairTime("0");
            faultIntervalTime.setRepairTime("0");
            faultIntervalTimeList.add(faultIntervalTime);
         }
      }
//      Map<String,Object> result= new HashMap<>();
//      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
//      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",faultIntervalTimeList);
      return jsonObject;
   }
   /**
    * 关键、重要生产设备平均故障间隔时间MTBF
    */
   @GetMapping("/getGJZYMTBF")
   public JSONObject getGJZYMTBF(@RequestParam Map<String, Object> query) throws ParseException {
      query.put("specificEquipment","true");
      List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query);
      List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
      for (Map<String, Object> map : equipmentList) {
         query.put("equipmentId",map.get("id"));
         List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getEquipmentMTBF(query);
         FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
         faultIntervalTime.setEquipmentId((String)map.get("id"));
         faultIntervalTime.setEquipmentNum((String)map.get("num"));
         faultIntervalTime.setEquipmentName((String)map.get("name"));
         faultIntervalTime.setEquipmentModel((String)map.get("model"));
         faultIntervalTime.setUserDepart((String)map.get("departName"));
         if(equipmentMTBF.size()>0){
            faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
            faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
            faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
            faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
            faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
            faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
            faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
            faultIntervalTimeList.add(faultIntervalTime);
         }else{
            List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query);
            if(query.get("startTime") != "" && query.get("endTime") != ""){
               faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
            }else{
               faultIntervalTime.setTotalAvailableTime("0");
               faultIntervalTime.setNoFaultTime("0");
               faultIntervalTime.setAverageFaultIntervalTime("0");
            }
            faultIntervalTime.setFaultTime("0");
            faultIntervalTime.setFaultNumber("0");
            faultIntervalTime.setAverageRepairTime("0");
            faultIntervalTime.setRepairTime("0");
            faultIntervalTimeList.add(faultIntervalTime);
         }
      }
//      Map<String,Object> result= new HashMap<>();
//      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
//      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",faultIntervalTimeList);
      return jsonObject;
   }
   /**
    * 各生产单位 生产设备平均故障间隔时间MTBF
    */
   @GetMapping("/getCenterMTBF")
   public JSONObject getCenterMTBF(@RequestParam Map<String, Object> query) throws ParseException {
      List<Map<String, Object>> workCenterList = faultIntervalTimeService.getWorkCenterList(query);
      List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
      for (Map<String, Object> map : workCenterList) {
         query.put("workCenterId",map.get("workCenterId"));
         List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getCenterEquipmentMTBF(query);
         FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
//         faultIntervalTime.setEquipmentId((String)map.get("id"));
//         faultIntervalTime.setEquipmentNum((String)map.get("num"));
//         faultIntervalTime.setEquipmentName((String)map.get("name"));
//         faultIntervalTime.setEquipmentModel((String)map.get("model"));
         faultIntervalTime.setUserDepart((String)map.get("workCenterName"));
         if(equipmentMTBF.size()>0){
            faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
            faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
            faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
            faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
            faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
            faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
            faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
            faultIntervalTimeList.add(faultIntervalTime);
         }else{
            List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getCenterMTBFTotalAvailableTime(query);
            if(query.get("startTime") != "" && query.get("endTime") != ""){
               faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
            }else{
               faultIntervalTime.setTotalAvailableTime("0");
               faultIntervalTime.setNoFaultTime("0");
               faultIntervalTime.setAverageFaultIntervalTime("0");
            }
            faultIntervalTime.setFaultTime("0");
            faultIntervalTime.setFaultNumber("0");
            faultIntervalTime.setAverageRepairTime("0");
            faultIntervalTime.setRepairTime("0");
            faultIntervalTimeList.add(faultIntervalTime);
         }
      }
//      Map<String,Object> result= new HashMap<>();
//      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
//      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",faultIntervalTimeList);
      return jsonObject;
   }
   /**
    * 各生产单位 A类设备平均故障间隔时间MTBF
    */
   @GetMapping("/getCenterAMTBF")
   public JSONObject getCenterAMTBF(@RequestParam Map<String, Object> query) throws ParseException {
      query.put("abc","A");
      List<Map<String, Object>> workCenterList = faultIntervalTimeService.getWorkCenterList(query);
      List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
      for (Map<String, Object> map : workCenterList) {
         query.put("workCenterId",map.get("workCenterId"));
         List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getCenterEquipmentMTBF(query);
         FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
//         faultIntervalTime.setEquipmentId((String)map.get("id"));
//         faultIntervalTime.setEquipmentNum((String)map.get("num"));
//         faultIntervalTime.setEquipmentName((String)map.get("name"));
//         faultIntervalTime.setEquipmentModel((String)map.get("model"));
         faultIntervalTime.setUserDepart((String)map.get("workCenterName"));
         if(equipmentMTBF.size()>0){
            faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
            faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString());
            faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString());
            faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString());
            faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString());
            faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString());
            faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
            faultIntervalTimeList.add(faultIntervalTime);
         }else{
            List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getCenterMTBFTotalAvailableTime(query);
            if(query.get("startTime") != "" && query.get("endTime") != ""){
               faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
               faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
            }else{
               faultIntervalTime.setTotalAvailableTime("0");
               faultIntervalTime.setNoFaultTime("0");
               faultIntervalTime.setAverageFaultIntervalTime("0");
            }
            faultIntervalTime.setFaultTime("0");
            faultIntervalTime.setFaultNumber("0");
            faultIntervalTime.setAverageRepairTime("0");
            faultIntervalTime.setRepairTime("0");
            faultIntervalTimeList.add(faultIntervalTime);
         }
      }
//      Map<String,Object> result= new HashMap<>();
//      IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
//      List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put("data",faultIntervalTimeList);
      return jsonObject;
   }
}