From 7fa07718de92093c6315c5cb37bbc8dd7cdafa3c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 25 十二月 2024 10:28:43 +0800
Subject: [PATCH] 考核积分修改、点位导出修改

---
 ycl-server/src/main/java/com/ycl/task/ContractTask.java                              |    4 
 ycl-server/src/main/java/com/ycl/task/HKTask.java                                    |   13 +-
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                        |    3 
 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java                 |    4 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java                   |   19 ++-
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java      |    7 +
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java               |    2 
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml                          |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java                |    1 
 ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml                       |    6 
 document/2024年运维考核细则.docx                                                            |    0 
 ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java       |   11 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java    |   68 ++++++-------
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java     |   59 +++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java |    2 
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java       |   56 +++++------
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                         |   10 ++
 17 files changed, 174 insertions(+), 93 deletions(-)

diff --git "a/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx" "b/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx"
new file mode 100644
index 0000000..309584a
--- /dev/null
+++ "b/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx"
Binary files differ
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
index d3a75e7..94b02f6 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
@@ -79,4 +79,5 @@
     @TableField(exist = false)
     private List<String> quarter;
 
+
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
index 0db8edb..e85eded 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
@@ -46,7 +46,7 @@
     private String unitContactPhone;
 
     /** 宸ュ崟鏉ユ簮/璁惧鍚嶇О */
-    @Excel(name = "璁惧鍚嶇О",sort = 3)
+    @Excel(name = "璁惧鍚嶇О",sort = 3,width = 25)
     private String source;
     /** ip */
     @Excel(name = "IP",sort = 5)
@@ -54,15 +54,15 @@
     /**
      * 璁惧缂栧彿
      */
-    @Excel(name = "璁惧缂栧彿",sort = 2)
+    @Excel(name = "璁惧缂栧彿",sort = 2,width = 22)
     private String serialNumber;
     /**
-     * 鏍囩
+     * 鑰冩牳鏍囩
      * @param entity
      * @param vo
      * @return
      */
-    @Excel(name = "鏍囩",sort = 4)
+    @Excel(name = "鑰冩牳鏍囩",sort = 4)
     private String tag;
 
     /**
@@ -81,7 +81,14 @@
     /** 鏁呴殰绫诲瀷 */
     @Excel(name = "鏁呴殰绫诲瀷",sort = 8)
     private String errorType;
-
+    /**
+     * 璁惧鏍囩
+     * @param entity
+     * @param vo
+     * @return
+     */
+    @Excel(name = "璁惧鏍囩",sort = 9,width = 30)
+    private String dynamicTag;
     /** 宸ュ崟妫�娴嬪浘鐗� */
     private String imgListStr;
 
@@ -89,7 +96,7 @@
 
     /** 杩愮淮浜哄憳 */
     private Integer ywPeopleId;
-
+    private Long pointId;
     private String ywPeopleName;
 
     /** 杩愮淮澶勭悊鏃堕棿 */
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java
index 1a53890..09f209b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java
@@ -43,7 +43,16 @@
         Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore);
         return success(deptMap);
     }
-
+    /**
+     * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('check:score:query')")
+    @PostMapping("/bar")
+    public AjaxResult bar(@RequestBody CheckScore checkScore)
+    {
+        Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore);
+        return success(deptMap);
+    }
     /**
      * 鏌ヨ鑰冩牳绉垎鎶樼嚎鍥�
      */
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
index 61c4981..8c5999e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
@@ -81,7 +81,7 @@
      * 棣栭〉鑰冩牳棰勮
      * @return 鏁版嵁
      */
