feiyu02
2025-09-30 a3cc1d220f8a1de11874bebceba0130d32157ff1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package cn.flightfeather.supervision.lightshare.service.impl
 
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.domain.ds1.entity.Domainitem
import cn.flightfeather.supervision.domain.ds1.mapper.DomainitemMapper
import cn.flightfeather.supervision.lightshare.service.DomainitemService
import cn.flightfeather.supervision.lightshare.vo.DomainitemVo
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
 
@Service
class DomainitemServiceImpl(val domainitemMapper: DomainitemMapper) : DomainitemService {
 
    //根据logname查询
    override fun findByLogName(name: String): List<DomainitemVo> {
        val domainitemVoList = mutableListOf<DomainitemVo>()
        val domainitem = Domainitem()
        domainitem.catelogname = name
        val domainitemList = domainitemMapper.select(domainitem)
        domainitemList.forEach {
            val domainitemVo = DomainitemVo()
            BeanUtils.copyProperties(it, domainitemVo)
            domainitemVoList.add(domainitemVo)
        }
        //排序
        domainitemVoList.sortBy { it.index }
        return domainitemVoList
    }
 
    //根据name查询
    override fun findOneByName(text: String): DomainitemVo {
        val domainitemVo = DomainitemVo()
        val domainitem = Domainitem()
        domainitem.text = text
        val result = domainitemMapper.selectOne(domainitem)
        if (result != null) {
            BeanUtils.copyProperties(result, domainitemVo)
        }
        return domainitemVo
    }
 
    //根据logid查询
    override fun findByLogID(guid: String): List<DomainitemVo> {
        val domainitemVoList = mutableListOf<DomainitemVo>()
        val domainitem = Domainitem()
        domainitem.dcguid = guid
        val domainitemList = domainitemMapper.select(domainitem)
        domainitemList.forEach {
            val domainitemVo = DomainitemVo()
            BeanUtils.copyProperties(it, domainitemVo)
            domainitemVoList.add(domainitemVo)
        }
        return domainitemVoList
    }
 
    override fun findOne(id: String): DomainitemVo {
        val domainitemVo = DomainitemVo()
        val domainitem = domainitemMapper.selectByPrimaryKey(id)
        if (domainitem != null) {
            BeanUtils.copyProperties(domainitem, domainitemVo)
        }
        return domainitemVo
    }
 
    override fun findAll(): MutableList<DomainitemVo> {
        val domainitemVoList = mutableListOf<DomainitemVo>()
        val domainitemList = domainitemMapper.selectAll()
        domainitemList.forEach {
            val domainitem = DomainitemVo()
            BeanUtils.copyProperties(it, domainitem)
            domainitemVoList.add(domainitem)
        }
        return domainitemVoList
    }
 
    override fun save(domainitem: Domainitem): Int = domainitemMapper.insert(domainitem)
 
    override fun update(domainitem: Domainitem): Int = domainitemMapper.updateByPrimaryKey(domainitem)
 
    override fun delete(id: String): Int = domainitemMapper.deleteByPrimaryKey(id)
 
    override fun getLocation(sceneType: Int): List<Domainitem> {
        val lId = when (sceneType.toString()) {
            Constant.SceneType.TYPE1.value -> Constant.INDUSTRY_LOCATION_ID
            Constant.SceneType.TYPE2.value -> Constant.WHARF_LOCATION_ID
            Constant.SceneType.TYPE14.value -> Constant.STORAGE_YARD_LOCATION_ID
            Constant.SceneType.TYPE3.value -> Constant.MIX_LOCATION_ID
            Constant.SceneType.TYPE5.value -> Constant.RESTAURANT_LOCATION_ID
            Constant.SceneType.TYPE6.value -> Constant.Vehicle_LOCATION_ID
            else -> Constant.INDUSTRY_LOCATION_ID
        }
 
        return domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
            createCriteria().andEqualTo("dcguid", lId)
            orderBy("index")
        })
    }
 
    override fun getTaskType(): List<Domainitem> {
        return domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
            createCriteria().andEqualTo("dcguid", Constant.DOMAIN_GUID_TASK_TYPE)
            orderBy("index")
        })
    }
 
    override fun getDeadlineType(): List<Domainitem> {
        return domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
            createCriteria().andEqualTo("dcguid", Constant.DOMAIN_GUID_TASK_DEADLINE_TYPE)
            orderBy("index")
        })
    }
 
    override fun getLevelType(): List<Domainitem> {
        return domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
            createCriteria().andEqualTo("dcguid", Constant.DOMAIN_GUID_TASK_LEVEL)
            orderBy("index")
        })
    }
 
    override fun getMediaFileType(sceneType: Int?): MutableMap<String?, String?> {
        val res = mutableMapOf<String?, String?>()
        val type = Constant.SceneType.getByValue(sceneType.toString())
        when (type) {
            // 工地
            Constant.SceneType.TYPE1 -> {
                val domainItems = domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
                    createCriteria().andEqualTo("dcguid", Constant.MEDIA_FILE_TYPE_INDUSTRY)
                    orderBy("index")
                })
                domainItems.forEach { res[it.value] = it.text }
                // 工地中的任意拍包含“常规记录”类型
                res[Constant.MediaFileType.RoutineRecord.value.toString()] = Constant.MediaFileType.RoutineRecord.des
                return res
            }
            // 餐饮
            Constant.SceneType.TYPE5 -> {
                val domainItems = domainitemMapper.selectByExample(Example(Domainitem::class.java).apply {
                    createCriteria().andEqualTo("dcguid", Constant.MEDIA_FILE_TYPE_RESTAURANT)
                    orderBy("index")
                })
                domainItems.forEach { res[it.value] = it.text }
                // 餐饮中的任意拍包含“常规记录”类型
                res[Constant.MediaFileType.RoutineRecord.value.toString()] = Constant.MediaFileType.RoutineRecord.des
                return res
            }
            // 其余类型场景,使用默认的分类
            else -> {
                listOf(
                    Constant.MediaFileType.Nameplate,
                    Constant.MediaFileType.MonitorDevice,
                    Constant.MediaFileType.RoutineRecord,
                ).forEach {
                    res[it.value.toString()] = it.des
                }
            }
        }
        return res
    }
}