From 6992aaf0587c09f7c511c1afd12e1519d91363d3 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 14 Dec 2023 15:38:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java | 90 ++++++++++++++++++++++++++------------------ 1 files changed, 53 insertions(+), 37 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java index 1863fba..35a9cdd 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java @@ -1,7 +1,15 @@ package com.moral.api.service.impl; +import com.moral.api.config.Interceptor.UserHelper; +import com.moral.api.entity.SysDictData; +import com.moral.api.exception.BusinessException; +import com.moral.api.mapper.*; +import com.moral.api.pojo.enums.SysDictTypeEnum; +import com.moral.api.pojo.vo.user.QxUser; +import com.moral.api.service.SysDictTypeService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.system.ApplicationHome; import org.springframework.stereotype.Service; @@ -14,18 +22,7 @@ import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; @@ -36,10 +33,6 @@ import com.moral.api.entity.Dustld; import com.moral.api.entity.ManageCoordinate; import com.moral.api.entity.MaxRoad; -import com.moral.api.mapper.DustldMapper; -import com.moral.api.mapper.HistorySecondCruiserMapper; -import com.moral.api.mapper.ManageCoordinateMapper; -import com.moral.api.mapper.MaxRoadMapper; import com.moral.api.pojo.dto.historySecondCruiser.DustldDTO; import com.moral.api.pojo.dust.DustForm; import com.moral.api.pojo.dust.TimeForm; @@ -68,7 +61,7 @@ */ @Override public Integer getDailyDustld(Map<String, Object> params,MultipartFile file ) { - + SysDictData listDict = sysDictTypeService.listOne(SysDictTypeEnum.SYS_SECOND_CRUISER.getValue(),"dustld"); //������jar��������������� ApplicationHome applicationHome = new ApplicationHome(getClass()); //���jar������������������������������upload������������������������������������ @@ -94,8 +87,16 @@ ArrayList<Double> rsDouble = new ArrayList<>(); for (String s : dust) { double aDouble = Double.parseDouble(s); - - if (aDouble>=0 && aDouble<40 ){ + if(listDict.getDataValue().contains(",")){ + List<String> resultStr = Arrays.asList(listDict.getDataValue().split(",")); + if(resultStr.size() % 2 ==0){ + aDouble = numAvg(resultStr,BigDecimal.valueOf(aDouble)).doubleValue(); + } + }else { + BigDecimal dataValue = Objects.nonNull(listDict.getDataValue())?BigDecimal.valueOf(Double.parseDouble(listDict.getDataValue())):BigDecimal.ZERO; + aDouble = BigDecimal.valueOf(aDouble).add(dataValue).doubleValue(); + } + /*if (aDouble>=0 && aDouble<40 ){ aDouble = aDouble + 170; }else if (aDouble>=40 && aDouble<60){ aDouble = aDouble + 130; @@ -107,7 +108,7 @@ aDouble = aDouble + 30; }else { aDouble= aDouble+0; - } + }*/ rsDouble.add(aDouble); } list.addAll(rsDouble); @@ -270,14 +271,23 @@ private ManageCoordinateMapper manageCoordinateMapper; @Autowired private MaxRoadMapper maxRoadMapper; + @Autowired + private OrganizationMapper organizationMapper; + @Autowired + private SysDictTypeService sysDictTypeService; @Override @Transactional public Map<String, Object> dailyDustlds(Map<String, Object> params) { - + SysDictData list = sysDictTypeService.listOne(SysDictTypeEnum.SYS_SECOND_CRUISER.getValue(),"dustld"); Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); Integer orgId = (Integer) orgInfo.get("id"); + String mac = params.get("mac").toString(); + List<Integer> orgList = organizationMapper.orgIdSpecialDevList(orgId,mac); + if(CollectionUtils.isEmpty(orgList)){ + throw new BusinessException("������������������������������������"); + } String time1 = params.get("startTime").toString(); String dateString1 = DateUtils.stringToDateString(time1, DateUtils.yyyy_MM_dd_HH_mm_ss_EN, DateUtils.yyyy_MM_dd_HH_mm_CN); String rsTime1 = dateString1.substring(5, 14); @@ -286,7 +296,7 @@ String rsTime2 = dateString2.substring(5, 14); HashMap<String, Object> rsMap = new HashMap<>(); List<Map<String, Object>> dusts = historySecondCruiserMapper.getDusts(params); - Map<String, List<DustldDTO>> collect = manageCoordinateMapper.CompareTo(orgId).stream().collect(Collectors.groupingBy(o -> o.getName())); + Map<String, List<DustldDTO>> collect = manageCoordinateMapper.CompareTo(orgList.get(0)).stream().collect(Collectors.groupingBy(o -> o.getName())); if (ObjectUtils.isEmpty(dusts) || ObjectUtils.isEmpty(collect)){ return null; } @@ -317,17 +327,14 @@ // String flyLon1 = dust.get("flyLon").toString(); if (latDouble1==latDouble && lonDouble1==lonDouble){ Double dustld = Objects.nonNull(dust.get("dustld"))?Double.parseDouble(dust.get("dustld").toString()):0d; - - if (dustld>=0 && dustld<40 ){ - dustld = dustld + 170; - }else if (dustld>=40 && dustld<60){ - dustld = dustld + 130; - }else if (dustld>=60 && dustld<100 ){ - dustld = dustld + 110; - }else if (dustld>=100 && dustld<150){ - dustld = dustld + 70; - }else if (dustld>=150 && dustld<180){ - dustld = dustld + 30; + if(list.getDataValue().contains(",")){ + List<String> resultStr = Arrays.asList(list.getDataValue().split(",")); + if(resultStr.size() % 2 ==0){ + dustld = numAvg(resultStr,BigDecimal.valueOf(dustld)).doubleValue(); + } + }else { + BigDecimal dataValue = Objects.nonNull(list.getDataValue())?BigDecimal.valueOf(Double.parseDouble(list.getDataValue())):BigDecimal.ZERO; + dustld = BigDecimal.valueOf(dustld).add(dataValue).doubleValue(); } doubleArrayList.add(dustld); break; @@ -384,9 +391,9 @@ if (road.getName().equals(dustForm.getRoad())){ HashMap<String, Object> map = new HashMap<>(); map.put("road",road.getName()); - map.put("value1",road.getData()); - map.put("value2",dustForm.getValue()); - map.put("value3",road.getData()-dustForm.getValue()); + map.put("value1",String.format("%.2f",road.getData())); + map.put("value2",String.format("%.2f",dustForm.getValue())); + map.put("value3",String.format("%.2f",road.getData()-dustForm.getValue())); list3.add(map); } } @@ -488,5 +495,14 @@ } return null; } - + private BigDecimal numAvg(List<String> list , BigDecimal num){ + int nums = 1; + for (int i=0;i<list.size();i=i+2){ + if(num.compareTo(BigDecimal.valueOf(Double.parseDouble(list.get(i))))>= 0 ){ + return num.add(BigDecimal.valueOf(Double.parseDouble(list.get(i+1)))); + } + nums+=2; + } + return num; + } } -- Gitblit v1.8.0