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.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.IMdcHomeService; import org.jeecg.modules.mdc.vo.MdcCommonVo; 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.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().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); key = mdcProduction.getId(); } else { //判断是公司级还是厂区 MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper().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 resultMap = mdcHomeService.getEquipmentStatusStatistics(userId, key); Map map = new HashMap<>(); map.put("list", resultMap); map.put("producitonId", 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().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); key = mdcProduction.getId(); } else { //判断是公司级还是厂区 MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper().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 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().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); key = mdcProduction.getId(); } else { //判断是公司级还是厂区 MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper().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 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().eq(MdcProduction::getProductionCode, productionCode).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); key = mdcProduction.getId(); } else { //判断是公司级还是厂区 MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper().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 result = mdcHomeService.getEquipmentMonthStatistics(userId, key); return Result.OK(result); } }