feiyu02
2025-09-19 7cbe1610b87da19ed8a146a09b1117f92d9d3d98
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
package cn.flightfeather.supervision.lightshare.service.impl
 
import cn.flightfeather.supervision.common.utils.Constant
import cn.flightfeather.supervision.common.utils.UUIDGenerator
import cn.flightfeather.supervision.domain.ds1.entity.*
import cn.flightfeather.supervision.domain.ds1.mapper.*
import cn.flightfeather.supervision.lightshare.service.DomaincatalogService
import cn.flightfeather.supervision.lightshare.vo.AreaVo
import cn.flightfeather.supervision.lightshare.vo.DomaincatalogVo
import org.springframework.beans.BeanUtils
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import tk.mybatis.mapper.entity.Example
import java.util.*
 
@Service
class DomaincatalogServiceImpl(
    private val domaincatalogMapper: DomaincatalogMapper,
    private val problemtypeMapper: ProblemtypeMapper,
    private val changeAdviceMapper: ChangeAdviceMapper,
    private val evaluationruleMapper: EvaluationruleMapper,
    private val evaluationsubruleMapper: EvaluationsubruleMapper,
) : DomaincatalogService {
    //根据name查询
    override fun findOneByName(name: String): Domaincatalog? {
        val domaincatalog = Domaincatalog()
        domaincatalog.name = name
        return domaincatalogMapper.selectOne(domaincatalog)
    }
 
    override fun findOne(id: String): Domaincatalog = domaincatalogMapper.selectByPrimaryKey(id)
 
    //获取全部
    override fun findAll(): MutableList<DomaincatalogVo> {
        val domaincatalogVoList = mutableListOf<DomaincatalogVo>()
        val domaincatalogList = domaincatalogMapper.selectAll()
        domaincatalogList.forEach {
            val domaincatalogVo = DomaincatalogVo()
            BeanUtils.copyProperties(it,domaincatalogVo)
            domaincatalogVoList.add(domaincatalogVo)
        }
        return domaincatalogVoList
    }
 
    override fun save(domaincatalog: Domaincatalog): Int = domaincatalogMapper.insert(domaincatalog)
 
    override fun update(domaincatalog: Domaincatalog): Int = domaincatalogMapper.updateByPrimaryKey(domaincatalog)
 
    override fun delete(id: String): Int = domaincatalogMapper.deleteByPrimaryKey(id)
 
    @Transactional
    override fun quickConfiguration(
        target: Constant.SceneType,
        targetArea: AreaVo,
        source: Constant.SceneType,
        sourceArea: AreaVo,
    ): Boolean {
        //1. 问题类型和整改建议
        val adviceList = changeAdviceMapper.selectByExample(Example(ChangeAdvice::class.java).apply {
            createCriteria().andEqualTo("adExtension1", sourceArea.districtname)
                .andEqualTo("adExtension2", source.text)
        })
        problemtypeMapper.selectByExample(Example(Problemtype::class.java).apply {
            createCriteria().andEqualTo("scensetypeid", source.value.toByte())
                .andEqualTo("districtname", sourceArea.districtname)
        }).forEach {
            val newProblemGuid = UUIDGenerator.generate16ShortUUID()
            adviceList.find { ad -> ad.adProblemtypeguid == it.guid }?.let { ad ->
                ad.adGuid = UUIDGenerator.generate16ShortUUID()
                ad.adProblemtypeguid = newProblemGuid
                ad.adCreatedate = Date()
                ad.adUpdatedate = Date()
                ad.adExtension1 = targetArea.districtname
                ad.adExtension2 = target.text
                changeAdviceMapper.insert(ad)
            }
 
            it.guid = newProblemGuid
            it.scensetypeid = target.value.toByte()
            it.scensetype = target.text
            it.createdate = Date()
            it.updatedate = Date()
            it.provincecode = targetArea.provincecode
            it.provincename = targetArea.provincename
            it.citycode = targetArea.citycode
            it.cityname = targetArea.cityname
            it.districtcode = targetArea.districtcode
            it.districtname = targetArea.districtname
 
            problemtypeMapper.insert(it)
        }
 
        return true
 
        //2. 问题位置(默认工地,可不修改)
        //3. 自评规则表
//        evaluationruleMapper.selectByExample(Example(Evaluationrule::class.java).apply {
//            createCriteria().andEqualTo("tasktypeid", 99)
//                .andEqualTo("scensetypeid", source.value)
//            and(createCriteria().orEqualTo("provincecode", sourceArea.provincecode).orIsNull("provincecode"))
//            and(createCriteria().orEqualTo("citycode", sourceArea.citycode).orIsNull("citycode"))
//            and(createCriteria().orEqualTo("districtcode", sourceArea.districtcode).orIsNull("districtcode"))
//            and(createCriteria().orEqualTo("towncode", sourceArea.towncode).orIsNull("towncode"))
//        }).takeIf { it.isNotEmpty() }?.get(0).let {sourceRule ->
//            if (sourceRule != null) {
//                evaluationsubruleMapper.selectByExample(Example(Evaluationsubrule::class.java).apply {
//                    createCriteria().andEqualTo("", sourceRule)
//                })
//            }
//        }
    }
}