Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
tianjin-cement
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
竹天卫
tianjin-cement
Commits
85ada413
Commit
85ada413
authored
Jan 19, 2021
by
qinhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
检测项城市分布 统计
parent
2aee0f89
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
355 additions
and
78 deletions
+355
-78
pom.xml
cement-business/pom.xml
+0
-3
DataStatisticsController.java
.../cement/business/controller/DataStatisticsController.java
+43
-45
NormProductionController.java
.../cement/business/controller/NormProductionController.java
+1
-0
ReportController.java
.../wise/sc/cement/business/controller/ReportController.java
+0
-1
ItemDistribution.java
...a/cn/wise/sc/cement/business/entity/ItemDistribution.java
+14
-0
ItemDistributionSample.java
...ise/sc/cement/business/entity/ItemDistributionSample.java
+15
-0
Sample.java
...c/main/java/cn/wise/sc/cement/business/entity/Sample.java
+3
-0
DataStatisticsMapper.java
.../wise/sc/cement/business/mapper/DataStatisticsMapper.java
+14
-3
DataStatisticsMapper.xml
...se/sc/cement/business/mapper/xml/DataStatisticsMapper.xml
+33
-1
CountItemDistributionQuery.java
...ment/business/model/query/CountItemDistributionQuery.java
+22
-0
ItemDistributionVo.java
.../wise/sc/cement/business/model/vo/ItemDistributionVo.java
+23
-0
IDataStatisticsService.java
...se/sc/cement/business/service/IDataStatisticsService.java
+9
-0
DataStatisticsServiceImpl.java
...ment/business/service/impl/DataStatisticsServiceImpl.java
+78
-15
DateUtil.java
...c/main/java/cn/wise/sc/cement/business/util/DateUtil.java
+35
-10
DataStatisticsMapper.xml
...n/wise/sc/cement/business/mapper/DataStatisticsMapper.xml
+65
-0
No files found.
cement-business/pom.xml
View file @
85ada413
...
...
@@ -122,9 +122,6 @@
<version>
3.17
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs-client-java -->
<dependency>
<groupId>
net.oschina.zcx7878
</groupId>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/controller/DataStatisticsController.java
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
controller
;
import
cn.wise.sc.cement.business.model.BaseResponse
;
import
cn.wise.sc.cement.business.model.query.CountItemDistributionQuery
;
import
cn.wise.sc.cement.business.model.vo.ItemDistributionVo
;
import
cn.wise.sc.cement.business.service.IDataStatisticsService
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.catalina.servlet4preview.http.HttpServletRequest
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Map
;
/**
...
...
@@ -26,62 +31,55 @@ import java.util.Map;
@RequestMapping
(
"/business/dataStatistics"
)
public
class
DataStatisticsController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
"DataStatisticsController"
);
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
"DataStatisticsController"
);
@Autowired
private
IDataStatisticsService
dataStatisticsService
;
@Autowired
private
IDataStatisticsService
dataStatisticsService
;
@ApiOperation
(
value
=
"统计概览-重要数值统计"
)
@GetMapping
(
"/countOverview"
)
public
BaseResponse
countOverview
()
{
try
{
return
dataStatisticsService
.
countOverview
();
}
catch
(
Exception
e
)
{
log
.
debug
(
"统计概览-重要数值统计{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"统计概览-检测项数量统计"
)
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"type"
,
value
=
"类型1:按时间 2:按地区"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
""
,
value
=
"类型1:按时间 2:按地区"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
"startDate"
,
value
=
"开始日期"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"endDate"
,
value
=
"结束日期"
,
paramType
=
"query"
,
dataType
=
"String"
)
})
@GetMapping
(
"/countTeamByTime"
)
public
BaseResponse
countTeamByTime
(
Integer
type
,
String
startDate
,
String
endDate
)
{
try
{
if
(
type
==
1
){
}
else
if
(
type
==
2
){
}
else
{
}
return
dataStatisticsService
.
countTeamByTime
(
startDate
,
endDate
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"统计概览-检测项数量统计{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"统计概览-重要数值统计"
)
@GetMapping
(
"/countOverview"
)
public
BaseResponse
countOverview
()
{
try
{
return
dataStatisticsService
.
countOverview
();
}
catch
(
Exception
e
)
{
log
.
debug
(
"统计概览-重要数值统计{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"统计概览-检测项数量统计"
)
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"type"
,
value
=
"类型1:按时间 2:按地区"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
""
,
value
=
"类型1:按时间 2:按地区"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
"startDate"
,
value
=
"开始日期"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"endDate"
,
value
=
"结束日期"
,
paramType
=
"query"
,
dataType
=
"String"
)
})
@GetMapping
(
"/countTeamByTime"
)
public
BaseResponse
countTeamByTime
(
Integer
type
,
String
startDate
,
String
endDate
)
{
try
{
if
(
type
==
1
)
{
}
else
if
(
type
==
2
)
{
}
else
{
}
return
dataStatisticsService
.
countTeamByTime
(
startDate
,
endDate
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"统计概览-检测项数量统计{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
"导出检测项分布统计"
)
@PostMapping
(
"/item/download"
)
public
BaseResponse
<
Page
<
ItemDistributionVo
>>
downloadItemDistribution
(
@RequestBody
CountItemDistributionQuery
query
,
HttpServletResponse
response
)
{
return
dataStatisticsService
.
countItemDistribution
(
query
,
response
);
}
}
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/controller/NormProductionController.java
View file @
85ada413
...
...
@@ -273,5 +273,6 @@ public class NormProductionController {
return
BaseResponse
.
okData
(
iPrecipriceService
.
workloadStatistics
(
startTime
,
endTime
,
userId
));
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/controller/ReportController.java
View file @
85ada413
...
...
@@ -131,7 +131,6 @@ public class ReportController {
beanParams
.
put
(
"methodNames"
,
moveFirst
(
rts
.
getMethodNames
()));
beanParams
.
put
(
"equipmentNames"
,
moveFirst
(
rts
.
getEquipmentNames
()));
//六元素导出
List
<
SixElementReport
>
list
=
iEntrustService
.
getSampleSixElementCheck
(
entrustId
);
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/entity/ItemDistribution.java
0 → 100644
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
entity
;
import
lombok.Data
;
/**
* @description: 检测项目分布情况
* @author: qh
* @create: 2021-01-18 15:31
**/
@Data
public
class
ItemDistribution
{
private
Integer
count
;
private
String
key
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/ItemDistributionSample.java
0 → 100644
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
entity
;
import
lombok.Data
;
/**
* @description: 检测项目分布情况(按样品统计)
* @author: qh
* @create: 2021-01-19 10:28
**/
@Data
public
class
ItemDistributionSample
{
private
String
name
;
private
Integer
count
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/Sample.java
View file @
85ada413
...
...
@@ -116,4 +116,7 @@ public class Sample implements Serializable {
@ApiModelProperty
(
"产地"
)
private
String
origin
;
@ApiModelProperty
(
"样品是否来自国外 (0来自国内,1来自国外)"
)
private
Integer
isForeign
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/DataStatisticsMapper.java
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
mapper
;
import
cn.wise.sc.cement.business.entity.Client
;
import
cn.wise.sc.cement.business.entity.ItemDistribution
;
import
cn.wise.sc.cement.business.entity.ItemDistributionSample
;
import
cn.wise.sc.cement.business.model.vo.ClientVo
;
import
cn.wise.sc.cement.business.model.vo.DataStatisticsVo
;
import
cn.wise.sc.cement.business.model.vo.EntrustVo
;
...
...
@@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -20,10 +23,18 @@ import java.util.Map;
* @author ztw
* @since 2020-08-07
*/
public
interface
DataStatisticsMapper
{
public
interface
DataStatisticsMapper
{
List
<
DataStatisticsVo
>
countTeamByTime
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
List
<
DataStatisticsVo
>
countTeamByTime
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
List
<
DataStatisticsVo
>
countTeamByOrigin
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
List
<
DataStatisticsVo
>
countTeamByOrigin
(
@Param
(
"params"
)
Map
<
String
,
Object
>
params
);
IPage
<
ItemDistribution
>
countItemDistribution
(
@Param
(
"page"
)
Page
<
ItemDistribution
>
page
,
@Param
(
"start"
)
Date
startTime
,
@Param
(
"end"
)
Date
endTime
,
@Param
(
"origins"
)
List
<
String
>
origins
,
@Param
(
"itemId"
)
Long
itemId
);
ItemDistributionSample
countItemDistributionSample
(
@Param
(
"start"
)
Date
startTime
,
@Param
(
"end"
)
Date
endTime
,
@Param
(
"origin"
)
String
origin
,
@Param
(
"teamId"
)
Long
teamId
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/DataStatisticsMapper.xml
View file @
85ada413
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"cn.wise.sc.cement.business.mapper.DataStatisticsMapper"
>
<select
id=
"countTeamByTime"
resultType=
"cn.wise.sc.cement.business.model.vo.DataStatisticsVo"
>
SELECT
DATE_FORMAT(sd.create_time,'%Y-%m') as name, count(sd.id) as value
SELECT DATE_FORMAT(sd.create_time,'%Y-%m') as name, count(sd.id) as value
FROM sample_distribution sd
where sd.finish_time is not null
<if
test=
"params.startDate != null and params.startDate != ''"
>
...
...
@@ -29,7 +29,39 @@
group by s.origin
</select>
<select
id=
"countItemDistributionSample"
resultType=
"cn.wise.sc.cement.business.entity.ItemDistributionSample"
>
SELECT COUNT(sd.team_id) as `count`,t.`name` FROM sample_distribution sd
LEFT JOIN sample s ON sd.sample_id = s.id
LEFT JOIN team t ON t.id = sd.team_id
WHERE
sd.finish_time BETWEEN #{start} AND #{end}
<if
test=
"origin != null and origin != '' "
>
AND s.origin = #{origin}
</if>
<if
test=
"teamId != '' and teamId != null "
>
AND sd.team_id = #{teamId}
</if>
</select>
<select
id=
"countItemDistribution"
resultType=
"cn.wise.sc.cement.business.entity.ItemDistribution"
>
SELECT COUNT(a.sample_id) as `count`,`key` from
(SELECT sd.team_id,sd.sample_id,t.`name`,sd.finish_time,CONCAT(sd.team_id,',',s.origin,',',s.is_foreign) as
`key` FROM sample_distribution sd
LEFT JOIN sample s ON sd.sample_id = s.id
LEFT JOIN team t ON t.id = sd.team_id
WHERE (sd.finish_time between #{start} and #{end})
<if
test=
"origins != null"
>
AND s.origin in
<foreach
collection=
"origins"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"itemId != null"
>
AND sd.team_id = #{itemId}
</if>
) a GROUP BY a.`key`
</select>
</mapper>
cement-business/src/main/java/cn/wise/sc/cement/business/model/query/CountItemDistributionQuery.java
0 → 100644
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
model
.
query
;
import
cn.wise.sc.cement.business.model.PageQuery
;
import
lombok.Data
;
import
java.time.Period
;
import
java.util.List
;
/**
* @description:
* @author: qh
* @create: 2021-01-19 10:33
**/
@Data
public
class
CountItemDistributionQuery
{
private
Long
itemId
;
private
List
<
String
>
origins
;
private
String
startTime
;
private
String
endTime
;
private
String
type
;
private
PageQuery
pageQuery
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/model/vo/ItemDistributionVo.java
0 → 100644
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
model
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @description: 检测项分布情况Vo
* @author: qh
* @create: 2021-01-18 15:52
**/
@Data
public
class
ItemDistributionVo
implements
Serializable
{
static
final
long
serialVersionUID
=
42L
;
private
String
id
;
private
String
itemName
;
private
String
origin
;
private
Integer
itemCount
;
private
String
time
;
private
Integer
sampleCount
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/IDataStatisticsService.java
View file @
85ada413
...
...
@@ -7,9 +7,11 @@ import cn.wise.sc.cement.business.model.*;
import
cn.wise.sc.cement.business.model.query.*
;
import
cn.wise.sc.cement.business.model.vo.*
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
io.swagger.models.auth.In
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -31,4 +33,11 @@ public interface IDataStatisticsService {
BaseResponse
<
List
<
DataStatisticsVo
>>
countTeamByOrigin
(
String
startDate
,
String
endDate
);
/**
* 导出检查项分布统计
* @param query 请求参数
* @param response 响应
* @return 返回的统计
*/
BaseResponse
<
Page
<
ItemDistributionVo
>>
countItemDistribution
(
CountItemDistributionQuery
query
,
HttpServletResponse
response
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/DataStatisticsServiceImpl.java
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.date.Date
Util
;
import
cn.hutool.core.date.Date
Time
;
import
cn.hutool.core.util.StrUtil
;
import
cn.wise.sc.cement.business.entity.*
;
import
cn.wise.sc.cement.business.mapper.*
;
...
...
@@ -10,8 +10,10 @@ import cn.wise.sc.cement.business.model.query.*;
import
cn.wise.sc.cement.business.model.vo.*
;
import
cn.wise.sc.cement.business.service.*
;
import
cn.wise.sc.cement.business.util.CheckCountUtil
;
import
cn.wise.sc.cement.business.util.DateUtil
;
import
cn.wise.sc.cement.business.util.ExcelUtil
;
import
cn.wise.sc.cement.business.util.RedisUtil
;
import
cn.wise.sc.cement.business.wrapper.page.Query
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -29,6 +31,7 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
...
...
@@ -66,6 +69,7 @@ public class DataStatisticsServiceImpl implements IDataStatisticsService {
/**
* 统计概览-重要数值统计
*
* @return
*/
@Override
...
...
@@ -98,33 +102,35 @@ public class DataStatisticsServiceImpl implements IDataStatisticsService {
/**
* 检测项数量统计-按时间
*
* @param startDate
* @param endDate
* @return
*/
@Override
public
BaseResponse
<
List
<
DataStatisticsVo
>>
countTeamByTime
(
String
startDate
,
String
endDate
){
public
BaseResponse
<
List
<
DataStatisticsVo
>>
countTeamByTime
(
String
startDate
,
String
endDate
)
{
Map
<
String
,
String
>
dateMap
=
new
HashMap
<>();
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM"
);
if
(
startDate
!=
null
||
endDate
!=
null
)
{
if
(
startDate
!=
null
||
endDate
!=
null
)
{
List
<
String
>
dateList
=
commonService
.
getMonthBetween
(
startDate
,
endDate
);
if
(
dateList
!=
null
&&
dateList
.
size
()>
0
)
{
for
(
int
i
=
0
;
i
<
dateList
.
size
();
i
++
)
{
dateMap
.
put
(
dateList
.
get
(
i
),
"0"
);
if
(
dateList
!=
null
&&
dateList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
dateList
.
size
();
i
++)
{
dateMap
.
put
(
dateList
.
get
(
i
),
"0"
);
}
}
}
else
{
Date
date
=
new
Date
();
//获取当前时间
}
else
{
//获取当前时间
Date
date
=
new
Date
();
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
for
(
int
i
=
0
;
i
<
12
;
i
++)
{
for
(
int
i
=
0
;
i
<
12
;
i
++)
{
date
=
calendar
.
getTime
();
String
dateTime
=
format
.
format
(
date
);
dateMap
.
put
(
dateTime
,
"0"
);
String
dateTime
=
format
.
format
(
date
);
dateMap
.
put
(
dateTime
,
"0"
);
calendar
.
add
(
Calendar
.
MONTH
,
-
1
);
}
}
...
...
@@ -133,13 +139,13 @@ public class DataStatisticsServiceImpl implements IDataStatisticsService {
params
.
put
(
"startDate"
,
startDate
);
params
.
put
(
"endDate"
,
endDate
);
List
<
DataStatisticsVo
>
list
=
dataStatisticsMapper
.
countTeamByTime
(
params
);
for
(
DataStatisticsVo
vo:
list
)
{
if
(
dateMap
.
containsKey
(
vo
.
getName
()))
{
for
(
DataStatisticsVo
vo
:
list
)
{
if
(
dateMap
.
containsKey
(
vo
.
getName
()))
{
dateMap
.
put
(
vo
.
getName
(),
vo
.
getValue
());
}
}
List
<
DataStatisticsVo
>
listResult
=
new
ArrayList
<>();
for
(
String
key:
dateMap
.
keySet
())
{
for
(
String
key
:
dateMap
.
keySet
())
{
DataStatisticsVo
vo
=
new
DataStatisticsVo
();
vo
.
setName
(
key
);
vo
.
setValue
(
dateMap
.
get
(
key
));
...
...
@@ -151,11 +157,12 @@ public class DataStatisticsServiceImpl implements IDataStatisticsService {
/**
* 检测项数量统计-按地区
*
* @param startDate
* @param endDate
* @return
*/
public
BaseResponse
<
List
<
DataStatisticsVo
>>
countTeamByOrigin
(
String
startDate
,
String
endDate
){
public
BaseResponse
<
List
<
DataStatisticsVo
>>
countTeamByOrigin
(
String
startDate
,
String
endDate
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"startDate"
,
startDate
);
params
.
put
(
"endDate"
,
endDate
);
...
...
@@ -163,10 +170,66 @@ public class DataStatisticsServiceImpl implements IDataStatisticsService {
return
BaseResponse
.
okData
(
list
);
}
@Override
public
BaseResponse
<
Page
<
ItemDistributionVo
>>
countItemDistribution
(
CountItemDistributionQuery
query
,
HttpServletResponse
response
)
{
String
startTimeStr
=
query
.
getStartTime
();
String
endTimeStr
=
query
.
getEndTime
();
String
type
=
query
.
getType
();
Long
itemId
=
query
.
getItemId
();
List
<
String
>
origins
=
query
.
getOrigins
();
Date
startTime
=
null
;
Date
endTime
=
null
;
Page
<
ItemDistribution
>
page
=
new
Page
<>(
query
.
getPageQuery
().
getPageNo
(),
query
.
getPageQuery
().
getPageSize
());
if
(
StrUtil
.
isNotEmpty
(
type
))
{
startTime
=
DateUtil
.
getStartTime
(
Integer
.
parseInt
(
type
));
endTime
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
date
();
}
if
(
StrUtil
.
isNotEmpty
(
startTimeStr
))
{
startTime
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
parseDate
(
startTimeStr
);
}
if
(
StrUtil
.
isNotEmpty
(
endTimeStr
))
{
endTime
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
parseDate
(
endTimeStr
);
}
//获取检测项目城市分布统计
IPage
<
ItemDistribution
>
list
=
dataStatisticsMapper
.
countItemDistribution
(
page
,
startTime
,
endTime
,
origins
,
itemId
);
List
<
ItemDistribution
>
records
=
list
.
getRecords
();
if
(
records
.
size
()
==
0
)
{
return
BaseResponse
.
errorMsg
(
"没找到数据~"
);
}
List
<
ItemDistributionVo
>
rtsRecords
=
new
ArrayList
<>(
records
.
size
());
//组装检查项统计和按照样品统计
for
(
ItemDistribution
distribution
:
records
)
{
String
key
=
distribution
.
getKey
();
String
[]
split
=
key
.
split
(
","
);
String
teamId
=
split
[
0
];
String
origin
=
split
[
1
];
//检测项按样品分布统计
ItemDistributionSample
sample
=
dataStatisticsMapper
.
countItemDistributionSample
(
startTime
,
endTime
,
origin
,
Long
.
parseLong
(
teamId
));
ItemDistributionVo
vo
=
new
ItemDistributionVo
();
vo
.
setOrigin
(
origin
);
vo
.
setItemName
(
sample
.
getName
());
vo
.
setSampleCount
(
sample
.
getCount
());
vo
.
setItemCount
(
distribution
.
getCount
());
vo
.
setTime
(
startTime
+
"_"
+
endTime
);
rtsRecords
.
add
(
vo
);
}
Page
<
ItemDistributionVo
>
rts
=
new
Page
<>();
rts
.
setRecords
(
rtsRecords
);
rts
.
setCurrent
(
page
.
getCurrent
());
rts
.
setPages
(
page
.
getPages
());
rts
.
setTotal
(
page
.
getTotal
());
rts
.
setSize
(
page
.
getSize
());
return
BaseResponse
.
okData
(
rts
);
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/util/DateUtil.java
View file @
85ada413
package
cn
.
wise
.
sc
.
cement
.
business
.
util
;
import
cn.hutool.core.date.DateTime
;
import
java.time.LocalDateTime
;
import
java.time.temporal.WeekFields
;
import
java.util.Date
;
/**
* @author neo.shu
...
...
@@ -10,14 +14,35 @@ import java.time.temporal.WeekFields;
public
class
DateUtil
{
/**
* 获取自然周数
*
* @param localDateTime
* @return
*/
public
static
int
getWeek
(
LocalDateTime
localDateTime
)
{
WeekFields
weekFields
=
WeekFields
.
ISO
;
return
localDateTime
.
get
(
weekFields
.
weekOfWeekBasedYear
());
}
/**
* 获取自然周数
*
* @param localDateTime
* @return
*/
public
static
int
getWeek
(
LocalDateTime
localDateTime
)
{
WeekFields
weekFields
=
WeekFields
.
ISO
;
return
localDateTime
.
get
(
weekFields
.
weekOfWeekBasedYear
());
}
/**
* 获取开始时间
*
* @param type 类型 1:本周 2:本月 3:本年
* @return 开始时间
*/
public
static
Date
getStartTime
(
Integer
type
)
{
Date
rts
=
null
;
if
(
type
==
1
)
{
rts
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfWeek
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
date
());
}
else
if
(
type
==
2
)
{
rts
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfMonth
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
date
());
}
else
{
rts
=
cn
.
hutool
.
core
.
date
.
DateUtil
.
beginOfYear
(
cn
.
hutool
.
core
.
date
.
DateUtil
.
date
());
}
return
rts
;
}
}
cement-business/target/classes/cn/wise/sc/cement/business/mapper/DataStatisticsMapper.xml
0 → 100644
View file @
85ada413
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.wise.sc.cement.business.mapper.DataStatisticsMapper"
>
<select
id=
"countTeamByTime"
resultType=
"cn.wise.sc.cement.business.model.vo.DataStatisticsVo"
>
SELECT DATE_FORMAT(sd.create_time,'%Y-%m') as name, count(sd.id) as value
FROM sample_distribution sd
where sd.finish_time is not null
<if
test=
"params.startDate != null and params.startDate != ''"
>
and DATE(sd.create_time)
>
= #{params.startDate}
</if>
<if
test=
"params.endDate != null and params.endDate != ''"
>
and DATE(sd.create_time)
<
= #{params.endDate}
</if>
group by name
</select>
<select
id=
"countTeamByOrigin"
resultType=
"cn.wise.sc.cement.business.model.vo.DataStatisticsVo"
>
SELECT s.origin as name, count(sd.id) as value
FROM sample_distribution sd
left join sample s on s.id = sd.sample_id
where sd.finish_time is not null
<if
test=
"params.startDate != null and params.startDate != ''"
>
and DATE(sd.create_time)
>
= #{params.startDate}
</if>
<if
test=
"params.endDate != null and params.endDate != ''"
>
and DATE(sd.create_time)
<
= #{params.endDate}
</if>
group by s.origin
</select>
<select
id=
"countItemDistributionSample"
resultType=
"cn.wise.sc.cement.business.entity.ItemDistributionSample"
>
SELECT COUNT(sd.team_id) as `count`,t.`name` FROM sample_distribution sd
LEFT JOIN sample s ON sd.sample_id = s.id
LEFT JOIN team t ON t.id = sd.team_id
WHERE
sd.finish_time BETWEEN #{start} AND #{end}
<if
test=
"origin != null and origin != '' "
>
AND s.origin = #{origin}
</if>
<if
test=
"teamId != '' and teamId != null"
>
AND sd.team_id = #{teamId}
</if>
</select>
<select
id=
"countItemDistribution"
resultType=
"cn.wise.sc.cement.business.entity.ItemDistribution"
>
SELECT COUNT(a.sample_id) as `count`,`key` from
(SELECT sd.team_id,sd.sample_id,t.`name`,sd.finish_time,CONCAT(sd.team_id,',',s.origin,',',s.is_foreign) as
`key` FROM sample_distribution sd
LEFT JOIN sample s ON sd.sample_id = s.id
LEFT JOIN team t ON t.id = sd.team_id
WHERE (sd.finish_time between #{start} and #{end})
<if
test=
"origins != null"
>
AND s.origin in
<foreach
collection=
"origins"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"itemId != null"
>
AND sd.team_id = #{itemId}
</if>
) a GROUP BY a.`key`
</select>
</mapper>
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