From 2a354294d885900b57bf8b05083f842878668a71 Mon Sep 17 00:00:00 2001
From: swb <jpy123456>
Date: Thu, 27 Jun 2024 14:14:56 +0800
Subject: [PATCH] fix:走航车尘负荷路段排名提交
---
screen-job/src/main/resources/mapper/SecondCruiserSortMapper.xml | 22 +
screen-job/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java | 11
screen-job/src/main/java/com/moral/api/service/HistorySecondCruiserService.java | 18 +
screen-job/src/main/java/com/moral/api/entity/SecondCruiserSort.java | 48 ++++
screen-job/src/main/java/com/moral/api/controller/PubController.java | 12 +
screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java | 150 ++++++++++++
screen-job/src/main/java/com/moral/api/service/SysDictTypeService.java | 10
screen-job/src/main/java/com/moral/api/entity/HistorySecondCruiser.java | 55 ++++
screen-job/src/main/java/com/moral/api/entity/SysDictType.java | 63 +++++
screen-job/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java | 36 +++
screen-job/src/main/resources/mapper/SysDictTypeMapper.xml | 23 +
screen-job/src/main/resources/mapper/OrganizationMapper.xml | 19 +
screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java | 22 +
screen-job/src/main/resources/mapper/HistorySecondCruiserMapper.xml | 33 ++
screen-job/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java | 14 +
screen-job/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java | 14 +
screen-job/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java | 19 +
screen-job/src/main/java/com/moral/api/entity/DustldDTO.java | 24 ++
screen-job/src/main/java/com/moral/api/entity/SysDictData.java | 65 +++++
screen-job/src/main/resources/mapper/ManageCoordinateDetailMapper.xml | 13 +
screen-job/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java | 3
screen-job/src/main/java/com/moral/api/mapper/OrganizationMapper.java | 6
screen-job/src/main/java/com/moral/api/service/SecondCruiserSortService.java | 7
23 files changed, 687 insertions(+), 0 deletions(-)
diff --git a/screen-job/src/main/java/com/moral/api/controller/PubController.java b/screen-job/src/main/java/com/moral/api/controller/PubController.java
index bc9dde8..d6fab21 100644
--- a/screen-job/src/main/java/com/moral/api/controller/PubController.java
+++ b/screen-job/src/main/java/com/moral/api/controller/PubController.java
@@ -57,6 +57,9 @@
@Autowired
private ManageCoordinateDetailService manageCoordinateDetailService;
+ @Autowired
+ private HistorySecondCruiserService historySecondCruiserService;
+
private final EmailSpringUtil emailSpringUtil;
private final CityWeatherForecastService cityWeatherForecastService;
@@ -163,6 +166,15 @@
return new ResultMessage();
}
+ @GetMapping("secondCruiserSort")
+ @ApiOperation(value = "���������������", notes = "���������������")
+ public ResultMessage secondCruiserSort() {
+ String startTime ="2024-06-06 00:07:01";
+ String endTime ="2024-06-06 23:07:01";
+ historySecondCruiserService.sort(startTime,endTime);
+ return new ResultMessage();
+ }
+
@GetMapping("insertCoordinateDetail")
@ApiOperation(value = "������������", notes = "������������")
public ResultMessage insertCoordinateDetail() {
diff --git a/screen-job/src/main/java/com/moral/api/entity/DustldDTO.java b/screen-job/src/main/java/com/moral/api/entity/DustldDTO.java
new file mode 100644
index 0000000..8901680
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/entity/DustldDTO.java
@@ -0,0 +1,24 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName DustldDTO
+ * @date 2024.06.25 14:25
+ */
+@Data
+public class DustldDTO {
+
+
+ private String name;
+ //������
+ private String flyLat;
+ //������
+ private String flyLon;
+
+ //���������
+ private Double data;
+}
diff --git a/screen-job/src/main/java/com/moral/api/entity/HistorySecondCruiser.java b/screen-job/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
new file mode 100644
index 0000000..28e9cab
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
@@ -0,0 +1,55 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HistorySecondCruiser
+ * @date 2024.06.25 14:33
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HistorySecondCruiser extends Model<HistorySecondCruiser> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ������mac
+ */
+ private String mac;
+
+ /**
+ * ������������
+ */
+ private Date time;
+
+ /**
+ * ������
+ */
+ private String value;
+
+ /**
+ * ���������������������id
+ */
+ private Integer organizationId;
+
+ /**
+ * ������������
+ */
+ private Date batch;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return null;
+ }
+}
diff --git a/screen-job/src/main/java/com/moral/api/entity/SecondCruiserSort.java b/screen-job/src/main/java/com/moral/api/entity/SecondCruiserSort.java
new file mode 100644
index 0000000..d698262
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/entity/SecondCruiserSort.java
@@ -0,0 +1,48 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.moral.util.DateUtils;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName SecondCruiserSort
+ * @date 2024.06.25 15:29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SecondCruiserSort extends Model<SecondCruiserSort> {
+
+ /**
+ * ������������
+ */
+ private String road;
+
+ /**
+ * ������
+ */
+ private Double value;
+
+ /**
+ * mac���
+ */
+ private String mac;
+ /**
+ * ������Id
+ */
+ private Integer organizationId;
+
+ /**
+ * ������
+ */
+ private String time;
+
+
+ public SecondCruiserSort() {
+ this.time =DateUtils.getDateStringOfDay(-1,"yyyy-MM-dd 00:00:00"); // ������������������������������
+ }
+}
diff --git a/screen-job/src/main/java/com/moral/api/entity/SysDictData.java b/screen-job/src/main/java/com/moral/api/entity/SysDictData.java
new file mode 100644
index 0000000..99416ef
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/entity/SysDictData.java
@@ -0,0 +1,65 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName SysDictData
+ * @date 2024.06.25 14:01
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysDictData extends Model<SysDictData> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ������
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * ������������Id
+ */
+ private Integer dictTypeId;
+
+ /**
+ * ������������
+ */
+ @TableField("dataKey")
+ private String dataKey;
+
+ /**
+ * ���������
+ */
+ @TableField("dataValue")
+ private String dataValue;
+
+ /**
+ * ������������
+ */
+ private Date createTime;
+
+ /**
+ * ������������
+ */
+ private Date updateTime;
+
+ /**
+ * ������������
+ */
+ private String isDelete;
+
+}
diff --git a/screen-job/src/main/java/com/moral/api/entity/SysDictType.java b/screen-job/src/main/java/com/moral/api/entity/SysDictType.java
new file mode 100644
index 0000000..da85871
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/entity/SysDictType.java
@@ -0,0 +1,63 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName SysDictType
+ * @date 2024.06.25 14:05
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysDictType extends Model<SysDictType> {
+
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ������
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * ������
+ */
+ private String name;
+
+ /**
+ * ������
+ */
+ private String desc;
+
+ /**
+ * ������������ ������������
+ */
+ private Integer system;
+
+ /**
+ * ������������
+ */
+ private Date createTime;
+
+ /**
+ * ������������
+ */
+ private Date updateTime;
+
+ /**
+ * ������������
+ */
+ private String isDelete;
+
+}
diff --git a/screen-job/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java b/screen-job/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
new file mode 100644
index 0000000..2ee281a
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
@@ -0,0 +1,14 @@
+package com.moral.api.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.entity.HistorySecondCruiser;
+
+public interface HistorySecondCruiserMapper extends BaseMapper<HistorySecondCruiser> {
+
+ List<Map<String,Object>> getDusts(Map<String,Object> params);
+
+ List<HistorySecondCruiser> getResult(String startTime,String endTime);
+}
diff --git a/screen-job/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java b/screen-job/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java
index 0199ec0..b0767b6 100644
--- a/screen-job/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java
+++ b/screen-job/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.entity.CruiserDTO;
+import com.moral.api.entity.DustldDTO;
import com.moral.api.entity.ManageCoordinate;
import com.moral.api.entity.ManageCoordinateDetail;
@@ -13,4 +14,6 @@
List<ManageCoordinate> selectCoordinate();
List<CruiserDTO> getCruiserInfo(Map<String,Object> params);
+
+ List<DustldDTO> CompareTo(Integer orgId);
}
diff --git a/screen-job/src/main/java/com/moral/api/mapper/OrganizationMapper.java b/screen-job/src/main/java/com/moral/api/mapper/OrganizationMapper.java
index f4c72f2..f3c083b 100644
--- a/screen-job/src/main/java/com/moral/api/mapper/OrganizationMapper.java
+++ b/screen-job/src/main/java/com/moral/api/mapper/OrganizationMapper.java
@@ -1,5 +1,9 @@
package com.moral.api.mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
import com.moral.api.entity.Organization;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -13,4 +17,6 @@
*/
public interface OrganizationMapper extends BaseMapper<Organization> {
+ List<Integer> orgIdSpecialDevList(@Param("organizationId") Integer organizationId, @Param("mac") String mac);
+
}
diff --git a/screen-job/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java b/screen-job/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java
new file mode 100644
index 0000000..375383a
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java
@@ -0,0 +1,11 @@
+package com.moral.api.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.entity.SecondCruiserSort;
+
+public interface SecondCruiserSortMapper extends BaseMapper<SecondCruiserSort> {
+
+ void insertAll(List<SecondCruiserSort> list);
+}
diff --git a/screen-job/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java b/screen-job/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
new file mode 100644
index 0000000..a52b923
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/mapper/SysDictTypeMapper.java
@@ -0,0 +1,14 @@
+package com.moral.api.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
+
+public interface SysDictTypeMapper extends BaseMapper<SysDictType> {
+
+ List<SysDictData> selectCodeList(@Param("code") String code, @Param("id") String id);
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/HistorySecondCruiserService.java b/screen-job/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
new file mode 100644
index 0000000..9b13087
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
@@ -0,0 +1,18 @@
+package com.moral.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.entity.HistorySecondCruiser;
+
+/**
+ * <p>
+ * ��������������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-13
+ */
+public interface HistorySecondCruiserService extends IService<HistorySecondCruiser> {
+
+ void sort(String startTime,String endTime);
+
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/SecondCruiserSortService.java b/screen-job/src/main/java/com/moral/api/service/SecondCruiserSortService.java
new file mode 100644
index 0000000..d1cb112
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/SecondCruiserSortService.java
@@ -0,0 +1,7 @@
+package com.moral.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.entity.SecondCruiserSort;
+
+public interface SecondCruiserSortService extends IService<SecondCruiserSort> {
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/SysDictTypeService.java b/screen-job/src/main/java/com/moral/api/service/SysDictTypeService.java
new file mode 100644
index 0000000..cbe633b
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/SysDictTypeService.java
@@ -0,0 +1,10 @@
+package com.moral.api.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
+
+public interface SysDictTypeService extends IService<SysDictType> {
+
+ SysDictData listOne(String code, String dataKey);
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
new file mode 100644
index 0000000..450c793
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
@@ -0,0 +1,150 @@
+package com.moral.api.service.impl;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.entity.DustldDTO;
+import com.moral.api.entity.HistorySecondCruiser;
+import com.moral.api.entity.SecondCruiserSort;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.mapper.HistorySecondCruiserMapper;
+import com.moral.api.mapper.ManageCoordinateDetailMapper;
+import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.mapper.SecondCruiserSortMapper;
+import com.moral.api.service.HistorySecondCruiserService;
+import com.moral.api.service.SysDictTypeService;
+import com.moral.util.DateUtils;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HistorySecondCruiserServiceImpl
+ * @date 2024.06.25 14:41
+ */
+@Service
+@Slf4j
+public class HistorySecondCruiserServiceImpl extends ServiceImpl<HistorySecondCruiserMapper, HistorySecondCruiser> implements HistorySecondCruiserService {
+ @Autowired
+ private SysDictTypeService sysDictTypeService;
+
+ @Autowired
+ private HistorySecondCruiserMapper historySecondCruiserMapper;
+ @Autowired
+ private OrganizationMapper organizationMapper;
+ @Autowired
+ private ManageCoordinateDetailMapper manageCoordinateDetailMapper;
+ @Autowired
+ private SecondCruiserSortMapper secondCruiserSortMapper;
+
+
+ @Override
+ @Transactional
+ public void sort(String startTime, String endTime) {
+
+ if (ObjectUtils.isEmpty(startTime)&&ObjectUtils.isEmpty(endTime)){
+ //������������������������
+ startTime = DateUtils.getDateStringOfDay(-1, DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+ //������������������
+ endTime = DateUtils.getCurDate(DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+ }
+ SysDictData list = sysDictTypeService.listOne("ZHC", "dustld");
+ List<HistorySecondCruiser> result = historySecondCruiserMapper.getResult(startTime, endTime);
+
+ //
+ ArrayList<SecondCruiserSort> list1 = new ArrayList<>();
+ if (!ObjectUtils.isEmpty(result)){
+ for (HistorySecondCruiser historySecondCruiser : result) {
+ String mac = historySecondCruiser.getMac();
+ Integer organizationId = historySecondCruiser.getOrganizationId();
+ List<Integer> orgList = organizationMapper.orgIdSpecialDevList(organizationId, mac);
+ if(CollectionUtils.isEmpty(orgList)){
+ return;
+ }
+
+ HashMap<String, Object> params = new HashMap<>();
+ params.put("mac",mac);
+ params.put("startTime",startTime);
+ params.put("endTime",endTime);
+ List<Map<String, Object>> dusts = historySecondCruiserMapper.getDusts(params);
+ Map<String, List<DustldDTO>> collect = manageCoordinateDetailMapper.CompareTo(orgList.get(0)).stream().collect(Collectors.groupingBy(o -> o.getName()));
+ if (ObjectUtils.isEmpty(dusts) || ObjectUtils.isEmpty(collect)){
+ return;
+ }
+ Set<String> strings = collect.keySet();
+ for (String string : strings) {
+ SecondCruiserSort secondCruiserSort = new SecondCruiserSort();
+ ArrayList<Double> doubleArrayList = new ArrayList<>();
+ List<DustldDTO> dustldDTOS = collect.get(string);
+ for (DustldDTO dustldDTO : dustldDTOS) {
+ String flyLat = dustldDTO.getFlyLat();
+ String flyLon = dustldDTO.getFlyLon();
+ if (flyLon==null && flyLat==null){
+ continue;
+ }
+ double latDouble1 = Double.parseDouble(flyLat);
+ double lonDouble1 = Double.parseDouble(flyLon);
+ for (Map<String, Object> dust : dusts) {
+ String flyLat1 = Objects.nonNull(dust.get("flyLat")) ? dust.get("flyLat").toString() :"0";
+ String flyLon1 = Objects.nonNull(dust.get("flyLon")) ? dust.get("flyLon").toString() :"0";
+ double latDouble = Double.parseDouble(flyLat1);
+ double lonDouble = Double.parseDouble(flyLon1);
+// 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(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;
+ }
+ }
+ }
+ if (ObjectUtils.isEmpty(doubleArrayList)){
+ continue;
+ }
+ Double ListAva = doubleArrayList.stream() .collect(Collectors.averagingDouble(Double::doubleValue));
+ double rsAvg = new BigDecimal(ListAva/1000).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+ secondCruiserSort.setRoad(string);
+ secondCruiserSort.setValue(rsAvg);
+ secondCruiserSort.setMac(mac);
+ secondCruiserSort.setOrganizationId(organizationId);
+ list1.add(secondCruiserSort);
+ }
+ }
+ }
+ secondCruiserSortMapper.insertAll(list1);
+ }
+
+ 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;
+ }
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java
new file mode 100644
index 0000000..5f0b463
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java
@@ -0,0 +1,19 @@
+package com.moral.api.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.entity.SecondCruiserSort;
+import com.moral.api.mapper.SecondCruiserSortMapper;
+import com.moral.api.service.SecondCruiserSortService;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName SecondCruiserSortServiceImpl
+ * @date 2024.06.26 14:29
+ */
+@Service
+public class SecondCruiserSortServiceImpl extends ServiceImpl<SecondCruiserSortMapper, SecondCruiserSort> implements SecondCruiserSortService {
+}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
new file mode 100644
index 0000000..47bce0d
--- /dev/null
+++ b/screen-job/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -0,0 +1,36 @@
+package com.moral.api.service.impl;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
+import com.moral.api.mapper.SysDictTypeMapper;
+import com.moral.api.service.SysDictTypeService;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName SysDictTypeServiceImpl
+ * @date 2024.06.25 14:10
+ */
+@Service
+public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService {
+
+
+ @Override
+ public SysDictData listOne(String code, String dataKey) {
+ List<SysDictData> list = this.baseMapper.selectCodeList(code,dataKey);
+ SysDictData sysDictData = new SysDictData();
+ if (CollectionUtils.isNotEmpty(list)) {
+ return list.get(0);
+ }
+ sysDictData.setDataValue("0");
+ return sysDictData;
+
+ }
+}
diff --git a/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java b/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
index 9ae95c9..c4a6323 100644
--- a/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
+++ b/screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
@@ -7,8 +7,10 @@
import com.moral.api.service.HistoryFiveMinutelyService;
import com.moral.api.service.HistoryHourlyService;
import com.moral.api.service.HistoryMonthlyService;
+import com.moral.api.service.HistorySecondCruiserService;
import com.moral.api.service.HistoryWeeklyService;
import com.moral.api.service.ManageCoordinateDetailService;
+import com.moral.api.service.impl.HistorySecondCruiserServiceImpl;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
@@ -37,6 +39,10 @@
@Autowired
private ManageCoordinateDetailService manageCoordinateDetailService;
+
+
+ @Autowired
+ private HistorySecondCruiserService historySecondCruiserService;
//5������������������
@XxlJob("insertHistoryFiveMinutely")
@@ -165,4 +171,20 @@
}
+ /**
+ * ���������������������
+ * @return
+ */
+ @XxlJob("secondCruiserSort")
+ public ReturnT secondCruiserSort(){
+ try {
+ historySecondCruiserService.sort(null,null);
+ } catch (Exception e) {
+ XxlJobHelper.log(e.getMessage());
+ return new ReturnT(ReturnT.FAIL_CODE, e.getMessage());
+ }
+ return ReturnT.SUCCESS;
+
+ }
+
}
diff --git a/screen-job/src/main/resources/mapper/HistorySecondCruiserMapper.xml b/screen-job/src/main/resources/mapper/HistorySecondCruiserMapper.xml
new file mode 100644
index 0000000..28397c0
--- /dev/null
+++ b/screen-job/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.HistorySecondCruiserMapper">
+
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.HistorySecondCruiser">
+ <result column="mac" property="mac"/>
+ <result column="time" property="time"/>
+ <result column="value" property="value"/>
+ <result column="organization_id" property="organizationId"/>
+ <result column="batch" property="batch"/>
+ </resultMap>
+
+
+ <select id="getDusts" resultType="java.util.Map">
+ SELECT
+ value ->>'$.flylat' as flyLat,value ->>'$.flylon' as flyLon,value ->>'$.dustld' as dustld,
+ `time`
+ FROM `history_second_cruiser`
+ WHERE mac = #{mac}
+ AND `time` <![CDATA[>=]]> #{startTime}
+ AND `time` <![CDATA[<=]]> #{endTime}
+ </select>
+
+ <select id="getResult" resultType="com.moral.api.entity.HistorySecondCruiser">
+ SELECT
+ distinct mac,organization_id
+ FROM `history_second_cruiser`
+ WHERE
+ `time` <![CDATA[>=]]> #{startTime}
+ AND `time` <![CDATA[<=]]> #{endTime}
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/ManageCoordinateDetailMapper.xml b/screen-job/src/main/resources/mapper/ManageCoordinateDetailMapper.xml
index ab7b9c5..a605f40 100644
--- a/screen-job/src/main/resources/mapper/ManageCoordinateDetailMapper.xml
+++ b/screen-job/src/main/resources/mapper/ManageCoordinateDetailMapper.xml
@@ -28,4 +28,17 @@
order by time
</select>
+ <select id="CompareTo" resultType="com.moral.api.entity.DustldDTO">
+ SELECT
+ mc.start_point as name ,
+ md.longitude as flyLon,
+ md.latitude as flyLat
+ FROM
+ manage_coordinate AS mc
+ LEFT JOIN manage_coordinate_detail AS md ON mc.coordinate_id = md.coordinate_id
+ WHERE
+ mc.is_del =0
+ and mc.organization_id=#{orgId}
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/OrganizationMapper.xml b/screen-job/src/main/resources/mapper/OrganizationMapper.xml
index 7dca616..39f2333 100644
--- a/screen-job/src/main/resources/mapper/OrganizationMapper.xml
+++ b/screen-job/src/main/resources/mapper/OrganizationMapper.xml
@@ -26,4 +26,23 @@
<result column="is_delete" property="isDelete" />
</resultMap>
+ <select id="orgIdSpecialDevList" resultType="java.lang.Integer">
+ select organization_id from special_device where organization_id in (
+ SELECT id FROM (
+ SELECT id, parent_id, name FROM organization WHERE id = #{organizationId}
+ UNION ALL
+ SELECT i.id, i.parent_id, i.name
+ FROM organization i
+ INNER JOIN (
+ SELECT * FROM (
+ SELECT id, parent_id, name FROM organization WHERE id = #{organizationId}
+ UNION ALL
+ SELECT id, parent_id, name FROM organization WHERE parent_id = #{organizationId}
+ ) t1
+ ) t2 ON i.parent_id = t2.id
+ where i.is_delete = 0
+ ) t3 ) and mac = #{mac} and is_delete = 0
+
+
+ </select>
</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/SecondCruiserSortMapper.xml b/screen-job/src/main/resources/mapper/SecondCruiserSortMapper.xml
new file mode 100644
index 0000000..c8e561e
--- /dev/null
+++ b/screen-job/src/main/resources/mapper/SecondCruiserSortMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.SecondCruiserSortMapper">
+
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.SecondCruiserSort">
+ <result column="road" property="road"/>
+ <result column="time" property="time"/>
+ <result column="value" property="value"/>
+ <result column="mac" property="mac"/>
+ <result column="organization_id" property="organizationId"/>
+ </resultMap>
+
+ <insert id="insertAll">
+ INSERT INTO second_cruiser_sort (road,time,value,mac,organization_id)
+ VALUES
+ <foreach collection="list" item="item" separator=",">
+ (#{item.road},#{item.time},#{item.value},#{item.mac},#{item.organizationId})
+ </foreach>
+ </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/screen-job/src/main/resources/mapper/SysDictTypeMapper.xml b/screen-job/src/main/resources/mapper/SysDictTypeMapper.xml
new file mode 100644
index 0000000..54cc75b
--- /dev/null
+++ b/screen-job/src/main/resources/mapper/SysDictTypeMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.SysDictTypeMapper">
+
+ <!-- ������������������������ -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.SysDictType">
+ <id column="id" property="id" />
+ <result column="name" property="name" />
+ <result column="desc" property="desc" />
+ <result column="system" property="system" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="is_delete" property="isDelete" />
+ </resultMap>
+ <select id="selectCodeList" resultType="com.moral.api.entity.SysDictData">
+ select t1.id,t1.dict_type_id,t1.dataKey,t1.dataValue from sys_dict_type t
+ left join sys_dict_data t1 on t1.dict_type_id = t.id
+ where t.is_delete = 0 and t.name = #{code} and t1.dataKey = #{id} and t1.is_delete = 0
+ order by t1.create_time desc
+ </select>
+
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0