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;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.poi.hssf.record.DVALRecord;
|
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.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.ParseException;
|
import java.util.*;
|
|
/**
|
* @Description: mom_eam_fault_interval_time
|
* @Author: jeecg-boot
|
* @Date: 2023-08-30
|
* @Version: V1.0
|
*/
|
@Api(tags="mom_eam_fault_interval_time")
|
@RestController
|
@RequestMapping("/eam/faultIntervalTime")
|
@Slf4j
|
public class FaultIntervalTimeController extends JeecgController<FaultIntervalTime, IFaultIntervalTimeService> {
|
|
@Autowired
|
private IFaultIntervalTimeService faultIntervalTimeService;
|
@Autowired
|
private IEamEquipmentService equipmentService;
|
|
/**
|
* 分页列表查询
|
*
|
* @param faultIntervalTime
|
* @param pageNo
|
* @param pageSize
|
* @param req
|
* @return
|
*/
|
//@AutoLog(value = "mom_eam_fault_interval_time-分页列表查询")
|
@ApiOperation(value="mom_eam_fault_interval_time-分页列表查询", notes="mom_eam_fault_interval_time-分页列表查询")
|
@GetMapping(value = "/list")
|
public Result<IPage<FaultIntervalTime>> queryPageList(FaultIntervalTime faultIntervalTime,
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
HttpServletRequest req) {
|
QueryWrapper<FaultIntervalTime> queryWrapper = QueryGenerator.initQueryWrapper(faultIntervalTime, req.getParameterMap());
|
Page<FaultIntervalTime> page = new Page<FaultIntervalTime>(pageNo, pageSize);
|
IPage<FaultIntervalTime> pageList = faultIntervalTimeService.page(page, queryWrapper);
|
return Result.OK(pageList);
|
}
|
|
/**
|
* 添加
|
*
|
* @param faultIntervalTime
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_fault_interval_time-添加")
|
@ApiOperation(value="mom_eam_fault_interval_time-添加", notes="mom_eam_fault_interval_time-添加")
|
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_fault_interval_time:add")
|
@PostMapping(value = "/add")
|
public Result<String> add(@RequestBody FaultIntervalTime faultIntervalTime) {
|
faultIntervalTimeService.save(faultIntervalTime);
|
return Result.OK("添加成功!");
|
}
|
|
/**
|
* 编辑
|
*
|
* @param faultIntervalTime
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_fault_interval_time-编辑")
|
@ApiOperation(value="mom_eam_fault_interval_time-编辑", notes="mom_eam_fault_interval_time-编辑")
|
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_fault_interval_time:edit")
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
public Result<String> edit(@RequestBody FaultIntervalTime faultIntervalTime) {
|
faultIntervalTimeService.updateById(faultIntervalTime);
|
return Result.OK("编辑成功!");
|
}
|
|
/**
|
* 通过id删除
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_fault_interval_time-通过id删除")
|
@ApiOperation(value="mom_eam_fault_interval_time-通过id删除", notes="mom_eam_fault_interval_time-通过id删除")
|
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_fault_interval_time:delete")
|
@DeleteMapping(value = "/delete")
|
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
|
faultIntervalTimeService.removeById(id);
|
return Result.OK("删除成功!");
|
}
|
|
/**
|
* 批量删除
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_fault_interval_time-批量删除")
|
@ApiOperation(value="mom_eam_fault_interval_time-批量删除", notes="mom_eam_fault_interval_time-批量删除")
|
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_fault_interval_time:deleteBatch")
|
@DeleteMapping(value = "/deleteBatch")
|
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
this.faultIntervalTimeService.removeByIds(Arrays.asList(ids.split(",")));
|
return Result.OK("批量删除成功!");
|
}
|
|
/**
|
* 通过id查询
|
*
|
* @param id
|
* @return
|
*/
|
//@AutoLog(value = "mom_eam_fault_interval_time-通过id查询")
|
@ApiOperation(value="mom_eam_fault_interval_time-通过id查询", notes="mom_eam_fault_interval_time-通过id查询")
|
@GetMapping(value = "/queryById")
|
public Result<FaultIntervalTime> queryById(@RequestParam(name="id",required=true) String id) {
|
FaultIntervalTime faultIntervalTime = faultIntervalTimeService.getById(id);
|
if(faultIntervalTime==null) {
|
return Result.error("未找到对应数据");
|
}
|
return Result.OK(faultIntervalTime);
|
}
|
|
/**
|
* 导出excel
|
*
|
* @param request
|
* @param faultIntervalTime
|
*/
|
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_fault_interval_time:exportXls")
|
@RequestMapping(value = "/exportXls")
|
public ModelAndView exportXls(HttpServletRequest request, FaultIntervalTime faultIntervalTime) {
|
return super.exportXls(request, faultIntervalTime, FaultIntervalTime.class, "mom_eam_fault_interval_time");
|
}
|
|
/**
|
* 通过excel导入数据
|
*
|
* @param request
|
* @param response
|
* @return
|
*/
|
//@RequiresPermissions("mom_eam_fault_interval_time:importExcel")
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
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.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
|
//计算mttr
|
BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
|
BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
|
BigDecimal averageRepairTime;
|
if(new BigDecimal(0).compareTo(faultNumber) == 0){
|
averageRepairTime = new BigDecimal(0.00).setScale(2, RoundingMode.HALF_UP);
|
}else{
|
averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
|
}
|
//计算mtbf
|
//当有故障时间时MTBF:(总可利用时间-总故障时间)/(总故障次数+1)
|
//当无故障时间时MTBF:MTBF=总可利用时间
|
BigDecimal averageFaultIntervalTime;
|
BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
|
BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
|
if(new BigDecimal(0).compareTo(faultNumber) == 0){
|
averageFaultIntervalTime = new BigDecimal(totalAvailableTime + ".00").setScale(2, RoundingMode.HALF_UP);;
|
}else{
|
averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
|
}
|
//计算完好率 可开动率
|
BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
|
BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
|
BigDecimal serviceabilityRate = (totalDay.subtract(repairDay)).divide(totalDay,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
|
|
//可开动率
|
// BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
|
// BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
|
BigDecimal startRate = (totalAvailableTime.subtract(repairTime)).divide(totalAvailableTime,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
|
|
faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
|
faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
|
faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
|
faultIntervalTime.setStartRate(startRate+"%");
|
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.00");
|
}
|
faultIntervalTime.setFaultTime("0");
|
faultIntervalTime.setFaultNumber("0");
|
faultIntervalTime.setAverageRepairTime("0.00");
|
faultIntervalTime.setRepairTime("0");
|
faultIntervalTime.setServiceabilityRate("0.00%");
|
faultIntervalTime.setStartRate("0.00%");
|
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.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
|
faultIntervalTime.setEquipmentNumer(equipmentMTBF.get(0).get("equipmentNumer").toString());
|
|
BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString());
|
BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString());
|
BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString());
|
BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString());
|
BigDecimal equipmentNumer = new BigDecimal(equipmentMTBF.get(0).get("equipmentNumer").toString());
|
BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString());
|
BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString());
|
//计算mttr 修复时间/故障次数
|
BigDecimal averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
|
//计算mtbf (总可利用时间-故障时间)/故障次数
|
BigDecimal averageFaultIntervalTime;
|
if(new BigDecimal(0).compareTo(faultNumber)==0){
|
averageFaultIntervalTime = new BigDecimal("0.00").setScale(2, RoundingMode.HALF_UP);
|
}else{
|
averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN);
|
}
|
//完好率 (统计天数*设备数量-故障天数)/(统计天数*设备数量)
|
BigDecimal serviceabilityRate = ((totalDay.multiply(equipmentNumer)).subtract(repairDay)).divide((totalDay.multiply(equipmentNumer)), 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
|
//开动率 (总可利用时间-故障时间)/总可利用时间
|
BigDecimal startRate = (totalAvailableTime.subtract(faultTime)).divide(totalAvailableTime, 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100));
|
|
faultIntervalTime.setAverageRepairTime(averageRepairTime.toString());
|
faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString());
|
faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%");
|
faultIntervalTime.setStartRate(startRate+"%");
|
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("0.00");
|
}else{
|
faultIntervalTime.setTotalAvailableTime("0");
|
faultIntervalTime.setNoFaultTime("0");
|
faultIntervalTime.setAverageFaultIntervalTime("0.00");
|
}
|
faultIntervalTime.setFaultTime("0");
|
faultIntervalTime.setFaultNumber("0");
|
faultIntervalTime.setEquipmentNumer("0");
|
faultIntervalTime.setAverageRepairTime("0.00");
|
faultIntervalTime.setRepairTime("0");
|
faultIntervalTime.setServiceabilityRate("0.00%");
|
faultIntervalTime.setStartRate("0.00%");
|
faultIntervalTime.setStartTime("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;
|
}
|
|
|
|
|
|
}
|