From f0b9fe73049ff873a6da7127c60fd3e4f5b6f212 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 07 八月 2024 09:34:39 +0800
Subject: [PATCH] 点位标签

---
 ycl-common/src/main/java/enumeration/general/ProvinceTagEnum.java              |   28 +++++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java             |   11 ++
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml                    |   11 +-
 ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java                 |   31 +++++++
 ycl-common/src/main/java/enumeration/general/ImportantTagEnum.java             |   29 +++++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java           |   10 +-
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java               |   10 +
 ycl-server/src/main/java/com/ycl/task/MonitorTask.java                         |   37 ++++++++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java |    9 --
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                   |    6 +
 10 files changed, 153 insertions(+), 29 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java b/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java
new file mode 100644
index 0000000..28f55b3
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java
@@ -0,0 +1,31 @@
+package enumeration.general;
+
+import lombok.Getter;
+
+/**
+ * 鍖哄煙鏋氫妇
+ *
+ */
+@Getter
+public enum AreaDeptEnum {
+    ZLJQ("鑷祦浜曞尯", "510302", 201),
+    GJQ("璐′簳鍖�", "510303", 202),
+    DAQ("澶у畨鍖�", "510304",102),
+    YTQ("娌挎哗鍖�", "510311",211),
+    RX("鑽e幙", "510321",203),
+    FSX("瀵岄『鍘�", "510322",101),
+    GXQ("楂樻柊鍖�", "510399",210),
+    ;
+
+    private final String name;
+
+    private final String code;
+
+    private final Integer deptId;
+
+    AreaDeptEnum(String name, String code,Integer deptId) {
+        this.name = name;
+        this.code = code;
+        this.deptId = deptId;
+    }
+}
diff --git a/ycl-common/src/main/java/enumeration/general/ImportantTagEnum.java b/ycl-common/src/main/java/enumeration/general/ImportantTagEnum.java
new file mode 100644
index 0000000..f902a39
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/ImportantTagEnum.java
@@ -0,0 +1,29 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 閲嶇偣鐐逛綅鏍囩
+ *
+ */
+@Getter
+public enum ImportantTagEnum {
+
+    Important("important", "閲嶇偣鐐逛綅"),
+    Normal("normal", "鏅�氱偣浣�"),
+    ;
+
+    @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+    private final String code;
+
+    private final String desc;
+
+    ImportantTagEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+}
diff --git a/ycl-common/src/main/java/enumeration/general/ProvinceTagEnum.java b/ycl-common/src/main/java/enumeration/general/ProvinceTagEnum.java
new file mode 100644
index 0000000..57373b4
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/ProvinceTagEnum.java
@@ -0,0 +1,28 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 鐪佸巺鐐逛綅鏍囩
+ *
+ */
+@Getter
+public enum ProvinceTagEnum {
+    Province("province", "鐪佸巺鐐逛綅"),
+    Normal("normal", "鏅�氱偣浣�"),
+    ;
+
+    @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+    private final String code;
+
+    private final String desc;
+
+    ProvinceTagEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
index db2f07a..1ee3b88 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwPoint.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.platform.base.AbsEntity;
+import enumeration.general.ImportantTagEnum;
+import enumeration.general.ProvinceTagEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -61,8 +63,13 @@
     @TableField("dept_id")
     private Long deptId;
 
-    @TableField("point_tag")
-    private String pointTag;
+    @ApiModelProperty("閲嶇偣鐐逛綅鏍囩")
+    @TableField("important_tag")
+    private ImportantTagEnum importantTag;
+
+    @ApiModelProperty("鐪佸巺鐐逛綅鏍囩")
+    @TableField("province_tag")
+    private ProvinceTagEnum provinceTag;
 
     @TableField("serial_number")
     private String serialNumber;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
index 76deb13..5514e75 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java
@@ -6,6 +6,8 @@
 import com.ycl.system.domain.group.Add;
 import com.ycl.platform.base.AbsForm;
 import com.ycl.platform.domain.entity.YwPoint;
+import enumeration.general.ImportantTagEnum;
+import enumeration.general.ProvinceTagEnum;
 import jakarta.validation.constraints.NotEmpty;
 import org.springframework.beans.BeanUtils;
 import jakarta.validation.constraints.NotBlank;
@@ -43,10 +45,10 @@
     @ApiModelProperty("鐩戠閮ㄩ棬")
     private Long deptId;
 
-    @NotEmpty(message = "鐐逛綅鏍囩涓嶈兘涓虹┖", groups = {Add.class, Update.class})
-    @ApiModelProperty("鐐逛綅鏍囩")
-    private List<String> pointTag;
-
+    @ApiModelProperty("鐪佸巺鐐逛綅鏍囩")
+    private ProvinceTagEnum provinceTag;
+    @ApiModelProperty("閲嶇偣鐐逛綅鏍囩")
+    private ImportantTagEnum importantTag;
     @ApiModelProperty("杩愮淮鐘舵��")
     private String status;
 
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
index a67e7dc..c2408a2 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
@@ -5,6 +5,9 @@
 
 import java.time.LocalDateTime;
 import java.util.List;
+
+import enumeration.general.ImportantTagEnum;
+import enumeration.general.ProvinceTagEnum;
 import org.springframework.lang.NonNull;
 import org.springframework.beans.BeanUtils;
 import lombok.Data;
@@ -46,9 +49,10 @@
     private List<Long> deptIds;
     private String deptName;
 
-    /** 鐐逛綅鏍囩 */
-    private String [] pointTags;
-    private String pointTagString;
+    /** 閲嶇偣鐐逛綅鏍囩 */
+    private ImportantTagEnum importantTag;
+    /** 鐪佸巺鐐逛綅鏍囩 */
+    private ProvinceTagEnum provinceTag;
 
     public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) {
         if(vo == null) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index b8f6cfd..4cc8a0b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -101,7 +101,6 @@
         YwPoint entity = baseMapper.selectById(form.getId());
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         BeanUtils.copyProperties(form, entity);
-        entity.setPointTag(form.getPointTag().stream().collect(Collectors.joining(",")));
         baseMapper.updateById(entity);
         return Result.ok("淇敼鎴愬姛");
     }
