From b8cc591541b88dd2bb93f111f8e8075842dce7ca Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 13 八月 2024 17:21:06 +0800
Subject: [PATCH] 1. 新增设备信息相关功能 2. 修正自评估中数据自动评分的部分逻辑

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceStatusVo.kt                        |   11 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem11.kt  |    4 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProductionDeviceInfoMapper.java      |    9 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/MonitorDeviceInfo.java               |  467 ++++++++++
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorDeviceInfoMapper.java         |    9 
 src/main/resources/mapper/ds1/DustDataResultMapper.xml                                              |   37 
 src/main/resources/mapper/ds1/TreatmentDeviceInfoMapper.xml                                         |   38 
 src/main/resources/application-pro.yml                                                              |    4 
 pom.xml                                                                                             |    6 
 src/main/resources/mapper/ds1/ProductionDeviceInfoMapper.xml                                        |   37 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt                     |  109 +
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/DeviceService.kt                    |   22 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JSDustDataAnalysis.kt |    4 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/TreatmentDeviceInfoMapper.java       |    9 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/XHFuDataAnalysis.kt   |    4 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt             |    3 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt    |   83 +
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorDeviceInfoVo.kt                   |   32 
 src/test/kotlin/cn/flightfeather/supervision/business/autooutput/AopEvaluationTest.kt               |    2 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt        |    9 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt                     |   40 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceMapVo.kt                           |    3 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DeviceServiceImpl.kt           |   81 +
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt          |   10 
 src/main/resources/mapper/ds1/DeviceStatusMapper.xml                                                |   32 
 src/test/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrlTest.kt                     |    5 
 src/main/resources/mapper/ds1/MonitorDeviceInfoMapper.xml                                           |   38 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem10.kt  |    2 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/TreatmentDeviceInfoVo.kt                 |   23 
 src/main/resources/application-pro-https.yml                                                        |   20 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceStatus.java                    |  334 +++++++
 src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImplTest.kt     |    3 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ProductionDeviceInfoVo.kt                |   21 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem7.kt   |   10 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceStatusMapper.java              |    9 
 src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt                         |    5 
 /dev/null                                                                                           |   27 
 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/UserMapService.kt                   |    3 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/BaseDevice.kt                        |   11 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DustDataResult.java                  |   24 
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JACsDataAnalysis.kt   |    4 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/ProductionDeviceInfo.java            |  436 ++++++++++
 src/main/kotlin/cn/flightfeather/supervision/common/utils/Constant.kt                               |   17 
 src/main/resources/generator/generatorConfig4ds1.xml                                                |   16 
 src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/TreatmentDeviceInfo.java             |  460 ++++++++++
 45 files changed, 2,350 insertions(+), 183 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4145dee..a439640 100644
--- a/pom.xml
+++ b/pom.xml
@@ -499,6 +499,12 @@
             </properties>
         </profile>
         <profile>
+            <id>pro-https</id>
+            <properties>
+                <profileActive>pro-https</profileActive>
+            </properties>
+        </profile>
+        <profile>
             <id>test</id>
             <properties>
                 <profileActive>test</profileActive>
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
index 1f84f3e..8838bee 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
@@ -70,48 +70,58 @@
             //鑾峰彇鍘熷鐩戞祴鏁版嵁
             val dataList = fetchDataResources(evaluationScene)
             //璁$畻缁熻缁撴灉
-            var tempExceedTimes = TempResult()
-            var tempAvg = TempResult()
-            var tempMax = TempResult()
-            var tempMin = TempResult()
+//            var tempExceedTimes = TempResult()
+//            var tempAvg = TempResult()
+//            var tempMax = TempResult()
+//            var tempMin = TempResult()
             dataList.forEach {
-                // 鐩戞祴鐐规湁澶氬彴璁惧鏃讹紝姣忓彴璁惧鍗曠嫭缁熻锛屽彇鍧囧�兼渶楂樼殑涓虹粺璁$粨鏋�
-                val _tempExceedTimes = TempResult()
-                val _tempAvg = TempResult()
-                val _tempMax = TempResult()
-                val _tempMin = TempResult()
+                // 鐩戞祴鐐规湁澶氬彴璁惧鏃讹紝姣忓彴璁惧鍗曠嫭璁板綍
+                val deviceCode = if (it.isNotEmpty()) {
+                    getDeviceCode(it[0])
+                } else {
+                    null
+                }
+                val tempExceedTimes = TempResult()
+                val tempAvg = TempResult()
+                val tempMax = TempResult()
+                val tempMin = TempResult()
+//                val _tempExceedTimes = TempResult()
+//                val _tempAvg = TempResult()
+//                val _tempMax = TempResult()
+//                val _tempMin = TempResult()
                 it.forEach { t ->
                     t?.let {
-                        exceedTimes(t, _tempExceedTimes)
-                        avg(t, _tempAvg)
-                        max(t, _tempMax)
-                        min(t, _tempMin)
+                        exceedTimes(t, tempExceedTimes)
+                        avg(t, tempAvg)
+                        max(t, tempMax)
+                        min(t, tempMin)
                     }
                 }
                 // 淇濈暀鍧囧�兼渶楂樼殑涓�鍙拌澶�
-                if (_tempAvg.avg > tempAvg.avg) {
-                    tempExceedTimes = _tempExceedTimes
-                    tempAvg = _tempAvg
-                    tempMax = _tempMax
-                    tempMin = _tempMin
+//                if (_tempAvg.avg > tempAvg.avg) {
+//                    tempExceedTimes = _tempExceedTimes
+//                    tempAvg = _tempAvg
+//                    tempMax = _tempMax
+//                    tempMin = _tempMin
+//                }
+                val dustDataResult = DustDataResult().apply {
+                    drSceneId = evaluationScene.scene.value?.guid
+                    drSceneName = evaluationScene.scene.value?.name
+                    drDeviceCode = deviceCode
+                    drTime = source?.config?.startTime
+                    drExceedTimes = tempExceedTimes.count
+                    drAvg = tempAvg.avg
+                    drMax = tempMax.total
+                    drMin = tempMin.total
+                    drOverAvgPer = overAvgRate(drAvg, dAvg)
+                    drDataNum = count(dataList)
+                    // 褰撴暟鎹噺涓�0鏃讹紝瓒呮湀搴﹀尯鍧囧�肩櫨鍒嗘瘮鍙樹负0
+                    if (drDataNum == 0) drOverAvgPer = .0
+                    drEffectiveRate = effectiveRate(dataList, evaluationScene)
                 }
+                //鏇存柊鍏ュ簱
+                aopOutput.toDbDataResult(dustDataResult)
             }
-            val dustDataResult = DustDataResult().apply {
-                drSceneId = evaluationScene.scene.value?.guid
-                drSceneName = evaluationScene.scene.value?.name
-                drTime = source?.config?.startTime
-                drExceedTimes = tempExceedTimes.count
-                drAvg = tempAvg.avg
-                drMax = tempMax.total
-                drMin = tempMin.total
-                drOverAvgPer = overAvgRate(drAvg, dAvg)
-                drDataNum = count(dataList)
-                // 褰撴暟鎹噺涓�0鏃讹紝瓒呮湀搴﹀尯鍧囧�肩櫨鍒嗘瘮鍙樹负0
-                if (drDataNum == 0) drOverAvgPer = .0
-                drEffectiveRate = effectiveRate(dataList, evaluationScene)
-            }
-            //鏇存柊鍏ュ簱
-            aopOutput.toDbDataResult(dustDataResult)
         }
     }
 
@@ -122,6 +132,11 @@
     abstract fun districtAvg(source: AopDataSource?): Double?
 
     /**
+     * 鑾峰彇璁惧缂栧彿
+     */
+    abstract fun getDeviceCode(data: T?): String?
+
+    /**
      * 鑾峰彇鍘熷鐩戞祴鏁版嵁
      */
     abstract fun fetchDataResources(evaluationScene: AopDataSource.EvaluationScene): List<List<T?>>
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JACsDataAnalysis.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JACsDataAnalysis.kt
index 7051a4b..42f8c01 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JACsDataAnalysis.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JACsDataAnalysis.kt
@@ -52,6 +52,10 @@
         }
     }
 
