Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
311e47c6
Commit
311e47c6
authored
Jul 19, 2022
by
高建强
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
item:新增系统近一周告警趋势图接口
parent
74235268
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
159 additions
and
12 deletions
+159
-12
EquipAlarmLineVo.java
...a/com/yeejoin/equipmanage/common/vo/EquipAlarmLineVo.java
+12
-0
ConfigureController.java
...m/yeejoin/equipmanage/controller/ConfigureController.java
+22
-0
EquipmentSpecificAlarmMapper.java
...join/equipmanage/mapper/EquipmentSpecificAlarmMapper.java
+8
-0
IEquipmentSpecificAlarmService.java
...n/equipmanage/service/IEquipmentSpecificAlarmService.java
+2
-0
EquipmentSpecificAlarmServiceImpl.java
...anage/service/impl/EquipmentSpecificAlarmServiceImpl.java
+47
-12
EquipmentSpecificAlarmMapper.xml
...rc/main/resources/mapper/EquipmentSpecificAlarmMapper.xml
+68
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/vo/EquipAlarmLineVo.java
0 → 100644
View file @
311e47c6
package
com
.
yeejoin
.
equipmanage
.
common
.
vo
;
import
lombok.Data
;
@Data
public
class
EquipAlarmLineVo
{
private
String
date
;
private
String
indexName
;
private
String
indexKey
;
private
Integer
total
;
private
Integer
index
;
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/ConfigureController.java
View file @
311e47c6
...
@@ -74,4 +74,26 @@ public class ConfigureController extends AbstractBaseController {
...
@@ -74,4 +74,26 @@ public class ConfigureController extends AbstractBaseController {
return
CommonResponseUtil
.
success
(
equipmentSpecificAlarmService
.
equipStatusCount
(
hashMap
));
return
CommonResponseUtil
.
success
(
equipmentSpecificAlarmService
.
equipStatusCount
(
hashMap
));
}
}
@RequestMapping
(
value
=
"/equipAlarmLine"
,
method
=
RequestMethod
.
GET
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"系统近一周告警趋势图"
,
produces
=
"application/json;charset=UTF-8"
,
notes
=
"系统近一周告警趋势图"
)
public
ResponseModel
equipStatusCount
(
@RequestParam
(
required
=
false
)
String
systemCode
,
@RequestParam
(
required
=
false
)
String
indexKeys
)
{
HashMap
<
String
,
Object
>
hashMap
=
new
HashMap
<>();
ReginParams
reginParams
=
getSelectedOrgInfo
();
ReginParams
.
PersonIdentity
personIdentity
=
reginParams
.
getPersonIdentity
();
if
(!
ValidationUtil
.
isEmpty
(
personIdentity
))
{
String
bizOrgCode
=
personIdentity
.
getBizOrgCode
();
if
(
StringUtils
.
isNotBlank
(
bizOrgCode
))
{
hashMap
.
put
(
"bizOrgCode"
,
bizOrgCode
);
}
}
if
(
StringUtils
.
isNotBlank
(
systemCode
))
{
hashMap
.
put
(
"systemCode"
,
systemCode
);
}
if
(
StringUtils
.
isNotBlank
(
indexKeys
))
{
hashMap
.
put
(
"indexKeys"
,
indexKeys
.
split
(
","
));
}
return
CommonResponseUtil
.
success
(
equipmentSpecificAlarmService
.
equipAlarmLine
(
hashMap
));
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/mapper/EquipmentSpecificAlarmMapper.java
View file @
311e47c6
...
@@ -10,6 +10,7 @@ import com.yeejoin.equipmanage.common.entity.dto.AlarmDTO;
...
@@ -10,6 +10,7 @@ import com.yeejoin.equipmanage.common.entity.dto.AlarmDTO;
import
com.yeejoin.equipmanage.common.entity.dto.EquipSpecificAlarmDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipSpecificAlarmDTO
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentIotAlarmVO
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentIotAlarmVO
;
import
com.yeejoin.equipmanage.common.utils.CommonPageInfoParam
;
import
com.yeejoin.equipmanage.common.utils.CommonPageInfoParam
;
import
com.yeejoin.equipmanage.common.vo.EquipAlarmLineVo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -199,4 +200,11 @@ public interface EquipmentSpecificAlarmMapper extends BaseMapper<EquipmentSpecif
...
@@ -199,4 +200,11 @@ public interface EquipmentSpecificAlarmMapper extends BaseMapper<EquipmentSpecif
int
selectCountByIotCode
(
@Param
(
"iotCode"
)
String
iotCode
,
@Param
(
"indexKey"
)
String
indexKey
,
@Param
(
"indexValue"
)
String
indexValue
);
int
selectCountByIotCode
(
@Param
(
"iotCode"
)
String
iotCode
,
@Param
(
"indexKey"
)
String
indexKey
,
@Param
(
"indexValue"
)
String
indexValue
);
List
<
Map
<
String
,
Object
>>
equipStatusCount
(
HashMap
<
String
,
Object
>
hashMap
);
List
<
Map
<
String
,
Object
>>
equipStatusCount
(
HashMap
<
String
,
Object
>
hashMap
);
/**
* 近一周告警趋势
* @param hashMap
* @return
*/
List
<
EquipAlarmLineVo
>
equipAlarmLine
(
HashMap
<
String
,
Object
>
hashMap
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/IEquipmentSpecificAlarmService.java
View file @
311e47c6
...
@@ -85,4 +85,6 @@ public interface IEquipmentSpecificAlarmService extends IService<EquipmentSpecif
...
@@ -85,4 +85,6 @@ public interface IEquipmentSpecificAlarmService extends IService<EquipmentSpecif
List
<
EquipmentSpecificAlarm
>
getEquipListBySpecific
(
Boolean
status
,
Long
equipmentSpecificId
);
List
<
EquipmentSpecificAlarm
>
getEquipListBySpecific
(
Boolean
status
,
Long
equipmentSpecificId
);
LinkedList
<
Map
<
String
,
Object
>>
equipStatusCount
(
HashMap
<
String
,
Object
>
hashMap
);
LinkedList
<
Map
<
String
,
Object
>>
equipStatusCount
(
HashMap
<
String
,
Object
>
hashMap
);
Map
<
String
,
Object
>
equipAlarmLine
(
HashMap
<
java
.
lang
.
String
,
java
.
lang
.
Object
>
hashMap
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/EquipmentSpecificAlarmServiceImpl.java
View file @
311e47c6
...
@@ -23,6 +23,7 @@ import com.yeejoin.equipmanage.common.vo.*;
...
@@ -23,6 +23,7 @@ import com.yeejoin.equipmanage.common.vo.*;
import
com.yeejoin.equipmanage.fegin.JcsFeign
;
import
com.yeejoin.equipmanage.fegin.JcsFeign
;
import
com.yeejoin.equipmanage.mapper.*
;
import
com.yeejoin.equipmanage.mapper.*
;
import
com.yeejoin.equipmanage.service.*
;
import
com.yeejoin.equipmanage.service.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.PageImpl
;
...
@@ -42,6 +43,7 @@ import java.time.ZoneId;
...
@@ -42,6 +43,7 @@ import java.time.ZoneId;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.time.temporal.TemporalAccessor
;
import
java.time.temporal.TemporalAccessor
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* @author DELL
* @author DELL
...
@@ -98,8 +100,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -98,8 +100,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
if
(
0
==
list
.
size
())
{
if
(
0
==
list
.
size
())
{
throw
new
RuntimeException
(
"导出数据列表无数据!"
);
throw
new
RuntimeException
(
"导出数据列表无数据!"
);
}
}
ExcelUtil
.
createTemplate
(
response
,
"设备告警信息"
,
"设备告警信息"
,
equipmentDownloads
,
EquipmentAlarmDownloadVO
.
class
,
null
,
ExcelUtil
.
createTemplate
(
response
,
"设备告警信息"
,
"设备告警信息"
,
equipmentDownloads
,
EquipmentAlarmDownloadVO
.
class
,
null
,
false
);
false
);
}
}
...
@@ -126,8 +127,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -126,8 +127,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
alarmDownloadVO
.
setHandleType
(
""
);
alarmDownloadVO
.
setHandleType
(
""
);
}
else
{
}
else
{
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
)));
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
)));
alarmDownloadVO
.
setHandleType
(
StringUtil
.
isNotEmpty
(
handleType
)
alarmDownloadVO
.
setHandleType
(
StringUtil
.
isNotEmpty
(
handleType
)
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
))).
getTypeName
());
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
))).
getTypeName
());
}
}
alarmDownloadVO
.
setResolveResult
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"resolveResult"
))
?
alarm
.
get
(
"resolveResult"
).
toString
()
:
""
);
alarmDownloadVO
.
setResolveResult
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"resolveResult"
))
?
alarm
.
get
(
"resolveResult"
).
toString
()
:
""
);
alarmDownloadVO
.
setConfirmDate
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"confirmDate"
))
?
alarm
.
get
(
"confirmDate"
).
toString
().
replace
(
"T"
,
" "
)
:
""
);
alarmDownloadVO
.
setConfirmDate
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"confirmDate"
))
?
alarm
.
get
(
"confirmDate"
).
toString
().
replace
(
"T"
,
" "
)
:
""
);
...
@@ -158,8 +158,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -158,8 +158,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
alarmDownloadVO
.
setHandleType
(
""
);
alarmDownloadVO
.
setHandleType
(
""
);
}
else
{
}
else
{
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
)));
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
)));
alarmDownloadVO
.
setHandleType
(
StringUtil
.
isNotEmpty
(
handleType
)
alarmDownloadVO
.
setHandleType
(
StringUtil
.
isNotEmpty
(
handleType
)
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
))).
getTypeName
());
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
alarm
.
get
(
"handleType"
))).
getTypeName
());
}
}
alarmDownloadVO
.
setResolveResult
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"resolveResult"
))
?
alarm
.
get
(
"resolveResult"
).
toString
()
:
""
);
alarmDownloadVO
.
setResolveResult
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"resolveResult"
))
?
alarm
.
get
(
"resolveResult"
).
toString
()
:
""
);
alarmDownloadVO
.
setConfirmDate
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"confirmDate"
))
?
alarm
.
get
(
"confirmDate"
).
toString
().
replace
(
"T"
,
" "
)
:
""
);
alarmDownloadVO
.
setConfirmDate
(
StringUtil
.
isNotEmpty
(
alarm
.
get
(
"confirmDate"
))
?
alarm
.
get
(
"confirmDate"
).
toString
().
replace
(
"T"
,
" "
)
:
""
);
...
@@ -189,8 +188,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -189,8 +188,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
x
.
put
(
"handleType"
,
null
);
x
.
put
(
"handleType"
,
null
);
}
else
{
}
else
{
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
x
.
get
(
"handleType"
)));
String
handleType
=
ConfirmAlamEnum
.
getTypeByCode
(
String
.
valueOf
(
x
.
get
(
"handleType"
)));
x
.
put
(
"handleType"
,
StringUtil
.
isNotEmpty
(
handleType
)
x
.
put
(
"handleType"
,
StringUtil
.
isNotEmpty
(
handleType
)
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
x
.
get
(
"handleType"
))).
getTypeName
());
?
handleType
:
signalClassifyService
.
getTypeNameByCode
(
String
.
valueOf
(
x
.
get
(
"handleType"
))).
getTypeName
());
}
}
// 冗余统一跑马灯显示字段取值
// 冗余统一跑马灯显示字段取值
x
.
put
(
"equipmentSpecificIndexName"
,
x
.
get
(
"fireEquipmentSpecificIndexName"
));
x
.
put
(
"equipmentSpecificIndexName"
,
x
.
get
(
"fireEquipmentSpecificIndexName"
));
...
@@ -262,8 +260,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -262,8 +260,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
dataVO
.
setHandleStatus
(
StringUtil
.
toString
(
x
.
get
(
"handleStatus"
)));
dataVO
.
setHandleStatus
(
StringUtil
.
toString
(
x
.
get
(
"handleStatus"
)));
dataVO
.
setStatus
(
StringUtil
.
toString
(
x
.
get
(
"status"
)));
dataVO
.
setStatus
(
StringUtil
.
toString
(
x
.
get
(
"status"
)));
Object
type
=
x
.
get
(
"type"
);
Object
type
=
x
.
get
(
"type"
);
if
(
AlarmTypeEnum
.
HZGJ
.
getCode
().
equals
(
type
)
||
AlarmTypeEnum
.
GZGJ
.
getCode
().
equals
(
type
)
if
(
AlarmTypeEnum
.
HZGJ
.
getCode
().
equals
(
type
)
||
AlarmTypeEnum
.
GZGJ
.
getCode
().
equals
(
type
)
||
AlarmTypeEnum
.
PB
.
getCode
().
equals
(
type
))
{
||
AlarmTypeEnum
.
PB
.
getCode
().
equals
(
type
))
{
dataVO
.
setAlarmType
(
AlarmTypeEnum
.
getTypeByCode
(
String
.
valueOf
(
type
)));
dataVO
.
setAlarmType
(
AlarmTypeEnum
.
getTypeByCode
(
String
.
valueOf
(
type
)));
}
}
dataVO
.
setAlarmContent
(
String
.
valueOf
(
x
.
get
(
"alamContent"
)));
dataVO
.
setAlarmContent
(
String
.
valueOf
(
x
.
get
(
"alamContent"
)));
...
@@ -649,8 +646,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -649,8 +646,7 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
}
}
@Override
@Override
public
List
<
EquipmentSpecificAlarm
>
getEquipListBySpecific
(
Boolean
status
,
public
List
<
EquipmentSpecificAlarm
>
getEquipListBySpecific
(
Boolean
status
,
Long
equipmentSpecificId
)
{
Long
equipmentSpecificId
)
{
return
equipmentSpecificAlarmMapper
.
getEquipListBySpecific
(
status
,
equipmentSpecificId
);
return
equipmentSpecificAlarmMapper
.
getEquipListBySpecific
(
status
,
equipmentSpecificId
);
}
}
...
@@ -668,4 +664,43 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
...
@@ -668,4 +664,43 @@ public class EquipmentSpecificAlarmServiceImpl extends ServiceImpl<EquipmentSpec
return
linkedList
;
return
linkedList
;
}
}
@Override
public
Map
<
String
,
Object
>
equipAlarmLine
(
HashMap
<
String
,
Object
>
hashMap
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
List
<
EquipAlarmLineVo
>
list
=
equipmentSpecificAlarmMapper
.
equipAlarmLine
(
hashMap
);
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
LinkedHashSet
<
String
>
xAxis
=
new
LinkedHashSet
<>();
LinkedHashMap
<
String
,
Object
>
yAxis
=
new
LinkedHashMap
<>();
// 取出所有非空indexName
Set
<
Object
>
indexKNameSet
=
list
.
stream
().
map
(
EquipAlarmLineVo:
:
getIndexName
).
filter
(
StringUtils:
:
isNotBlank
).
collect
(
Collectors
.
toSet
());
Map
<
String
,
List
<
EquipAlarmLineVo
>>
dateCollect
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
EquipAlarmLineVo:
:
getDate
));
// 迭代器倒序遍历map
ListIterator
<
Map
.
Entry
<
String
,
List
<
EquipAlarmLineVo
>>>
i
=
new
ArrayList
<
Map
.
Entry
<
String
,
List
<
EquipAlarmLineVo
>>>(
dateCollect
.
entrySet
()).
listIterator
(
dateCollect
.
size
());
while
(
i
.
hasPrevious
())
{
LinkedList
<
Object
>
yData
=
new
LinkedList
<>();
Map
.
Entry
<
String
,
List
<
EquipAlarmLineVo
>>
entry
=
i
.
previous
();
String
key
=
entry
.
getKey
();
List
<
EquipAlarmLineVo
>
value
=
entry
.
getValue
();
for
(
EquipAlarmLineVo
vo
:
value
)
{
String
indexName
=
vo
.
getIndexName
();
if
(
indexKNameSet
.
contains
(
indexName
))
{
yData
.
add
(
vo
.
getTotal
());
}
else
{
yData
.
add
(
0
);
}
}
yAxis
.
put
(
key
,
yData
);
xAxis
.
add
(
key
);
}
resultMap
.
put
(
"legend"
,
indexKNameSet
);
resultMap
.
put
(
"xAxis"
,
xAxis
);
resultMap
.
put
(
"yAxis"
,
yAxis
);
}
return
resultMap
;
}
}
}
amos-boot-system-equip/src/main/resources/mapper/EquipmentSpecificAlarmMapper.xml
View file @
311e47c6
...
@@ -1173,4 +1173,71 @@
...
@@ -1173,4 +1173,71 @@
</if>
</if>
</where>
</where>
</select>
</select>
<select
id=
"equipAlarmLine"
parameterType=
"java.util.HashMap"
resultType=
"com.yeejoin.equipmanage.common.vo.EquipAlarmLineVo"
>
SELECT
s.`index`,
s.date,
IFNULL(s1.equipment_specific_index_name,'') AS indexName,
IFNULL(s1.equipment_specific_index_key,'') AS `indexKey`,
IFNULL(s1.`total`,0) AS total
FROM
(
SELECT
( @s := @s + 1 ) + 1 AS `index`,
DATE( DATE_SUB( CURRENT_DATE, INTERVAL @s DAY ) ) AS date
FROM
mysql.help_topic,
( SELECT @s := - 1 ) temp
WHERE
@s
<
6
) s
LEFT JOIN (
SELECT
t.equipment_specific_index_name,
t.equipment_specific_index_key,
t.`total`,
t.date
FROM
(
SELECT
wlesa.equipment_specific_id,
wlesa.equipment_specific_index_name,
wlesa.equipment_specific_index_key,
COUNT( DISTINCT wlesa.equipment_specific_id ) AS `total`,
LEFT ( wlesa.create_date, 10 ) AS date
FROM
`wl_equipment_specific_alarm_log` `wlesa`
LEFT JOIN `wl_equipment_specific` `wles` ON `wlesa`.`equipment_specific_id` = `wles`.`id`
LEFT JOIN f_fire_fighting_system fs ON FIND_IN_SET( fs.id, wles.system_id )
<where>
DATE_SUB( CURDATE( ), INTERVAL 7 DAY )
<
= date( wlesa.create_date )
AND wlesa.equipment_specific_index_value = 'true'
<if
test=
"systemCode != null and systemCode != ''"
>
AND fs.code = #{systemCode}
</if>
<if
test=
"bizOrgCode != null and bizOrgCode != ''"
>
AND wles.biz_org_code like concat (#{bizOrgCode},'%')
</if>
<if
test=
"indexKeys != null and indexKeys.length >0"
>
AND wlesa.equipment_specific_index_key IN
<foreach
collection=
"indexKeys"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
</where>
GROUP BY
wlesa.equipment_specific_id,
wlesa.equipment_specific_index_key,
LEFT ( wlesa.create_date, 10 )
) t
GROUP BY
t.equipment_specific_index_key,
t.date
) s1 ON s.date = s1.date
GROUP BY
s.date,
s1.equipment_specific_index_key
ORDER BY
s.date
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment