|
@@ -27,13 +27,24 @@
|
|
package com.persagy.server.service.dict
|
|
package com.persagy.server.service.dict
|
|
|
|
|
|
import com.persagy.database.SFilter
|
|
import com.persagy.database.SFilter
|
|
|
|
+import com.persagy.database.SPageQueryInfo
|
|
|
|
+import com.persagy.database.SQueryBuilder
|
|
import com.persagy.mybatis.SMybatisDao
|
|
import com.persagy.mybatis.SMybatisDao
|
|
import com.persagy.server.Opt
|
|
import com.persagy.server.Opt
|
|
-import com.persagy.server.datacenter.models.entities.dictnew.DefClass
|
|
|
|
-import com.persagy.server.datacenter.models.entities.dictnew.DefFuncId
|
|
|
|
|
|
+import com.persagy.server.datacenter.models.entities.dict.DictSQueryRequest
|
|
|
|
+import com.persagy.server.datacenter.models.entities.dict.EquipFamily
|
|
|
|
+import com.persagy.server.datacenter.models.entities.dict.Family
|
|
|
|
+import com.persagy.server.datacenter.models.entities.dictnew.*
|
|
|
|
+import com.persagy.server.datacenter.models.requests.CategoryRequest
|
|
|
|
+import com.persagy.server.service.CustomSqlService
|
|
|
|
+import com.persagy.service.SBaseService
|
|
import com.persagy.service.SObjectService
|
|
import com.persagy.service.SObjectService
|
|
|
|
+import com.persagy.service.SPageContext
|
|
import com.persagy.service.models.enums.SResponseType
|
|
import com.persagy.service.models.enums.SResponseType
|
|
|
|
+import com.persagy.service.models.requests.SCreateRequest
|
|
|
|
+import com.persagy.service.models.responses.SCreateResponse
|
|
import com.persagy.service.models.responses.SQueryResponse
|
|
import com.persagy.service.models.responses.SQueryResponse
|
|
|
|
+import com.persagy.service.utils.SSpringContextUtil
|
|
|
|
|
|
/**
|
|
/**
|
|
* 字典服务
|
|
* 字典服务
|
|
@@ -101,6 +112,20 @@ object DictDefClassService: SObjectService<DefFuncId>(SMybatisDao(DefFuncId::cla
|
|
return sQueryResponse
|
|
return sQueryResponse
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /** 自定义SQL 对象 */
|
|
|
|
+ private val schemeService by lazy {
|
|
|
|
+ SSpringContextUtil.getBean(CustomSqlService::class.java) as CustomSqlService
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** 设备族 */
|
|
|
|
+ private val familyService = SObjectService(SMybatisDao(Family::class.java))
|
|
|
|
+ /** 专业 */
|
|
|
|
+ private val dictMajorService = SObjectService(SMybatisDao(DictMajor::class.java))
|
|
|
|
+ /** 详细信息点 需采集信息点配置 */
|
|
|
|
+ private val defFuncIdGatherService = SObjectService(SMybatisDao(DefFuncIdGather::class.java))
|
|
|
|
+ /** 设备族和设备类型对应表服务 */
|
|
|
|
+ private val equipFamilyService = SObjectService(SMybatisDao(EquipFamily::class.java))
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 项目、建筑、楼层 M 或 L 信息点统计
|
|
* 项目、建筑、楼层 M 或 L 信息点统计
|
|
*
|
|
*
|
|
@@ -173,5 +198,315 @@ object DictDefClassService: SObjectService<DefFuncId>(SMybatisDao(DefFuncId::cla
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查询设备、部件、系统、专业类型
|
|
|
|
+ *
|
|
|
|
+ * @param categoryRequest 类型查询对象
|
|
|
|
+ * @return 返回结果
|
|
|
|
+ */
|
|
|
|
+ fun equipQuery(categoryRequest: CategoryRequest): SQueryResponse<DefClass> {
|
|
|
|
+ val sQueryResponse = SQueryResponse<DefClass>()
|
|
|
|
+ if (!categoryRequest.type.isNullOrEmpty()){
|
|
|
|
+ var dictSchemeCategoryList = ArrayList<DefClass>()
|
|
|
|
+ var queryBuilder : SQueryBuilder<DefClass>? = null
|
|
|
|
+ var pageInfo : SPageQueryInfo<DefClass>? = null
|
|
|
|
+ when (categoryRequest.type) {
|
|
|
|
+ "equipment" -> {
|
|
|
|
+// queryBuilder = select(SFilter.eq(SLength("id"), 4), SFilter.not(SFilter.isNull("parentId")))
|
|
|
|
+// pageInfo = queryBuilder.pageQuery(1, 1000)
|
|
|
|
+
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","equipment"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).order("code").exec()
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ "component" -> {
|
|
|
|
+// queryBuilder = select(SFilter.eq(SLength("id"), 6), SFilter.not(SFilter.isNull("parentId")),
|
|
|
|
+// SFilter.not(SFilter.eq("parentId","Space")),SFilter.not(SFilter.eq("name","租户"))
|
|
|
|
+// )
|
|
|
|
+// pageInfo = queryBuilder.pageQuery(1, 1000)
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","component"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).order("code").exec()
|
|
|
|
+ }
|
|
|
|
+ "system" -> {
|
|
|
|
+// queryBuilder = select(SFilter.eq(SLength("id"), 2), SFilter.not(SFilter.eq("parentId","AllProfessionalSystemEquipment")))
|
|
|
|
+// pageInfo = queryBuilder.pageQuery(1, 1000)
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","system"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ }
|
|
|
|
+ "major" -> {
|
|
|
|
+// queryBuilder = select(SFilter.eq(SLength("id"), 2), SFilter.eq("parentId","AllProfessionalSystemEquipment"))
|
|
|
|
+//// pageInfo = queryBuilder.pageQuery(1, 1000)
|
|
|
|
+ val dictMajorList = dictMajorService.selectAll().exec()
|
|
|
|
+ if (dictMajorList.size>0){
|
|
|
|
+ for (dictMajor in dictMajorList){
|
|
|
|
+ val defClass = DefClass()
|
|
|
|
+ defClass.code = dictMajor.code
|
|
|
|
+ defClass.name = dictMajor.name
|
|
|
|
+ defClass.aliasName = dictMajor.aliasName
|
|
|
|
+ defClass.aliasCode = dictMajor.aliasCode
|
|
|
|
+ dictSchemeCategoryList.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ "majorSystem" -> {
|
|
|
|
+// val listClassDef = DClassDefService.select(SFilter.eq("parentId", "AllProfessionalSystemEquipment")).exec()
|
|
|
|
+// for (classDef in listClassDef){
|
|
|
|
+// val exec = DClassDefService.select(SFilter.eq("parentId", classDef.id!!)).exec()
|
|
|
|
+// classDef.listClassDef = exec
|
|
|
|
+// }
|
|
|
|
+// pageInfo = SPageQueryInfo(1, 1000)
|
|
|
|
+// pageInfo.content = listClassDef
|
|
|
|
+ val dictMajorList = dictMajorService.selectAll().exec()
|
|
|
|
+ if (dictMajorList.size>0){
|
|
|
|
+ for (dictMajor in dictMajorList){
|
|
|
|
+ val defClass = DefClass()
|
|
|
|
+ defClass.code = dictMajor.code
|
|
|
|
+ defClass.name = dictMajor.name
|
|
|
|
+ defClass.aliasName = dictMajor.aliasName
|
|
|
|
+ defClass.aliasCode = dictMajor.aliasCode
|
|
|
|
+ val defClassList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode", "system"),
|
|
|
|
+ SFilter.eq("type","common"),
|
|
|
|
+ SFilter.eq("majorCode", defClass.code!!)
|
|
|
|
+ ).exec()
|
|
|
|
+ defClass.children = defClassList
|
|
|
|
+ dictSchemeCategoryList.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ "space" -> {
|
|
|
|
+ /** 业务空间类型 */
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","space"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ }
|
|
|
|
+ "majorEquipment" -> {
|
|
|
|
+ /** 专业下的设备 */
|
|
|
|
+ val dictMajorList = dictMajorService.selectAll().exec()
|
|
|
|
+ if (dictMajorList.size>0){
|
|
|
|
+ for (dictMajor in dictMajorList){
|
|
|
|
+ val defClass = DefClass()
|
|
|
|
+ defClass.code = dictMajor.code
|
|
|
|
+ defClass.name = dictMajor.name
|
|
|
|
+ defClass.aliasName = dictMajor.aliasName
|
|
|
|
+ defClass.aliasCode = dictMajor.aliasCode
|
|
|
|
+ val defClassList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode", "equipment"),
|
|
|
|
+ SFilter.eq("type","common"),
|
|
|
|
+ SFilter.eq("majorCode", defClass.code!!)
|
|
|
|
+ ).exec()
|
|
|
|
+ defClass.children = defClassList
|
|
|
|
+ dictSchemeCategoryList.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ "equipmentAndComponent" -> {
|
|
|
|
+ /** 设备和部件 */
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.or(SFilter.eq("parentCode","component"),
|
|
|
|
+ SFilter.eq("parentCode","equipment")),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+
|
|
|
|
+ ).exec()
|
|
|
|
+ }
|
|
|
|
+ "equipmentComponent" ->{
|
|
|
|
+ /** 设备下的部件 */
|
|
|
|
+ dictSchemeCategoryList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","equipment"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ val defClassList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode", "component"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ if (dictSchemeCategoryList.size > 0){
|
|
|
|
+ for (dictSchemeCategory in dictSchemeCategoryList){
|
|
|
|
+ var list = ArrayList<DefClass>()
|
|
|
|
+ for (defClass in defClassList){
|
|
|
|
+ if (defClass.equipmentCode == dictSchemeCategory.code){
|
|
|
|
+ list.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (list.size>0){
|
|
|
|
+ dictSchemeCategory.children = list
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ "majorSystemEquip" -> {
|
|
|
|
+ /** 专业下的系统,系统下的设备 */
|
|
|
|
+ val dictMajorList = dictMajorService.selectAll().exec()
|
|
|
|
+ if (dictMajorList.size>0){
|
|
|
|
+ for (dictMajor in dictMajorList){
|
|
|
|
+ val defClass = DefClass()
|
|
|
|
+ defClass.code = dictMajor.code
|
|
|
|
+ defClass.name = dictMajor.name
|
|
|
|
+ defClass.aliasName = dictMajor.aliasName
|
|
|
|
+ defClass.aliasCode = dictMajor.aliasCode
|
|
|
|
+ dictSchemeCategoryList.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /** 系统 */
|
|
|
|
+ val systemList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode", "system"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ /** 设备 */
|
|
|
|
+ val equipmentList = defClassService.select(
|
|
|
|
+ SFilter.eq("parentCode","equipment"),
|
|
|
|
+ SFilter.eq("type","common")
|
|
|
|
+ ).exec()
|
|
|
|
+ /** 系统下的设备 */
|
|
|
|
+ for (system in systemList){
|
|
|
|
+ for (equipment in equipmentList){
|
|
|
|
+ if (system.code == equipment.systemCode){
|
|
|
|
+ if (system.children.isNullOrEmpty()){
|
|
|
|
+ system.children = ArrayList<DefClass>()
|
|
|
|
+ }
|
|
|
|
+ system.children!!.add(equipment)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /** 专业下的系统 */
|
|
|
|
+ for (system in systemList){
|
|
|
|
+ for (dictMajor in dictSchemeCategoryList){
|
|
|
|
+ if (dictMajor.code == system.majorCode ){
|
|
|
|
+ if (dictMajor.children.isNullOrEmpty()){
|
|
|
|
+ dictMajor.children = ArrayList<DefClass>()
|
|
|
|
+ }
|
|
|
|
+ dictMajor.children!!.add(system)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ "property" -> {
|
|
|
|
+ /** 资产 */
|
|
|
|
+ val familyList = familyService.selectAll().exec()
|
|
|
|
+ for (family in familyList){
|
|
|
|
+ val defClass = DefClass()
|
|
|
|
+ defClass.code = family.code
|
|
|
|
+ defClass.name = family.name
|
|
|
|
+ defClass.aliasName = family.code
|
|
|
|
+ defClass.aliasCode = family.name
|
|
|
|
+ dictSchemeCategoryList.add(defClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ sQueryResponse.result = SResponseType.success
|
|
|
|
+ sQueryResponse.content = dictSchemeCategoryList
|
|
|
|
+ sQueryResponse.total = dictSchemeCategoryList.size.toLong()
|
|
|
|
+ }else{
|
|
|
|
+ sQueryResponse.result = SResponseType.failure
|
|
|
|
+ sQueryResponse.message = "请输入查询类型"
|
|
|
|
+ }
|
|
|
|
+ return sQueryResponse
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询项目下对象类型对应的信息点
|
|
|
|
+ *
|
|
|
|
+ * @param request 查询条件
|
|
|
|
+ * @return 返回结果
|
|
|
|
+ */
|
|
|
|
+ fun categoryInfoQuery(request: DictSQueryRequest): SQueryResponse<DefFuncIdGather> {
|
|
|
|
+ /** 项目id */
|
|
|
|
+ val projectId = SPageContext.getHeader("projectId")
|
|
|
|
+ /** 返回对象 */
|
|
|
|
+ val sQueryResponse = SQueryResponse<DefFuncIdGather>()
|
|
|
|
+ sQueryResponse.result = SResponseType.failure
|
|
|
|
+ /** 类型不能为空 */
|
|
|
|
+ if (!request.type.isNullOrEmpty()) {
|
|
|
|
+
|
|
|
|
+ /** 项目定制已存在直接返回 */
|
|
|
|
+ if(request.type!!.length == 3){
|
|
|
|
+ val defFuncIdGatherList = defFuncIdGatherService.select(SFilter.eq("classCode", request.type!!)).exec()
|
|
|
|
+ if (defFuncIdGatherList.size>0) {
|
|
|
|
+ val dictDefFuncBuilder = defFuncIdGatherService.select(
|
|
|
|
+ SFilter.eq("classCode", request.type!!)
|
|
|
|
+ )
|
|
|
|
+ val dictDefFuncList = dictDefFuncBuilder.table("dict.def_funcid_project").order("sort").exec()
|
|
|
|
+ sQueryResponse.content = dictDefFuncList
|
|
|
|
+ sQueryResponse.total = dictDefFuncList.size.toLong()
|
|
|
|
+ }else {
|
|
|
|
+ val familyList = equipFamilyService.select(SFilter.eq("family", request.type!!)).exec()
|
|
|
|
+ if (familyList.size>0){
|
|
|
|
+ val equipFamily = familyList[0]
|
|
|
|
+// schemeService.dictInfoProperty(projectId!!, dictProject.groupCode!!, equipFamily.equipCode!!,request.type!!)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }else {
|
|
|
|
+ val dictDefFuncBuilder = defFuncIdGatherService.select(request.filters).filter(
|
|
|
|
+ SFilter.eq("type","common"),
|
|
|
|
+ SFilter.eq("classCode", request.type!!))
|
|
|
|
+ /** 过滤 */
|
|
|
|
+ if (null != request.projection) {
|
|
|
|
+ dictDefFuncBuilder.projection(request.projection!!)
|
|
|
|
+ }
|
|
|
|
+ /** 排序 */
|
|
|
|
+ if (null != request.orders) {
|
|
|
|
+ dictDefFuncBuilder.order(request.orders!!)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** 去重 */
|
|
|
|
+ if (null != request.distinct && request.distinct!!) {
|
|
|
|
+ dictDefFuncBuilder.distinct()
|
|
|
|
+ }
|
|
|
|
+ val dictDefFuncList = dictDefFuncBuilder.table("dict.def_funcid_gather").order("sort").exec()
|
|
|
|
+ sQueryResponse.content = dictDefFuncList
|
|
|
|
+ sQueryResponse.total = dictDefFuncList.size.toLong()
|
|
|
|
+ sQueryResponse.result = SResponseType.success
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }else {
|
|
|
|
+ return defFuncIdGatherService.pageQuery(request, arrayListOf(SFilter.eq("projectId", projectId!!)))
|
|
|
|
+ }
|
|
|
|
+ return sQueryResponse
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 项目定制化设置
|
|
|
|
+ *
|
|
|
|
+ * @param request 字典信息列表
|
|
|
|
+ * @return 返回结果
|
|
|
|
+ */
|
|
|
|
+ fun settingDict(request: SCreateRequest<DefFuncIdGather>): SCreateResponse<DefFuncIdGather> {
|
|
|
|
+ /** 返回对象实例 */
|
|
|
|
+ val sCreateResponse = SCreateResponse<DefFuncIdGather>()
|
|
|
|
+ sCreateResponse.result = SResponseType.failure
|
|
|
|
+ return try {
|
|
|
|
+ /** 数组不为空 */
|
|
|
|
+ if (!request.content.isNullOrEmpty()) {
|
|
|
|
+ /** 遍历字典信息列表 */
|
|
|
|
+ for (dictProject in request.content) {
|
|
|
|
+ /** 项目id为空重新赋值 */
|
|
|
|
+ if (dictProject.projectId.isNullOrEmpty()) {
|
|
|
|
+ dictProject.projectId = "0"
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ /** 插入字典信息数据 */
|
|
|
|
+ defFuncIdGatherService.update(dictProject)
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ e.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ sCreateResponse.result = SResponseType.success
|
|
|
|
+ sCreateResponse.entityList = request.content
|
|
|
|
+ sCreateResponse
|
|
|
|
+ } else {
|
|
|
|
+ sCreateResponse
|
|
|
|
+ }
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ e.printStackTrace()
|
|
|
|
+ sCreateResponse.message = e.message!!
|
|
|
|
+ sCreateResponse
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|