|
@@ -12,13 +12,16 @@ import com.huimv.eartag2.common.utils.Result;
|
|
|
import com.huimv.eartag2.common.utils.ResultCode;
|
|
|
import com.huimv.eartag2.manage2.pojo.*;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.huimv.eartag2.manage2.utils.Filter;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.text.DecimalFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -446,4 +449,114 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
|
|
|
return new Result(10000,"删除成功",true);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Result listFarmUnitEartagData3(Map<String, String> params) {
|
|
|
+ String pageSize = params.get("pageSize");
|
|
|
+ String pageNo = params.get("pageNo");
|
|
|
+ String unitId = params.get("unitId");
|
|
|
+ String deviceCode = params.get("deviceCode");
|
|
|
+ String farmId = params.get("farmId");
|
|
|
+ String earmark = params.get("earmark");
|
|
|
+ String liveStatus = params.get("liveStatus");
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(pageNo)){
|
|
|
+ pageNo="1";
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(pageSize)){
|
|
|
+ pageSize="20";
|
|
|
+ }
|
|
|
+ Float maxEarTemp = 0F;
|
|
|
+ Float minEarTemp = 100F;
|
|
|
+ QueryWrapper<EartagEartagRegister2> wrapper = new QueryWrapper<>();
|
|
|
+ //设备
|
|
|
+ wrapper.like(StringUtils.isNotBlank(deviceCode),"last_device",deviceCode);
|
|
|
+ wrapper.eq("farm_id",farmId);
|
|
|
+ wrapper.eq(StringUtils.isNotBlank(unitId),"unit_id",unitId);
|
|
|
+ wrapper.like(StringUtils.isNotBlank(earmark),"earmark",earmark);
|
|
|
+ wrapper.eq(StringUtils.isNotBlank(liveStatus),"live_status",liveStatus);
|
|
|
+ wrapper.orderByDesc("ask_time");
|
|
|
+ //大堰河牧场过滤
|
|
|
+ if ("330112004".equals(farmId)){
|
|
|
+ wrapper.eq("live_status", 1).and( i->i.likeRight("earmark","1332022109003").or().likeRight("earmark","1332022109004"));
|
|
|
+ }
|
|
|
+ if ("330727001".equals(farmId)){
|
|
|
+ wrapper.eq("live_status", 1).like("earmark","31111112222");
|
|
|
+ }
|
|
|
+ Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);
|
|
|
+
|
|
|
+ Map map = new HashMap();
|
|
|
+ long allCount = this.count(wrapper);
|
|
|
+ //在线
|
|
|
+ if (!"330112004".equals(farmId)){
|
|
|
+ wrapper.eq("live_status", 1);
|
|
|
+ }
|
|
|
+ long onCount = this.count(wrapper);
|
|
|
+ List<EartagEartagRegister2> list = this.list(wrapper);
|
|
|
+ if (list.size() == 0){
|
|
|
+ minEarTemp = 0F;
|
|
|
+ }
|
|
|
+
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ cal.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ cal.set(Calendar.SECOND, 0);
|
|
|
+ cal.set(Calendar.MINUTE, 0);
|
|
|
+ cal.set(Calendar.MILLISECOND, 0);
|
|
|
+ Date time = cal.getTime();
|
|
|
+
|
|
|
+ for (EartagEartagRegister2 record : page.getRecords()) {
|
|
|
+ //客户数据
|
|
|
+
|
|
|
+ QueryWrapper<EartagData2> wrapper2 = new QueryWrapper<>();
|
|
|
+ wrapper2.eq("earmark", record.getEarmark());
|
|
|
+ wrapper2.ge("add_time", time);
|
|
|
+ wrapper2.orderByAsc("add_time");
|
|
|
+ List<Double> list1 = new ArrayList<>();
|
|
|
+ List<Float> list2 = new ArrayList<>();
|
|
|
+ List<Float> list3 = new ArrayList<>();
|
|
|
+ List<Date> list4 = new ArrayList<>();
|
|
|
+ List<Long> list5 = new ArrayList<>();
|
|
|
+ List<Integer> list6 = new ArrayList<>();
|
|
|
+ List<Float> list7 = new ArrayList<>();
|
|
|
+ List<EartagData2> list8 = eartagData2Mapper.selectList(wrapper2);
|
|
|
+ for (EartagData2 eartagData2 : list8) {
|
|
|
+ Float earTemp1 = eartagData2.getEarTemp1();
|
|
|
+ Float earTemp2 = eartagData2.getEarTemp2();
|
|
|
+ Float envTemp1 = eartagData2.getEnvTemp1();
|
|
|
+
|
|
|
+ list1.add(earTemp1 == null ? null:Double.valueOf(earTemp1));
|
|
|
+ list2.add(earTemp2);
|
|
|
+ list3.add(envTemp1);
|
|
|
+ list4.add( eartagData2.getAddTime());
|
|
|
+ list5.add( eartagData2.getAct1());
|
|
|
+ list6.add( eartagData2.getBat());
|
|
|
+ list7.add( eartagData2.getEarTemp1());
|
|
|
+ }
|
|
|
+ Filter filter1 = new Filter(list1,0.2);
|
|
|
+ List<Double> earTemp1 = filter1.max(20, 200, 30, 40);
|
|
|
+
|
|
|
+ Map endMap = new HashMap();
|
|
|
+ endMap.put("earTemp1",earTemp1.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
|
|
|
+ endMap.put("earTemp2",list2.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
|
|
|
+ endMap.put("getEnvTemp1",list3.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
|
|
|
+ endMap.put("earTemp",list7.stream().map(number -> String.format("%.2f", number)).collect(Collectors.toList()));
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ endMap.put("time",list4.stream()
|
|
|
+ .map(date -> formatter.format(date))
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ endMap.put("act",list5);
|
|
|
+ endMap.put("bat",list6);
|
|
|
+
|
|
|
+ String format = String.format("%.2f", earTemp1.get(earmark.length()));
|
|
|
+ record.setEarTemp1(Float.parseFloat(format));
|
|
|
+ record.setDetail(endMap);
|
|
|
+ }
|
|
|
+ map.put("countOff",allCount-onCount);
|
|
|
+ map.put("countOn",onCount);
|
|
|
+ map.put("countAll",allCount);
|
|
|
+ map.put("maxEarTemp",maxEarTemp);
|
|
|
+ map.put("minEarTemp",minEarTemp);
|
|
|
+ map.put("page",page);
|
|
|
+ return new Result(ResultCode.SUCCESS,map);
|
|
|
+ }
|
|
|
+
|
|
|
}
|