package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.sandu.common.execption.BusinessException; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.param.LightPoleHeelingProcessingParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.dao.domain.LightPoleHeeling; import com.sandu.ximon.dao.domain.LightPoleHeelingProcessing; import com.sandu.ximon.dao.mapper.LightPoleHeelingMapper; import com.sandu.ximon.dao.mapper.LightPoleHeelingProcessingMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; /** * @author ZZQ * @date 2022/3/25 11:41 */ @Service @AllArgsConstructor public class LightPoleHeelingProcessingServices extends BaseServiceImpl { /** * 灯杆倾斜警告处理 */ public boolean ProcessingLightPoleHeeling(LightPoleHeelingProcessingParam param) { LightPoleHeelingService lightPoleHeelingService = SpringContextHolder.getBean(LightPoleHeelingService.class); LightPoleHeeling one = SpringContextHolder.getBean(LightPoleHeelingMapper.class). lightPoleHeelingDetail(SecurityUtils.getClientId(), param.getWarningNumber()); if (one == null) { throw new BusinessException("处理的灯杆倾斜数据不存在!"); } LightPoleHeelingProcessing lightPoleHeelingProcessing = new LightPoleHeelingProcessing(); lightPoleHeelingProcessing.setWarningNumber(param.getWarningNumber()); lightPoleHeelingProcessing.setProcessingOpinion(param.getProcessingOpinion()); lightPoleHeelingProcessing.setProcessingPerson(param.getProcessingPerson()); lightPoleHeelingProcessing.setTheXAxis(param.getTheXAxis()); lightPoleHeelingProcessing.setTheYAxis(param.getTheYAxis()); lightPoleHeelingProcessing.setTheZAxis(param.getTheZAxis()); lightPoleHeelingProcessing.setTheXAxisOld(one.getTheXAxis()); lightPoleHeelingProcessing.setTheYAxisOld(one.getTheYAxis()); lightPoleHeelingProcessing.setTheZAxisOld(one.getTheZAxis()); lightPoleHeelingProcessing.setWarningLevelOld(one.getWarningLevel()); //警告等级 if (Math.abs(param.getTheXAxis()) >= 10 || Math.abs(param.getTheYAxis()) >= 10) { //一级警告 lightPoleHeelingProcessing.setWarningLevel(1); } else if ((Math.abs(param.getTheXAxis()) >= 5 && Math.abs(param.getTheXAxis()) < 10) || (Math.abs(param.getTheYAxis()) >= 5 && Math.abs(param.getTheYAxis()) < 10)) { //二级警告 lightPoleHeelingProcessing.setWarningLevel(2); } else { //正常 lightPoleHeelingProcessing.setWarningLevel(0); } boolean save = save(lightPoleHeelingProcessing); if (save) { //设置为已处理 one.setProcessingState(1); lightPoleHeelingService.updateById(one); } return save; } }