-    List<Map<String, Object>> home();
+    List<Map<String, Object>> home(Date startTime,Date endTime);
 
     /**
      * 棣栭〉鏍哥畻
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index f1afa0a..62b512e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -11,11 +11,11 @@
 import com.ycl.platform.domain.result.SYS.TMonitorResult;
 import com.ycl.platform.domain.vo.TMonitorVO;
 import com.ycl.platform.domain.vo.UpdateOnlineVO;
+import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.domain.vo.screen.MonitorRateVO;
 import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.springframework.security.core.parameters.P;
 
 import java.util.Date;
 import java.util.List;
@@ -183,4 +183,6 @@
     List<TMonitor> selectCarOrFace();
 
     List<TMonitorExp> exportTMonitorList(TMonitorVO tMonitor);
+
+    List<TMonitorResult> getByIp(@Param("ipList")List<String> ips);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
index e649db4..57a706f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -30,6 +30,7 @@
 import enumeration.general.PublishType;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -145,33 +146,35 @@
 
     /**
      * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃
-     *
+     * 杩欓噷鏄剧ず褰撳ぉ鐨勬垚缁╁鏋滄病鏈夊綋澶╂垚缁╁垯鏄剧ず鏈�鍚庝竴娆℃垚缁�
      * @param checkScore 鑰冩牳绉垎
      * @return 鑰冩牳绉垎
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore checkScore) {
+    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore query) {
+        CheckScore checkScore = new CheckScore();
+        BeanUtils.copyProperties(query,checkScore);
         //鍖哄幙鍙兘鐪嬪凡鍙戝竷
         roleControl(checkScore);
 
-        // 鑾峰彇鏁版嵁鏃ユ湡鏃堕棿
-        Calendar calendar = Calendar.getInstance();
-        getCheckScore(checkScore, calendar);
+        // 杞崲鏁版嵁鏃ユ湡鏃堕棿銆佹爣绛�
+        getCheckScore(checkScore);
 
-        // 涓�鍙锋煡璇箣鍓嶇殑鏁版嵁
-        if (LocalDateTime.now().getDayOfMonth() == 1) {
-            calendar.add(Calendar.DAY_OF_MONTH, -1);
-        }
+//        // 涓�鍙锋煡璇箣鍓嶇殑鏁版嵁
+//        if (LocalDateTime.now().getDayOfMonth() == 1) {
+//            calendar.add(Calendar.DAY_OF_MONTH, -1);
+//        }
 
         List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore);
 
         // 濡傛灉鏁版嵁涓虹┖锛屽垯鏌ヨ涔嬪墠鐨勬暟鎹�
-        if (checkScores.isEmpty()) {
+        if (CollectionUtils.isEmpty(checkScores) && (query.getStartDate() ==null || query.getStartDate() ==null)) {
             CheckScore one = scoreMapper.getLast(checkScore);
             if (Objects.nonNull(one)) {
-                calendar.setTime(one.getCreateTime());
-                getCheckScore(checkScore, calendar);
+                checkScore.setStartDate(one.getCreateTime());
+                checkScore.setEndDate(one.getCreateTime());
+                getCheckScore(checkScore);
                 checkScores = scoreMapper.selectCheckScoreMap(checkScore);
             }
         }
@@ -180,31 +183,16 @@
         return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
     }
 
-    private void getCheckScore(CheckScore checkScore, Calendar calendar) {
-        // 0.鐪佸巺鏈堝害 1.鐪佸巺瀛e害 2.甯傚眬鏈堝害 3.甯傚眬瀛e害 4.鍏畨閮ㄦ湀搴� 5.鍏畨閮ㄥ搴�
-        switch (checkScore.getExamineTag()) {
-            case 0, 2, 4:
-                checkScore.setEndDate(calendar.getTime());
-                calendar.set(Calendar.DAY_OF_MONTH, 1);
-                checkScore.setStartDate(calendar.getTime());
-                if (checkScore.getExamineTag() == 0)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
-                if (checkScore.getExamineTag() == 2)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
-                if (checkScore.getExamineTag() == 4)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
-                break;
-            case 1, 3, 5:
-                checkScore.setStartDate(DateUtils.getQuarterStart(calendar).getTime());
-                checkScore.setEndDate(DateUtils.getQuarterEnd(calendar).getTime());
-                if (checkScore.getExamineTag() == 1)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
-                if (checkScore.getExamineTag() == 3)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
-                if (checkScore.getExamineTag() == 5)
-                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
-                break;
-        }
+    private void getCheckScore(CheckScore checkScore) {
+        checkScore.setStartDate(DateUtils.getDayStart(checkScore.getStartDate()));
+        checkScore.setEndDate(DateUtils.getDayEnd(checkScore.getEndDate()));
+        // 0.鐪佸巺 1.甯傚眬 2.鍏畨閮�
+        if (checkScore.getExamineTag() == 0)
+            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
+        if (checkScore.getExamineTag() == 1)
+            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
+        if (checkScore.getExamineTag() == 2)
+            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
     }
 
     /**
@@ -522,7 +510,11 @@
 
     @Override
     public List<Map<String, Object>> home() {
-        return baseMapper.home();
+        Date now = new Date();
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.DATE, -7);
+        Date startTime = calendar.getTime();
+        return baseMapper.home(startTime,now);
     }
 
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
index bc3b335..1deba5d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
@@ -249,7 +249,7 @@
         job.setConcurrent("1");
         job.setStatus(checkTemplateDTO.getStatus());
         job.setJobGroup("CHECK");
-        job.setCronExpression("0 0 6 * * ?");
+        job.setCronExpression("0 0 8 * * ?");
         job.setJobName(checkTemplateDTO.getTemplateName());
         int i = jobService.insertJob(job);
         return job;
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index 3f09bc6..b044f0c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -352,8 +352,15 @@
         return tMonitorMapper.recoveryException(monitor);
     }
 
+    /**
+     *  鏌ongo鏌ユ煇涓湀璁惧鎬绘暟
+     *  鏌ョ湅宸ュ崟鏁伴噺鏌ョ湅寮傚父鐨勬暟
+     * @param monitorQuery 鏌ヨ鏉′欢
+     * @return
+     */
     @Override
     public Map<String, Object> home(HomeQuery monitorQuery) {
+
         Map<String, Object> dataMap = new HashMap<>();
         Map<String, Object> monthMap1 = new HashMap<>();
         Map<String, Object> monthMap2 = new HashMap<>();
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index a8ee2ee..81b9299 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ycl.platform.domain.entity.*;
 import com.ycl.platform.domain.form.*;
 import com.ycl.platform.domain.query.*;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
 import com.ycl.platform.domain.vo.*;
 import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
 import com.ycl.platform.domain.vo.screen.WorkOrderRegionVO;
@@ -78,6 +79,8 @@
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
 
     private final YwPointService ywPointService;
+    private final TMonitorMapper monitorMapper;
+    private final DynamicColumnMapper dynamicColumnMapper;
     private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
     private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
     private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -1113,6 +1116,12 @@
         return Result.ok().data(workOrder);
     }
 
