Pu Zhibing
2025-06-19 a05b419384e148fc950c77553816a2d05144f4ae
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
@@ -5,8 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.dataInterchange.api.feignClient.UPWarnMsgAdptInfoClient;
import com.ruoyi.dataInterchange.api.feignClient.UPWarnMsgOperationInfoClient;
import com.ruoyi.dataInterchange.api.model.enums.WarnType;
import com.ruoyi.dataInterchange.api.vo.UPWarnMsgAdptInfoVo;
import com.ruoyi.dataInterchange.api.vo.UPWarnMsgOperationInfoVo;
import com.ruoyi.system.api.model.Car;
import com.ruoyi.system.api.model.Driver;
import com.ruoyi.system.api.model.Enterprise;
@@ -49,6 +51,9 @@
   
   @Resource
   private ICarService carService;
   @Resource
   private UPWarnMsgOperationInfoClient upWarnMsgOperationInfoClient;
   
   
   /**
@@ -118,9 +123,34 @@
               warn.setTreatmentState("将来处理");
               break;
         }
         if(0x00 != vo.getResult() && null == warn.getTreatmentTime()){
            UPWarnMsgOperationInfoVo upWarnMsgOperationInfoVo = upWarnMsgOperationInfoClient.getUPWarnMsgOperationInfo(warn.getObjectId()).getData();
            if(null != upWarnMsgOperationInfoVo){
               warn.setTreatmentUser(upWarnMsgOperationInfoVo.getOperator());
               warn.setTreatmentTime(LocalDateTime.ofEpochSecond(upWarnMsgOperationInfoVo.getCreateTime(), 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
               switch (upWarnMsgOperationInfoVo.getMethod()) {
                  case 0x01:
                     warn.setTreatmentRemark("快速拍照");
                     break;
                  case 0x02:
                     warn.setTreatmentRemark("语音下发");
                     break;
                  case 0x03:
                     warn.setTreatmentRemark("不做处理");
                     break;
                  case 0x04:
                     warn.setTreatmentRemark("其他");
                     break;
                  default:
                     warn.setTreatmentRemark("其他");
                     break;
               }
            }
         }
         warn.setCreateTime(LocalDateTime.now());
         warn.setObjectId(vo.getInfoId());
         warn.setVehicleNumber(vo.getVehicleNo());
         warn.setPicUrl(vo.getPicUrl());
         warns.add(warn);
      }
      if (warns.size() > 0) {
@@ -179,8 +209,35 @@
                  warn.setTreatmentState("将来处理");
                  break;
            }
            this.updateById(warn);
         }
         if(null == warn.getPicUrl()){
            warn.setPicUrl(vo.getPicUrl());
         }
         if(0x00 != vo.getResult() && null == warn.getTreatmentTime()){
            UPWarnMsgOperationInfoVo upWarnMsgOperationInfoVo = upWarnMsgOperationInfoClient.getUPWarnMsgOperationInfo(warn.getObjectId()).getData();
            if(null != upWarnMsgOperationInfoVo){
               warn.setTreatmentUser(upWarnMsgOperationInfoVo.getOperator());
               warn.setTreatmentTime(LocalDateTime.ofEpochSecond(upWarnMsgOperationInfoVo.getCreateTime(), 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
               switch (upWarnMsgOperationInfoVo.getMethod()) {
                  case 0x01:
                     warn.setTreatmentRemark("快速拍照");
                     break;
                  case 0x02:
                     warn.setTreatmentRemark("语音下发");
                     break;
                  case 0x03:
                     warn.setTreatmentRemark("不做处理");
                     break;
                  case 0x04:
                     warn.setTreatmentRemark("其他");
                     break;
                  default:
                     warn.setTreatmentRemark("其他");
                     break;
               }
            }
         }
         this.updateById(warn);
      }
      
   }
@@ -196,19 +253,21 @@
   public PageInfo<CarWarnListResp> getCarWarnList(CarWarnListReq carWarnListReq) {
      PageInfo<CarWarnListResp> pageInfo = new PageInfo<>(carWarnListReq.getPageCurr(), carWarnListReq.getPageSize());
      String warnType = carWarnListReq.getWarnType();
      switch (warnType) {
         case "前向碰撞报警":
            carWarnListReq.setWarnTypes(Arrays.asList("前向碰撞报警", "碰撞预警"));
            break;
         case "车道偏离报警":
            carWarnListReq.setWarnTypes(Arrays.asList("车道偏离报警", "偏离路线报警", "车道偏离报警"));
            break;
         case "疲劳驾驶报警":
            carWarnListReq.setWarnTypes(Arrays.asList("疲劳驾驶报警", "疲劳驾驶报警(生理疲劳)"));
            break;
         default:
            carWarnListReq.setWarnTypes(Arrays.asList(warnType));
            break;
      if(StringUtils.isNotEmpty(warnType)){
         switch (warnType) {
            case "前向碰撞报警":
               carWarnListReq.setWarnTypes(Arrays.asList("前向碰撞报警", "碰撞预警"));
               break;
            case "车道偏离报警":
               carWarnListReq.setWarnTypes(Arrays.asList("车道偏离报警", "偏离路线报警", "车道偏离报警"));
               break;
            case "疲劳驾驶报警":
               carWarnListReq.setWarnTypes(Arrays.asList("疲劳驾驶报警", "疲劳驾驶报警(生理疲劳)"));
               break;
            default:
               carWarnListReq.setWarnTypes(Arrays.asList(warnType));
               break;
         }
      }
      return this.baseMapper.getCarWarnList(pageInfo, carWarnListReq);
   }
@@ -271,7 +330,7 @@
         if(total == 0){
            map.put("rate", BigDecimal.ZERO);
         }else{
            map.put("rate", BigDecimal.valueOf(processed / total * 100).setScale(2, RoundingMode.HALF_EVEN));
            map.put("rate", new BigDecimal(processed).divide(new BigDecimal(total), 4, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN));
         }
      }
      return allWarnGroupVehicleType;