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
package cn.flightfeather.supervision.lightshare.service.impl
 
import cn.flightfeather.supervision.domain.ds1.entity.Scense
import cn.flightfeather.supervision.domain.ds1.entity.Site
import cn.flightfeather.supervision.domain.ds1.mapper.SiteMapper
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.lightshare.service.ScenseService
import cn.flightfeather.supervision.lightshare.service.SiteService
import cn.flightfeather.supervision.lightshare.vo.SiteVo
import org.springframework.beans.BeanUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
import tk.mybatis.mapper.entity.Example
import java.util.*
 
@Service
class SiteServiceImpl(val siteMapper: SiteMapper) : SiteService {
 
    @Autowired
    lateinit var scenseService: ScenseService
 
    //按场景id查询
    override fun findByScenseID(scenseid: String): SiteVo {
        val siteVo = SiteVo()
        val example = Example(Site::class.java)
        val criteria = example.createCriteria()
        criteria.andEqualTo("sguid", scenseid)
        val result = siteMapper.selectByExample(example)
        if (result.size == 1){
            BeanUtils.copyProperties(result.get(0), siteVo)
        }
        return siteVo
    }
 
    //根据site条件查询
    override fun search(site: Site): List<SiteVo> {
        val siteVos = mutableListOf<SiteVo>()
        val name = site.name ?: ""
        val example = Example(Site::class.java)
        val criteria = example.createCriteria()
        criteria.andLike("name", "%$name%")
        val re = siteMapper.selectByExample(example)
        if (re.isNotEmpty()) {
            re.forEach {
                val siteVo = SiteVo()
                BeanUtils.copyProperties(it, siteVo)
                siteVos.add(siteVo)
            }
        }
        return siteVos
    }
 
    //根据那么查询
    override fun findOneByName(name: String): SiteVo {
        val siteVo = SiteVo()
        val site = Site()
        site.name = name
        val resour = siteMapper.selectOne(site)
        if (resour != null) {
            BeanUtils.copyProperties(resour, siteVo)
        }
        return siteVo
    }
 
    //根据ID查询
    override fun findOne(id: String): SiteVo {
        val siteVo = SiteVo()
        val site = siteMapper.selectByPrimaryKey(id)
        if (site != null)
            BeanUtils.copyProperties(site, siteVo)
        return siteVo
    }
 
    //获取全部
    override fun findAll(): MutableList<SiteVo> {
        val siteVoList = mutableListOf<SiteVo>()
 
        val siteList = siteMapper.selectAll()
        siteList.forEach {
            val siteVo = SiteVo()
            BeanUtils.copyProperties(it, siteVo)
            siteVoList.add(siteVo)
        }
        return siteVoList
    }
 
    //保存工地信息,tong同时增加场景表
    override fun save(site: Site): Int {
        val scense = Scense()
        BeanUtils.copyProperties(site, scense)
        //name和ID对应值域表的内容
        scense.type = "工地"
        scense.typeid = 1
 
        scense.createdate = Date()
        scense.location = site.siteaddress
        scense.latitude = site.sitelatitude
        scense.longitude = site.sitelongitude
        scense.contacts = site.buildcontact1
        scense.contactst = site.buildcontact1tele
        val guid = UUIDGenerator.generate16ShortUUID()
        scense.guid = guid
        //保存场景
        scenseService.save(scense)
        site.sguid = guid
        //保存工地
        siteMapper.insert(site)
        return 2
    }
 
    //根据工地,同时更新场景表
    override fun update(site: Site): Int {
        val scense = Scense()
        BeanUtils.copyProperties(site, scense)
 
        //地址
        scense.location = site.siteaddress
        //经度
        scense.latitude = site.sitelatitude
        //维度
        scense.longitude = site.sitelongitude
        //联系人姓名
        scense.contacts = site.buildcontact1
        //联系人手机
        scense.contactst = site.buildcontact1tele
        //关联ID
        scense.guid = site.sguid
 
        //更新场景
        scenseService.update(scense)
        //更新工地
        siteMapper.updateByPrimaryKeySelective(site)
 
        return 2
    }
 
    override fun delete(id: String): Int = siteMapper.deleteByPrimaryKey(id)
}