+    /**
+     * 宸ュ崟瀵煎嚭鐨勯�昏緫
+     * 鏍囩锛氬悓涓�涓猧p鏍囩鍚堝湪涓�璧凤紝閽堝绂荤嚎宸ュ崟锛坕p鐩稿悓灏变笉浼氱敓鎴愬伐鍗曪級锛屾柟渚胯繍缁村鐞�
+     * @param query
+     * @return
+     */
     @Override
     public List<WorkOrderVO> export(WorkOrderExportQuery query) {
         if (query.getUnitId() == null) {
@@ -1121,13 +1130,59 @@
         if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00");
         if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59");
         List<WorkOrderVO> export = baseMapper.export(query);
+        if(CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>();
+        List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList());
+        //鏌ュ嚭鐩稿悓ip鐨勮澶囥�佸苟鏌ュ嚭鏍囩
+        List<TMonitorResult> monitorVOS = monitorMapper.getByIp(ips);
+        //鑾峰彇鍔ㄦ�佸垪鏁版嵁
+        List<Integer> pointIds = monitorVOS.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
+        List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
+        //琛ュ厖鍔ㄦ�佸垪鏁版嵁
+        if (!CollectionUtils.isEmpty(dynamics)) {
+            Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId));
+            for (TMonitorResult tMonitorResult : monitorVOS) {
+                Integer pointId = tMonitorResult.getPointId();
+                tMonitorResult.setDynamicColumnList(map.get(pointId));
+            }
+        }
         export.forEach(result->{
-           StringBuilder tag = new StringBuilder("" + (result.getProvinceTagVideo() ? "鐪佸巺瑙嗛銆�" : "")+(result.getProvinceTagCar() ? "鐪佸巺杞﹁締銆�" : "")+(result.getProvinceTagFace() ? "鐪佸巺浜鸿劯銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
-            // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+            StringBuilder dynamicTag = new StringBuilder("");
+            Boolean provinceTagVideo = false;
+            Boolean provinceTagCar = false;
+            Boolean provinceTagFace = false;
+            Boolean importantTag = false;
+            Boolean importantCommandImageTag = false;
+            Boolean deptTag = false;
+            List<String> dynamicTags = new ArrayList<>();
+            for (TMonitorResult tagVO : monitorVOS) {
+                if(tagVO.getIp().equals(result.getIp())){
+                    if(tagVO.getProvinceTagVideo()) provinceTagVideo = true;
+                    if(tagVO.getProvinceTagCar()) provinceTagCar = true;
+                    if(tagVO.getProvinceTagFace()) provinceTagFace = true;
+                    if(tagVO.getImportantTag()) importantTag = true;
+                    if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true;
+                    if(tagVO.getDeptTag()) deptTag = true;
+                    //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
+                    if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
+                        List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
+                        for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
+                            if(!dynamicTags.contains(dynamicColumnVO.getColumnValue())) dynamicTags.add(dynamicColumnVO.getColumnValue());
+                        }
+                    }
+                }
+            }
+            for (String tag : dynamicTags) {
+                dynamicTag.append(tag).append("銆�");
+            }
+            StringBuilder tag = new StringBuilder("" + (provinceTagVideo ? "鐪佸巺瑙嗛銆�" : "")+(provinceTagCar ? "鐪佸巺杞﹁締銆�" : "")+(provinceTagFace ? "鐪佸巺浜鸿劯銆�" : "") + (importantTag ? "閲嶇偣鐐逛綅銆�" : "") + (importantCommandImageTag ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (deptTag ? "閮ㄧ骇銆�" : ""));
             if (tag.toString().endsWith("銆�")) {
                 tag = new StringBuilder(tag.substring(0, tag.length() - 1));
             }
+            if (dynamicTag.toString().endsWith("銆�")) {
+                dynamicTag = new StringBuilder(dynamicTag.substring(0, dynamicTag.length() - 1));
+            }
             result.setTag(tag.toString());
+            result.setDynamicTag(dynamicTag.toString());
         });
         return export;
     }
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 77e4435..c20dd0c 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
@@ -201,7 +201,11 @@
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         YwPointVO vo = YwPointVO.getVoByEntity(entity, null);
         if (Objects.nonNull(entity.getDeptId())) {
-            vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId()));
+            //TODO:鏂规硶寰呭畬鍠� 绠�鍗曞鐞�
+            List<Long> deptIds = sysDeptMapper.selectParents(entity.getDeptId());
+            deptIds.remove(deptIds.size()-1);
+            deptIds.add(entity.getDeptId());
+            vo.setDeptIds(deptIds);
         }
         return Result.ok().data(vo);
     }