+    override fun getDeviceCode(data: HourDustData?): String? {
+        return data?.mncode
+    }
+
     override fun fetchDataResources(evaluationScene: AopDataSource.EvaluationScene): List<List<HourDustData?>> {
         val dustSiteMaps = dustSiteMapMapper.selectByExample(Example(DustSiteMap::class.java).apply {
             createCriteria().andEqualTo("svUserId", evaluationScene.userInfo.value?.guid)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JSDustDataAnalysis.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JSDustDataAnalysis.kt
index 28bbf0e..24816d2 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JSDustDataAnalysis.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/JSDustDataAnalysis.kt
@@ -57,6 +57,10 @@
         }
     }
 
+    override fun getDeviceCode(data: JSDustData?): String? {
+        return data?.mnCode
+    }
+
     override fun fetchDataResources(evaluationScene: AopDataSource.EvaluationScene): List<List<JSDustData?>> {
         val dustSiteMaps = jsDustSiteMapMapper.selectByExample(Example(JSDustSiteMap::class.java).apply {
             createCriteria().andEqualTo("svUserId", evaluationScene.userInfo.value?.guid)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/XHFuDataAnalysis.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/XHFuDataAnalysis.kt
index 4f36d06..32f4dcc 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/XHFuDataAnalysis.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/XHFuDataAnalysis.kt
@@ -40,6 +40,10 @@
         return fumeSiteMaps.map { it?.xhDeviceCode }
     }
 
+    override fun getDeviceCode(data: FumeDailyAnalysis?): String? {
+        return data?.fumeDevId
+    }
+
     override fun fetchDataResources(evaluationScene: AopDataSource.EvaluationScene): List<List<FumeDailyAnalysis?>> {
         val deviceCodeList = getDeviceCodes(evaluationScene)
         val map = mutableMapOf<String?, MutableList<FumeDailyAnalysis?>>()
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt
index 894422a..3c0ae96 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/AopEvaluation.kt
@@ -36,8 +36,6 @@
     whScoreItem1: WhScoreItem1,
     whScoreItem2: WhScoreItem2,
     reScoreItem5: ReScoreItem5,
-    // FIXME: 2023/12/29 鍒犲幓鐗规畩璇勪及瑙勫垯
-//    reScoreItem7: ReScoreItem7,
     reScoreItem8: ReScoreItem8,
     reScoreItem9: ReScoreItem9,
     reScoreItem10: ReScoreItem10,
@@ -62,7 +60,6 @@
             add(whScoreItem1)
             add(whScoreItem2)
             add(reScoreItem5)
-//            add(reScoreItem7)
             add(reScoreItem8)
             add(reScoreItem9)
             add(reScoreItem10)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem10.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem10.kt
index d7b7b88..a7447ff 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem10.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem10.kt
@@ -44,7 +44,7 @@
         val s = lt.withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0)
         val e = s.plusMonths(1)
 
-        var i = 1
+        var i = 0
         when {
             condition3(s, e) -> {
                 i = 3
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem11.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem11.kt
index 4bf2f21..103405d 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem11.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem11.kt
@@ -26,14 +26,14 @@
      *      2.鐜淇$敤鑷瘎鏈寜鏃惰嚜璇勬垨鏈寜鏃舵彁
      */
     override fun otherProblem(size: Int): List<Int>? {
-        var i = 0
+        var i = -1
         if (condition1()) {
             i = 1
         } else if (condition2()) {
             i = 2
         }
         if (i > size - 1) i = size - 1
-        return listOf(i)
+        return if(i == -1) null else listOf(i)
     }
 
     /**
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem7.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem7.kt
index b18f272..c6bd1c4 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem7.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/restaurant/ReScoreItem7.kt
@@ -14,17 +14,9 @@
 import java.time.ZoneId
 import javax.annotation.PostConstruct
 
+@Deprecated(level = DeprecationLevel.HIDDEN, message = "鍙拌处鐨勮瘎浼伴�氳繃宸℃煡闂鑷姩瀵瑰簲")
 @Component
 class ReScoreItem7: ScoreItem() {
-    companion object {
-        private lateinit var instance: ReScoreItem7
-    }
-
-    @PostConstruct
-    fun init() {
-        instance = this
-    }
-
     init {
         exemption = true
     }
diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
index 5c3c05a..4de46d6 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt
@@ -78,10 +78,11 @@
             val id = "${BgTaskType.AUTO_SCORE.name}-${districtCode}-${sceneType}"
             val name = "${districtName}${Constant.SceneType.getDes(sceneType)}鑷姩璇勫垎"
             val bgTask = backgroundTaskCtrl.startNewTask(BgTaskType.AUTO_SCORE, id, name) {
+                // 鐩戞祴鏁版嵁鍒嗘瀽鍏ュ簱
                 dataAnalysis(districtCode, sceneType, taskId, year, month)
-
+                // 鑷姩璇勪及璁$畻鍏ュ簱
                 aopEvaluation.executeByTopTask(taskId, sceneType)
-
+                // 鐜俊鐮佺粨鏋滆浆鎹㈠叆搴�
                 aopCreditCode.execute(AopDataConfig(
                     year = year,
                     month = month,
diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/utils/Constant.kt b/src/main/kotlin/cn/flightfeather/supervision/common/utils/Constant.kt
index 8cf5bbb..f6c61e5 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/utils/Constant.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/utils/Constant.kt
@@ -130,6 +130,23 @@
         }
     }
 
+    //璁惧绫诲瀷
+    enum class DeviceType(val value: Byte, val text: String){
+        MONITOR_DEVICE(0, "鐩戞帶璁惧"),
+        TREATMENT_DEVICE(1, "娌荤悊璁惧"),
+        PRODUCTION_DEVICE(2, "鐢熶骇璁惧");
+
+        companion object {
+            fun fromValue(value: Byte) = when (value.toInt()) {
+                0 -> MONITOR_DEVICE
+                1 -> TREATMENT_DEVICE
+                2 -> PRODUCTION_DEVICE
+                else -> MONITOR_DEVICE
+            }
+        }
+    }
+
+
     companion object {
         //闂瀹℃牳
         const val PROBLEM_CHECK_PASS = "pass"//闂瀹℃牳閫氳繃
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/BaseDevice.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/BaseDevice.kt
new file mode 100644
index 0000000..da4b7cf
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/BaseDevice.kt
@@ -0,0 +1,11 @@
+package cn.flightfeather.supervision.domain.ds1.entity
+
+import io.swagger.annotations.ApiModel
+
+/**
+ * 鍩烘湰鍦烘櫙璁惧淇℃伅锛岀户鎵挎鎺ュ彛锛岃〃绀鸿绫讳负鍦烘櫙璁惧涓殑瀛愮被
+ * @date 2024/8/6
+ * @author feiyu02
+ */
+@ApiModel(description = "鍦烘櫙璁惧淇℃伅鍩虹被鎺ュ彛")
+interface BaseDevice
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceInfo.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceInfo.java
deleted file mode 100644
index 39cde3b..0000000
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceInfo.java
+++ /dev/null
@@ -1,251 +0,0 @@
-package cn.flightfeather.supervision.domain.ds1.entity;
-
-import java.util.Date;
-import javax.persistence.*;
-
-@Table(name = "sm_t_device_info")
-public class DeviceInfo {
-    @Id
-    @Column(name = "DI_ID")
-    private Integer diId;
-
-    /**
-     * 鐩戞祴璁惧MN缂栧彿
-     */
-    @Column(name = "DI_Mn_Code")
-    private String diMnCode;
-
-    /**
-     * 绔欑偣鍚嶇О
-     */
-    @Column(name = "DI_Name")
-    private String diName;
-
-    /**
-     * 鎵�灞炲満鏅痠d
-     */
-    @Column(name = "DI_Scene_GUID")
-    private String diSceneGuid;
-
-    /**
-     * 璁惧渚涘簲鍟�
-     */
-    @Column(name = "DI_Supplier")
-    private String diSupplier;
-
-    /**
-     * 杩愮淮鍟�
-     */
-    @Column(name = "DI_Maintainer")
-    private String diMaintainer;
-
-    /**
-     * 杩愯鐘舵��(1:涓婄嚎涓�;0:涓嬬嚎)
-     */
-    @Column(name = "DI_Running_Status")
-    private Byte diRunningStatus;
-
-    /**
-     * 鏄惁鎷嗛櫎
-     */
-    @Column(name = "DI_Removed")
-    private Boolean diRemoved;
-
-    /**
-     * 璁惧绫诲瀷(1: 鐩戞祴璁惧; 2: 鍑�鍖栬澶�)
-     */
-    @Column(name = "DI_Type")
-    private Byte diType;
-
-    @Column(name = "DI_Create_Time")
-    private Date diCreateTime;
-
-    @Column(name = "DI_Update_Time")
-    private Date diUpdateTime;
-
-    /**
-     * @return DI_ID
-     */
-    public Integer getDiId() {
-        return diId;
-    }
-
-    /**
-     * @param diId
-     */
-    public void setDiId(Integer diId) {
-        this.diId = diId;
-    }
-
-    /**
-     * 鑾峰彇鐩戞祴璁惧MN缂栧彿
-     *
-     * @return DI_Mn_Code - 鐩戞祴璁惧MN缂栧彿
-     */
-    public String getDiMnCode() {
-        return diMnCode;
-    }
-
-    /**
-     * 璁剧疆鐩戞祴璁惧MN缂栧彿
-     *
-     * @param diMnCode 鐩戞祴璁惧MN缂栧彿
-     */
-    public void setDiMnCode(String diMnCode) {
-        this.diMnCode = diMnCode == null ? null : diMnCode.trim();
-    }
-
-    /**
-     * 鑾峰彇绔欑偣鍚嶇О
-     *
-     * @return DI_Name - 绔欑偣鍚嶇О
-     */
-    public String getDiName() {
-        return diName;
-    }
-
-    /**
-     * 璁剧疆绔欑偣鍚嶇О
-     *
-     * @param diName 绔欑偣鍚嶇О
-     */
-    public void setDiName(String diName) {
-        this.diName = diName == null ? null : diName.trim();
-    }
-
-    /**
-     * 鑾峰彇鎵�灞炲満鏅痠d
-     *
-     * @return DI_Scene_GUID - 鎵�灞炲満鏅痠d
-     */
-    public String getDiSceneGuid() {
-        return diSceneGuid;
-    }
-
-    /**
-     * 璁剧疆鎵�灞炲満鏅痠d
-     *
-     * @param diSceneGuid 鎵�灞炲満鏅痠d
-     */
-    public void setDiSceneGuid(String diSceneGuid) {
-        this.diSceneGuid = diSceneGuid == null ? null : diSceneGuid.trim();
-    }
-
-    /**
-     * 鑾峰彇璁惧渚涘簲鍟�
-     *
-     * @return DI_Supplier - 璁惧渚涘簲鍟�
-     */
-    public String getDiSupplier() {
-        return diSupplier;
-    }
-
-    /**
-     * 璁剧疆璁惧渚涘簲鍟�
-     *
-     * @param diSupplier 璁惧渚涘簲鍟�
-     */
-    public void setDiSupplier(String diSupplier) {
-        this.diSupplier = diSupplier == null ? null : diSupplier.trim();
-    }
-
-    /**
-     * 鑾峰彇杩愮淮鍟�
-     *
-     * @return DI_Maintainer - 杩愮淮鍟�
-     */
-    public String getDiMaintainer() {
-        return diMaintainer;
-    }
-
-    /**
-     * 璁剧疆杩愮淮鍟�
-     *
-     * @param diMaintainer 杩愮淮鍟�
-     */
-    public void setDiMaintainer(String diMaintainer) {
-        this.diMaintainer = diMaintainer == null ? null : diMaintainer.trim();
-    }
-
-    /**
-     * 鑾峰彇杩愯鐘舵��(1:涓婄嚎涓�;0:涓嬬嚎)
-     *
-     * @return DI_Running_Status - 杩愯鐘舵��(1:涓婄嚎涓�;0:涓嬬嚎)
-     */
-    public Byte getDiRunningStatus() {
-        return diRunningStatus;
-    }
-
-    /**
-     * 璁剧疆杩愯鐘舵��(1:涓婄嚎涓�;0:涓嬬嚎)
-     *
-     * @param diRunningStatus 杩愯鐘舵��(1:涓婄嚎涓�;0:涓嬬嚎)
-     */
-    public void setDiRunningStatus(Byte diRunningStatus) {
-        this.diRunningStatus = diRunningStatus;
-    }
-
-    /**
-     * 鑾峰彇鏄惁鎷嗛櫎
-     *
-     * @return DI_Removed - 鏄惁鎷嗛櫎
-     */
-    public Boolean getDiRemoved() {
-        return diRemoved;
-    }
-
-    /**
-     * 璁剧疆鏄惁鎷嗛櫎
-     *
-     * @param diRemoved 鏄惁鎷嗛櫎
-     */
-    public void setDiRemoved(Boolean diRemoved) {
-        this.diRemoved = diRemoved;
-    }
-
-    /**
-     * 鑾峰彇璁惧绫诲瀷(1: 鐩戞祴璁惧; 2: 鍑�鍖栬澶�)
-     *
-     * @return DI_Type - 璁惧绫诲瀷(1: 鐩戞祴璁惧; 2: 鍑�鍖栬澶�)
-     */
-    public Byte getDiType() {
-        return diType;
-    }
-
-    /**
-     * 璁剧疆璁惧绫诲瀷(1: 鐩戞祴璁惧; 2: 鍑�鍖栬澶�)
-     *
-     * @param diType 璁惧绫诲瀷(1: 鐩戞祴璁惧; 2: 鍑�鍖栬澶�)
-     */
-    public void setDiType(Byte diType) {
-        this.diType = diType;
-    }
-
-    /**
-     * @return DI_Create_Time
-     */
-    public Date getDiCreateTime() {
-        return diCreateTime;
-    }
-
-    /**
-     * @param diCreateTime
-     */
-    public void setDiCreateTime(Date diCreateTime) {
-        this.diCreateTime = diCreateTime;
-    }
-
-    /**
-     * @return DI_Update_Time
-     */
-    public Date getDiUpdateTime() {
-        return diUpdateTime;
-    }
-
-    /**
-     * @param diUpdateTime
-     */
-    public void setDiUpdateTime(Date diUpdateTime) {
-        this.diUpdateTime = diUpdateTime;
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceLocation.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceLocation.java
deleted file mode 100644
index fda74e0..0000000
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceLocation.java
+++ /dev/null
@@ -1,238 +0,0 @@
-package cn.flightfeather.supervision.domain.ds1.entity;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import javax.persistence.*;
-
-@Table(name = "sm_t_device_location")
-public class DeviceLocation {
-    @Id
-    @Column(name = "DL_ID")
-    private Integer dlId;
-
-    /**
-     * 鎵�灞炶澶噄d
-     */
-    @Column(name = "DL_Device_Id")
-    private Integer dlDeviceId;
-
-    /**
-     * 鐩戞祴璁惧MN缂栧彿
-     */
-    @Column(name = "DL_Mn_Code")
-    private String dlMnCode;
-
-    /**
-     * 璁惧浣嶇疆
-     */
-    @Column(name = "DL_Location")
-    private String dlLocation;
-
-    @Column(name = "DL_Longitude")
-    private BigDecimal dlLongitude;
-
-    @Column(name = "DL_Latitude")
-    private BigDecimal dlLatitude;
-
-    /**
-     * 瀹夎浣嶇疆鏄惁瑙勮寖
-     */
-    @Column(name = "DL_Standard")
-    private Boolean dlStandard;
-
-    /**
-     * 瀹夎浣嶇疆涓嶈鑼冨師鍥�
-     */
-    @Column(name = "DL_UnStandard_Reason")
-    private String dlUnstandardReason;
-
-    /**
-     * 璁惧鐜板満鍥剧墖
-     */
-    @Column(name = "DL_Pic_Url")
-    private String dlPicUrl;
-
-    @Column(name = "DL_Create_Time")
-    private Date dlCreateTime;
-
-    @Column(name = "DL_Update_Time")
-    private Date dlUpdateTime;
-
-    /**
-     * @return DL_ID
-     */
-    public Integer getDlId() {
-        return dlId;
-    }
-
-    /**
-     * @param dlId
-     */
-    public void setDlId(Integer dlId) {
-        this.dlId = dlId;
-    }
-
-    /**
-     * 鑾峰彇鎵�灞炶澶噄d
-     *
-     * @return DL_Device_Id - 鎵�灞炶澶噄d
-     */
-    public Integer getDlDeviceId() {
-        return dlDeviceId;
-    }
-
-    /**
-     * 璁剧疆鎵�灞炶澶噄d
-     *
-     * @param dlDeviceId 鎵�灞炶澶噄d
-     */
-    public void setDlDeviceId(Integer dlDeviceId) {
-        this.dlDeviceId = dlDeviceId;
-    }
-
-    /**
-     * 鑾峰彇鐩戞祴璁惧MN缂栧彿
-     *
-     * @return DL_Mn_Code - 鐩戞祴璁惧MN缂栧彿
-     */
-    public String getDlMnCode() {
-        return dlMnCode;
-    }
-
-    /**
-     * 璁剧疆鐩戞祴璁惧MN缂栧彿
-     *
-     * @param dlMnCode 鐩戞祴璁惧MN缂栧彿
-     */
-    public void setDlMnCode(String dlMnCode) {
-        this.dlMnCode = dlMnCode == null ? null : dlMnCode.trim();
-    }
-
-    /**
-     * 鑾峰彇璁惧浣嶇疆
-     *
-     * @return DL_Location - 璁惧浣嶇疆
-     */
-    public String getDlLocation() {
-        return dlLocation;
-    }
-
-    /**
-     * 璁剧疆璁惧浣嶇疆
-     *
-     * @param dlLocation 璁惧浣嶇疆
-     */
-    public void setDlLocation(String dlLocation) {
-        this.dlLocation = dlLocation == null ? null : dlLocation.trim();
-    }
-
-    /**
-     * @return DL_Longitude
-     */
-    public BigDecimal getDlLongitude() {
-        return dlLongitude;
-    }
-
-    /**
-     * @param dlLongitude
-     */
-    public void setDlLongitude(BigDecimal dlLongitude) {
-        this.dlLongitude = dlLongitude;
-    }
-
-    /**
-     * @return DL_Latitude
-     */
-    public BigDecimal getDlLatitude() {
-        return dlLatitude;
-    }
-
-    /**
-     * @param dlLatitude
-     */
-    public void setDlLatitude(BigDecimal dlLatitude) {
-        this.dlLatitude = dlLatitude;
-    }
-
-    /**
-     * 鑾峰彇瀹夎浣嶇疆鏄惁瑙勮寖
-     *
-     * @return DL_Standard - 瀹夎浣嶇疆鏄惁瑙勮寖
-     */
-    public Boolean getDlStandard() {
-        return dlStandard;
-    }
-
-    /**
-     * 璁剧疆瀹夎浣嶇疆鏄惁瑙勮寖
-     *
-     * @param dlStandard 瀹夎浣嶇疆鏄惁瑙勮寖
-     */
-    public void setDlStandard(Boolean dlStandard) {
-        this.dlStandard = dlStandard;
-    }
-
-    /**
-     * 鑾峰彇瀹夎浣嶇疆涓嶈鑼冨師鍥�
-     *
-     * @return DL_UnStandard_Reason - 瀹夎浣嶇疆涓嶈鑼冨師鍥�
-     */
-    public String getDlUnstandardReason() {
-        return dlUnstandardReason;
-    }
-
-    /**
-     * 璁剧疆瀹夎浣嶇疆涓嶈鑼冨師鍥�
-     *
-     * @param dlUnstandardReason 瀹夎浣嶇疆涓嶈鑼冨師鍥�
-     */
-    public void setDlUnstandardReason(String dlUnstandardReason) {
-        this.dlUnstandardReason = dlUnstandardReason == null ? null : dlUnstandardReason.trim();
-    }
-
-    /**
-     * 鑾峰彇璁惧鐜板満鍥剧墖
-     *
-     * @return DL_Pic_Url - 璁惧鐜板満鍥剧墖
-     */
-    public String getDlPicUrl() {
-        return dlPicUrl;
-    }
-
-    /**
-     * 璁剧疆璁惧鐜板満鍥剧墖
-     *
-     * @param dlPicUrl 璁惧鐜板満鍥剧墖
-     */
-    public void setDlPicUrl(String dlPicUrl) {
-        this.dlPicUrl = dlPicUrl == null ? null : dlPicUrl.trim();
-    }
-
-    /**
-     * @return DL_Create_Time
-     */
-    public Date getDlCreateTime() {
-        return dlCreateTime;
-    }
-
-    /**
-     * @param dlCreateTime
-     */
-    public void setDlCreateTime(Date dlCreateTime) {
-        this.dlCreateTime = dlCreateTime;
-    }
-
-    /**
-     * @return DL_Update_Time
-     */
-    public Date getDlUpdateTime() {
-        return dlUpdateTime;
-    }
-
-    /**
-     * @param dlUpdateTime
-     */
-    public void setDlUpdateTime(Date dlUpdateTime) {
-        this.dlUpdateTime = dlUpdateTime;
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceStatus.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceStatus.java
new file mode 100644
index 0000000..f6f4898
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DeviceStatus.java
@@ -0,0 +1,334 @@
+package cn.flightfeather.supervision.domain.ds1.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import javax.persistence.*;
+
+@Table(name = "di_t_device_status")
+public class DeviceStatus {
+    @Id
+    @Column(name = "DL_ID")
+    private Integer dlId;
+
+    /**
+     * 鎵�灞炶澶噄d
+     */
+    @Column(name = "DL_Device_Id")
+    private Integer dlDeviceId;
+
+    /**
+     * 璁惧绫诲瀷锛�0锛氱洃鎺ц澶囷紱1锛氬噣鍖栬澶囷紱2锛氫綔涓氳澶囷級
+     */
+    @Column(name = "DL_Device_Type")
+    private Byte dlDeviceType;
+
+    /**
+     * 鎵�灞炲満鏅痠d
+     */
+    @Column(name = "DL_Scene_GUID")
+    private String dlSceneGuid;
+
+    /**
+     * 鍦烘櫙绫诲瀷id
+     */
+    @Column(name = "DL_Scene_Type_Id")
+    private Byte dlSceneTypeId;
+
+    /**
+     * 璁惧浣嶇疆
+     */
+    @Column(name = "DL_Location")
+    private String dlLocation;
+
+    @Column(name = "DL_Longitude")
+    private BigDecimal dlLongitude;
+
+    @Column(name = "DL_Latitude")
+    private BigDecimal dlLatitude;
+
+    /**
+     * 瀹夎浣嶇疆鏄惁瑙勮寖
+     */
+    @Column(name = "DL_Standard")
+    private Boolean dlStandard;
+
+    /**
+     * 瀹夎浣嶇疆涓嶈鑼冨師鍥�
+     */
+    @Column(name = "DL_UnStandard_Reason")
+    private String dlUnstandardReason;
+
+    /**
+     * 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    @Column(name = "DL_Real_Time_Status")
+    private Byte dlRealTimeStatus;
+
+    /**
+     * 璁惧鐜板満鍥剧墖(澶氬紶鍥剧墖鐢�;鍒嗛殧)
+     */
+    @Column(name = "DL_Pic_Url")
+    private String dlPicUrl;
+
+    /**
+     * 瑙嗛鍦板潃
+     */
+    @Column(name = "DL_Video_Url")
+    private String dlVideoUrl;
+
+    @Column(name = "DL_Create_Time")
+    private Date dlCreateTime;
+
+    @Column(name = "DL_Update_Time")
+    private Date dlUpdateTime;
+
+    /**
+     * @return DL_ID
+     */
+    public Integer getDlId() {
+        return dlId;
+    }
+
+    /**
+     * @param dlId
+     */
+    public void setDlId(Integer dlId) {
+        this.dlId = dlId;
+    }
+
+    /**
+     * 鑾峰彇鎵�灞炶澶噄d
+     *
+     * @return DL_Device_Id - 鎵�灞炶澶噄d
+     */
+    public Integer getDlDeviceId() {
+        return dlDeviceId;
+    }
+
+    /**
+     * 璁剧疆鎵�灞炶澶噄d
+     *
+     * @param dlDeviceId 鎵�灞炶澶噄d
+     */
+    public void setDlDeviceId(Integer dlDeviceId) {
+        this.dlDeviceId = dlDeviceId;
+    }
+
+    /**
+     * 鑾峰彇璁惧绫诲瀷锛�0锛氱洃鎺ц澶囷紱1锛氬噣鍖栬澶囷紱2锛氫綔涓氳澶囷級
+     *
+     * @return DL_Device_Type - 璁惧绫诲瀷锛�0锛氱洃鎺ц澶囷紱1锛氬噣鍖栬澶囷紱2锛氫綔涓氳澶囷級
+     */
+    public Byte getDlDeviceType() {
+        return dlDeviceType;
+    }
+
+    /**
+     * 璁剧疆璁惧绫诲瀷锛�0锛氱洃鎺ц澶囷紱1锛氬噣鍖栬澶囷紱2锛氫綔涓氳澶囷級
+     *
+     * @param dlDeviceType 璁惧绫诲瀷锛�0锛氱洃鎺ц澶囷紱1锛氬噣鍖栬澶囷紱2锛氫綔涓氳澶囷級
+     */
+    public void setDlDeviceType(Byte dlDeviceType) {
+        this.dlDeviceType = dlDeviceType;
+    }
+
+    /**
+     * 鑾峰彇鎵�灞炲満鏅痠d
+     *
+     * @return DL_Scene_GUID - 鎵�灞炲満鏅痠d
+     */
+    public String getDlSceneGuid() {
+        return dlSceneGuid;
+    }
+
+    /**
+     * 璁剧疆鎵�灞炲満鏅痠d
+     *
+     * @param dlSceneGuid 鎵�灞炲満鏅痠d
+     */
+    public void setDlSceneGuid(String dlSceneGuid) {
+        this.dlSceneGuid = dlSceneGuid == null ? null : dlSceneGuid.trim();
+    }
+
+    /**
+     * 鑾峰彇鍦烘櫙绫诲瀷id
+     *
+     * @return DL_Scene_Type_Id - 鍦烘櫙绫诲瀷id
+     */
+    public Byte getDlSceneTypeId() {
+        return dlSceneTypeId;
+    }
+
+    /**
+     * 璁剧疆鍦烘櫙绫诲瀷id
+     *
+     * @param dlSceneTypeId 鍦烘櫙绫诲瀷id
+     */
+    public void setDlSceneTypeId(Byte dlSceneTypeId) {
+        this.dlSceneTypeId = dlSceneTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧浣嶇疆
+     *
+     * @return DL_Location - 璁惧浣嶇疆
+     */
+    public String getDlLocation() {
+        return dlLocation;
+    }
+
+    /**
+     * 璁剧疆璁惧浣嶇疆
+     *
+     * @param dlLocation 璁惧浣嶇疆
+     */
+    public void setDlLocation(String dlLocation) {
+        this.dlLocation = dlLocation == null ? null : dlLocation.trim();
+    }
+
+    /**
+     * @return DL_Longitude
+     */
+    public BigDecimal getDlLongitude() {
+        return dlLongitude;
+    }
+
+    /**
+     * @param dlLongitude
+     */
+    public void setDlLongitude(BigDecimal dlLongitude) {
+        this.dlLongitude = dlLongitude;
+    }
+
+    /**
+     * @return DL_Latitude
+     */
+    public BigDecimal getDlLatitude() {
+        return dlLatitude;
+    }
+
+    /**
+     * @param dlLatitude
+     */
+    public void setDlLatitude(BigDecimal dlLatitude) {
+        this.dlLatitude = dlLatitude;
+    }
+
+    /**
+     * 鑾峰彇瀹夎浣嶇疆鏄惁瑙勮寖
+     *
+     * @return DL_Standard - 瀹夎浣嶇疆鏄惁瑙勮寖
+     */
+    public Boolean getDlStandard() {
+        return dlStandard;
+    }
+
+    /**
+     * 璁剧疆瀹夎浣嶇疆鏄惁瑙勮寖
+     *
+     * @param dlStandard 瀹夎浣嶇疆鏄惁瑙勮寖
+     */
+    public void setDlStandard(Boolean dlStandard) {
+        this.dlStandard = dlStandard;
+    }
+
+    /**
+     * 鑾峰彇瀹夎浣嶇疆涓嶈鑼冨師鍥�
+     *
+     * @return DL_UnStandard_Reason - 瀹夎浣嶇疆涓嶈鑼冨師鍥�
+     */
+    public String getDlUnstandardReason() {
+        return dlUnstandardReason;
+    }
+
+    /**
+     * 璁剧疆瀹夎浣嶇疆涓嶈鑼冨師鍥�
+     *
+     * @param dlUnstandardReason 瀹夎浣嶇疆涓嶈鑼冨師鍥�
+     */
+    public void setDlUnstandardReason(String dlUnstandardReason) {
+        this.dlUnstandardReason = dlUnstandardReason == null ? null : dlUnstandardReason.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @return DL_Real_Time_Status - 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public Byte getDlRealTimeStatus() {
+        return dlRealTimeStatus;
+    }
+
+    /**
+     * 璁剧疆杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @param dlRealTimeStatus 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public void setDlRealTimeStatus(Byte dlRealTimeStatus) {
+        this.dlRealTimeStatus = dlRealTimeStatus;
+    }
+
+    /**
+     * 鑾峰彇璁惧鐜板満鍥剧墖(澶氬紶鍥剧墖鐢�;鍒嗛殧)
+     *
+     * @return DL_Pic_Url - 璁惧鐜板満鍥剧墖(澶氬紶鍥剧墖鐢�;鍒嗛殧)
+     */
+    public String getDlPicUrl() {
+        return dlPicUrl;
+    }
+
+    /**
+     * 璁剧疆璁惧鐜板満鍥剧墖(澶氬紶鍥剧墖鐢�;鍒嗛殧)
+     *
+     * @param dlPicUrl 璁惧鐜板満鍥剧墖(澶氬紶鍥剧墖鐢�;鍒嗛殧)
+     */
+    public void setDlPicUrl(String dlPicUrl) {
+        this.dlPicUrl = dlPicUrl == null ? null : dlPicUrl.trim();
+    }
+
+    /**
+     * 鑾峰彇瑙嗛鍦板潃
+     *
+     * @return DL_Video_Url - 瑙嗛鍦板潃
+     */
+    public String getDlVideoUrl() {
+        return dlVideoUrl;
+    }
+
+    /**
+     * 璁剧疆瑙嗛鍦板潃
+     *
+     * @param dlVideoUrl 瑙嗛鍦板潃
+     */
+    public void setDlVideoUrl(String dlVideoUrl) {
+        this.dlVideoUrl = dlVideoUrl == null ? null : dlVideoUrl.trim();
+    }
+
+    /**
+     * @return DL_Create_Time
+     */
+    public Date getDlCreateTime() {
+        return dlCreateTime;
+    }
+
+    /**
+     * @param dlCreateTime
+     */
+    public void setDlCreateTime(Date dlCreateTime) {
+        this.dlCreateTime = dlCreateTime;
+    }
+
+    /**
+     * @return DL_Update_Time
+     */
+    public Date getDlUpdateTime() {
+        return dlUpdateTime;
+    }
+
+    /**
+     * @param dlUpdateTime
+     */
+    public void setDlUpdateTime(Date dlUpdateTime) {
+        this.dlUpdateTime = dlUpdateTime;
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DustDataResult.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DustDataResult.java
index 72bbda6..b6b9ab4 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DustDataResult.java
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/DustDataResult.java
@@ -22,6 +22,12 @@
     private String drSceneName;
 
     /**
+     * 璁惧缂栧彿
+     */
+    @Column(name = "DR_Device_Code")
+    private String drDeviceCode;
+
+    /**
      * 璁板綍鏈堜唤
      */
     @Column(name = "DR_Time")
@@ -120,6 +126,24 @@
     }
 
     /**
+     * 鑾峰彇璁惧缂栧彿
+     *
+     * @return DR_Device_Code - 璁惧缂栧彿
+     */
+    public String getDrDeviceCode() {
+        return drDeviceCode;
+    }
+
+    /**
+     * 璁剧疆璁惧缂栧彿
+     *
+     * @param drDeviceCode 璁惧缂栧彿
+     */
+    public void setDrDeviceCode(String drDeviceCode) {
+        this.drDeviceCode = drDeviceCode == null ? null : drDeviceCode.trim();
+    }
+
+    /**
      * 鑾峰彇璁板綍鏈堜唤
      *
      * @return DR_Time - 璁板綍鏈堜唤
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/MonitorDeviceInfo.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/MonitorDeviceInfo.java
new file mode 100644
index 0000000..9c6c692
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/MonitorDeviceInfo.java
@@ -0,0 +1,467 @@
+package cn.flightfeather.supervision.domain.ds1.entity;
+
+import java.util.Date;
+import javax.persistence.*;
+
+@Table(name = "di_t_monitor_device_info")
+public class MonitorDeviceInfo implements BaseDevice {
+    @Id
+    @Column(name = "DI_ID")
+    private Integer diId;
+
+    /**
+     * 鐩戞祴璁惧缂栧彿
+     */
+    @Column(name = "DI_Device_Code")
+    private String diDeviceCode;
+
+    /**
+     * 绔欑偣鍚嶇О
+     */
+    @Column(name = "DI_Name")
+    private String diName;
+
+    /**
+     * 鎵�灞炲満鏅痠d
+     */
+    @Column(name = "DI_Scene_GUID")
+    private String diSceneGuid;
+
+    /**
+     * 鍦烘櫙绫诲瀷id
+     */
+    @Column(name = "DI_Scene_Type_Id")
+    private Byte diSceneTypeId;
+
+    /**
+     * 璁惧绫诲瀷(0:鎵皹鐩戞祴锛�1:娌圭儫鐩戞祴;2:VOC鐩戞祴)
+     */
+    @Column(name = "DI_Type_Id")
+    private Byte diTypeId;
+
+    /**
+     * 璁惧瀛愮被鍨�
+     */
+    @Column(name = "DI_Subtype_Id")
+    private Byte diSubtypeId;
+
+    /**
+     * 璁惧渚涘簲鍟�
+     */
+    @Column(name = "DI_Supplier")
+    private String diSupplier;
+
+    /**
+     * 杩愮淮鍟�
+     */
+    @Column(name = "DI_Maintainer")
+    private String diMaintainer;
+
+    /**
+     * 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    @Column(name = "DI_Maintain_Frequency")
+    private Byte diMaintainFrequency;
+
+    /**
+     * 杩愮淮浜哄憳
+     */
+    @Column(name = "DI_Maintain_Staff")
+    private String diMaintainStaff;
+
+    /**
+     * 杩愮淮鑱旂郴鏂瑰紡
+     */
+    @Column(name = "DI_Maintain_Tel")
+    private String diMaintainTel;
+
+    /**
+     * 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    @Column(name = "DI_Running_Status")
+    private Byte diRunningStatus;
+
+    /**
+     * 鍝佺墝鍨嬪彿
+     */
+    @Column(name = "DI_Brand_Model")
+    private String diBrandModel;
+
+    /**
+     * 璁惧鍙傛暟
+     */
+    @Column(name = "DI_Device_Param")
+    private String diDeviceParam;
+
+    /**
+     * 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    @Column(name = "DI_Ownership")
+    private Byte diOwnership;
+
+    /**
+     * 鏍囪瘑浜岀淮鐮�
+     */
+    @Column(name = "DI_QR_Code")
+    private String diQrCode;
+
+    /**
+     * 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    @Column(name = "DI_Other_QR_Code")
+    private String diOtherQrCode;
+
+    @Column(name = "DI_Create_Time")
+    private Date diCreateTime;
+
+    @Column(name = "DI_Update_Time")
+    private Date diUpdateTime;
+
+    /**
+     * @return DI_ID
+     */
+    public Integer getDiId() {
+        return diId;
+    }
+
+    /**
+     * @param diId
+     */
+    public void setDiId(Integer diId) {
+        this.diId = diId;
+    }
+
+    /**
+     * 鑾峰彇鐩戞祴璁惧缂栧彿
+     *
+     * @return DI_Device_Code - 鐩戞祴璁惧缂栧彿
+     */
+    public String getDiDeviceCode() {
+        return diDeviceCode;
+    }
+
+    /**
+     * 璁剧疆鐩戞祴璁惧缂栧彿
+     *
+     * @param diDeviceCode 鐩戞祴璁惧缂栧彿
+     */
+    public void setDiDeviceCode(String diDeviceCode) {
+        this.diDeviceCode = diDeviceCode == null ? null : diDeviceCode.trim();
+    }
+
+    /**
+     * 鑾峰彇绔欑偣鍚嶇О
+     *
+     * @return DI_Name - 绔欑偣鍚嶇О
+     */
+    public String getDiName() {
+        return diName;
+    }
+
+    /**
+     * 璁剧疆绔欑偣鍚嶇О
+     *
+     * @param diName 绔欑偣鍚嶇О
+     */
+    public void setDiName(String diName) {
+        this.diName = diName == null ? null : diName.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�灞炲満鏅痠d
+     *
+     * @return DI_Scene_GUID - 鎵�灞炲満鏅痠d
+     */
+    public String getDiSceneGuid() {
+        return diSceneGuid;
+    }
+
+    /**
+     * 璁剧疆鎵�灞炲満鏅痠d
+     *
+     * @param diSceneGuid 鎵�灞炲満鏅痠d
+     */
+    public void setDiSceneGuid(String diSceneGuid) {
+        this.diSceneGuid = diSceneGuid == null ? null : diSceneGuid.trim();
+    }
+
+    /**
+     * 鑾峰彇鍦烘櫙绫诲瀷id
+     *
+     * @return PI_Scene_Type_Id - 鍦烘櫙绫诲瀷id
+     */
+    public Byte getDiSceneTypeId() {
+        return diSceneTypeId;
+    }
+
+    /**
+     * 璁剧疆鍦烘櫙绫诲瀷id
+     *
+     * @param diSceneTypeId 鍦烘櫙绫诲瀷id
+     */
+    public void setDiSceneTypeId(Byte diSceneTypeId) {
+        this.diSceneTypeId = diSceneTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧绫诲瀷(0:鎵皹鐩戞祴锛�1:娌圭儫鐩戞祴;2:VOC鐩戞祴)
+     *
+     * @return DI_Type_Id - 璁惧绫诲瀷(0:鎵皹鐩戞祴锛�1:娌圭儫鐩戞祴;2:VOC鐩戞祴)
+     */
+    public Byte getDiTypeId() {
+        return diTypeId;
+    }
+
+    /**
+     * 璁剧疆璁惧绫诲瀷(0:鎵皹鐩戞祴锛�1:娌圭儫鐩戞祴;2:VOC鐩戞祴)
+     *
+     * @param diTypeId 璁惧绫诲瀷(0:鎵皹鐩戞祴锛�1:娌圭儫鐩戞祴;2:VOC鐩戞祴)
+     */
+    public void setDiTypeId(Byte diTypeId) {
+        this.diTypeId = diTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧瀛愮被鍨�
+     *
+     * @return DI_Subtype_Id - 璁惧瀛愮被鍨�
+     */
+    public Byte getDiSubtypeId() {
+        return diSubtypeId;
+    }
+
+    /**
+     * 璁剧疆璁惧瀛愮被鍨�
+     *
+     * @param diSubtypeId 璁惧瀛愮被鍨�
+     */
+    public void setDiSubtypeId(Byte diSubtypeId) {
+        this.diSubtypeId = diSubtypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧渚涘簲鍟�
+     *
+     * @return DI_Supplier - 璁惧渚涘簲鍟�
+     */
+    public String getDiSupplier() {
+        return diSupplier;
+    }
+
+    /**
+     * 璁剧疆璁惧渚涘簲鍟�
+     *
+     * @param diSupplier 璁惧渚涘簲鍟�
+     */
+    public void setDiSupplier(String diSupplier) {
+        this.diSupplier = diSupplier == null ? null : diSupplier.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮鍟�
+     *
+     * @return DI_Maintainer - 杩愮淮鍟�
+     */
+    public String getDiMaintainer() {
+        return diMaintainer;
+    }
+
+    /**
+     * 璁剧疆杩愮淮鍟�
+     *
+     * @param diMaintainer 杩愮淮鍟�
+     */
+    public void setDiMaintainer(String diMaintainer) {
+        this.diMaintainer = diMaintainer == null ? null : diMaintainer.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     *
+     * @return DI_Maintain_Frequency - 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    public Byte getDiMaintainFrequency() {
+        return diMaintainFrequency;
+    }
+
+    /**
+     * 璁剧疆杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     *
+     * @param diMaintainFrequency 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    public void setDiMaintainFrequency(Byte diMaintainFrequency) {
+        this.diMaintainFrequency = diMaintainFrequency;
+    }
+
+    /**
+     * 鑾峰彇杩愮淮浜哄憳
+     *
+     * @return DI_Maintain_Staff - 杩愮淮浜哄憳
+     */
+    public String getDiMaintainStaff() {
+        return diMaintainStaff;
+    }
+
+    /**
+     * 璁剧疆杩愮淮浜哄憳
+     *
+     * @param diMaintainStaff 杩愮淮浜哄憳
+     */
+    public void setDiMaintainStaff(String diMaintainStaff) {
+        this.diMaintainStaff = diMaintainStaff == null ? null : diMaintainStaff.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @return DI_Maintain_Tel - 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public String getDiMaintainTel() {
+        return diMaintainTel;
+    }
+
+    /**
+     * 璁剧疆杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @param diMaintainTel 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public void setDiMaintainTel(String diMaintainTel) {
+        this.diMaintainTel = diMaintainTel == null ? null : diMaintainTel.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @return DI_Running_Status - 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public Byte getDiRunningStatus() {
+        return diRunningStatus;
+    }
+
+    /**
+     * 璁剧疆杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @param diRunningStatus 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public void setDiRunningStatus(Byte diRunningStatus) {
+        this.diRunningStatus = diRunningStatus;
+    }
+
+    /**
+     * 鑾峰彇鍝佺墝鍨嬪彿
+     *
+     * @return DI_Brand_Model - 鍝佺墝鍨嬪彿
+     */
+    public String getDiBrandModel() {
+        return diBrandModel;
+    }
+
+    /**
+     * 璁剧疆鍝佺墝鍨嬪彿
+     *
+     * @param diBrandModel 鍝佺墝鍨嬪彿
+     */
+    public void setDiBrandModel(String diBrandModel) {
+        this.diBrandModel = diBrandModel == null ? null : diBrandModel.trim();
+    }
+
+    /**
+     * 鑾峰彇璁惧鍙傛暟
+     *
+     * @return DI_Device_Param - 璁惧鍙傛暟
+     */
+    public String getDiDeviceParam() {
+        return diDeviceParam;
+    }
+
+    /**
+     * 璁剧疆璁惧鍙傛暟
+     *
+     * @param diDeviceParam 璁惧鍙傛暟
+     */
+    public void setDiDeviceParam(String diDeviceParam) {
+        this.diDeviceParam = diDeviceParam == null ? null : diDeviceParam.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @return DI_Ownership - 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public Byte getDiOwnership() {
+        return diOwnership;
+    }
+
+    /**
+     * 璁剧疆鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @param diOwnership 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public void setDiOwnership(Byte diOwnership) {
+        this.diOwnership = diOwnership;
+    }
+
+    /**
+     * 鑾峰彇鏍囪瘑浜岀淮鐮�
+     *
+     * @return DI_QR_Code - 鏍囪瘑浜岀淮鐮�
+     */
+    public String getDiQrCode() {
+        return diQrCode;
+    }
+
+    /**
+     * 璁剧疆鏍囪瘑浜岀淮鐮�
+     *
+     * @param diQrCode 鏍囪瘑浜岀淮鐮�
+     */
+    public void setDiQrCode(String diQrCode) {
+        this.diQrCode = diQrCode == null ? null : diQrCode.trim();
+    }
+
+    /**
+     * 鑾峰彇鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @return DI_Other_QR_Code - 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public String getDiOtherQrCode() {
+        return diOtherQrCode;
+    }
+
+    /**
+     * 璁剧疆鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @param diOtherQrCode 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public void setDiOtherQrCode(String diOtherQrCode) {
+        this.diOtherQrCode = diOtherQrCode == null ? null : diOtherQrCode.trim();
+    }
+
+    /**
+     * @return DI_Create_Time
+     */
+    public Date getDiCreateTime() {
+        return diCreateTime;
+    }
+
+    /**
+     * @param diCreateTime
+     */
+    public void setDiCreateTime(Date diCreateTime) {
+        this.diCreateTime = diCreateTime;
+    }
+
+    /**
+     * @return DI_Update_Time
+     */
+    public Date getDiUpdateTime() {
+        return diUpdateTime;
+    }
+
+    /**
+     * @param diUpdateTime
+     */
+    public void setDiUpdateTime(Date diUpdateTime) {
+        this.diUpdateTime = diUpdateTime;
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/ProductionDeviceInfo.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/ProductionDeviceInfo.java
new file mode 100644
index 0000000..873f608
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/ProductionDeviceInfo.java
@@ -0,0 +1,436 @@
+package cn.flightfeather.supervision.domain.ds1.entity;
+
+import java.util.Date;
+import javax.persistence.*;
+
+@Table(name = "di_t_production_device_info")
+public class ProductionDeviceInfo implements BaseDevice {
+    @Id
+    @Column(name = "WI_ID")
+    private Integer wiId;
+
+    /**
+     * 鐢熶骇璁惧缂栧彿
+     */
+    @Column(name = "WI_Device_Code")
+    private String wiDeviceCode;
+
+    /**
+     * 浣滀笟璁炬柦鍚嶇О
+     */
+    @Column(name = "WI_Name")
+    private String wiName;
+
+    /**
+     * 鎵�灞炲満鏅痠d
+     */
+    @Column(name = "WI_Scene_GUID")
+    private String wiSceneGuid;
+
+    /**
+     * 鍦烘櫙绫诲瀷id
+     */
+    @Column(name = "WI_Scene_Type_Id")
+    private Byte wiSceneTypeId;
+
+    /**
+     * 璁惧绫诲瀷id
+     */
+    @Column(name = "WI_Type_Id")
+    private Byte wiTypeId;
+
+    /**
+     * 璁惧瀛愮被鍨�
+     */
+    @Column(name = "WI_Subtype_Id")
+    private Byte wiSubtypeId;
+
+    /**
+     * 璁惧渚涘簲鍟�
+     */
+    @Column(name = "WI_Supplier")
+    private String wiSupplier;
+
+    /**
+     * 鏈嶅姟鍗曚綅
+     */
+    @Column(name = "WI_Servicer")
+    private String wiServicer;
+
+    /**
+     * 杩愮淮浜哄憳
+     */
+    @Column(name = "WI_Maintain_Staff")
+    private String wiMaintainStaff;
+
+    /**
+     * 杩愮淮鑱旂郴鏂瑰紡
+     */
+    @Column(name = "WI_Maintain_Tel")
+    private String wiMaintainTel;
+
+    /**
+     * 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    @Column(name = "WI_Running_Status")
+    private Byte wiRunningStatus;
+
+    /**
+     * 鍝佺墝鍨嬪彿
+     */
+    @Column(name = "WI_Brand_Model")
+    private String wiBrandModel;
+
+    /**
+     * 璁惧鍙傛暟
+     */
+    @Column(name = "WI_Device_Param")
+    private String wiDeviceParam;
+
+    /**
+     * 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    @Column(name = "WI_Ownership")
+    private Byte wiOwnership;
+
+    @Column(name = "WI_QR_Code")
+    private String wiQrCode;
+
+    /**
+     * 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    @Column(name = "WI_Other_QR_Code")
+    private String wiOtherQrCode;
+
+    @Column(name = "WI_Create_Time")
+    private Date wiCreateTime;
+
+    @Column(name = "WI_Update_Time")
+    private Date wiUpdateTime;
+
+    /**
+     * @return WI_ID
+     */
+    public Integer getWiId() {
+        return wiId;
+    }
+
+    /**
+     * @param wiId
+     */
+    public void setWiId(Integer wiId) {
+        this.wiId = wiId;
+    }
+
+    /**
+     * 鑾峰彇鐢熶骇璁惧缂栧彿
+     *
+     * @return WI_Device_Code - 鐢熶骇璁惧缂栧彿
+     */
+    public String getWiDeviceCode() {
+        return wiDeviceCode;
+    }
+
+    /**
+     * 璁剧疆鐢熶骇璁惧缂栧彿
+     *
+     * @param wiDeviceCode 鐢熶骇璁惧缂栧彿
+     */
+    public void setWiDeviceCode(String wiDeviceCode) {
+        this.wiDeviceCode = wiDeviceCode == null ? null : wiDeviceCode.trim();
+    }
+
+    /**
+     * 鑾峰彇浣滀笟璁炬柦鍚嶇О
+     *
+     * @return WI_Name - 浣滀笟璁炬柦鍚嶇О
+     */
+    public String getWiName() {
+        return wiName;
+    }
+
+    /**
+     * 璁剧疆浣滀笟璁炬柦鍚嶇О
+     *
+     * @param wiName 浣滀笟璁炬柦鍚嶇О
+     */
+    public void setWiName(String wiName) {
+        this.wiName = wiName == null ? null : wiName.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�灞炲満鏅痠d
+     *
+     * @return WI_Scene_GUID - 鎵�灞炲満鏅痠d
+     */
+    public String getWiSceneGuid() {
+        return wiSceneGuid;
+    }
+
+    /**
+     * 璁剧疆鎵�灞炲満鏅痠d
+     *
+     * @param wiSceneGuid 鎵�灞炲満鏅痠d
+     */
+    public void setWiSceneGuid(String wiSceneGuid) {
+        this.wiSceneGuid = wiSceneGuid == null ? null : wiSceneGuid.trim();
+    }
+
+    /**
+     * 鑾峰彇鍦烘櫙绫诲瀷id
+     *
+     * @return WI_Scene_Type_Id - 鍦烘櫙绫诲瀷id
+     */
+    public Byte getWiSceneTypeId() {
+        return wiSceneTypeId;
+    }
+
+    /**
+     * 璁剧疆鍦烘櫙绫诲瀷id
+     *
+     * @param wiSceneTypeId 鍦烘櫙绫诲瀷id
+     */
+    public void setWiSceneTypeId(Byte wiSceneTypeId) {
+        this.wiSceneTypeId = wiSceneTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧绫诲瀷id
+     *
+     * @return WI_Type_Id - 璁惧绫诲瀷id
+     */
+    public Byte getWiTypeId() {
+        return wiTypeId;
+    }
+
+    /**
+     * 璁剧疆璁惧绫诲瀷id
+     *
+     * @param wiTypeId 璁惧绫诲瀷id
+     */
+    public void setWiTypeId(Byte wiTypeId) {
+        this.wiTypeId = wiTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧瀛愮被鍨�
+     *
+     * @return WI_Subtype_Id - 璁惧瀛愮被鍨�
+     */
+    public Byte getWiSubtypeId() {
+        return wiSubtypeId;
+    }
+
+    /**
+     * 璁剧疆璁惧瀛愮被鍨�
+     *
+     * @param wiSubtypeId 璁惧瀛愮被鍨�
+     */
+    public void setWiSubtypeId(Byte wiSubtypeId) {
+        this.wiSubtypeId = wiSubtypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧渚涘簲鍟�
+     *
+     * @return WI_Supplier - 璁惧渚涘簲鍟�
+     */
+    public String getWiSupplier() {
+        return wiSupplier;
+    }
+
+    /**
+     * 璁剧疆璁惧渚涘簲鍟�
+     *
+     * @param wiSupplier 璁惧渚涘簲鍟�
+     */
+    public void setWiSupplier(String wiSupplier) {
+        this.wiSupplier = wiSupplier == null ? null : wiSupplier.trim();
+    }
+
+    /**
+     * 鑾峰彇鏈嶅姟鍗曚綅
+     *
+     * @return WI_Servicer - 鏈嶅姟鍗曚綅
+     */
+    public String getWiServicer() {
+        return wiServicer;
+    }
+
+    /**
+     * 璁剧疆鏈嶅姟鍗曚綅
+     *
+     * @param wiServicer 鏈嶅姟鍗曚綅
+     */
+    public void setWiServicer(String wiServicer) {
+        this.wiServicer = wiServicer == null ? null : wiServicer.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮浜哄憳
+     *
+     * @return WI_Maintain_Staff - 杩愮淮浜哄憳
+     */
+    public String getWiMaintainStaff() {
+        return wiMaintainStaff;
+    }
+
+    /**
+     * 璁剧疆杩愮淮浜哄憳
+     *
+     * @param wiMaintainStaff 杩愮淮浜哄憳
+     */
+    public void setWiMaintainStaff(String wiMaintainStaff) {
+        this.wiMaintainStaff = wiMaintainStaff == null ? null : wiMaintainStaff.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @return WI_Maintain_Tel - 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public String getWiMaintainTel() {
+        return wiMaintainTel;
+    }
+
+    /**
+     * 璁剧疆杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @param wiMaintainTel 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public void setWiMaintainTel(String wiMaintainTel) {
+        this.wiMaintainTel = wiMaintainTel == null ? null : wiMaintainTel.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @return WI_Running_Status - 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public Byte getWiRunningStatus() {
+        return wiRunningStatus;
+    }
+
+    /**
+     * 璁剧疆杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @param wiRunningStatus 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public void setWiRunningStatus(Byte wiRunningStatus) {
+        this.wiRunningStatus = wiRunningStatus;
+    }
+
+    /**
+     * 鑾峰彇鍝佺墝鍨嬪彿
+     *
+     * @return WI_Brand_Model - 鍝佺墝鍨嬪彿
+     */
+    public String getWiBrandModel() {
+        return wiBrandModel;
+    }
+
+    /**
+     * 璁剧疆鍝佺墝鍨嬪彿
+     *
+     * @param wiBrandModel 鍝佺墝鍨嬪彿
+     */
+    public void setWiBrandModel(String wiBrandModel) {
+        this.wiBrandModel = wiBrandModel == null ? null : wiBrandModel.trim();
+    }
+
+    /**
+     * 鑾峰彇璁惧鍙傛暟
+     *
+     * @return WI_Device_Param - 璁惧鍙傛暟
+     */
+    public String getWiDeviceParam() {
+        return wiDeviceParam;
+    }
+
+    /**
+     * 璁剧疆璁惧鍙傛暟
+     *
+     * @param wiDeviceParam 璁惧鍙傛暟
+     */
+    public void setWiDeviceParam(String wiDeviceParam) {
+        this.wiDeviceParam = wiDeviceParam == null ? null : wiDeviceParam.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @return WI_Ownership - 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public Byte getWiOwnership() {
+        return wiOwnership;
+    }
+
+    /**
+     * 璁剧疆鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @param wiOwnership 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public void setWiOwnership(Byte wiOwnership) {
+        this.wiOwnership = wiOwnership;
+    }
+
+    /**
+     * @return WI_QR_Code
+     */
+    public String getWiQrCode() {
+        return wiQrCode;
+    }
+
+    /**
+     * @param wiQrCode
+     */
+    public void setWiQrCode(String wiQrCode) {
+        this.wiQrCode = wiQrCode == null ? null : wiQrCode.trim();
+    }
+
+    /**
+     * 鑾峰彇鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @return WI_Other_QR_Code - 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public String getWiOtherQrCode() {
+        return wiOtherQrCode;
+    }
+
+    /**
+     * 璁剧疆鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @param wiOtherQrCode 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public void setWiOtherQrCode(String wiOtherQrCode) {
+        this.wiOtherQrCode = wiOtherQrCode == null ? null : wiOtherQrCode.trim();
+    }
+
+    /**
+     * @return WI_Create_Time
+     */
+    public Date getWiCreateTime() {
+        return wiCreateTime;
+    }
+
+    /**
+     * @param wiCreateTime
+     */
+    public void setWiCreateTime(Date wiCreateTime) {
+        this.wiCreateTime = wiCreateTime;
+    }
+
+    /**
+     * @return WI_Update_Time
+     */
+    public Date getWiUpdateTime() {
+        return wiUpdateTime;
+    }
+
+    /**
+     * @param wiUpdateTime
+     */
+    public void setWiUpdateTime(Date wiUpdateTime) {
+        this.wiUpdateTime = wiUpdateTime;
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/TreatmentDeviceInfo.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/TreatmentDeviceInfo.java
new file mode 100644
index 0000000..b27c3cc
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/entity/TreatmentDeviceInfo.java
@@ -0,0 +1,460 @@
+package cn.flightfeather.supervision.domain.ds1.entity;
+
+import java.util.Date;
+import javax.persistence.*;
+
+@Table(name = "di_t_treatment_device_info")
+public class TreatmentDeviceInfo implements BaseDevice {
+    @Id
+    @Column(name = "PI_ID")
+    private Integer piId;
+
+    /**
+     * 娌荤悊璁惧缂栧彿
+     */
+    @Column(name = "PI_Device_Code")
+    private String piDeviceCode;
+
+    /**
+     * 鍑�鍖栬鏂藉悕绉�
+     */
+    @Column(name = "PI_Name")
+    private String piName;
+
+    /**
+     * 鎵�灞炲満鏅痠d
+     */
+    @Column(name = "PI_Scene_GUID")
+    private String piSceneGuid;
+
+    /**
+     * 鍦烘櫙绫诲瀷id
+     */
+    @Column(name = "PI_Scene_Type_Id")
+    private Byte piSceneTypeId;
+
+    /**
+     * 璁炬柦绫诲瀷id锛屾牴鎹満鏅被鍨嬩笉鍚岄�夐」涓嶅悓
+     */
+    @Column(name = "PI_Type_Id")
+    private Byte piTypeId;
+
+    /**
+     * 璁惧瀛愮被鍨�
+     */
+    @Column(name = "PI_Subtype_Id")
+    private Byte piSubtypeId;
+
+    /**
+     * 璁惧渚涘簲鍟�
+     */
+    @Column(name = "PI_Supplier")
+    private String piSupplier;
+
+    /**
+     * 杩愮淮鍟�
+     */
+    @Column(name = "PI_Maintainer")
+    private String piMaintainer;
+
+    /**
+     * 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    @Column(name = "PI_Maintain_Frequency")
+    private Byte piMaintainFrequency;
+
+    /**
+     * 杩愮淮浜哄憳
+     */
+    @Column(name = "PI_Maintain_Staff")
+    private String piMaintainStaff;
+
+    /**
+     * 杩愮淮鑱旂郴鏂瑰紡
+     */
+    @Column(name = "PI_Maintain_Tel")
+    private String piMaintainTel;
+
+    /**
+     * 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    @Column(name = "PI_Running_Status")
+    private Byte piRunningStatus;
+
+    /**
+     * 鍝佺墝鍨嬪彿
+     */
+    @Column(name = "PI_Brand_Model")
+    private String piBrandModel;
+
+    /**
+     * 璁惧鍙傛暟
+     */
+    @Column(name = "PI_Device_Param")
+    private String piDeviceParam;
+
+    /**
+     * 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    @Column(name = "PI_Ownership")
+    private Byte piOwnership;
+
+    @Column(name = "PI_QR_Code")
+    private String piQrCode;
+
+    /**
+     * 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    @Column(name = "PI_Other_QR_Code")
+    private String piOtherQrCode;
+
+    @Column(name = "PI_Create_Time")
+    private Date piCreateTime;
+
+    @Column(name = "PI_Update_Time")
+    private Date piUpdateTime;
+
+    /**
+     * @return PI_ID
+     */
+    public Integer getPiId() {
+        return piId;
+    }
+
+    /**
+     * @param piId
+     */
+    public void setPiId(Integer piId) {
+        this.piId = piId;
+    }
+
+    /**
+     * 鑾峰彇娌荤悊璁惧缂栧彿
+     *
+     * @return PI_Device_Code - 娌荤悊璁惧缂栧彿
+     */
+    public String getPiDeviceCode() {
+        return piDeviceCode;
+    }
+
+    /**
+     * 璁剧疆娌荤悊璁惧缂栧彿
+     *
+     * @param piDeviceCode 娌荤悊璁惧缂栧彿
+     */
+    public void setPiDeviceCode(String piDeviceCode) {
+        this.piDeviceCode = piDeviceCode == null ? null : piDeviceCode.trim();
+    }
+
+    /**
+     * 鑾峰彇鍑�鍖栬鏂藉悕绉�
+     *
+     * @return PI_Name - 鍑�鍖栬鏂藉悕绉�
+     */
+    public String getPiName() {
+        return piName;
+    }
+
+    /**
+     * 璁剧疆鍑�鍖栬鏂藉悕绉�
+     *
+     * @param piName 鍑�鍖栬鏂藉悕绉�
+     */
+    public void setPiName(String piName) {
+        this.piName = piName == null ? null : piName.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�灞炲満鏅痠d
+     *
+     * @return PI_Scene_GUID - 鎵�灞炲満鏅痠d
+     */
+    public String getPiSceneGuid() {
+        return piSceneGuid;
+    }
+
+    /**
+     * 璁剧疆鎵�灞炲満鏅痠d
+     *
+     * @param piSceneGuid 鎵�灞炲満鏅痠d
+     */
+    public void setPiSceneGuid(String piSceneGuid) {
+        this.piSceneGuid = piSceneGuid == null ? null : piSceneGuid.trim();
+    }
+
+    /**
+     * 鑾峰彇鍦烘櫙绫诲瀷id
+     *
+     * @return PI_Scene_Type_Id - 鍦烘櫙绫诲瀷id
+     */
+    public Byte getPiSceneTypeId() {
+        return piSceneTypeId;
+    }
+
+    /**
+     * 璁剧疆鍦烘櫙绫诲瀷id
+     *
+     * @param piSceneTypeId 鍦烘櫙绫诲瀷id
+     */
+    public void setPiSceneTypeId(Byte piSceneTypeId) {
+        this.piSceneTypeId = piSceneTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁炬柦绫诲瀷id锛屾牴鎹満鏅被鍨嬩笉鍚岄�夐」涓嶅悓
+     *
+     * @return PI_Type_Id - 璁炬柦绫诲瀷id锛屾牴鎹満鏅被鍨嬩笉鍚岄�夐」涓嶅悓
+     */
+    public Byte getPiTypeId() {
+        return piTypeId;
+    }
+
+    /**
+     * 璁剧疆璁炬柦绫诲瀷id锛屾牴鎹満鏅被鍨嬩笉鍚岄�夐」涓嶅悓
+     *
+     * @param piTypeId 璁炬柦绫诲瀷id锛屾牴鎹満鏅被鍨嬩笉鍚岄�夐」涓嶅悓
+     */
+    public void setPiTypeId(Byte piTypeId) {
+        this.piTypeId = piTypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧瀛愮被鍨�
+     *
+     * @return PI_Subtype_Id - 璁惧瀛愮被鍨�
+     */
+    public Byte getPiSubtypeId() {
+        return piSubtypeId;
+    }
+
+    /**
+     * 璁剧疆璁惧瀛愮被鍨�
+     *
+     * @param piSubtypeId 璁惧瀛愮被鍨�
+     */
+    public void setPiSubtypeId(Byte piSubtypeId) {
+        this.piSubtypeId = piSubtypeId;
+    }
+
+    /**
+     * 鑾峰彇璁惧渚涘簲鍟�
+     *
+     * @return PI_Supplier - 璁惧渚涘簲鍟�
+     */
+    public String getPiSupplier() {
+        return piSupplier;
+    }
+
+    /**
+     * 璁剧疆璁惧渚涘簲鍟�
+     *
+     * @param piSupplier 璁惧渚涘簲鍟�
+     */
+    public void setPiSupplier(String piSupplier) {
+        this.piSupplier = piSupplier == null ? null : piSupplier.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮鍟�
+     *
+     * @return PI_Maintainer - 杩愮淮鍟�
+     */
+    public String getPiMaintainer() {
+        return piMaintainer;
+    }
+
+    /**
+     * 璁剧疆杩愮淮鍟�
+     *
+     * @param piMaintainer 杩愮淮鍟�
+     */
+    public void setPiMaintainer(String piMaintainer) {
+        this.piMaintainer = piMaintainer == null ? null : piMaintainer.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     *
+     * @return PI_Maintain_Frequency - 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    public Byte getPiMaintainFrequency() {
+        return piMaintainFrequency;
+    }
+
+    /**
+     * 璁剧疆杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     *
+     * @param piMaintainFrequency 杩愮淮棰戞(0:姣忓懆涓�娆�;1:姣忔湀涓�娆�;2:姣忓搴︿竴娆�;3:鍗婂勾涓�娆�)
+     */
+    public void setPiMaintainFrequency(Byte piMaintainFrequency) {
+        this.piMaintainFrequency = piMaintainFrequency;
+    }
+
+    /**
+     * 鑾峰彇杩愮淮浜哄憳
+     *
+     * @return PI_Maintain_Staff - 杩愮淮浜哄憳
+     */
+    public String getPiMaintainStaff() {
+        return piMaintainStaff;
+    }
+
+    /**
+     * 璁剧疆杩愮淮浜哄憳
+     *
+     * @param piMaintainStaff 杩愮淮浜哄憳
+     */
+    public void setPiMaintainStaff(String piMaintainStaff) {
+        this.piMaintainStaff = piMaintainStaff == null ? null : piMaintainStaff.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @return PI_Maintain_Tel - 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public String getPiMaintainTel() {
+        return piMaintainTel;
+    }
+
+    /**
+     * 璁剧疆杩愮淮鑱旂郴鏂瑰紡
+     *
+     * @param piMaintainTel 杩愮淮鑱旂郴鏂瑰紡
+     */
+    public void setPiMaintainTel(String piMaintainTel) {
+        this.piMaintainTel = piMaintainTel == null ? null : piMaintainTel.trim();
+    }
+
+    /**
+     * 鑾峰彇杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @return PI_Running_Status - 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public Byte getPiRunningStatus() {
+        return piRunningStatus;
+    }
+
+    /**
+     * 璁剧疆杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     *
+     * @param piRunningStatus 杩愯鐘舵��(0:鏈仈缃�;1:涓婄嚎涓�;2:涓嬬嚎;3:鎷嗛櫎)
+     */
+    public void setPiRunningStatus(Byte piRunningStatus) {
+        this.piRunningStatus = piRunningStatus;
+    }
+
+    /**
+     * 鑾峰彇鍝佺墝鍨嬪彿
+     *
+     * @return PI_Brand_Model - 鍝佺墝鍨嬪彿
+     */
+    public String getPiBrandModel() {
+        return piBrandModel;
+    }
+
+    /**
+     * 璁剧疆鍝佺墝鍨嬪彿
+     *
+     * @param piBrandModel 鍝佺墝鍨嬪彿
+     */
+    public void setPiBrandModel(String piBrandModel) {
+        this.piBrandModel = piBrandModel == null ? null : piBrandModel.trim();
+    }
+
+    /**
+     * 鑾峰彇璁惧鍙傛暟
+     *
+     * @return PI_Device_Param - 璁惧鍙傛暟
+     */
+    public String getPiDeviceParam() {
+        return piDeviceParam;
+    }
+
+    /**
+     * 璁剧疆璁惧鍙傛暟
+     *
+     * @param piDeviceParam 璁惧鍙傛暟
+     */
+    public void setPiDeviceParam(String piDeviceParam) {
+        this.piDeviceParam = piDeviceParam == null ? null : piDeviceParam.trim();
+    }
+
+    /**
+     * 鑾峰彇鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @return PI_Ownership - 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public Byte getPiOwnership() {
+        return piOwnership;
+    }
+
+    /**
+     * 璁剧疆鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     *
+     * @param piOwnership 鎵�鏈夋潈锛�0:璐拱;1:绉熻祦锛�
+     */
+    public void setPiOwnership(Byte piOwnership) {
+        this.piOwnership = piOwnership;
+    }
+
+    /**
+     * @return PI_QR_Code
+     */
+    public String getPiQrCode() {
+        return piQrCode;
+    }
+
+    /**
+     * @param piQrCode
+     */
+    public void setPiQrCode(String piQrCode) {
+        this.piQrCode = piQrCode == null ? null : piQrCode.trim();
+    }
+
+    /**
+     * 鑾峰彇鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @return PI_Other_QR_Code - 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public String getPiOtherQrCode() {
+        return piOtherQrCode;
+    }
+
+    /**
+     * 璁剧疆鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     *
+     * @param piOtherQrCode 鍏朵粬绗笁鏂规垨璁惧鑷甫浜岀淮鐮�
+     */
+    public void setPiOtherQrCode(String piOtherQrCode) {
+        this.piOtherQrCode = piOtherQrCode == null ? null : piOtherQrCode.trim();
+    }
+
+    /**
+     * @return PI_Create_Time
+     */
+    public Date getPiCreateTime() {
+        return piCreateTime;
+    }
+
+    /**
+     * @param piCreateTime
+     */
+    public void setPiCreateTime(Date piCreateTime) {
+        this.piCreateTime = piCreateTime;
+    }
+
+    /**
+     * @return PI_Update_Time
+     */
+    public Date getPiUpdateTime() {
+        return piUpdateTime;
+    }
+
+    /**
+     * @param piUpdateTime
+     */
+    public void setPiUpdateTime(Date piUpdateTime) {
+        this.piUpdateTime = piUpdateTime;
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceInfoMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceInfoMapper.java
deleted file mode 100644
index dbf049f..0000000
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceInfoMapper.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package cn.flightfeather.supervision.domain.ds1.mapper;
-
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo;
-import cn.flightfeather.supervision.domain.util.MyMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-@Mapper
-public interface DeviceInfoMapper extends MyMapper<DeviceInfo> {
-}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceLocationMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceLocationMapper.java
deleted file mode 100644
index 63b60f2..0000000
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceLocationMapper.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package cn.flightfeather.supervision.domain.ds1.mapper;
-
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation;
-import cn.flightfeather.supervision.domain.util.MyMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-@Mapper
-public interface DeviceLocationMapper extends MyMapper<DeviceLocation> {
-}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceStatusMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceStatusMapper.java
new file mode 100644
index 0000000..f023f4b
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/DeviceStatusMapper.java
@@ -0,0 +1,9 @@
+package cn.flightfeather.supervision.domain.ds1.mapper;
+
+import cn.flightfeather.supervision.domain.ds1.entity.DeviceStatus;
+import cn.flightfeather.supervision.domain.util.MyMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DeviceStatusMapper extends MyMapper<DeviceStatus> {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorDeviceInfoMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorDeviceInfoMapper.java
new file mode 100644
index 0000000..eaf5963
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/MonitorDeviceInfoMapper.java
@@ -0,0 +1,9 @@
+package cn.flightfeather.supervision.domain.ds1.mapper;
+
+import cn.flightfeather.supervision.domain.ds1.entity.MonitorDeviceInfo;
+import cn.flightfeather.supervision.domain.util.MyMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MonitorDeviceInfoMapper extends MyMapper<MonitorDeviceInfo> {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProductionDeviceInfoMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProductionDeviceInfoMapper.java
new file mode 100644
index 0000000..0b062e6
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/ProductionDeviceInfoMapper.java
@@ -0,0 +1,9 @@
+package cn.flightfeather.supervision.domain.ds1.mapper;
+
+import cn.flightfeather.supervision.domain.ds1.entity.ProductionDeviceInfo;
+import cn.flightfeather.supervision.domain.util.MyMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ProductionDeviceInfoMapper extends MyMapper<ProductionDeviceInfo> {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/TreatmentDeviceInfoMapper.java b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/TreatmentDeviceInfoMapper.java
new file mode 100644
index 0000000..9a8c6f8
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/mapper/TreatmentDeviceInfoMapper.java
@@ -0,0 +1,9 @@
+package cn.flightfeather.supervision.domain.ds1.mapper;
+
+import cn.flightfeather.supervision.domain.ds1.entity.TreatmentDeviceInfo;
+import cn.flightfeather.supervision.domain.util.MyMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface TreatmentDeviceInfoMapper extends MyMapper<TreatmentDeviceInfo> {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt
index 46fdfe1..7d7c7ac 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt
@@ -1,9 +1,11 @@
 package cn.flightfeather.supervision.domain.ds1.repository
 
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation
-import cn.flightfeather.supervision.domain.ds1.mapper.DeviceInfoMapper
-import cn.flightfeather.supervision.domain.ds1.mapper.DeviceLocationMapper
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.domain.ds1.entity.*
+import cn.flightfeather.supervision.domain.ds1.mapper.DeviceStatusMapper
+import cn.flightfeather.supervision.domain.ds1.mapper.MonitorDeviceInfoMapper
+import cn.flightfeather.supervision.domain.ds1.mapper.TreatmentDeviceInfoMapper
+import cn.flightfeather.supervision.domain.ds1.mapper.ProductionDeviceInfoMapper
 import org.springframework.stereotype.Repository
 
 /**
@@ -13,48 +15,97 @@
  */
 @Repository
 class DeviceRep(
-    private val deviceInfoMapper: DeviceInfoMapper,
-    private val deviceLocationMapper: DeviceLocationMapper,
+    private val monitorDeviceInfoMapper: MonitorDeviceInfoMapper,
+    private val treatmentDeviceInfoMapper: TreatmentDeviceInfoMapper,
+    private val productionDeviceInfoMapper: ProductionDeviceInfoMapper,
+    private val deviceStatusMapper: DeviceStatusMapper,
 ) {
     /***--DeviceInfo--***/
-    fun findDevice(sceneId: String): DeviceInfo? {
-        return deviceInfoMapper.selectByPrimaryKey(sceneId)
+
+    /**
+     * 鏌ヨ璁惧淇℃伅
+     * @param deviceId 璁惧涓婚敭id
+     * @param type 璁惧绫诲瀷
+     * @return 璁惧淇℃伅
+     */
+    fun findDevice(deviceId: Int, type: Constant.DeviceType): BaseDevice? {
+        return when (type) {
+            Constant.DeviceType.MONITOR_DEVICE -> monitorDeviceInfoMapper.selectByPrimaryKey(deviceId)
+            Constant.DeviceType.TREATMENT_DEVICE -> treatmentDeviceInfoMapper.selectByPrimaryKey(deviceId)
+            Constant.DeviceType.PRODUCTION_DEVICE -> productionDeviceInfoMapper.selectByPrimaryKey(deviceId)
+        }
     }
 
-    fun findDeviceList(sceneId: String): List<DeviceInfo> {
-        return findDeviceList(DeviceInfo().apply { diSceneGuid = sceneId })
+    /**
+     * 鏌ヨ璁惧淇℃伅
+     * @param sceneId 鍦烘櫙涓婚敭id
+     * @param type 璁惧绫诲瀷
+     * @return 璁惧淇℃伅
+     */
+    fun findDeviceList(sceneId: String, type: Constant.DeviceType): List<BaseDevice> {
+        return when (type) {
+            Constant.DeviceType.MONITOR_DEVICE -> findDeviceList(MonitorDeviceInfo().apply { diSceneGuid = sceneId })
+            Constant.DeviceType.TREATMENT_DEVICE -> findDeviceList(TreatmentDeviceInfo()
+                .apply { piSceneGuid = sceneId })
+            Constant.DeviceType.PRODUCTION_DEVICE -> findDeviceList(ProductionDeviceInfo()
+                .apply { wiSceneGuid = sceneId })
+        }
+    }
+    fun findDeviceList(monitorDeviceInfo: MonitorDeviceInfo): List<MonitorDeviceInfo> {
+        return monitorDeviceInfoMapper.select(monitorDeviceInfo)
+    }
+    fun findDeviceList(treatmentDeviceInfo: TreatmentDeviceInfo): List<TreatmentDeviceInfo> {
+        return treatmentDeviceInfoMapper.select(treatmentDeviceInfo)
+    }
+    fun findDeviceList(productionDeviceInfo: ProductionDeviceInfo): List<ProductionDeviceInfo> {
+        return productionDeviceInfoMapper.select(productionDeviceInfo)
     }
 
-    fun findDeviceList(deviceInfo: DeviceInfo): List<DeviceInfo> {
-        return deviceInfoMapper.select(deviceInfo)
+    /**
+     * 鎻掑叆璁惧淇℃伅
+     */
+    fun insertDevice(monitorDeviceInfo: MonitorDeviceInfo): Int {
+        return monitorDeviceInfoMapper.insert(monitorDeviceInfo)
+    }
+    fun insertDevice(treatmentDeviceInfo: TreatmentDeviceInfo): Int {
+        return treatmentDeviceInfoMapper.insert(treatmentDeviceInfo)
+    }
+    fun insertDevice(productionDeviceInfo: ProductionDeviceInfo): Int {
+        return productionDeviceInfoMapper.insert(productionDeviceInfo)
     }
 
-    fun insertDevice(deviceInfo: DeviceInfo): Int {
-        return deviceInfoMapper.insert(deviceInfo)
+    /**
+     * 鏇存柊璁惧淇℃伅
+     */
+    fun updateDevice(monitorDeviceInfo: MonitorDeviceInfo): Int {
+        return monitorDeviceInfoMapper.updateByPrimaryKey(monitorDeviceInfo)
+    }
+    fun updateDevice(treatmentDeviceInfo: TreatmentDeviceInfo): Int {
+        return treatmentDeviceInfoMapper.updateByPrimaryKey(treatmentDeviceInfo)
+    }
+    fun updateDevice(productionDeviceInfo: ProductionDeviceInfo): Int {
+        return productionDeviceInfoMapper.updateByPrimaryKey(productionDeviceInfo)
     }
 
-    fun updateDevice(deviceInfo: DeviceInfo): Int {
-        return deviceInfoMapper.updateByPrimaryKey(deviceInfo)
+    /***--DeviceStatus--***/
+    fun findStatus(id: Int): DeviceStatus? {
+        return deviceStatusMapper.selectByPrimaryKey(id)
     }
 
-    /***--DeviceLocation--***/
-    fun findLocation(id: Int): DeviceLocation? {
-        return deviceLocationMapper.selectByPrimaryKey(id)
+    fun findStatuses(deviceId: Int): List<DeviceStatus> {
+        return findStatuses(DeviceStatus()
+            .apply { dlDeviceId = deviceId })
     }
 
-    fun findLocations(deviceId: Int): List<DeviceLocation> {
-        return findLocations(DeviceLocation().apply { dlDeviceId = deviceId })
+    fun findStatuses(location: DeviceStatus): List<DeviceStatus> {
+        return deviceStatusMapper.select(location)
     }
 
-    fun findLocations(location: DeviceLocation): List<DeviceLocation> {
-        return deviceLocationMapper.select(location)
+    fun insertStatus(location: DeviceStatus): Int {
+        return deviceStatusMapper.insert(location)
     }
 
-    fun insertLocation(location: DeviceLocation): Int {
-        return deviceLocationMapper.insert(location)
-    }
-
-    fun updateLocation(location: DeviceLocation): Int {
-        return deviceLocationMapper.updateByPrimaryKey(location)
+    fun updateStatus(location: DeviceStatus): Int {
+        return deviceStatusMapper.updateByPrimaryKey(location)
     }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/DeviceService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/DeviceService.kt
index 39bfb91..fceaf90 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/DeviceService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/DeviceService.kt
@@ -1,24 +1,34 @@
 package cn.flightfeather.supervision.lightshare.service
 
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.domain.ds1.entity.BaseDevice
+import cn.flightfeather.supervision.domain.ds1.entity.DeviceStatus
 import org.springframework.web.multipart.MultipartFile
 
 interface DeviceService {
 
-    fun findDevices(sceneId: String): List<DeviceInfo>
+    /**
+     * 鏌ヨ鍦烘櫙璁惧
+     * @param sceneId 鍦烘櫙id
+     * @param deviceType 璁惧绫诲瀷
+     * @return 璁惧淇℃伅
+     */
+    fun findDevices(sceneId: String, deviceType: Constant.DeviceType): List<BaseDevice>
 
     /**
      * 鏂板璁惧淇℃伅
      */
-    fun insertDevice(deviceInfo: DeviceInfo): Int
+    fun insertDevice(deviceInfo: String, deviceType: Constant.DeviceType): Int
 
     /**
      * 鏇存柊璁惧淇℃伅
      */
-    fun updateDevice(deviceInfo: DeviceInfo): Int
+    fun updateDevice(deviceInfo: String, deviceType: Constant.DeviceType): Int
 
-    fun findDeviceLocations(deviceId: Int): List<DeviceLocation>
+    /**
+     * 鏌ヨ璁惧鐘舵�佸彉鏇翠俊鎭�
+     */
+    fun findDeviceLocations(sceneId: String?, deviceId: Int, deviceType: Constant.DeviceType): List<DeviceStatus>
 
     /**
      *鏂板璁惧浣嶇疆鍙樻洿淇℃伅
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/UserMapService.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/UserMapService.kt
index 57b4cfd..41d0c3d 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/UserMapService.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/UserMapService.kt
@@ -1,6 +1,7 @@
 package cn.flightfeather.supervision.lightshare.service
 
 import cn.flightfeather.supervision.domain.ds1.entity.Scense
+import cn.flightfeather.supervision.domain.ds1.entity.Userinfo
 import cn.flightfeather.supervision.domain.ds2.entity.UserMap
 import cn.flightfeather.supervision.lightshare.vo.AreaVo
 import cn.flightfeather.supervision.lightshare.vo.DeviceMapVo
@@ -17,7 +18,7 @@
      */
     fun getSceneByTZId(tzUserId: String): Scense?
 
-    fun autoCreateMap()
+    fun autoCreateMap(userList: List<Userinfo?>)
 
     fun fetchDeviceMap(areaVo: AreaVo): List<DeviceMapVo?>
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DeviceServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DeviceServiceImpl.kt
index d4a05aa..eac25dd 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DeviceServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/DeviceServiceImpl.kt
@@ -5,10 +5,11 @@
 import cn.flightfeather.supervision.common.utils.DateUtil
 import cn.flightfeather.supervision.common.utils.FileUtil
 import cn.flightfeather.supervision.common.utils.JsonUtil
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation
+import cn.flightfeather.supervision.domain.ds1.entity.*
 import cn.flightfeather.supervision.domain.ds1.repository.DeviceRep
 import cn.flightfeather.supervision.lightshare.service.DeviceService
+import com.google.gson.Gson
+import org.springframework.beans.factory.annotation.Value
 import org.springframework.stereotype.Service
 import org.springframework.web.multipart.MultipartFile
 import java.util.*
@@ -19,34 +20,68 @@
  * @author feiyu02
  */
 @Service
-class DeviceServiceImpl(private val deviceRep: DeviceRep) : DeviceService {
+class DeviceServiceImpl(
+    private val deviceRep: DeviceRep,
+    @Value("\${filePath}") var filePath: String,
+    @Value("\${imgPath}") var imgPath: String,
+) : DeviceService {
 
-    companion object{
-        private const val BASE_IMG_PATH = "${Constant.DEFAULT_FILE_PATH}/images/"
+    override fun findDevices(sceneId: String, deviceType: Constant.DeviceType): List<BaseDevice> {
+        return deviceRep.findDeviceList(sceneId, deviceType)
     }
 
-    override fun findDevices(sceneId: String): List<DeviceInfo> {
-        return deviceRep.findDeviceList(sceneId)
+    override fun insertDevice(deviceInfo: String, deviceType: Constant.DeviceType): Int {
+        return when (deviceType) {
+            Constant.DeviceType.MONITOR_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, MonitorDeviceInfo::class.java)
+                info.diCreateTime = Date()
+                deviceRep.insertDevice(info)
+            }
+            Constant.DeviceType.TREATMENT_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, TreatmentDeviceInfo::class.java)
+                info.piCreateTime = Date()
+                deviceRep.insertDevice(info)
+            }
+            Constant.DeviceType.PRODUCTION_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, ProductionDeviceInfo::class.java)
+                info.wiCreateTime = Date()
+                deviceRep.insertDevice(info)
+            }
+        }
     }
 
-    override fun insertDevice(deviceInfo: DeviceInfo): Int {
-        return deviceRep.insertDevice(deviceInfo)
+    override fun updateDevice(deviceInfo: String, deviceType: Constant.DeviceType): Int {
+        return when (deviceType) {
+            Constant.DeviceType.MONITOR_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, MonitorDeviceInfo::class.java)
+                deviceRep.updateDevice(info)
+            }
+            Constant.DeviceType.TREATMENT_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, TreatmentDeviceInfo::class.java)
+                deviceRep.updateDevice(info)
+            }
+            Constant.DeviceType.PRODUCTION_DEVICE -> {
+                val info = Gson().fromJson(deviceInfo, ProductionDeviceInfo::class.java)
+                deviceRep.updateDevice(info)
+            }
+        }
     }
 
-    override fun updateDevice(deviceInfo: DeviceInfo): Int {
-        return deviceRep.updateDevice(deviceInfo)
-    }
-
-    override fun findDeviceLocations(deviceId: Int): List<DeviceLocation> {
-        return deviceRep.findLocations(deviceId)
+    override fun findDeviceLocations(
+        sceneId: String?,
+        deviceId: Int,
+        deviceType: Constant.DeviceType,
+    ): List<DeviceStatus> {
+        return emptyList()
     }
 
     override fun insertDeviceLocation(deviceLocation: String, files: Array<MultipartFile>): Int {
-        val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceLocation::class.java)
+        val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceStatus::class.java)
         val time = DateUtil.DateToString(obj.dlCreateTime, DateUtil.DateStyle.YYYY_MM_DD)
-        val picPath = FileUtil.saveFiles(files, BASE_IMG_PATH, "device/${obj.dlId}/${time}")
+        val picPath = FileUtil.saveFiles(files, imgPath, "device/${obj.dlId}/${time}")
         obj.dlPicUrl = picPath.joinToString(";")
-        return deviceRep.insertLocation(obj)
+        obj.dlCreateTime = Date()
+        return deviceRep.insertStatus(obj)
     }
 
     override fun updateDeviceLocation(
@@ -55,14 +90,14 @@
         files: Array<MultipartFile>,
     ): Int {
         // 鑾峰彇鏇存柊淇℃伅
-        val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceLocation::class.java)
+        val obj = JsonUtil.gson.fromJson(deviceLocation, DeviceStatus::class.java)
 
         // 鑾峰彇鍘熶綅缃俊鎭紝鍒犻櫎鍥剧墖璺緞鍜屽搴斿浘鐗�
-        val dL = deviceRep.findLocation(obj.dlId) ?: throw BizException("璇ヨ澶囦綅缃俊鎭笉瀛樺湪锛屾棤娉曚慨鏀�")
+        val dL = deviceRep.findStatus(obj.dlId) ?: throw BizException("璇ヨ澶囦綅缃俊鎭笉瀛樺湪锛屾棤娉曚慨鏀�")
         val oldImg = dL.dlPicUrl.split(";").toMutableList()
         deleteImg.forEach {
             if (oldImg.contains(it)) {
-                if (FileUtil.delFile(BASE_IMG_PATH + it)) {
+                if (FileUtil.delFile(imgPath + it)) {
                     oldImg.remove(it)
                 }
             }
@@ -70,10 +105,10 @@
 
         // 淇濆瓨鏂板鍥剧墖
         val time = DateUtil.DateToString(obj.dlCreateTime, DateUtil.DateStyle.YYYY_MM_DD)
-        val picPath = FileUtil.saveFiles(files, BASE_IMG_PATH, "device/${obj.dlId}/${time}")
+        val picPath = FileUtil.saveFiles(files, imgPath, "device/${obj.dlId}/${time}")
 
         oldImg.addAll(picPath)
         obj.dlPicUrl = oldImg.joinToString(";")
-        return deviceRep.updateLocation(obj)
+        return deviceRep.updateStatus(obj)
     }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
index 4c5d8c6..8f142eb 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/MediafileServiceImpl.kt
@@ -13,11 +13,16 @@
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Value
 import java.io.File
 
 
 @Service
-class MediafileServiceImpl(val mediafileMapper: MediafileMapper) : MediafileService {
+class MediafileServiceImpl(
+    val mediafileMapper: MediafileMapper,
+    @Value("\${filePath}") var filePath: String,
+    @Value("\${imgPath}") var imgPath: String,
+) : MediafileService {
 
     private val logging: Logger = LoggerFactory.getLogger(MediafileServiceImpl::class.java)
 
@@ -117,7 +122,7 @@
         val path = mediafile.extension1
         //File("/Users/liwei/images/${path}/${id}.jpg").delete()
         //鍏堝垹鍥剧墖
-        val  f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg")
+        val f = File("${Constant.DEFAULT_FILE_PATH}/images/$path/$id.jpg")
         if (f.exists()) {
             f.delete()
         }
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
index 764f171..44f615a 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserMapServiceImpl.kt
@@ -48,12 +48,13 @@
         return userMapRep.findFromSupervision(tzUserId)
     }
 
-    override fun autoCreateMap() {
+    override fun autoCreateMap(userList: List<Userinfo?>) {
         // 閫夋嫨闇�瑕佸鐞嗙殑璐︽埛
-        val userList = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
-            createCriteria().andEqualTo("remark", "寰愭眹鍖�")
-        })
+//        val userList = userinfoMapper.selectByExample(Example(Userinfo::class.java).apply {
+//            createCriteria().andEqualTo("remark", "寰愭眹鍖�")
+//        })
         userList.forEach {
+            it ?: return@forEach
             // 鏌ユ壘鏄惁宸茬粡鏈夎处鎴峰尮閰嶈褰�
             val records = userMapMapper.selectByExample(Example(UserMap::class.java).apply {
                 createCriteria().andEqualTo("svUserId", it.guid)
@@ -72,6 +73,7 @@
                             tzUserName = tzU.realname
                             svUserId = it.guid
                             svUserName = it.realname
+                            umCreateTime = Date()
                         })
                     }
                 }
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceMapVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceMapVo.kt
index 23f9e6c..888981f 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceMapVo.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceMapVo.kt
@@ -37,6 +37,7 @@
                     svUserName = it.svUserName
                     tzUserId = it.tzUserId
                     tzUserName = it.tzUserName
+                    createTime = it.createTime
                 })
             }
             return res
@@ -53,6 +54,7 @@
                     svUserName = it.svUserName
                     tzUserId = it.tzUserId
                     tzUserName = it.tzUserName
+                    createTime = it.createTime
                 })
             }
             return res
@@ -69,6 +71,7 @@
                     svUserName = it.svUserName
                     tzUserId = it.tzUserId
                     tzUserName = it.tzUserName
+                    createTime = it.createTime
                 })
             }
             return res
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceStatusVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceStatusVo.kt
new file mode 100644
index 0000000..a7fc0a7
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/DeviceStatusVo.kt
@@ -0,0 +1,11 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import cn.flightfeather.supervision.domain.ds1.entity.DeviceStatus
+
+/**
+ *
+ * @date 2024/8/13
+ * @author feiyu02
+ */
+class DeviceStatusVo : DeviceStatus() {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorDeviceInfoVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorDeviceInfoVo.kt
new file mode 100644
index 0000000..bbd4c91
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/MonitorDeviceInfoVo.kt
@@ -0,0 +1,32 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.domain.ds1.entity.MonitorDeviceInfo
+import org.springframework.beans.BeanUtils
+
+/**
+ *
+ * @date 2024/8/13
+ * @author feiyu02
+ */
+class MonitorDeviceInfoVo : MonitorDeviceInfo {
+    constructor():super()
+    constructor(obj: MonitorDeviceInfo){
+        BeanUtils.copyProperties(obj, this)
+        this.sceneType = Constant.SceneType.getByValue(this.diSceneTypeId.toString()).text
+        this.type
+    }
+
+    // 鍦烘櫙绫诲瀷
+    var sceneType: String? = null
+    // 璁惧绫诲瀷
+    var type: String? = null
+    // 璁惧瀛愮被鍨�
+    var subType: String? = null
+    // 杩愮淮棰戞
+    var maintainFrequency: String? = null
+    // 杩愯鐘舵��
+    var runningStatus: String? = null
+    // 鎵�鏈夋潈
+    var ownership: String? = null
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ProductionDeviceInfoVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ProductionDeviceInfoVo.kt
new file mode 100644
index 0000000..aa64401
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/ProductionDeviceInfoVo.kt
@@ -0,0 +1,21 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import cn.flightfeather.supervision.domain.ds1.entity.ProductionDeviceInfo
+
+/**
+ *
+ * @date 2024/8/13
+ * @author feiyu02
+ */
+class ProductionDeviceInfoVo: ProductionDeviceInfo() {
+    // 鍦烘櫙绫诲瀷
+    var sceneType: String? = null
+    // 璁惧绫诲瀷
+    var type: String? = null
+    // 璁惧瀛愮被鍨�
+    var subType: String? = null
+    // 杩愯鐘舵��
+    var runningStatus: String? = null
+    // 鎵�鏈夋潈
+    var ownership: String? = null
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/TreatmentDeviceInfoVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/TreatmentDeviceInfoVo.kt
new file mode 100644
index 0000000..0b87d16
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/TreatmentDeviceInfoVo.kt
@@ -0,0 +1,23 @@
+package cn.flightfeather.supervision.lightshare.vo
+
+import cn.flightfeather.supervision.domain.ds1.entity.TreatmentDeviceInfo
+
+/**
+ *
+ * @date 2024/8/13
+ * @author feiyu02
+ */
+class TreatmentDeviceInfoVo : TreatmentDeviceInfo() {
+    // 鍦烘櫙绫诲瀷
+    var sceneType: String? = null
+    // 璁惧绫诲瀷
+    var type: String? = null
+    // 璁惧瀛愮被鍨�
+    var subType: String? = null
+    // 杩愮淮棰戞
+    var maintainFrequency: String? = null
+    // 杩愯鐘舵��
+    var runningStatus: String? = null
+    // 鎵�鏈夋潈
+    var ownership: String? = null
+}
\ No newline at end of file
diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
index 7ee606f..6080ea0 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
@@ -1,6 +1,7 @@
 package cn.flightfeather.supervision.lightshare.web
 
-import cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo
+import cn.flightfeather.supervision.common.utils.Constant
+import cn.flightfeather.supervision.domain.ds1.entity.MonitorDeviceInfo
 import cn.flightfeather.supervision.lightshare.service.DeviceService
 import io.swagger.annotations.Api
 import io.swagger.annotations.ApiOperation
@@ -16,33 +17,44 @@
     @ApiOperation("鑾峰彇鍦烘櫙璁惧淇℃伅")
     @GetMapping
     fun fetchDevice(
-        @ApiParam("鍦烘櫙id") sceneId: String,
-    ) = resPack { deviceService.findDevices(sceneId) }
+        @ApiParam("鍦烘櫙id") @RequestParam sceneId: String,
+        @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
+    ) = resPack { deviceService.findDevices(sceneId, Constant.DeviceType.fromValue(deviceTypeId)) }
 
     @ApiOperation("鏂板鍦烘櫙璁惧淇℃伅")
     @PutMapping("/upload")
     fun uploadDevice(
-        @ApiParam("璁惧淇℃伅") deviceInfo: DeviceInfo,
-    ) = resPack { deviceService.insertDevice(deviceInfo) }
+        @ApiParam("璁惧淇℃伅") @RequestBody deviceInfo: String,
+        @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
+    ) = resPack { deviceService.insertDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId)) }
 
     @ApiOperation("鏇存柊鍦烘櫙璁惧淇℃伅")
     @PostMapping("/update")
     fun updateDevice(
-        @ApiParam("璁惧淇℃伅") deviceInfo: DeviceInfo,
-    ) = resPack { deviceService.updateDevice(deviceInfo) }
+        @ApiParam("璁惧淇℃伅") @RequestBody deviceInfo: String,
+        @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
+    ) = resPack { deviceService.updateDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId)) }
+
+    @ApiOperation("鑾峰彇鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
+    @GetMapping("/status")
+    fun fetchDeviceLocation(
+        @ApiParam("鍦烘櫙id") @RequestParam(required = false) sceneId: String?,
+        @ApiParam("璁惧id") @RequestParam deviceId: Int,
+        @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
+    ) = resPack { deviceService.findDeviceLocations(sceneId, deviceId, Constant.DeviceType.fromValue(deviceTypeId)) }
 
     @ApiOperation("鏂板鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
-    @PutMapping("/location/upload")
+    @PutMapping("/status/upload")
     fun uploadDeviceLocation(
-        @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("location") location: String,
+        @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("status") status: String,
         @ApiParam("璁惧鍥剧墖") @RequestPart("images") images: Array<MultipartFile>,
-    ) = resPack { deviceService.insertDeviceLocation(location, images) }
+    ) = resPack { deviceService.insertDeviceLocation(status, images) }
 
     @ApiOperation("鏇存柊鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
-    @PutMapping("/location/update")
+    @PutMapping("/status/update")
     fun updateDeviceLocation(
-        @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("location") location: String,
-        @ApiParam("鍒犻櫎鐨勮澶囧浘鐗囪矾寰�") @RequestPart("deleteImg") deleteImg: List<String>,
+        @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("status") status: String,
+        @ApiParam("鍒犻櫎鐨勮澶囧浘鐗囪矾寰�") @RequestParam("deleteImg") deleteImg: List<String>,
         @ApiParam("璁惧鍥剧墖") @RequestPart("images") images: Array<MultipartFile>,
-    ) = resPack { deviceService.updateDeviceLocation(location, deleteImg, images) }
+    ) = resPack { deviceService.updateDeviceLocation(status, deleteImg, images) }
 }
\ No newline at end of file
diff --git a/src/main/resources/application-pro-https.yml b/src/main/resources/application-pro-https.yml
new file mode 100644
index 0000000..d55fa7e
--- /dev/null
+++ b/src/main/resources/application-pro-https.yml
@@ -0,0 +1,20 @@
+spring:
+  datasource:
+    ds1:
+      #-鍙戝竷鏈嶅姟鍣�-
+      url: jdbc:mysql://localhost:3306/supervision?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+      username: supervision
+      password: supervision_feiyu2021
+    ds2:
+      #-鍙戝竷鏈嶅姟鍣�-
+      url: jdbc:mysql://localhost:3306/ledger?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+      username: ledger
+      password: ledger_fxxchackxr
+
+mybatis:
+  configuration:
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+
+imgPath: D:/02product/04supervision/images/
+filePath: D:/02product/04supervision/files/
+mode: prohttps
\ No newline at end of file
diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml
index fd3c0f7..7996f31 100644
--- a/src/main/resources/application-pro.yml
+++ b/src/main/resources/application-pro.yml
@@ -11,6 +11,10 @@
       username: ledger
       password: ledger_fxxchackxr
 
+mybatis:
+  configuration:
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+
 imgPath: D:/02product/04supervision/images/
 filePath: D:/02product/04supervision/files/
 mode: pro
\ No newline at end of file
diff --git a/src/main/resources/generator/generatorConfig4ds1.xml b/src/main/resources/generator/generatorConfig4ds1.xml
index ed6c252..74c0347 100644
--- a/src/main/resources/generator/generatorConfig4ds1.xml
+++ b/src/main/resources/generator/generatorConfig4ds1.xml
@@ -58,10 +58,18 @@
 <!--               enableSelectByExample="false" selectByExampleQueryId="false"/>-->
 <!--        <table tableName="ea_t_evaluation" domainObjectName="Evaluation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"-->
 <!--               enableSelectByExample="false" selectByExampleQueryId="false"/>-->
-<!--        <table tableName="sm_t_device_info" domainObjectName="DeviceInfo" enableCountByExample="false"-->
-<!--               enableUpdateByExample="false" enableDeleteByExample="false"-->
-<!--               enableSelectByExample="false" selectByExampleQueryId="false"/>-->
-        <table tableName="sm_t_device_location" domainObjectName="DeviceLocation" enableCountByExample="false"
+        <table tableName="di_t_monitor_device_info" domainObjectName="MonitorDeviceInfo" enableCountByExample="false"
+               enableUpdateByExample="false" enableDeleteByExample="false"
+               enableSelectByExample="false" selectByExampleQueryId="false"/>
+        <table tableName="di_t_treatment_device_info" domainObjectName="TreatmentDeviceInfo"
+               enableCountByExample="false"
+               enableUpdateByExample="false" enableDeleteByExample="false"
+               enableSelectByExample="false" selectByExampleQueryId="false"/>
+        <table tableName="di_t_production_device_info" domainObjectName="ProductionDeviceInfo"
+               enableCountByExample="false"
+               enableUpdateByExample="false" enableDeleteByExample="false"
+               enableSelectByExample="false" selectByExampleQueryId="false"/>
+        <table tableName="di_t_device_status" domainObjectName="DeviceStatus" enableCountByExample="false"
                enableUpdateByExample="false" enableDeleteByExample="false"
                enableSelectByExample="false" selectByExampleQueryId="false"/>
     </context>
diff --git a/src/main/resources/mapper/ds1/DeviceInfoMapper.xml b/src/main/resources/mapper/ds1/DeviceInfoMapper.xml
deleted file mode 100644
index 25df023..0000000
--- a/src/main/resources/mapper/ds1/DeviceInfoMapper.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?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="cn.flightfeather.supervision.domain.ds1.mapper.DeviceInfoMapper" >
-  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.DeviceInfo" >
-    <!--
-      WARNING - @mbg.generated
-    -->
-    <id column="DI_ID" property="diId" jdbcType="INTEGER" />
-    <result column="DI_Mn_Code" property="diMnCode" jdbcType="VARCHAR" />
-    <result column="DI_Name" property="diName" jdbcType="VARCHAR" />
-    <result column="DI_Scene_GUID" property="diSceneGuid" jdbcType="VARCHAR" />
-    <result column="DI_Supplier" property="diSupplier" jdbcType="VARCHAR" />
-    <result column="DI_Maintainer" property="diMaintainer" jdbcType="VARCHAR" />
-    <result column="DI_Running_Status" property="diRunningStatus" jdbcType="TINYINT" />
-    <result column="DI_Removed" property="diRemoved" jdbcType="BIT" />
-    <result column="DI_Type" property="diType" jdbcType="TINYINT" />
-    <result column="DI_Create_Time" property="diCreateTime" jdbcType="TIMESTAMP" />
-    <result column="DI_Update_Time" property="diUpdateTime" jdbcType="TIMESTAMP" />
-  </resultMap>
-  <sql id="Base_Column_List" >
-    <!--
-      WARNING - @mbg.generated
-    -->
-    DI_ID, DI_Mn_Code, DI_Name, DI_Scene_GUID, DI_Supplier, DI_Maintainer, DI_Running_Status, 
-    DI_Removed, DI_Type, DI_Create_Time, DI_Update_Time
-  </sql>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/DeviceLocationMapper.xml b/src/main/resources/mapper/ds1/DeviceLocationMapper.xml
deleted file mode 100644
index 6e99399..0000000
--- a/src/main/resources/mapper/ds1/DeviceLocationMapper.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?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="cn.flightfeather.supervision.domain.ds1.mapper.DeviceLocationMapper">
-  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.DeviceLocation">
-    <!--
-      WARNING - @mbg.generated
-    -->
-    <id column="DL_ID" jdbcType="INTEGER" property="dlId" />
-    <result column="DL_Device_Id" jdbcType="INTEGER" property="dlDeviceId" />
-    <result column="DL_Mn_Code" jdbcType="VARCHAR" property="dlMnCode" />
-    <result column="DL_Location" jdbcType="VARCHAR" property="dlLocation" />
-    <result column="DL_Longitude" jdbcType="DECIMAL" property="dlLongitude" />
-    <result column="DL_Latitude" jdbcType="DECIMAL" property="dlLatitude" />
-    <result column="DL_Standard" jdbcType="BIT" property="dlStandard" />
-    <result column="DL_UnStandard_Reason" jdbcType="VARCHAR" property="dlUnstandardReason" />
-    <result column="DL_Pic_Url" jdbcType="VARCHAR" property="dlPicUrl" />
-    <result column="DL_Create_Time" jdbcType="TIMESTAMP" property="dlCreateTime" />
-    <result column="DL_Update_Time" jdbcType="TIMESTAMP" property="dlUpdateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--
-      WARNING - @mbg.generated
-    -->
-    DL_ID, DL_Device_Id, DL_Mn_Code, DL_Location, DL_Longitude, DL_Latitude, DL_Standard, 
-    DL_UnStandard_Reason, DL_Pic_Url, DL_Create_Time, DL_Update_Time
-  </sql>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/DeviceStatusMapper.xml b/src/main/resources/mapper/ds1/DeviceStatusMapper.xml
new file mode 100644
index 0000000..38e9d7a
--- /dev/null
+++ b/src/main/resources/mapper/ds1/DeviceStatusMapper.xml
@@ -0,0 +1,32 @@
+<?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="cn.flightfeather.supervision.domain.ds1.mapper.DeviceStatusMapper" >
+  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.DeviceStatus" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    <id column="DL_ID" property="dlId" jdbcType="INTEGER" />
+    <result column="DL_Device_Id" property="dlDeviceId" jdbcType="INTEGER" />
+    <result column="DL_Device_Type" property="dlDeviceType" jdbcType="TINYINT" />
+    <result column="DL_Scene_GUID" property="dlSceneGuid" jdbcType="VARCHAR" />
+    <result column="DL_Scene_Type_Id" property="dlSceneTypeId" jdbcType="TINYINT" />
+    <result column="DL_Location" property="dlLocation" jdbcType="VARCHAR" />
+    <result column="DL_Longitude" property="dlLongitude" jdbcType="DECIMAL" />
+    <result column="DL_Latitude" property="dlLatitude" jdbcType="DECIMAL" />
+    <result column="DL_Standard" property="dlStandard" jdbcType="BIT" />
+    <result column="DL_UnStandard_Reason" property="dlUnstandardReason" jdbcType="VARCHAR" />
+    <result column="DL_Real_Time_Status" property="dlRealTimeStatus" jdbcType="TINYINT" />
+    <result column="DL_Pic_Url" property="dlPicUrl" jdbcType="VARCHAR" />
+    <result column="DL_Video_Url" property="dlVideoUrl" jdbcType="VARCHAR" />
+    <result column="DL_Create_Time" property="dlCreateTime" jdbcType="TIMESTAMP" />
+    <result column="DL_Update_Time" property="dlUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    DL_ID, DL_Device_Id, DL_Device_Type, DL_Scene_GUID, DL_Scene_Type_Id, DL_Location, 
+    DL_Longitude, DL_Latitude, DL_Standard, DL_UnStandard_Reason, DL_Real_Time_Status, 
+    DL_Pic_Url, DL_Video_Url, DL_Create_Time, DL_Update_Time
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/DustDataResultMapper.xml b/src/main/resources/mapper/ds1/DustDataResultMapper.xml
index a48cfd7..ba44d8c 100644
--- a/src/main/resources/mapper/ds1/DustDataResultMapper.xml
+++ b/src/main/resources/mapper/ds1/DustDataResultMapper.xml
@@ -1,27 +1,28 @@
-<?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="cn.flightfeather.supervision.domain.ds1.mapper.DustDataResultMapper">
-  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.DustDataResult">
+<?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="cn.flightfeather.supervision.domain.ds1.mapper.DustDataResultMapper" >
+  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.DustDataResult" >
     <!--
       WARNING - @mbg.generated
     -->
-    <id column="DR_Id" jdbcType="INTEGER" property="drId" />
-    <result column="DR_Scene_Id" jdbcType="VARCHAR" property="drSceneId" />
-    <result column="DR_Scene_Name" jdbcType="VARCHAR" property="drSceneName" />
-    <result column="DR_Time" jdbcType="DATE" property="drTime" />
-    <result column="DR_Exceed_Times" jdbcType="INTEGER" property="drExceedTimes" />
-    <result column="DR_Avg" jdbcType="DOUBLE" property="drAvg" />
-    <result column="DR_Max" jdbcType="DOUBLE" property="drMax" />
-    <result column="DR_Min" jdbcType="DOUBLE" property="drMin" />
-    <result column="DR_Over_Avg_Per" jdbcType="DOUBLE" property="drOverAvgPer" />
-    <result column="DR_Data_Num" jdbcType="INTEGER" property="drDataNum" />
-    <result column="DR_Effective_Rate" jdbcType="DOUBLE" property="drEffectiveRate" />
+    <id column="DR_Id" property="drId" jdbcType="INTEGER" />
+    <result column="DR_Scene_Id" property="drSceneId" jdbcType="VARCHAR" />
+    <result column="DR_Scene_Name" property="drSceneName" jdbcType="VARCHAR" />
+    <result column="DR_Device_Code" property="drDeviceCode" jdbcType="VARCHAR" />
+    <result column="DR_Time" property="drTime" jdbcType="DATE" />
+    <result column="DR_Exceed_Times" property="drExceedTimes" jdbcType="INTEGER" />
+    <result column="DR_Avg" property="drAvg" jdbcType="DOUBLE" />
+    <result column="DR_Max" property="drMax" jdbcType="DOUBLE" />
+    <result column="DR_Min" property="drMin" jdbcType="DOUBLE" />
+    <result column="DR_Over_Avg_Per" property="drOverAvgPer" jdbcType="DOUBLE" />
+    <result column="DR_Data_Num" property="drDataNum" jdbcType="INTEGER" />
+    <result column="DR_Effective_Rate" property="drEffectiveRate" jdbcType="DOUBLE" />
   </resultMap>
-  <sql id="Base_Column_List">
+  <sql id="Base_Column_List" >
     <!--
       WARNING - @mbg.generated
     -->
-    DR_Id, DR_Scene_Id, DR_Scene_Name, DR_Time, DR_Exceed_Times, DR_Avg, DR_Max, DR_Min, 
-    DR_Over_Avg_Per, DR_Data_Num, DR_Effective_Rate
+    DR_Id, DR_Scene_Id, DR_Scene_Name, DR_Device_Code, DR_Time, DR_Exceed_Times, DR_Avg, 
+    DR_Max, DR_Min, DR_Over_Avg_Per, DR_Data_Num, DR_Effective_Rate
   </sql>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/MonitorDeviceInfoMapper.xml b/src/main/resources/mapper/ds1/MonitorDeviceInfoMapper.xml
new file mode 100644
index 0000000..7efc9e7
--- /dev/null
+++ b/src/main/resources/mapper/ds1/MonitorDeviceInfoMapper.xml
@@ -0,0 +1,38 @@
+<?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="cn.flightfeather.supervision.domain.ds1.mapper.MonitorDeviceInfoMapper" >
+  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.MonitorDeviceInfo" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    <id column="DI_ID" property="diId" jdbcType="INTEGER" />
+    <result column="DI_Device_Code" property="diDeviceCode" jdbcType="VARCHAR" />
+    <result column="DI_Name" property="diName" jdbcType="VARCHAR" />
+    <result column="DI_Scene_GUID" property="diSceneGuid" jdbcType="VARCHAR" />
+    <result column="DI_Scene_Type_Id" property="diSceneTypeId" jdbcType="TINYINT" />
+    <result column="DI_Type_Id" property="diTypeId" jdbcType="TINYINT" />
+    <result column="DI_Subtype_Id" property="diSubtypeId" jdbcType="TINYINT" />
+    <result column="DI_Supplier" property="diSupplier" jdbcType="VARCHAR" />
+    <result column="DI_Maintainer" property="diMaintainer" jdbcType="VARCHAR" />
+    <result column="DI_Maintain_Frequency" property="diMaintainFrequency" jdbcType="TINYINT" />
+    <result column="DI_Maintain_Staff" property="diMaintainStaff" jdbcType="VARCHAR" />
+    <result column="DI_Maintain_Tel" property="diMaintainTel" jdbcType="VARCHAR" />
+    <result column="DI_Running_Status" property="diRunningStatus" jdbcType="TINYINT" />
+    <result column="DI_Brand_Model" property="diBrandModel" jdbcType="VARCHAR" />
+    <result column="DI_Device_Param" property="diDeviceParam" jdbcType="VARCHAR" />
+    <result column="DI_Ownership" property="diOwnership" jdbcType="TINYINT" />
+    <result column="DI_QR_Code" property="diQrCode" jdbcType="VARCHAR" />
+    <result column="DI_Other_QR_Code" property="diOtherQrCode" jdbcType="VARCHAR" />
+    <result column="DI_Create_Time" property="diCreateTime" jdbcType="TIMESTAMP" />
+    <result column="DI_Update_Time" property="diUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    DI_ID, DI_Device_Code, DI_Name, DI_Scene_GUID, DI_Scene_Type_Id, DI_Type_Id, DI_Subtype_Id,
+    DI_Supplier, DI_Maintainer, DI_Maintain_Frequency, DI_Maintain_Staff, DI_Maintain_Tel, 
+    DI_Running_Status, DI_Brand_Model, DI_Device_Param, DI_Ownership, DI_QR_Code, DI_Other_QR_Code, 
+    DI_Create_Time, DI_Update_Time
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/ProductionDeviceInfoMapper.xml b/src/main/resources/mapper/ds1/ProductionDeviceInfoMapper.xml
new file mode 100644
index 0000000..808937f
--- /dev/null
+++ b/src/main/resources/mapper/ds1/ProductionDeviceInfoMapper.xml
@@ -0,0 +1,37 @@
+<?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="cn.flightfeather.supervision.domain.ds1.mapper.ProductionDeviceInfoMapper" >
+  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.ProductionDeviceInfo" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    <id column="WI_ID" property="wiId" jdbcType="INTEGER" />
+    <result column="WI_Device_Code" property="wiDeviceCode" jdbcType="VARCHAR" />
+    <result column="WI_Name" property="wiName" jdbcType="VARCHAR" />
+    <result column="WI_Scene_GUID" property="wiSceneGuid" jdbcType="VARCHAR" />
+    <result column="WI_Scene_Type_Id" property="wiSceneTypeId" jdbcType="TINYINT" />
+    <result column="WI_Type_Id" property="wiTypeId" jdbcType="TINYINT" />
+    <result column="WI_Subtype_Id" property="wiSubtypeId" jdbcType="TINYINT" />
+    <result column="WI_Supplier" property="wiSupplier" jdbcType="VARCHAR" />
+    <result column="WI_Servicer" property="wiServicer" jdbcType="VARCHAR" />
+    <result column="WI_Maintain_Staff" property="wiMaintainStaff" jdbcType="VARCHAR" />
+    <result column="WI_Maintain_Tel" property="wiMaintainTel" jdbcType="VARCHAR" />
+    <result column="WI_Running_Status" property="wiRunningStatus" jdbcType="TINYINT" />
+    <result column="WI_Brand_Model" property="wiBrandModel" jdbcType="VARCHAR" />
+    <result column="WI_Device_Param" property="wiDeviceParam" jdbcType="VARCHAR" />
+    <result column="WI_Ownership" property="wiOwnership" jdbcType="TINYINT" />
+    <result column="WI_QR_Code" property="wiQrCode" jdbcType="VARCHAR" />
+    <result column="WI_Other_QR_Code" property="wiOtherQrCode" jdbcType="VARCHAR" />
+    <result column="WI_Create_Time" property="wiCreateTime" jdbcType="TIMESTAMP" />
+    <result column="WI_Update_Time" property="wiUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    WI_ID, WI_Device_Code, WI_Name, WI_Scene_GUID, WI_Scene_Type_Id, WI_Type_Id, WI_Subtype_Id, 
+    WI_Supplier, WI_Servicer, WI_Maintain_Staff, WI_Maintain_Tel, WI_Running_Status, 
+    WI_Brand_Model, WI_Device_Param, WI_Ownership, WI_QR_Code, WI_Other_QR_Code, WI_Create_Time, 
+    WI_Update_Time
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ds1/TreatmentDeviceInfoMapper.xml b/src/main/resources/mapper/ds1/TreatmentDeviceInfoMapper.xml
new file mode 100644
index 0000000..1febd41
--- /dev/null
+++ b/src/main/resources/mapper/ds1/TreatmentDeviceInfoMapper.xml
@@ -0,0 +1,38 @@
+<?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="cn.flightfeather.supervision.domain.ds1.mapper.TreatmentDeviceInfoMapper" >
+  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.ds1.entity.TreatmentDeviceInfo" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    <id column="PI_ID" property="piId" jdbcType="INTEGER" />
+    <result column="PI_Device_Code" property="piDeviceCode" jdbcType="VARCHAR" />
+    <result column="PI_Name" property="piName" jdbcType="VARCHAR" />
+    <result column="PI_Scene_GUID" property="piSceneGuid" jdbcType="VARCHAR" />
+    <result column="PI_Scene_Type_Id" property="piSceneTypeId" jdbcType="TINYINT" />
+    <result column="PI_Type_Id" property="piTypeId" jdbcType="TINYINT" />
+    <result column="PI_Subtype_Id" property="piSubtypeId" jdbcType="TINYINT" />
+    <result column="PI_Supplier" property="piSupplier" jdbcType="VARCHAR" />
+    <result column="PI_Maintainer" property="piMaintainer" jdbcType="VARCHAR" />
+    <result column="PI_Maintain_Frequency" property="piMaintainFrequency" jdbcType="TINYINT" />
+    <result column="PI_Maintain_Staff" property="piMaintainStaff" jdbcType="VARCHAR" />
+    <result column="PI_Maintain_Tel" property="piMaintainTel" jdbcType="VARCHAR" />
+    <result column="PI_Running_Status" property="piRunningStatus" jdbcType="TINYINT" />
+    <result column="PI_Brand_Model" property="piBrandModel" jdbcType="VARCHAR" />
+    <result column="PI_Device_Param" property="piDeviceParam" jdbcType="VARCHAR" />
+    <result column="PI_Ownership" property="piOwnership" jdbcType="TINYINT" />
+    <result column="PI_QR_Code" property="piQrCode" jdbcType="VARCHAR" />
+    <result column="PI_Other_QR_Code" property="piOtherQrCode" jdbcType="VARCHAR" />
+    <result column="PI_Create_Time" property="piCreateTime" jdbcType="TIMESTAMP" />
+    <result column="PI_Update_Time" property="piUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--
+      WARNING - @mbg.generated
+    -->
+    PI_ID, PI_Device_Code, PI_Name, PI_Scene_GUID, PI_Scene_Type_Id, PI_Type_Id, PI_Subtype_Id, 
+    PI_Supplier, PI_Maintainer, PI_Maintain_Frequency, PI_Maintain_Staff, PI_Maintain_Tel, 
+    PI_Running_Status, PI_Brand_Model, PI_Device_Param, PI_Ownership, PI_QR_Code, PI_Other_QR_Code, 
+    PI_Create_Time, PI_Update_Time
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/test/kotlin/cn/flightfeather/supervision/business/autooutput/AopEvaluationTest.kt b/src/test/kotlin/cn/flightfeather/supervision/business/autooutput/AopEvaluationTest.kt
index 4a2d87a..6b2f2b0 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/business/autooutput/AopEvaluationTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/business/autooutput/AopEvaluationTest.kt
@@ -144,7 +144,7 @@
 
     @Test
     fun aopSubtask() {
-        val s = subTaskRep.findOne("yMRHdPg7e4i8M6aB")
+        val s = subTaskRep.findOne("B6kyaAjJRoGJ2Yur")
         aopEvaluation.executeBySubTask(s!!)
     }
 }
\ No newline at end of file
diff --git a/src/test/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrlTest.kt b/src/test/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrlTest.kt
index 5615141..03e3a32 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrlTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrlTest.kt
@@ -48,8 +48,9 @@
 
     @Test
     fun startNewTask(){
-        val time = LocalDate.of(2024, 7, 23).atStartOfDay()
-        aopTaskCtrl.startNewTask(aopTaskCtrl.getArea(time, "310106", "闈欏畨鍖�", Constant.SceneType.TYPE1))
+        val time = LocalDate.of(2024, 6, 23).atStartOfDay()
+//        aopTaskCtrl.startNewTask(aopTaskCtrl.getArea(time, "310106", "闈欏畨鍖�", Constant.SceneType.TYPE1))
+        aopTaskCtrl.startNewTask(aopTaskCtrl.getArea(time, "310104", "寰愭眹鍖�", Constant.SceneType.TYPE5))
         val reader = BufferedReader(InputStreamReader(System.`in`))
         reader.readLine()
     }
diff --git a/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImplTest.kt b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImplTest.kt
index b3777da..1fad757 100644
--- a/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImplTest.kt
+++ b/src/test/kotlin/cn/flightfeather/supervision/lightshare/service/impl/UserinfoServiceImplTest.kt
@@ -33,6 +33,7 @@
 
     @Test
     fun autoCreateMap() {
-        userMapService.autoCreateMap()
+        val user = userinfoService.findOne("58G5NHgRc1TjDTAH")
+        userMapService.autoCreateMap(listOf(user))
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3