package org.jeecg.modules.mdc.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
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.constant.CommonConstant;
|
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.modules.mdc.constant.MdcConstant;
|
import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
|
import org.jeecg.modules.mdc.entity.MdcEquipment;
|
import org.jeecg.modules.mdc.entity.MdcFeedback;
|
import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency;
|
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
|
import org.jeecg.modules.mdc.service.IMdcHomeService;
|
import org.jeecg.modules.mdc.vo.MdcCommonVo;
|
import org.jeecg.modules.mdc.vo.MdcHomeEfficiencyVo;
|
import org.jeecg.modules.system.entity.MdcProduction;
|
import org.jeecg.modules.system.service.IMdcProductionService;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author Lius
|
* @Description: MDC首页接口
|
* @date 2024/3/13 14:27
|
*/
|
@Slf4j
|
@Api(tags = "MDC首页接口")
|
@RestController
|
@RequestMapping("/mdc/home")
|
public class MdcHomeController {
|
|
@Resource
|
private IMdcEquipmentService mdcEquipmentService;
|
|
@Resource
|
private IMdcProductionService mdcProductionService;
|
|
@Resource
|
private IMdcHomeService mdcHomeService;
|
|
@ApiOperation(value = "MDC首页接口-设备运行状态统计", notes = "MDC首页接口-设备运行状态统计")
|
@GetMapping("/equipmentStatusStatistics")
|
public Result<?> equipmentStatusStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区/工段
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//判断是公司级还是厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
|
if (userType.equals(MdcConstant.USER_TYPE_4)) {
|
//公司
|
key = mdcProduction.getId();
|
} else if (userType.equals(MdcConstant.USER_TYPE_3)) {
|
//厂区
|
key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
|
} else if (userType.equals(MdcConstant.USER_TYPE_2)) {
|
//工段 查询用户拥有的工段权限
|
key = mdcProductionService.findThreeProductionId(userId);
|
}
|
}
|
List<MdcCommonVo> resultMap = mdcHomeService.getEquipmentStatusStatistics(userId, key);
|
Map<String, Object> map = new HashMap<>();
|
map.put("list", resultMap);
|
map.put("productionId", key);
|
return Result.OK(map);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备利用率统计(昨日)", notes = "MDC首页接口-设备运行状态统计(昨日)")
|
@GetMapping("/equipmentUtilizationStatistics")
|
public Result<?> equipmentUtilizationStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//判断是公司级还是厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
|
if (userType.equals(MdcConstant.USER_TYPE_4)) {
|
//公司
|
key = mdcProduction.getId();
|
} else if (userType.equals(MdcConstant.USER_TYPE_3)) {
|
//厂区
|
key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
|
}
|
}
|
List<MdcCommonVo> result = mdcHomeService.getEquipmentUtilizationStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备OEE统计(上月)", notes = "MDC首页接口-设备OEE统计(上月)")
|
@GetMapping("/equipmentOEEStatistics")
|
public Result<?> equipmentOEEStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//判断是公司级还是厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
|
if (userType.equals(MdcConstant.USER_TYPE_4)) {
|
//公司
|
key = mdcProduction.getId();
|
} else if (userType.equals(MdcConstant.USER_TYPE_3)) {
|
//厂区
|
key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
|
}
|
}
|
List<MdcCommonVo> result = mdcHomeService.getEquipmentOeeStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备OEE和利用率统计柱状图", notes = "MDC首页接口-设备OEE和利用率统计柱状图")
|
@GetMapping("/equipmentMonthStatistics")
|
public Result<?> equipmentMonthStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//判断是公司级还是厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
|
if (userType.equals(MdcConstant.USER_TYPE_4)) {
|
//公司
|
key = mdcProduction.getId();
|
} else if (userType.equals(MdcConstant.USER_TYPE_3)) {
|
//厂区
|
key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
|
}
|
}
|
Map<String, Object> result = mdcHomeService.getEquipmentMonthStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-工段级前七天利用率折线图", notes = "MDC首页接口-工段级前七天利用率折线图")
|
@GetMapping("/equipmentDayUtilizationStatistics")
|
public Result<?> equipmentDayUtilizationStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//工段 查询用户拥有的工段权限
|
key = mdcProductionService.findThreeProductionId(userId);
|
}
|
Map<String, Object> result = mdcHomeService.getEquipmentDayUtilizationStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-上月各设备OEE统计", notes = "MDC首页接口-上月各设备OEE统计")
|
@GetMapping("/equipmentOEEMonthStatistics")
|
public Result<?> equipmentOEEMonthStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//工段 查询用户拥有的工段权限
|
key = mdcProductionService.findThreeProductionId(userId);
|
}
|
List<MdcOverallEquipmentEfficiency> result = mdcHomeService.getEquipmentOEEMonthStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-工段级设备效率统计", notes = "MDC首页接口-工段级设备效率统计")
|
@GetMapping("/equipmentEfficiencyStatistics")
|
public Result<?> equipmentEfficiencyStatistics(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//工段 查询用户拥有的工段权限
|
key = mdcProductionService.findThreeProductionId(userId);
|
}
|
MdcHomeEfficiencyVo result = mdcHomeService.getEquipmentEfficiencyStatistics(userId, key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备级设备效率统计", notes = "MDC首页接口-设备级设备效率统计")
|
@GetMapping("/equipmentLevelEfficiencyStatistics")
|
public Result<?> equipmentLevelEfficiencyStatistics(@RequestParam(name = "equipmentId", required = true) String equipmentId) {
|
MdcHomeEfficiencyVo result = mdcHomeService.getEquipmentLevelEfficiencyStatistics(equipmentId);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备级整年度利用率", notes = "MDC首页接口-设备级整年度利用率")
|
@GetMapping("/equipmentAnnualEfficiencyStatistics")
|
public Result<?> equipmentAnnualEfficiencyStatistics(@RequestParam(name = "equipmentId", required = true) String equipmentId) {
|
Map<String, Object> result = mdcHomeService.getEquipmentAnnualEfficiencyStatistics(equipmentId);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备级设备详细信息", notes = "MDC首页接口-设备级设备详细信息")
|
@GetMapping("/equipmentDetails")
|
public Result<?> equipmentDetails(@RequestParam(name = "equipmentId", required = true) String equipmentId) {
|
MdcEquipmentDto result = mdcHomeService.getEquipmentDetails(equipmentId);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-设备级设备列表", notes = "MDC首页接口-设备级设备列表")
|
@GetMapping("/equipmentList")
|
public Result<?> equipmentList(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//工段 查询用户拥有的工段权限
|
key = mdcProductionService.findThreeProductionId(userId);
|
}
|
List<MdcEquipment> result = mdcHomeService.getEquipmentList(key);
|
return Result.OK(result);
|
}
|
|
@ApiOperation(value = "MDC首页接口-问题列表", notes = "MDC首页接口-问题列表")
|
@GetMapping("/feedbackList")
|
public Result<?> feedbackList(String productionCode) {
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Integer userType = user.getUserType();
|
String userId = user.getId();
|
String key = "";
|
if (StringUtils.isNotBlank(productionCode)) {
|
//厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
|
key = mdcProduction.getId();
|
} else {
|
//判断是公司级还是厂区
|
MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, ""));
|
if (userType.equals(MdcConstant.USER_TYPE_4)) {
|
//公司
|
key = mdcProduction.getId();
|
} else if (userType.equals(MdcConstant.USER_TYPE_3)) {
|
//厂区
|
key = mdcProductionService.findFirstProduction(userId, mdcProduction.getId());
|
}
|
}
|
List<MdcFeedback> result = mdcHomeService.getFeedbackList(key);
|
return Result.OK(result);
|
}
|
|
}
|