@@ -436,40 +440,32 @@
         }
         //鏍规嵁label_value鍜宺ef_id鍒ゆ柇鏄惁鏄悓涓�鏁版嵁
         for (PointExport pointExport : dataList) {
-            //寰楀埌excel涓姩鎬佸垪鍚嶄綔涓簁ey鐨刴ap
-            Map<String, DynamicColumnVO> exportMap = pointExport.getDynamicData().stream().collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity()));
-            //鏌ュ嚭鏁版嵁搴撲腑杩欎釜鐐逛綅鐨勫姩鎬佸垪
-            List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.get(pointExport.getId());
-            if (!CollectionUtils.isEmpty(dynamicColumnVOS)) {
-                //閬嶅巻鏁版嵁搴撲腑杩欎釜鐐逛綅鐨勫姩鎬佸垪锛屽苟鏍规嵁鍔ㄦ�佸垪鍚嶆壘鍑篹xcel涓殑鍊�
-                for (DynamicColumnVO vo : dynamicColumnVOS) {
-                    DynamicColumnVO dynamicColumnVO = exportMap.get(vo.getLabelValue());
-                    //瀛樺湪璇存槑excel鏈夎繖涓暟鎹紝灏嗘暟鎹簱杩欎釜鏁版嵁鐨勫�兼敼涓篹xcel鐨勫��
-                    if (dynamicColumnVO.getColumnValue() != null) {
-                        DynamicColumnValue entity = new DynamicColumnValue();
-                        entity.setColumnValue(dynamicColumnVO.getColumnValue());
-                        entity.setDynamicColumnId(vo.getId());
-                        entity.setRefId(vo.getRefId());
-                        entity.setId(vo.getValueId());
-                        updateList.add(entity);
+            //鏁版嵁搴撲腑鐨勫姩鎬佸垪
+            List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.getOrDefault(pointExport.getId(), Collections.emptyList());
+            Map<String, DynamicColumnVO> databaseMap = dynamicColumnVOS.stream()
+                    .collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity()));
 
+            for (DynamicColumnVO excelVo : pointExport.getDynamicData()) {
+                String labelValue = excelVo.getLabelValue();
+                DynamicColumnVO databaseVo = databaseMap.get(labelValue);
+                //濡傛灉excel鍊间笉涓虹┖鍒ゅ畾涓烘柊澧炴垨淇敼
+                if (excelVo.getColumnValue() != null) {
+                    Integer dynamicId = dictionary.get(labelValue);
+                    DynamicColumnValue entity = new DynamicColumnValue();
+                    entity.setColumnValue(excelVo.getColumnValue());
+                    entity.setRefId(pointExport.getId());
+                    //鏁版嵁搴撴壘涓嶅埌涓烘柊澧炲惁鍒欎负淇敼
+                    if (databaseVo != null) {
+                        entity.setDynamicColumnId(databaseVo.getId());
+                        entity.setId(databaseVo.getValueId());
+                        updateList.add(entity);
                     } else {
-                        //涓嶅瓨鍦ㄥ垯鍙栨秷鏍囩锛屽垹闄�
-                        deleteList.add(vo.getValueId());
-                    }
-                }
-            } else {
-                //鏁版嵁搴撻噷鏌ヤ笉鍒癳xcel閲岄潰鐨勮繖涓偣浣嶅姩鎬佸垪锛屽叏涓烘柊澧�
-                List<DynamicColumnVO> dynamicData = pointExport.getDynamicData();
-                for (DynamicColumnVO excelData : dynamicData) {
-                    if (excelData.getColumnValue() != null) {
-                        Integer dynamicId = dictionary.get(excelData.getLabelValue());
-                        DynamicColumnValue entity = new DynamicColumnValue();
-                        entity.setColumnValue(excelData.getColumnValue());
                         entity.setDynamicColumnId(dynamicId);
-                        entity.setRefId(pointExport.getId());
                         insertList.add(entity);
                     }
+                } else if (databaseVo != null) {
+                    //excel閲屼负绌轰絾鏄暟鎹簱瀛樺湪 鍒犻櫎
+                    deleteList.add(databaseVo.getValueId());
                 }
             }
         }
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index a62d7d1..2112870 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -228,7 +228,7 @@
 //                }
 //            }
             //鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級
