Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bill-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
bill-platform
Commits
2618c5f1
Commit
2618c5f1
authored
Jun 25, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加排号与评价统计报表
parent
8264ee31
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
361 additions
and
35 deletions
+361
-35
bill-manager/src/main/java/com/mortals/xhx/daemon/task/SitePjStatTaskImpl.java
.../java/com/mortals/xhx/daemon/task/SitePjStatTaskImpl.java
+16
-3
bill-manager/src/main/java/com/mortals/xhx/module/ph/dao/PhQueueStatDao.java
...in/java/com/mortals/xhx/module/ph/dao/PhQueueStatDao.java
+10
-0
bill-manager/src/main/java/com/mortals/xhx/module/ph/dao/ibatis/PhQueueStatDaoImpl.java
.../mortals/xhx/module/ph/dao/ibatis/PhQueueStatDaoImpl.java
+24
-10
bill-manager/src/main/java/com/mortals/xhx/module/ph/service/PhQueueStatService.java
...com/mortals/xhx/module/ph/service/PhQueueStatService.java
+9
-0
bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
...ls/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
+179
-10
bill-manager/src/main/java/com/mortals/xhx/module/ph/web/PhQueueStatController.java
.../com/mortals/xhx/module/ph/web/PhQueueStatController.java
+91
-9
bill-manager/src/main/java/com/mortals/xhx/module/pj/web/PjEvaluateStatController.java
...m/mortals/xhx/module/pj/web/PjEvaluateStatController.java
+1
-1
bill-manager/src/main/resources/sqlmap/module/ph/PhQueueStatMapperExt.xml
.../main/resources/sqlmap/module/ph/PhQueueStatMapperExt.xml
+31
-0
bill-manager/src/main/resources/sqlmap/module/pj/PjEvaluateStatMapperExt.xml
...in/resources/sqlmap/module/pj/PjEvaluateStatMapperExt.xml
+0
-2
No files found.
bill-manager/src/main/java/com/mortals/xhx/daemon/task/SitePjStatTaskImpl.java
View file @
2618c5f1
...
...
@@ -9,6 +9,7 @@ import com.mortals.xhx.common.code.PlatformTypeEnum;
import
com.mortals.xhx.common.pdu.RespData
;
import
com.mortals.xhx.common.pdu.site.SitePdu
;
import
com.mortals.xhx.feign.site.ISiteFeign
;
import
com.mortals.xhx.module.ph.model.PhQueueStatEntity
;
import
com.mortals.xhx.module.ph.service.PhQueueService
;
import
com.mortals.xhx.module.ph.service.PhQueueStatService
;
import
com.mortals.xhx.module.pj.model.PjEvaluateStatEntity
;
...
...
@@ -41,13 +42,12 @@ public class SitePjStatTaskImpl implements ITaskExcuteService {
private
PhQueueStatService
phQueueStatService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"站点评价统计任务"
);
int
year
=
DateUtil
.
date
().
year
();
int
month
=
DateUtil
.
date
().
month
()
+
1
;
int
month
=
DateUtil
.
date
().
month
()
+
1
;
int
day
=
DateUtil
.
date
().
dayOfMonth
();
SitePdu
sitePdu
=
new
SitePdu
();
...
...
@@ -68,6 +68,19 @@ public class SitePjStatTaskImpl implements ITaskExcuteService {
sitestatEntity
.
setDay
(
day
);
//设置年月日
pjEvaluateStatService
.
updateSitePjStat
(
sitestatEntity
,
null
);
//设置排号
PhQueueStatEntity
phQueueStatEntity
=
new
PhQueueStatEntity
();
sitestatEntity
.
initAttrValue
();
sitestatEntity
.
setSiteId
(
site
.
getId
());
sitestatEntity
.
setSiteName
(
site
.
getSiteName
());
sitestatEntity
.
setSiteCode
(
site
.
getSiteCode
());
sitestatEntity
.
setYear
(
year
);
sitestatEntity
.
setMonth
(
month
);
sitestatEntity
.
setDay
(
day
);
phQueueStatService
.
updateSitePhStat
(
phQueueStatEntity
,
null
);
});
}
...
...
@@ -84,7 +97,7 @@ public class SitePjStatTaskImpl implements ITaskExcuteService {
public
static
void
main
(
String
[]
args
)
{
int
year
=
DateUtil
.
date
().
year
();
int
month
=
DateUtil
.
date
().
month
()
+
1
;
int
month
=
DateUtil
.
date
().
month
()
+
1
;
int
day
=
DateUtil
.
date
().
dayOfMonth
();
System
.
out
.
println
(
year
+
"年"
+
month
+
"月"
+
day
+
"日"
);
...
...
bill-manager/src/main/java/com/mortals/xhx/module/ph/dao/PhQueueStatDao.java
View file @
2618c5f1
package
com.mortals.xhx.module.ph.dao
;
import
com.mortals.framework.dao.ICRUDDao
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.module.ph.model.PhQueueStatEntity
;
import
com.mortals.xhx.module.ph.model.PhQueueStatQuery
;
import
com.mortals.xhx.module.pj.model.PjEvaluateStatEntity
;
import
com.mortals.xhx.module.pj.model.PjEvaluateStatQuery
;
import
java.util.List
;
/**
* 排队叫号汇总统计Dao
...
...
@@ -14,4 +20,8 @@ import java.util.List;
public
interface
PhQueueStatDao
extends
ICRUDDao
<
PhQueueStatEntity
,
Long
>{
String
SQLID_GET_STATLIST
=
"getStatList"
;
List
<
PhQueueStatEntity
>
getStatList
(
PhQueueStatQuery
query
,
PageInfo
pageInfo
);
}
bill-manager/src/main/java/com/mortals/xhx/module/ph/dao/ibatis/PhQueueStatDaoImpl.java
View file @
2618c5f1
package
com.mortals.xhx.module.ph.dao.ibatis
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.module.ph.dao.PhQueueStatDao
;
import
com.mortals.xhx.module.ph.model.PhQueueStatEntity
;
import
java.util.Date
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
com.mortals.xhx.module.ph.model.PhQueueStatQuery
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 排队叫号汇总统计DaoImpl DAO接口
*
* @author zxfei
* @date 2024-06-24
*/
* 排队叫号汇总统计DaoImpl DAO接口
*
* @author zxfei
* @date 2024-06-24
*/
@Repository
(
"phQueueStatDao"
)
public
class
PhQueueStatDaoImpl
extends
BaseCRUDDaoMybatis
<
PhQueueStatEntity
,
Long
>
implements
PhQueueStatDao
{
public
class
PhQueueStatDaoImpl
extends
BaseCRUDDaoMybatis
<
PhQueueStatEntity
,
Long
>
implements
PhQueueStatDao
{
@Override
public
List
<
PhQueueStatEntity
>
getStatList
(
PhQueueStatQuery
query
,
PageInfo
pageInfo
)
{
ParamDto
queryParam
=
super
.
getQueryParam
(
query
);
if
(
pageInfo
.
getPrePageResult
()
==
-
1
)
{
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
);
}
else
{
RowBounds
rowBounds
=
new
RowBounds
(
pageInfo
.
getBeginIndex
(),
pageInfo
.
getPrePageResult
());
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
,
rowBounds
);
}
}
}
bill-manager/src/main/java/com/mortals/xhx/module/ph/service/PhQueueStatService.java
View file @
2618c5f1
package
com.mortals.xhx.module.ph.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.ph.model.PhQueueStatEntity
;
import
com.mortals.xhx.module.ph.dao.PhQueueStatDao
;
import
com.mortals.xhx.module.ph.model.PhQueueStatQuery
;
import
com.mortals.xhx.module.pj.model.PjEvaluateStatEntity
;
import
java.util.List
;
/**
* PhQueueStatService
*
...
...
@@ -19,4 +23,9 @@ public interface PhQueueStatService extends ICRUDService<PhQueueStatEntity,Long>
PhQueueStatDao
getDao
();
Rest
<
Void
>
updateSitePhStat
(
PhQueueStatEntity
entity
,
Context
context
);
List
<
PhQueueStatEntity
>
getBillInfos
(
PhQueueStatQuery
query
,
Integer
datePattern
,
PageInfo
pageInfo
,
Context
context
);
}
\ No newline at end of file
bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
View file @
2618c5f1
package
com.mortals.xhx.module.ph.service.impl
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.common.code.TimeUnitEnum
;
import
com.mortals.xhx.module.ph.model.PhQueueEntity
;
import
com.mortals.xhx.module.ph.model.PhQueueQuery
;
import
com.mortals.xhx.module.ph.model.PhQueueStatQuery
;
...
...
@@ -19,10 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.util.ObjectUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -58,8 +59,15 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
log
.
info
(
"更新站点评价统计数据,站点ID:{},站点名称:{},日期:{},评价数量:{}"
,
entity
.
getSiteId
(),
entity
.
getSiteName
(),
currentDate
,
phQueueEntities
.
size
());
updateSitePhCount
(
entity
,
phQueueEntities
);
//部门
updateSiteSectionNamePhCount
(
currentDate
,
entity
,
phQueueEntities
);
//大厅
updateSiteHallPhCount
(
currentDate
,
entity
,
phQueueEntities
);
//业务
updateSiteBussinessPhCount
(
currentDate
,
entity
,
phQueueEntities
);
//窗口
updateSiteWindowPhCount
(
currentDate
,
entity
,
phQueueEntities
);
//平均等待时间
return
Rest
.
ok
();
...
...
@@ -72,6 +80,8 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
.
year
(
entity
.
getYear
())
.
month
(
entity
.
getMonth
())
.
day
(
entity
.
getDay
()));
Double
intAvg
=
phQueueEntities
.
stream
().
mapToInt
(
e
->
e
.
getWaitTime
()).
average
().
orElse
(
0
D
);
if
(
ObjectUtils
.
isEmpty
(
phQueueStatEntity
))
{
//统计当前站点新增所有评价数量
phQueueStatEntity
=
new
PhQueueStatEntity
();
...
...
@@ -80,6 +90,9 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity
.
setSiteCode
(
entity
.
getSiteCode
());
phQueueStatEntity
.
setSiteName
(
entity
.
getSiteName
());
phQueueStatEntity
.
setPhCount
(
phQueueEntities
.
size
());
//计算平均等待时间
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
...
...
@@ -88,6 +101,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
this
.
save
(
phQueueStatEntity
);
}
else
{
phQueueStatEntity
.
setPhCount
(
phQueueEntities
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
...
...
@@ -97,13 +111,14 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
}
}
private
void
updateSiteSectionNamePhCount
(
String
currentDate
,
PhQueueStatEntity
entity
,
List
<
PhQueueEntity
>
phQueueEntities
)
{
Map
<
String
,
L
ong
>
collect
=
phQueueEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSectionName
(),
Collectors
.
counting
()));
Map
<
String
,
L
ist
<
PhQueueEntity
>>
collect
=
phQueueEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSectionName
()));
collect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
sectionName
=
item
.
getKey
();
Long
value
=
item
.
getValue
();
List
<
PhQueueEntity
>
value
=
item
.
getValue
();
Double
intAvg
=
value
.
stream
().
mapToInt
(
e
->
e
.
getWaitTime
()).
average
().
orElse
(
0
D
);
log
.
info
(
"更新站点评价统计数据,站点名称:{},日期:{},部门:{},评价数量:{}"
,
entity
.
getSiteName
(),
currentDate
,
entity
.
getSectionName
(),
phQueueEntities
.
size
());
PhQueueStatEntity
phQueueStatEntity
=
this
.
selectOne
(
new
PhQueueStatQuery
()
.
siteId
(
entity
.
getSiteId
())
...
...
@@ -119,7 +134,8 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity
.
setSiteCode
(
entity
.
getSiteCode
());
phQueueStatEntity
.
setSiteName
(
entity
.
getSiteName
());
phQueueStatEntity
.
setSectionName
(
sectionName
);
phQueueStatEntity
.
setPhCount
(
value
.
intValue
());
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
...
...
@@ -127,7 +143,8 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
phQueueStatEntity
.
setCreateUserId
(
1L
);
this
.
save
(
phQueueStatEntity
);
}
else
{
phQueueStatEntity
.
setPhCount
(
value
.
intValue
());
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
...
...
@@ -139,4 +156,156 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
}
private
void
updateSiteHallPhCount
(
String
currentDate
,
PhQueueStatEntity
entity
,
List
<
PhQueueEntity
>
phQueueEntities
)
{
Map
<
String
,
List
<
PhQueueEntity
>>
collect
=
phQueueEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSectionName
()));
collect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
hallName
=
item
.
getKey
();
List
<
PhQueueEntity
>
value
=
item
.
getValue
();
Double
intAvg
=
value
.
stream
().
mapToInt
(
e
->
e
.
getWaitTime
()).
average
().
orElse
(
0
D
);
log
.
info
(
"更新站点评价统计数据,站点名称:{},日期:{},大厅:{},评价数量:{}"
,
entity
.
getSiteName
(),
currentDate
,
entity
.
getHallName
(),
phQueueEntities
.
size
());
PhQueueStatEntity
phQueueStatEntity
=
this
.
selectOne
(
new
PhQueueStatQuery
()
.
siteId
(
entity
.
getSiteId
())
.
hallName
(
hallName
)
.
year
(
entity
.
getYear
())
.
month
(
entity
.
getMonth
())
.
day
(
entity
.
getDay
()));
if
(
ObjectUtils
.
isEmpty
(
phQueueStatEntity
))
{
//统计当前站点新增所有评价数量
phQueueStatEntity
=
new
PhQueueStatEntity
();
phQueueStatEntity
.
initAttrValue
();
phQueueStatEntity
.
setSiteId
(
entity
.
getSiteId
());
phQueueStatEntity
.
setSiteCode
(
entity
.
getSiteCode
());
phQueueStatEntity
.
setSiteName
(
entity
.
getSiteName
());
phQueueStatEntity
.
setHallName
(
hallName
);
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setCreateTime
(
new
Date
());
phQueueStatEntity
.
setCreateUserId
(
1L
);
this
.
save
(
phQueueStatEntity
);
}
else
{
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setUpdateTime
(
new
Date
());
phQueueStatEntity
.
setUpdateUserId
(
1L
);
this
.
update
(
phQueueStatEntity
);
}
});
}
private
void
updateSiteBussinessPhCount
(
String
currentDate
,
PhQueueStatEntity
entity
,
List
<
PhQueueEntity
>
phQueueEntities
)
{
Map
<
String
,
List
<
PhQueueEntity
>>
collect
=
phQueueEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSectionName
()));
collect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
bussiness
=
item
.
getKey
();
List
<
PhQueueEntity
>
value
=
item
.
getValue
();
Double
intAvg
=
value
.
stream
().
mapToInt
(
e
->
e
.
getWaitTime
()).
average
().
orElse
(
0
D
);
log
.
info
(
"更新站点评价统计数据,站点名称:{},日期:{},业务:{},评价数量:{}"
,
entity
.
getSiteName
(),
currentDate
,
entity
.
getBusiness
(),
phQueueEntities
.
size
());
PhQueueStatEntity
phQueueStatEntity
=
this
.
selectOne
(
new
PhQueueStatQuery
()
.
siteId
(
entity
.
getSiteId
())
.
business
(
bussiness
)
.
year
(
entity
.
getYear
())
.
month
(
entity
.
getMonth
())
.
day
(
entity
.
getDay
()));
if
(
ObjectUtils
.
isEmpty
(
phQueueStatEntity
))
{
//统计当前站点新增所有评价数量
phQueueStatEntity
=
new
PhQueueStatEntity
();
phQueueStatEntity
.
initAttrValue
();
phQueueStatEntity
.
setSiteId
(
entity
.
getSiteId
());
phQueueStatEntity
.
setSiteCode
(
entity
.
getSiteCode
());
phQueueStatEntity
.
setSiteName
(
entity
.
getSiteName
());
phQueueStatEntity
.
setBusiness
(
bussiness
);
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setCreateTime
(
new
Date
());
phQueueStatEntity
.
setCreateUserId
(
1L
);
this
.
save
(
phQueueStatEntity
);
}
else
{
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setUpdateTime
(
new
Date
());
phQueueStatEntity
.
setUpdateUserId
(
1L
);
this
.
update
(
phQueueStatEntity
);
}
});
}
private
void
updateSiteWindowPhCount
(
String
currentDate
,
PhQueueStatEntity
entity
,
List
<
PhQueueEntity
>
phQueueEntities
)
{
Map
<
String
,
List
<
PhQueueEntity
>>
collect
=
phQueueEntities
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSectionName
()));
collect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
window
=
item
.
getKey
();
List
<
PhQueueEntity
>
value
=
item
.
getValue
();
Double
intAvg
=
value
.
stream
().
mapToInt
(
e
->
e
.
getWaitTime
()).
average
().
orElse
(
0
D
);
log
.
info
(
"更新站点评价统计数据,站点名称:{},日期:{},业务:{},评价数量:{}"
,
entity
.
getSiteName
(),
currentDate
,
entity
.
getBusiness
(),
phQueueEntities
.
size
());
PhQueueStatEntity
phQueueStatEntity
=
this
.
selectOne
(
new
PhQueueStatQuery
()
.
siteId
(
entity
.
getSiteId
())
.
windowFromnum
(
window
)
.
year
(
entity
.
getYear
())
.
month
(
entity
.
getMonth
())
.
day
(
entity
.
getDay
()));
if
(
ObjectUtils
.
isEmpty
(
phQueueStatEntity
))
{
//统计当前站点新增所有评价数量
phQueueStatEntity
=
new
PhQueueStatEntity
();
phQueueStatEntity
.
initAttrValue
();
phQueueStatEntity
.
setSiteId
(
entity
.
getSiteId
());
phQueueStatEntity
.
setSiteCode
(
entity
.
getSiteCode
());
phQueueStatEntity
.
setSiteName
(
entity
.
getSiteName
());
phQueueStatEntity
.
setWindowFromnum
(
window
);
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setCreateTime
(
new
Date
());
phQueueStatEntity
.
setCreateUserId
(
1L
);
this
.
save
(
phQueueStatEntity
);
}
else
{
phQueueStatEntity
.
setPhCount
(
value
.
size
());
phQueueStatEntity
.
setWaitTime
(
intAvg
.
intValue
());
phQueueStatEntity
.
setYear
(
entity
.
getYear
());
phQueueStatEntity
.
setMonth
(
entity
.
getMonth
());
phQueueStatEntity
.
setDay
(
entity
.
getDay
());
phQueueStatEntity
.
setUpdateTime
(
new
Date
());
phQueueStatEntity
.
setUpdateUserId
(
1L
);
this
.
update
(
phQueueStatEntity
);
}
});
}
@Override
public
List
<
PhQueueStatEntity
>
getBillInfos
(
PhQueueStatQuery
query
,
Integer
datePattern
,
PageInfo
pageInfo
,
Context
context
)
{
List
<
PhQueueStatEntity
>
statList
=
new
ArrayList
<>();
if
(
datePattern
==
TimeUnitEnum
.
DAY
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"day"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"year"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"month"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"day"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
if
(
datePattern
==
TimeUnitEnum
.
MONTH
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"month"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"year"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"month"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
if
(
datePattern
==
TimeUnitEnum
.
YEAR
.
getValue
())
{
query
.
setGroupList
(
Arrays
.
asList
(
"year"
));
query
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"year"
,
OrderCol
.
DESCENDING
),
new
OrderCol
(
"createTime"
)));
statList
=
this
.
getDao
().
getStatList
(
query
,
pageInfo
);
}
else
{
throw
new
AppException
(
"不支持当前日期格式查询统计!"
);
}
return
statList
;
}
}
\ No newline at end of file
bill-manager/src/main/java/com/mortals/xhx/module/ph/web/PhQueueStatController.java
View file @
2618c5f1
package
com.mortals.xhx.module.ph.web
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.common.pdu.RespData
;
import
com.mortals.xhx.common.pdu.site.SitePdu
;
import
com.mortals.xhx.feign.site.ISiteFeign
;
import
com.mortals.xhx.module.ph.model.PhQueueQuery
;
import
com.mortals.xhx.module.ph.model.PhQueueStatQuery
;
import
com.mortals.xhx.module.pj.model.PjEvaluateQuery
;
import
com.mortals.xhx.module.pj.model.PjEvaluateStatEntity
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StopWatch
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
com.mortals.framework.model.Context
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.module.ph.model.PhQueueStatEntity
;
import
com.mortals.xhx.module.ph.service.PhQueueStatService
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.mortals.framework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Arrays
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
static
com
.
mortals
.
framework
.
ap
.
SysConstains
.*;
import
com.mortals.xhx.common.code.*
;
/**
*
* 排队叫号汇总统计
*
* @author zxfei
* @date 2024-06-24
*/
* 排队叫号汇总统计
*
* @author zxfei
* @date 2024-06-24
*/
@RestController
@RequestMapping
(
"ph/queue/stat"
)
public
class
PhQueueStatController
extends
BaseCRUDJsonBodyMappingController
<
PhQueueStatService
,
PhQueueStatEntity
,
Long
>
{
@Slf4j
public
class
PhQueueStatController
extends
BaseCRUDJsonBodyMappingController
<
PhQueueStatService
,
PhQueueStatEntity
,
Long
>
{
@Autowired
private
ParamService
paramService
;
public
PhQueueStatController
(){
super
.
setModuleDesc
(
"排队叫号汇总统计"
);
@Autowired
private
ISiteFeign
siteFeign
;
public
PhQueueStatController
()
{
super
.
setModuleDesc
(
"排队叫号汇总统计"
);
}
@Override
...
...
@@ -46,5 +73,60 @@ public class PhQueueStatController extends BaseCRUDJsonBodyMappingController<PhQ
super
.
init
(
model
,
context
);
}
@PostMapping
(
value
=
"/stat"
)
@UnAuth
public
Rest
<
String
>
addAttendanceRecordCustom
(
@RequestBody
PhQueueQuery
phQueueQuery
)
{
Rest
<
String
>
ret
=
new
Rest
();
Map
<
String
,
Object
>
model
=
new
HashMap
();
Context
context
=
this
.
getContext
();
String
busiDesc
=
"查询"
+
this
.
getModuleDesc
();
int
code
=
1
;
try
{
//天数区间分段计算
DateTime
attendStart
=
DateUtil
.
parseDate
(
phQueueQuery
.
getTaketimeStart
());
DateTime
attendEnd
=
DateUtil
.
parseDate
(
phQueueQuery
.
getTaketimeEnd
());
Long
compare
=
DateUtil
.
between
(
attendEnd
,
attendStart
,
DateUnit
.
DAY
);
StopWatch
stopWatch
=
new
StopWatch
(
"stopwatch"
);
log
.
info
(
"计算天数区间:{}"
,
compare
);
for
(
int
i
=
0
;
i
<=
compare
.
intValue
();
i
++)
{
DateTime
curDate
=
DateUtil
.
offsetDay
(
attendStart
,
i
);
log
.
info
(
"记录日期:{}"
,
curDate
.
toDateStr
());
stopWatch
.
start
(
"执行本地方法"
);
SitePdu
sitePdu
=
new
SitePdu
();
sitePdu
.
setSize
(-
1
);
Rest
<
RespData
<
List
<
SitePdu
>>>
resp
=
siteFeign
.
list
(
sitePdu
);
if
(
resp
.
getCode
()
==
1
)
{
List
<
SitePdu
>
sitePduList
=
resp
.
getData
().
getData
();
sitePduList
.
stream
().
forEach
(
site
->
{
PhQueueStatEntity
sitestatEntity
=
new
PhQueueStatEntity
();
sitestatEntity
.
initAttrValue
();
sitestatEntity
.
setSiteId
(
site
.
getId
());
sitestatEntity
.
setSiteName
(
site
.
getSiteName
());
sitestatEntity
.
setSiteCode
(
site
.
getSiteCode
());
sitestatEntity
.
setYear
(
curDate
.
year
());
sitestatEntity
.
setMonth
(
curDate
.
month
()
+
1
);
sitestatEntity
.
setDay
(
curDate
.
dayOfMonth
());
//设置年月日
this
.
service
.
updateSitePhStat
(
sitestatEntity
,
context
);
});
}
stopWatch
.
stop
();
log
.
info
(
"日期:{} 完成,耗时:{}ms"
,
curDate
.
toDateStr
(),
stopWatch
.
getLastTaskTimeMillis
());
}
model
.
put
(
"message_info"
,
busiDesc
+
"成功"
);
this
.
recordSysLog
(
this
.
request
,
busiDesc
+
" 【成功】"
);
}
catch
(
Exception
e
)
{
code
=
-
1
;
this
.
doException
(
this
.
request
,
busiDesc
,
model
,
e
);
model
.
put
(
"message_info"
,
e
.
getMessage
());
}
this
.
init
(
model
,
context
);
ret
.
setCode
(
code
);
ret
.
setMsg
(
model
.
get
(
"message_info"
)
==
null
?
""
:
model
.
remove
(
"message_info"
).
toString
());
return
ret
;
}
}
\ No newline at end of file
bill-manager/src/main/java/com/mortals/xhx/module/pj/web/PjEvaluateStatController.java
View file @
2618c5f1
...
...
@@ -73,7 +73,7 @@ public class PjEvaluateStatController extends BaseCRUDJsonBodyMappingController<
}
@PostMapping
(
value
=
"/
pj
stat"
)
@PostMapping
(
value
=
"/stat"
)
@UnAuth
public
Rest
<
String
>
addAttendanceRecordCustom
(
@RequestBody
PjEvaluateQuery
pjEvaluateQuery
)
{
Rest
<
String
>
ret
=
new
Rest
();
...
...
bill-manager/src/main/resources/sqlmap/module/ph/PhQueueStatMapperExt.xml
0 → 100644
View file @
2618c5f1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mortals.xhx.module.ph.dao.ibatis.PhQueueStatDaoImpl"
>
<!-- 获取统计列表 -->
<select
id=
"getStatList"
parameterType=
"paramDto"
resultMap=
"PhQueueStatEntity-Map"
>
select
<!-- 获取分组字段 -->
<if
test=
"groupList != null and !groupList.isEmpty()"
>
<foreach
collection=
"groupList"
open=
""
close=
""
index=
"index"
item=
"item"
>
${item},
</foreach>
</if>
id,
year,
month,
day,
<!-- 评价数量-->
sum(IFNULL(a.ph_count,0)) ph_count
from mortals_xhx_ph_queue_stat as a
<trim
suffixOverrides=
"where"
suffix=
""
>
where
<trim
prefixOverrides=
"and"
prefix=
""
>
<include
refid=
"_condition_"
/>
</trim>
</trim>
<include
refid=
"_group_by_"
/>
<include
refid=
"_orderCols_"
/>
</select>
</mapper>
\ No newline at end of file
bill-manager/src/main/resources/sqlmap/module/pj/PjEvaluateStatMapperExt.xml
View file @
2618c5f1
...
...
@@ -12,8 +12,6 @@
</foreach>
</if>
id,
site_id,
createTime,
year,
month,
day,
...
...
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