@@ -141,11 +140,6 @@
     public Result page(YwPointQuery query) {
         IPage<YwPointVO> page = PageUtil.getPage(query, YwPointVO.class);
         baseMapper.page(page, query);
-        page.getRecords().stream().forEach(point -> {
-            if (StringUtils.hasText(point.getPointTagString())) {
-                point.setPointTags(point.getPointTagString().split(","));
-            }
-        });
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
@@ -159,9 +153,6 @@
         YwPoint entity = baseMapper.selectById(id);
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         YwPointVO vo = YwPointVO.getVoByEntity(entity, null);
-        if (StringUtils.hasText(entity.getPointTag())) {
-            vo.setPointTags(entity.getPointTag().split(","));
-        }
         if (Objects.nonNull(entity.getDeptId())) {
             vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId()));
         }
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index 0e1d9cb..e53b548 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -3,10 +3,13 @@
 
 import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson2.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.entity.YwPoint;
 import com.ycl.platform.domain.result.UY.OneMachineFileResult;
 import com.ycl.platform.domain.vo.TMonitorVO;
 import com.ycl.platform.service.ITMonitorService;
+import com.ycl.platform.service.YwPointService;
 import com.ycl.system.entity.SysDictData;
 import com.ycl.system.service.ISysDictDataService;
 import com.ycl.utils.DateUtils;
@@ -18,6 +21,7 @@
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
@@ -37,40 +41,63 @@
     @Autowired
     private ISysDictDataService dictDataService;
     @Autowired