-            if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) {
+            if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType) || ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)) {
                 if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                     monitorRuleMap.forEach((contractId, rules) -> {
                         Integer unitId = rules.get(0).getUnitId();
@@ -252,7 +252,7 @@
                 }
             }
             //鐐逛綅寮傚父鎯呭喌澶勭悊锛堥暅澶村紓甯搞�佹憚鍍忓ご閬尅绛夛級
-            if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) {
+            if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType) || ErrorType.SIGNAL_LOSS.getValue().equals(errorType) || ErrorType.SCREEN_COLOR_DEVIATION.getValue().equals(errorType) || ErrorType.SNOW_STORM.getValue().equals(errorType) || ErrorType.STRIPE_INTERFERENCE.getValue().equals(errorType) || ErrorType.ABNORMAL_CLARITY.getValue().equals(errorType)) {
                 if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                     siteRuleMap.forEach((contractId, rules) -> {
                         Integer unitId = rules.get(0).getUnitId();
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 759cf0e..77ea50f 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -581,24 +581,23 @@
         car.setViewConnectStability(new BigDecimal(score.getDownCarDataUploadScoreString() == null ? "1" : score.getDownCarDataUploadScoreString()));
         car.setSiteOnline(new BigDecimal(score.getDownCrossQualityCarScoreString() == null ? "1" : score.getDownCrossQualityCarScoreString()));
         car.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString()));
-        //TODO:寰呭畬鍠�
+        //TODO:娌℃壘鍒拌�冩牳椤�
         car.setVehicleInformationCollectionAccuracy(new BigDecimal("1"));
-        //TODO:寰呭畬鍠� 閲嶇偣鎬庝箞鍔犺繘鍘�
         car.setVehicleCaptureIntegrity(new BigDecimal(score.getDownCrossAllCarDataIntegrityScoreString() == null ? "1" : score.getDownCrossAllCarDataIntegrityScoreString()));
-        //TODO:寰呭畬鍠� 涓や釜椤瑰悎鎴愪竴涓�
+        //娴峰悍鏄涓�1鐨勶紝浣嗘槸鎺ュ彛鎺ㄧ殑鍘熷鏁版嵁
         car.setVehicleCaptureAccuracy(new BigDecimal("1"));
         car.setVehicleTimingAccuracy(new BigDecimal(score.getDownCrossCarInvertScoreString() == null ? "1" : score.getDownCrossCarInvertScoreString()));
         car.setVehicleUploadTimeliness(new BigDecimal(score.getDownCrossAllCarDelayScoreString() == null ? "1" : score.getDownCrossAllCarDelayScoreString()));
-        //TODO:寰呭畬鍠�
+        //TODO:娌℃壘鍒拌�冩牳椤�
         car.setVehicleUrlAvailability(new BigDecimal("1"));
         car.setVehiclePictureAvailability(new BigDecimal(score.getDownCrossPictureQualityCarScoreString() == null ? "1" : score.getDownCrossPictureQualityCarScoreString()));
 
         face.setViewConnectStability(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString()));
         face.setSiteOnline(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString()));
