|
@@ -26,11 +26,18 @@
|
|
|
|
|
|
package com.persagy.server.services.task
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil
|
|
|
import com.alibaba.fastjson.JSONObject
|
|
|
+import com.google.gson.Gson
|
|
|
+import com.google.gson.reflect.TypeToken
|
|
|
+import com.persagy.base.extensions.toJson
|
|
|
import com.persagy.database.SFilter
|
|
|
import com.persagy.database.SPageQueryInfo
|
|
|
import com.persagy.mybatis.SMybatisDao
|
|
|
+import com.persagy.server.Opts
|
|
|
+import com.persagy.server.datacenter.models.entities.assistant.TaskPic
|
|
|
import com.persagy.server.datacenter.models.entities.objects.Building
|
|
|
+import com.persagy.server.datacenter.models.entities.objects.Equipment
|
|
|
import com.persagy.server.datacenter.models.entities.task.*
|
|
|
import com.persagy.server.datacenter.models.entities.task.base.ScanTaskBase
|
|
|
import com.persagy.server.mappers.StatisticsCountMapper
|
|
@@ -39,12 +46,15 @@ import com.persagy.server.services.DmpBaseService
|
|
|
import com.persagy.server.services.StatisticsCountService
|
|
|
import com.persagy.server.services.base.RService
|
|
|
import com.persagy.server.util.AdmEntityTransferUtil
|
|
|
+import com.persagy.server.util.IdUtils
|
|
|
+import com.persagy.service.SBaseService
|
|
|
import com.persagy.service.SPageContext
|
|
|
import com.persagy.service.models.SCascadeQuery
|
|
|
import com.persagy.service.models.enums.SResponseType
|
|
|
import com.persagy.service.models.requests.SQueryRequest
|
|
|
import com.persagy.service.models.responses.SQueryResponse
|
|
|
import com.persagy.service.utils.SSpringContextUtil
|
|
|
+import org.slf4j.LoggerFactory
|
|
|
import org.springframework.beans.factory.annotation.Autowired
|
|
|
|
|
|
/**
|
|
@@ -54,6 +64,8 @@ import org.springframework.beans.factory.annotation.Autowired
|
|
|
*/
|
|
|
object ScanTaskBaseService : RService<ScanTaskBase>(SMybatisDao(ScanTaskBase::class.java)) {
|
|
|
|
|
|
+ // 日志
|
|
|
+ private val logger = LoggerFactory.getLogger(EquipScanTaskService::class.java)
|
|
|
/** 实例化 mapper 对象 */
|
|
|
val mapper by lazy {
|
|
|
SSpringContextUtil.getBean(StatisticsCountMapper::class.java) as StatisticsCountMapper
|
|
@@ -344,7 +356,207 @@ object ScanTaskBaseService : RService<ScanTaskBase>(SMybatisDao(ScanTaskBase::cl
|
|
|
} // Fun
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 创建之前操作
|
|
|
+ */
|
|
|
+ override fun onCreateBefore(equipScanTask: ScanTaskBase): Boolean {
|
|
|
+ try{
|
|
|
+ val gson = Gson()
|
|
|
+ var flag = false
|
|
|
+ if(equipScanTask.taskState == -1){//前台传数据过来状态为-1 表示当前任务是未找到状态 重新生成任务,将之前的设备任务状态和部件任务改为已完成
|
|
|
+ flag = true
|
|
|
+ ScanTaskBaseService.resetTaskStatus(equipScanTask)
|
|
|
+ }
|
|
|
+
|
|
|
+ val projectId = SPageContext.getHeader("projectId")
|
|
|
+ if (equipScanTask.id.isNullOrEmpty()) {
|
|
|
+ equipScanTask.id = IdUtils.uuidCreate()
|
|
|
+ }
|
|
|
+ if(!projectId.isNullOrEmpty()){
|
|
|
+ equipScanTask.projectId = projectId
|
|
|
+ }
|
|
|
+ equipScanTask.taskSource = 2//数据源为设备台账
|
|
|
+ equipScanTask.taskState = 1//任务状态为待验证
|
|
|
+ //equipScanTask.taskType = "1"
|
|
|
+
|
|
|
+ if (!equipScanTask.equipId.isNullOrEmpty()) {//当设备id不为空时,去设备表查询对应的详细信息
|
|
|
+ /* val equipmentService = SBaseService(SMybatisDao(Equipment::class.java))
|
|
|
+ val equipment = equipmentService.select(SFilter.eq("id", equipScanTask.equipId!!)).entity()*/
|
|
|
+ //2021.10.26调整为从中间件查询设备信息
|
|
|
+ val equipmentList = ScanTaskBaseService.admBaseService?.queryEquipById(equipScanTask.equipId!!)
|
|
|
+ if(CollUtil.isEmpty(equipmentList)){
|
|
|
+ return false
|
|
|
+ logger.info("设备任务创建:设备不存在 id "+equipScanTask.equipId)
|
|
|
+ }
|
|
|
+ val equipment = equipmentList?.get(0)
|
|
|
+ if (equipScanTask.schemeId.isNullOrEmpty()){
|
|
|
+ if (equipmentList != null) {
|
|
|
+ val equipment = equipmentList.get(0);
|
|
|
+ equipScanTask.schemeId = SchemeUtils.setScheme(equipment!!.classCode!!)
|
|
|
+ }
|
|
|
+ }
|
|
|
+// equipment.ledgerParam.PhotoDoc.Pic
|
|
|
+
|
|
|
+ if(equipment!!.infos != null){//设备图片信息
|
|
|
+ val photoDoc = equipment!!.infos!!.get("photoDoc")
|
|
|
+ if( photoDoc != null){
|
|
|
+ val obj = JSONObject.parseObject(photoDoc!!.toJson())
|
|
|
+ val pic = obj.getString("pic")
|
|
|
+
|
|
|
+ val type = object : TypeToken<ArrayList<TaskPic>>() {
|
|
|
+ }.type
|
|
|
+ val siInSpList = gson.fromJson<ArrayList<TaskPic>>(pic, type)
|
|
|
+ equipScanTask.taskPicList = siInSpList
|
|
|
+ }
|
|
|
+
|
|
|
+ val containsKey = equipment.infos!!.containsKey(Opts.INSTALLLOCATION)
|
|
|
+ if (containsKey){
|
|
|
+ equipScanTask.installLocation = equipment.infos!![Opts.INSTALLLOCATION].toString()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (!equipment.infos.isNullOrEmpty()){
|
|
|
+
|
|
|
+ val containsKey = equipment.infos!!.containsKey(Opts.MANUFACTURER)
|
|
|
+ if (containsKey){
|
|
|
+ equipScanTask.manufacturer = equipment.infos!![Opts.MANUFACTURER].toString()
|
|
|
+ }
|
|
|
+ val containsKey2 = equipment.infos!!.containsKey(Opts.SPECIFICATION)
|
|
|
+ if(containsKey2) {
|
|
|
+ equipScanTask.specification = equipment.infos!![Opts.SPECIFICATION].toString()
|
|
|
+ }
|
|
|
+
|
|
|
+ val containsKeys = equipment.infos!!.containsKey(Opts.SUPPLIER)
|
|
|
+ if (containsKeys){
|
|
|
+ equipScanTask.supplier = equipment.infos!![Opts.SUPPLIER].toString()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+
|
|
|
+ if(flag){
|
|
|
+ equipScanTask.equipName = equipment!!.name
|
|
|
+ equipScanTask.localId = equipment!!.localId
|
|
|
+ equipScanTask.localName = equipment!!.localName
|
|
|
+ equipScanTask.bimId = equipment!!.bimId
|
|
|
+ equipScanTask.classCode = equipment!!.classCode
|
|
|
+ equipScanTask.buildingId = equipment!!.buildingId
|
|
|
+ equipScanTask.floorId = equipment!!.floorId
|
|
|
+ equipScanTask.cadId = equipment!!.cadId
|
|
|
+// equipScanTask.supplier = equipment!!.dpSupplierID
|
|
|
+
|
|
|
+
|
|
|
+// equipScanTask.specification = equipment!!.dpManufacturerID
|
|
|
+// equipScanTask.manufacturer = equipment!!.dpMaintainerID
|
|
|
+ //equipScanTask.bimLocation = equipment.bimLocation
|
|
|
+// if (equipment.codeType!=null){
|
|
|
+// equipScanTask.taskType = equipment.codeType.toString()
|
|
|
+// }else{
|
|
|
+// equipScanTask.taskType = "1"
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ }else {
|
|
|
+ // equipScanTask.bimLocation = equipment.bimLocation
|
|
|
+ if (equipScanTask.equipName.isNullOrEmpty()) {
|
|
|
+ equipScanTask.equipName = equipment!!.name
|
|
|
+ }
|
|
|
+ if (equipScanTask.localId.isNullOrEmpty()) {
|
|
|
+ equipScanTask.localId = equipment!!.localId
|
|
|
+ }
|
|
|
+ if (equipScanTask.localName.isNullOrEmpty()) {
|
|
|
+ equipScanTask.localName = equipment!!.localName
|
|
|
+ }
|
|
|
+ if (equipScanTask.bimId.isNullOrEmpty()) {
|
|
|
+ equipScanTask.bimId = equipment!!.bimId
|
|
|
+ }
|
|
|
+ if (equipScanTask.classCode.isNullOrEmpty()) {
|
|
|
+ equipScanTask.classCode = equipment!!.classCode
|
|
|
+ }
|
|
|
+ if (equipScanTask.buildingId.isNullOrEmpty()) {
|
|
|
+ equipScanTask.buildingId = equipment!!.buildingId
|
|
|
+ }
|
|
|
+ if (equipScanTask.floorId.isNullOrEmpty()) {
|
|
|
+ equipScanTask.floorId = equipment!!.floorId
|
|
|
+ }
|
|
|
+ if (equipScanTask.cadId.isNullOrEmpty()) {
|
|
|
+ equipScanTask.cadId = equipment!!.cadId
|
|
|
+ }
|
|
|
+ if (equipScanTask.manufacturer.isNullOrEmpty()) {
|
|
|
+ if (!equipment.infos.isNullOrEmpty()) {
|
|
|
+ val contains = equipment.infos!!.contains("manufacturer")
|
|
|
+ if (contains) {
|
|
|
+ equipScanTask.manufacturer = equipment.infos!!["manufacturer"].toString()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (equipScanTask.specification.isNullOrEmpty()) {
|
|
|
+ if (!equipment.infos.isNullOrEmpty()) {
|
|
|
+ val contains = equipment.infos!!.contains("specification")
|
|
|
+ if (contains) {
|
|
|
+ equipScanTask.specification = equipment.infos!!["specification"].toString()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (equipScanTask.supplier.isNullOrEmpty()) {
|
|
|
+ if (!equipment.infos.isNullOrEmpty()) {
|
|
|
+ val contains = equipment.infos!!.contains("supplier")
|
|
|
+ if (contains) {
|
|
|
+ equipScanTask.supplier = equipment.infos!!["supplier"].toString()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+// if (equipScanTask.taskType.isNullOrEmpty()){
|
|
|
+// if (equipment.codeType!=null){
|
|
|
+// equipScanTask.taskType = equipment.codeType.toString()
|
|
|
+// }else{
|
|
|
+// equipScanTask.taskType = "1"
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ e.printStackTrace()
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ } // Function onCreateBefore()
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重新生成任务时,将任务状态改为已完成
|
|
|
+ */
|
|
|
+ fun resetTaskStatus(task: ScanTaskBase) {
|
|
|
+ val equipmentService = SBaseService(SMybatisDao(Equipment::class.java))
|
|
|
+ val equipScanTaskService = SBaseService(SMybatisDao(EquipScanTask::class.java))
|
|
|
+
|
|
|
+ //val resetTask = equipScanTaskService.select("equipId" to task.equipId!!, "taskState" to -1).entity()
|
|
|
+ val resetTask = ScanTaskBaseService.select(SFilter.eq("equipId", task!!.equipId!!), SFilter.eq("taskState",-1)).entity()
|
|
|
+ if (resetTask != null) {
|
|
|
+ resetTask.taskState = 0
|
|
|
+ ScanTaskBaseService.update(resetTask)//更改设备任务状态
|
|
|
+ updateComponetTaskStatus(resetTask)//更改部件任务状态
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新设备任务状态时,对应更改部件任务状态
|
|
|
+ */
|
|
|
+ fun updateComponetTaskStatus(task: ScanTaskBase){
|
|
|
+ val equipmentService = SBaseService(SMybatisDao(Equipment::class.java))
|
|
|
+ val equipScanTaskService = SBaseService(SMybatisDao(EquipScanTask::class.java))
|
|
|
+ // val componentTaskList = equipScanTaskService.select("parentId" to task!!.equipId!!).exec()
|
|
|
+ val componentTaskList = ScanTaskBaseService.select(SFilter.eq("projectId", task!!.equipId!!)).exec()
|
|
|
+ for(childTask in componentTaskList){
|
|
|
+ childTask.taskState = task.taskState
|
|
|
+ ScanTaskBaseService.update(childTask)
|
|
|
+ }
|
|
|
+ } // Fun updateStatus
|
|
|
|
|
|
|
|
|
} // Fun
|