+    private YwPointService ywPointService;
+    @Autowired
     private RedisTemplate redisTemplate;
     //鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
     public void synchronize() {
         Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
         List<OneMachineFileResult> oneMachineFileResults = mongoTemplate.find(query, OneMachineFileResult.class);
+        //鏁版嵁搴搈onitor琛ㄦ暟鎹�
         List<String> serialNumberInBase = monitorService.selectTMonitorList(null).stream().map(TMonitorVO::getSerialNumber).collect(Collectors.toList());
         //鍑嗗鎻掑叆鏁版嵁搴撶殑鏁版嵁
         List<TMonitor> monitorList = new ArrayList<>();
         //鏂扮殑鏁版嵁锛屽師鏁版嵁搴撲腑涓嶅瓨鍦ㄧ殑鏁版嵁
         Set<TMonitor> newMonitorList = new HashSet<>();
-
+        //鐐逛綅鏁版嵁
+        Map<String, YwPoint> pointMap = ywPointService.list(new QueryWrapper<YwPoint>()).stream().collect(Collectors.toMap(YwPoint::getSerialNumber, Function.identity()));
+        //TODO:鎻掑叆鐐逛綅琛�
         //TODO:瑙f瀽鍖哄煙銆佽ˉ鍏卍eptId
-        List<SysDictData> areaCodeList = new ArrayList<>();
         //TODO:瑙f瀽閲嶇偣鐐逛綅
         //閲嶇偣鐐逛綅闆嗗悎瀛楀吀(瑙f瀽SXJCJQY瀛楁)
         SysDictData sysDictData = new SysDictData();
         sysDictData.setDictType("platform_important_site");
         List<SysDictData> DictDataList = dictDataService.selectDictDataList(sysDictData);
         List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList());
-
         for (OneMachineFileResult result : oneMachineFileResults) {
-            TMonitor monitor = setMonitor(result);
+            TMonitor monitor = getMonitor(result);
+            YwPoint point = getPoint(result,pointMap,importantSite);
             monitorList.add(monitor);
             //姣斿绛涢�夊嚭鏂扮殑鏁版嵁
             if(!CollectionUtils.isEmpty(serialNumberInBase) && !serialNumberInBase.contains(result.getSBBM())){
                 newMonitorList.add(monitor);
             }
         }
+        //鎻掑叆鏁版嵁搴�
+        if(!CollectionUtils.isEmpty(monitorList)){
+            monitorService.deleteTMonitorById(null);
+            monitorService.saveBatch(monitorList);
+        }
         //鏂扮殑鏁版嵁鏀惧叆Redis涓瓑寰呰�冩牳鎸囨爣浠诲姟浣跨敤
         redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
 
+
     }
 
-    private TMonitor setMonitor(OneMachineFileResult result) {
+    private YwPoint getPoint(OneMachineFileResult result, Map<String, YwPoint> pointMap,List<String> importantSite) {
+        YwPoint ywPoint = new YwPoint();
+        if(pointMap.containsKey(result.getSBBM())){
+            ywPoint = pointMap.get(result.getSBBM());
+        }
+        //姣斿鏄惁鏄噸鐐圭偣浣�
+        if(importantSite.contains(result.getSBBM())){
+
+        }
+
+        return ywPoint;
+    }
+
+    private TMonitor getMonitor(OneMachineFileResult result) {
         TMonitor monitor = new TMonitor();
         monitor.setSerialNumber(result.getSBBM());
         monitor.setName(result.getSBMC());
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 446a57b..62acb31 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -251,7 +251,11 @@
     <delete id="deleteTMonitorById" parameterType="Long">
         delete
         from t_monitor
-        where id = #{id}
+        <where>
+            <if test="id !=null">
+                id = #{id}
+            </if>
+        </where>
     </delete>
 
     <delete id="deleteTMonitorByIds" parameterType="String">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index ead5205..59aac6f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -17,7 +17,8 @@
         <result column="create_time" property="createTime" />
         <result column="update_time" property="updateTime" />
         <result column="category" property="category" />
-        <result column="point_tag" property="pointTagString" />
+        <result column="province_tag" property="provinceTag" />
+        <result column="important_tag" property="importantTag" />
     </resultMap>
 
     <select id="selectData" resultType="com.ycl.platform.base.BaseSelect">
@@ -28,7 +29,6 @@
         SELECT
                typ.id,
                typ.point_name,
-               typ.point_tag,
                typ.start_time,
                typ.end_time,
                typ.unit_id,
@@ -39,7 +39,8 @@
                typ.remark,
                typ.create_time,
                typ.update_time,
-               typ.point_tag,
+               typ.important_tag,
+               typ.province_tag,
                typ.category
         FROM
              t_yw_point typ
@@ -67,10 +68,10 @@
         select * from t_yw_point
         <where>
             <if test="important!=null and important!= '' ">
-                and point_tag like concat('%', #{important}, '%')
+                and important_tag = #{important}
             </if>
             <if test="province!=null and province!= '' ">
-                and point_tag like concat('%', #{province}, '%')
+                and province_tag = #{province}
             </if>
         </where>
     </select>

--
Gitblit v1.8.0