-        face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString()));
-        //TODO:寰呭畬鍠�
+        face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushFaceScoreString() == null ? "1" : score.getDownCrossNumPushFaceScoreString()));
+        //TODO:娌℃壘鍒拌�冩牳椤�
         face.setFaceInformationCollectionAccuracy(new BigDecimal("1"));
-        //TODO:寰呭畬鍠�
+        //TODO:娌℃壘鍒拌�冩牳椤�
         face.setFacePictureQualification(new BigDecimal("1"));
         face.setFaceTimingAccuracy(new BigDecimal(score.getDownCrossFaceInvertScoreString() == null ? "1" : score.getDownCrossFaceInvertScoreString()));
         face.setFaceUploadTimeliness(new BigDecimal(score.getDownCrossAllFaceDelayScoreString() == null ? "1" : score.getDownCrossAllFaceDelayScoreString()));
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
index 4a0a076..33bfe57 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
@@ -180,21 +180,21 @@
                d.area,
                CASE
                    WHEN cs.examine_tag = '0' THEN '鐪佸巺'
-                   WHEN cs.examine_tag = '1' THEN '甯傚眬'
+                   WHEN cs.examine_tag = '1' THEN '鍖哄幙'
                    WHEN cs.examine_tag = '2' THEN '' END        AS examineTag,
                ct.template_name                                 AS templateName,
                cs.score
         FROM t_check_score cs
                  LEFT JOIN t_check_template ct ON cs.template_id = ct.id
                  LEFT JOIN sys_dept d ON cs.dept_id = d.dept_id
-        WHERE cs.score < ct.alarm_score
+        WHERE cs.score < ct.alarm_score and cs.create_time between #{startTime} and #{endTime}
         ORDER BY cs.create_time DESC
         ]]>
     </select>
 
     <select id="calculate" resultType="java.util.Map">
         SELECT area              AS deptName,
-               ROUND(AVG(score)) AS score
+               ROUND(AVG(score),2) AS score
         FROM t_check_score tcs
                  LEFT JOIN sys_dept d ON tcs.dept_id = d.dept_id
         WHERE examine_tag = 1
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index d403d91..23091ce 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -696,4 +696,14 @@
         on m.serial_number = p.serial_number
         where (m.camera_fun_type = '2' or m.camera_fun_type = '3') and p.examine_status = 1
     </select>
+
+    <select id="getByIp" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult">
+        select m.ip,m.serial_number as no,p.id as pointId,p.province_tag_video,p.province_tag_car,p.province_tag_face,p.dept_tag,p.important_tag,p.important_command_image_tag
+        from t_monitor m
+        left join t_yw_point p on m.serial_number = p.serial_number
+        where m.ip in
+        <foreach collection="ipList" item="ip" separator="," close=")" open="(">
+            #{ip}
+        </foreach>
+    </select>
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 4f2c8b9..db29bbe 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -265,6 +265,7 @@
             WHERE DATE_FORMAT(w.create_time, '%Y') = DATE_FORMAT(NOW(), '%Y')
                 AND w.deleted = 0 AND unit_id = #{unitId}
             GROUP BY dateType
+            ORDER BY dateType
         </if>
 
         <if test="dateType == 'week'">
@@ -281,6 +282,7 @@
             w.create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY)
                AND w.deleted = 0 AND unit_id = #{unitId}
             GROUP BY dateType
+            ORDER BY dateType
         </if>
 
         <if test="dateType == 'day'">
@@ -297,6 +299,7 @@
                 DATE_FORMAT(w.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())
               AND w.deleted = 0 AND unit_id = #{unitId}
             GROUP BY dateType
+            ORDER BY dateType
         </if>
     </select>
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index ae5d9d2..a503036 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -87,7 +87,7 @@
         SELECT t_yw_point.id, point_name, start_time, end_time, status, unit_name AS remark
         FROM t_yw_point
                  LEFT JOIN t_yw_unit ON t_yw_unit.id = t_yw_point.unit_id AND t_yw_point.deleted = 0
-        WHERE t_yw_point.deleted = 0
+        WHERE t_yw_point.deleted = 0 AND t_yw_point.examine_status = 1
           AND TIMESTAMPDIFF(MONTH, NOW(), end_time) <= (SELECT config_value
                                                         FROM sys_config
                                                         WHERE config_key = 'operation.and.maintenance.expiration.warning.time')

--
Gitblit v1.8.0