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
744b734e
Commit
744b734e
authored
Oct 20, 2020
by
qinhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.优化样品检测统计
2.工作产值统计
parent
1097cf30
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
288 additions
and
25 deletions
+288
-25
NormProductionController.java
.../cement/business/controller/NormProductionController.java
+37
-17
EntrustSample.java
...java/cn/wise/sc/cement/business/entity/EntrustSample.java
+6
-0
SampleDistributionMapper.java
...e/sc/cement/business/mapper/SampleDistributionMapper.java
+2
-0
SampleDistributionMapper.xml
...c/cement/business/mapper/xml/SampleDistributionMapper.xml
+24
-0
WorkloadStatisticsVo.java
...ise/sc/cement/business/model/vo/WorkloadStatisticsVo.java
+25
-0
INormProductionService.java
...se/sc/cement/business/service/INormProductionService.java
+10
-0
ISampleDistributionService.java
...c/cement/business/service/ISampleDistributionService.java
+7
-0
NormProductionServiceImpl.java
...ment/business/service/impl/NormProductionServiceImpl.java
+171
-8
SampleDistributionServiceImpl.java
.../business/service/impl/SampleDistributionServiceImpl.java
+6
-0
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/controller/NormProductionController.java
View file @
744b734e
...
...
@@ -10,6 +10,7 @@ import cn.wise.sc.cement.business.model.PageQuery;
import
cn.wise.sc.cement.business.model.vo.NonStandardValueVo
;
import
cn.wise.sc.cement.business.model.vo.NormProductionVo
;
import
cn.wise.sc.cement.business.model.vo.ProductionVo
;
import
cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo
;
import
cn.wise.sc.cement.business.service.INormProductionService
;
import
cn.wise.sc.cement.business.util.PageUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -23,8 +24,12 @@ import org.springframework.web.bind.annotation.PutMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
...
...
@@ -94,7 +99,7 @@ public class NormProductionController {
@GetMapping
(
"/statistics"
)
@ApiOperation
(
"标准产值统计"
)
public
BaseResponse
<
Page
<
NormProductionStatistics
>>
normProductionStatistics
(
String
start
,
String
end
,
String
name
,
Integer
groupId
,
PageQuery
pageQuery
)
{
public
BaseResponse
<
Page
<
NormProductionStatistics
>>
normProductionStatistics
(
String
start
,
String
end
,
String
name
,
Integer
groupId
,
PageQuery
pageQuery
)
{
Long
startTime
=
null
;
Long
endTime
=
null
;
...
...
@@ -119,7 +124,7 @@ public class NormProductionController {
@GetMapping
(
"/statistics/detail"
)
@ApiOperation
(
"标准产值详情"
)
public
BaseResponse
<
Page
<
NormProduction
.
NormProductionDetail
>>
normProductionDetails
(
Integer
userId
,
String
start
,
String
end
,
PageQuery
pageQuery
)
{
String
end
,
PageQuery
pageQuery
)
{
Long
startTime
=
null
;
Long
endTime
=
null
;
if
(
StrUtil
.
isNotBlank
(
start
)
&&
StrUtil
.
isNotBlank
(
end
))
{
...
...
@@ -136,7 +141,7 @@ public class NormProductionController {
@GetMapping
(
"/total/production"
)
@ApiOperation
(
"总产值统计"
)
public
BaseResponse
<
Page
<
ProductionVo
>>
production
(
PageQuery
pageQuery
,
String
name
,
String
start
,
String
end
,
Integer
groupId
)
{
public
BaseResponse
<
Page
<
ProductionVo
>>
production
(
PageQuery
pageQuery
,
String
name
,
String
start
,
String
end
,
Integer
groupId
)
{
Long
startTime
=
null
;
Long
endTime
=
null
;
...
...
@@ -145,18 +150,18 @@ public class NormProductionController {
endTime
=
DateUtil
.
parseDate
(
end
).
getTime
();
}
List
<
ProductionVo
>
rts
=
iNormProductionService
.
production
(
name
,
startTime
,
endTime
,
groupId
);
if
(!
rts
.
isEmpty
()){
List
<
ProductionVo
>
rts
=
iNormProductionService
.
production
(
name
,
startTime
,
endTime
,
groupId
);
if
(!
rts
.
isEmpty
())
{
Set
<
Integer
>
ids
=
new
HashSet
<>();
for
(
ProductionVo
productionVo
:
rts
)
{
for
(
ProductionVo
productionVo
:
rts
)
{
Integer
groupId1
=
productionVo
.
getGroupId
();
ids
.
add
(
groupId1
);
}
List
<
ProductionVo
>
newRts
=
new
ArrayList
<>();
for
(
Integer
groupId1
:
ids
)
{
ProductionVo
finalNormProduction
=
new
ProductionVo
();
for
(
ProductionVo
productionVo
:
rts
)
{
if
(
productionVo
.
getGroupId
().
intValue
()
==
groupId1
)
{
for
(
Integer
groupId1
:
ids
)
{
ProductionVo
finalNormProduction
=
new
ProductionVo
();
for
(
ProductionVo
productionVo
:
rts
)
{
if
(
productionVo
.
getGroupId
().
intValue
()
==
groupId1
)
{
finalNormProduction
.
setUserId
(
productionVo
.
getUserId
());
finalNormProduction
.
setUserName
(
productionVo
.
getUserName
());
finalNormProduction
.
setAccount
(
productionVo
.
getAccount
());
...
...
@@ -166,19 +171,19 @@ public class NormProductionController {
finalNormProduction
.
setGroupId
(
productionVo
.
getGroupId
());
finalNormProduction
.
setGroupName
(
productionVo
.
getGroupName
());
Double
newFinalValue
=
productionVo
.
getProductionTotalValue
()+
finalNormProduction
.
getProductionTotalValue
();
Double
newFinalValue
=
productionVo
.
getProductionTotalValue
()
+
finalNormProduction
.
getProductionTotalValue
();
finalNormProduction
.
setProductionTotalValue
(
newFinalValue
);
Double
newNonProductionValue
=
productionVo
.
getNonProductionValue
()+
finalNormProduction
.
getNonProductionValue
();
Double
newNonProductionValue
=
productionVo
.
getNonProductionValue
()
+
finalNormProduction
.
getNonProductionValue
();
finalNormProduction
.
setNonProductionValue
(
newNonProductionValue
);
Double
newProductionValue
=
productionVo
.
getProductionValue
()+
finalNormProduction
.
getProductionValue
();
Double
newProductionValue
=
productionVo
.
getProductionValue
()
+
finalNormProduction
.
getProductionValue
();
finalNormProduction
.
setProductionValue
(
newProductionValue
);
}
}
newRts
.
add
(
finalNormProduction
);
}
rts
=
newRts
;
rts
=
newRts
;
}
return
BaseResponse
.
okData
(
PageUtil
.
listConvertToPage
(
rts
,
pageQuery
));
...
...
@@ -187,7 +192,7 @@ public class NormProductionController {
@PostMapping
(
"/export/statistics"
)
@ApiOperation
(
"导出标准产值列表"
)
public
void
exportNormProductionStatistics
(
String
start
,
String
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
)
{
public
void
exportNormProductionStatistics
(
String
start
,
String
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
)
{
Long
startTime
=
null
;
Long
endTime
=
null
;
if
(
StrUtil
.
isNotBlank
(
start
)
&&
StrUtil
.
isNotBlank
(
end
))
{
...
...
@@ -212,7 +217,7 @@ public class NormProductionController {
@PostMapping
(
"/export/total/production"
)
@ApiOperation
(
"导出总产值"
)
public
void
exportProduction
(
String
name
,
String
start
,
String
end
,
Integer
groupId
,
HttpServletResponse
response
)
{
public
void
exportProduction
(
String
name
,
String
start
,
String
end
,
Integer
groupId
,
HttpServletResponse
response
)
{
Long
startTime
=
null
;
Long
endTime
=
null
;
if
(
StrUtil
.
isNotBlank
(
start
)
&&
StrUtil
.
isNotBlank
(
end
))
{
...
...
@@ -220,8 +225,23 @@ public class NormProductionController {
endTime
=
DateUtil
.
parseDate
(
end
).
getTime
();
}
iNormProductionService
.
exportProduction
(
name
,
startTime
,
endTime
,
groupId
,
response
);
iNormProductionService
.
exportProduction
(
name
,
startTime
,
endTime
,
groupId
,
response
);
}
@GetMapping
(
"/workload/statistics"
)
@ApiOperation
(
"工作量统计"
)
public
BaseResponse
<
List
<
WorkloadStatisticsVo
>>
workloadStatistics
(
String
start
,
String
end
)
{
Date
startTime
=
null
;
Date
endTime
=
DateUtil
.
date
();
if
(
StrUtil
.
isNotBlank
(
start
)
&&
StrUtil
.
isNotBlank
(
end
)){
startTime
=
DateUtil
.
parseDate
(
start
);
endTime
=
DateUtil
.
parseDate
(
end
);
}
return
BaseResponse
.
okData
(
iNormProductionService
.
workloadStatistics
(
startTime
,
endTime
));
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/EntrustSample.java
View file @
744b734e
...
...
@@ -4,6 +4,11 @@ import io.swagger.models.auth.In;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.apache.tomcat.jni.Local
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
/**
* @description:
...
...
@@ -22,4 +27,5 @@ public class EntrustSample {
private
Integer
distributionId
;
private
Integer
teamGroupId
;
private
Integer
userId
;
private
LocalDateTime
finishTime
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/SampleDistributionMapper.java
View file @
744b734e
...
...
@@ -34,4 +34,6 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution>
List
<
SampleCheckGroupVo
>
getSampleCheckGroupList
(
@Param
(
"sampleId"
)
Integer
sampleId
);
List
<
EntrustSample
>
getEntrustSample
();
List
<
EntrustSample
>
getSampleDistribution
(
@Param
(
"params"
)
Map
<
String
,
Object
>
param
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleDistributionMapper.xml
View file @
744b734e
...
...
@@ -23,7 +23,21 @@
</if>
</where>
</sql>
<sql
id=
"sampleDisWhere"
>
<where>
`status` > 5
<if
test=
"params.start_time != null and params.start_time != ''"
>
and d.finish_time
<![CDATA[>=]]>
#{params.start_time}
</if>
<if
test=
"params.end_time != null and params.end_time != ''"
>
and d.finish_time
<![CDATA[<=]]>
#{params.end_time}
</if>
<if
test=
"params.user_id != null and params.user_id != ''"
>
and d.user_id = #{params.user_id}
</if>
</where>
</sql>
<select
id=
"getPage"
resultType=
"cn.wise.sc.cement.business.model.vo.SampleDistributionVo"
>
select t.*, p.id as projectId, p.name as projectName, p.code as projectCode,
e.id as entrustId, e.entrust_date as entrustDate, e.sample_num sampleNum,
...
...
@@ -81,6 +95,16 @@
(SELECT user_id, id as distribution_id,sample_id FROM sample_distribution ) d on s.id = d.sample_id ) g
ON g.entrust_id = e.id
</select>
<select
id=
"getSampleDistribution"
resultType=
"cn.wise.sc.cement.business.entity.EntrustSample"
>
SELECT project_name,entrust_code,id,d.distribution_id,s.sample_name,d.user_id,s.sample_id,d.team_group_id,d.finish_time,`status` FROM entrust e
LEFT JOIN
(SELECT `name` as sample_name,entrust_id,id as sample_id FROM sample) as s
ON e.id = s.entrust_id
LEFT JOIN
(SELECT user_id, id as distribution_id,sample_id as dis_sample_id,team_group_id,finish_time FROM sample_distribution) as d
ON s.sample_id = d.dis_sample_id
<include
refid=
"sampleDisWhere"
/>
</select>
</mapper>
cement-business/src/main/java/cn/wise/sc/cement/business/model/vo/WorkloadStatisticsVo.java
0 → 100644
View file @
744b734e
package
cn
.
wise
.
sc
.
cement
.
business
.
model
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Map
;
/**
* @description: 工作量统计
* @author: qh
* @create: 2020-10-20 14:29
**/
@Data
@ApiModel
(
"工作量统计(按月)"
)
public
class
WorkloadStatisticsVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
@ApiModelProperty
(
"工作类型 0:标准工作量 1:非标工作量"
)
private
Integer
type
;
private
Map
<
String
,
Integer
>
map
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/INormProductionService.java
View file @
744b734e
...
...
@@ -6,10 +6,12 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import
cn.wise.sc.cement.business.model.PageQuery
;
import
cn.wise.sc.cement.business.model.vo.NormProductionVo
;
import
cn.wise.sc.cement.business.model.vo.ProductionVo
;
import
cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -112,4 +114,12 @@ public interface INormProductionService extends IService<NormProduction> {
* @param response 响应体
*/
void
exportProduction
(
String
name
,
Long
startTime
,
Long
endTime
,
Integer
groupId
,
HttpServletResponse
response
);
/**
* 统计工作量
* @param startTime 开始时间
* @param endTime 结束时间
* @return 统计对象
*/
List
<
WorkloadStatisticsVo
>
workloadStatistics
(
Date
startTime
,
Date
endTime
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/ISampleDistributionService.java
View file @
744b734e
...
...
@@ -5,6 +5,7 @@ import cn.wise.sc.cement.business.entity.SampleDistribution;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -21,4 +22,10 @@ public interface ISampleDistributionService extends IService<SampleDistribution>
*/
List
<
EntrustSample
>
getEntrustSample
();
/**
* 获取样品分析数据
* @param param 时间/用户
* @return EntrustSample
*/
List
<
EntrustSample
>
getSampleDistribution
(
Map
<
String
,
Object
>
param
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/NormProductionServiceImpl.java
View file @
744b734e
...
...
@@ -11,22 +11,29 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import
cn.wise.sc.cement.business.model.PageQuery
;
import
cn.wise.sc.cement.business.model.vo.NormProductionVo
;
import
cn.wise.sc.cement.business.model.vo.ProductionVo
;
import
cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo
;
import
cn.wise.sc.cement.business.service.*
;
import
cn.wise.sc.cement.business.util.ExcelUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.time.temporal.TemporalField
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
...
...
@@ -63,6 +70,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
ISysPostService
iSysPostService
;
final
INonStandardValueService
iNonStandardValueService
;
final
INonStandardApplyService
iNonStandardApplyService
;
public
NormProductionServiceImpl
(
ISampleDistributionService
iSampleDistributionService
,
ISampleHandleService
iSampleHandleService
,
...
...
@@ -70,7 +79,9 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
ISysGroupService
iSysGroupService
,
ISampleCheckTeamService
iSampleCheckTeamService
,
ITeamGroupService
iTeamGroupService
,
IHandleService
iHandleService
,
ISysPostService
iSysPostService
,
INonStandardValueService
iNonStandardValueService
)
{
ISysPostService
iSysPostService
,
INonStandardValueService
iNonStandardValueService
,
INonStandardApplyService
iNonStandardApplyService
)
{
this
.
iSampleDistributionService
=
iSampleDistributionService
;
this
.
iSampleHandleService
=
iSampleHandleService
;
this
.
iSysUserService
=
iSysUserService
;
...
...
@@ -80,6 +91,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
this
.
iHandleService
=
iHandleService
;
this
.
iSysPostService
=
iSysPostService
;
this
.
iNonStandardValueService
=
iNonStandardValueService
;
this
.
iNonStandardApplyService
=
iNonStandardApplyService
;
}
@Override
...
...
@@ -302,7 +314,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
}
//过滤部门id
if
(
groupId
!=
null
){
if
(
groupId
!=
null
)
{
List
<
NormProductionStatistics
>
collect
=
rts
.
stream
().
filter
(
arg
->
arg
.
getGroupId
().
equals
(
groupId
)).
collect
(
Collectors
.
toList
());
return
BaseResponse
.
okData
(
collect
);
}
...
...
@@ -329,10 +341,12 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
QueryWrapper
<
SampleDistribution
>
qwDis
=
new
QueryWrapper
<>();
QueryWrapper
<
SampleHandle
>
qwHan
=
new
QueryWrapper
<>();
QueryWrapper
<
SampleCheckTeam
>
qwCT
=
new
QueryWrapper
<>();
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
2
);
if
(
userId
!=
null
&&
userId
>
0
)
{
qwDis
.
eq
(
"user_id"
,
userId
);
qwHan
.
eq
(
"user_id"
,
userId
);
qwCT
.
eq
(
"user_id"
,
userId
);
params
.
put
(
"user_id"
,
userId
);
}
if
(
start
!=
null
&&
end
!=
null
)
{
DateTime
startTime
=
DateUtil
.
date
(
start
);
...
...
@@ -340,9 +354,11 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
qwDis
.
between
(
"finish_time"
,
startTime
,
endTime
);
qwHan
.
between
(
"finish_time"
,
startTime
,
endTime
);
qwCT
.
between
(
"finish_time"
,
startTime
,
endTime
);
params
.
put
(
"start_time"
,
DateUtil
.
format
(
startTime
,
"yyyy-MM-dd"
));
params
.
put
(
"end_time"
,
DateUtil
.
format
(
endTime
,
"yyyy-MM-dd"
));
}
//计算分析任务单产值
List
<
NormProduction
.
NormProductionDetail
>
sampleDistributionDetail
=
calculateSampleDistribution
(
qwDi
s
);
List
<
NormProduction
.
NormProductionDetail
>
sampleDistributionDetail
=
calculateSampleDistribution
Optimize
(
param
s
);
//计算处理任务单产值
List
<
NormProduction
.
NormProductionDetail
>
sampleHandleDetail
=
calculateSampleHandle
(
qwHan
);
...
...
@@ -373,7 +389,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
}
@Override
public
List
<
ProductionVo
>
production
(
String
name
,
Long
start
,
Long
end
,
Integer
groupId
)
{
public
List
<
ProductionVo
>
production
(
String
name
,
Long
start
,
Long
end
,
Integer
groupId
)
{
Date
startDate
=
null
;
...
...
@@ -386,7 +402,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
}
//非标准产值
List
<
NonStandardValue
>
nonStandardValues
=
iNonStandardValueService
.
nonValue
(
startDate
,
endDate
,
groupId
).
getData
();
List
<
NonStandardValue
>
nonStandardValues
=
iNonStandardValueService
.
nonValue
(
startDate
,
endDate
,
groupId
).
getData
();
//标准产值
List
<
NormProductionStatistics
>
productionStatistics
=
this
.
normProductionStatistics
(
start
,
end
,
name
,
groupId
).
getData
();
//以userId找关系
...
...
@@ -463,7 +479,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
@Override
public
void
exportNormProductionStatistics
(
Long
start
,
Long
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
)
{
public
void
exportNormProductionStatistics
(
Long
start
,
Long
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
)
{
BaseResponse
<
List
<
NormProductionStatistics
>>
listBaseResponse
=
normProductionStatistics
(
start
,
end
,
name
,
groupId
);
if
(
listBaseResponse
.
getCode
()
==
200
)
{
List
<
NormProductionStatistics
>
data
=
listBaseResponse
.
getData
();
...
...
@@ -541,8 +557,8 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
}
@Override
public
void
exportProduction
(
String
name
,
Long
startTime
,
Long
endTime
,
Integer
groupId
,
HttpServletResponse
response
)
{
List
<
ProductionVo
>
data
=
production
(
name
,
startTime
,
endTime
,
groupId
);
public
void
exportProduction
(
String
name
,
Long
startTime
,
Long
endTime
,
Integer
groupId
,
HttpServletResponse
response
)
{
List
<
ProductionVo
>
data
=
production
(
name
,
startTime
,
endTime
,
groupId
);
if
(
CollectionUtil
.
isNotEmpty
(
data
))
{
String
[]
headers
=
new
String
[
10
];
headers
[
0
]
=
"序号"
;
...
...
@@ -575,6 +591,102 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
}
}
@Override
public
List
<
WorkloadStatisticsVo
>
workloadStatistics
(
Date
startTime
,
Date
endTime
)
{
long
start
=
getDefaultStart
(
startTime
==
null
?
0
:
startTime
.
getTime
());
long
end
=
getDefaultEnd
(
endTime
.
getTime
());
Map
<
String
,
Integer
>
map1
=
initMonthMoneyMap
(
start
,
end
);
Map
<
String
,
Integer
>
map2
=
initMonthMoneyMap
(
start
,
end
);
QueryWrapper
<
SampleDistribution
>
qw
=
new
QueryWrapper
<>();
if
(
startTime
!=
null
)
{
qw
.
ge
(
"finish_time"
,
DateUtil
.
format
(
DateUtil
.
date
(
start
),
"yyyy-MM-dd"
));
}
qw
.
le
(
"finish_time"
,
DateUtil
.
format
(
DateUtil
.
date
(
end
),
"yyyy-MM-dd"
));
qw
.
eq
(
"status"
,
2
);
List
<
SampleDistribution
>
sampleDistributions
=
iSampleDistributionService
.
list
(
qw
);
QueryWrapper
<
NonStandardApply
>
qwA
=
new
QueryWrapper
<>();
if
(
startTime
!=
null
)
{
qwA
.
ge
(
"start_time"
,
DateUtil
.
format
(
DateUtil
.
date
(
start
),
"yyyy-MM-dd"
));
}
qwA
.
le
(
"start_time"
,
DateUtil
.
format
(
DateUtil
.
date
(
end
),
"yyyy-MM-dd"
));
qwA
.
eq
(
"status"
,
2
);
List
<
NonStandardApply
>
nonStandardApplies
=
iNonStandardApplyService
.
list
(
qwA
);
for
(
SampleDistribution
sampleDistribution
:
sampleDistributions
)
{
addCount
(
sampleDistribution
.
getFinishTime
(),
map1
);
}
for
(
NonStandardApply
nonStandardApply
:
nonStandardApplies
)
{
addCount
(
nonStandardApply
.
getStartTime
(),
map2
);
}
WorkloadStatisticsVo
workloadStatisticsVo
=
new
WorkloadStatisticsVo
();
workloadStatisticsVo
.
setType
(
0
);
workloadStatisticsVo
.
setMap
(
map1
);
WorkloadStatisticsVo
workloadStatisticsVo2
=
new
WorkloadStatisticsVo
();
workloadStatisticsVo
.
setType
(
1
);
workloadStatisticsVo2
.
setMap
(
map2
);
List
<
WorkloadStatisticsVo
>
rts
=
new
ArrayList
<>(
2
);
rts
.
add
(
workloadStatisticsVo
);
rts
.
add
(
workloadStatisticsVo2
);
return
rts
;
}
private
void
addCount
(
LocalDateTime
date
,
Map
<
String
,
Integer
>
map
)
{
Date
nextDate
=
DateUtil
.
endOfMonth
(
asDate
(
date
));
map
.
put
(
nextDate
.
getMonth
()
+
1
+
""
,
map
.
get
(
nextDate
.
getMonth
()
+
1
+
""
)
+
1
);
}
private
void
addCount
(
LocalDate
date
,
Map
<
String
,
Integer
>
map
)
{
Date
nextDate
=
DateUtil
.
endOfMonth
(
asDate
(
date
));
map
.
put
(
nextDate
.
getMonth
()
+
1
+
""
,
map
.
get
(
nextDate
.
getMonth
()
+
1
+
""
)
+
1
);
}
private
static
Date
asDate
(
LocalDate
localDate
)
{
return
Date
.
from
(
localDate
.
atStartOfDay
().
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
}
private
static
Date
asDate
(
LocalDateTime
localDateTime
)
{
return
Date
.
from
(
localDateTime
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
}
private
Map
<
String
,
Integer
>
initMonthMoneyMap
(
long
start
,
long
end
)
{
Map
<
String
,
Integer
>
map
=
new
LinkedHashMap
();
for
(
long
i
=
start
;
i
<=
end
;
i
=
DateUtil
.
offsetMonth
(
DateUtil
.
date
(
i
),
1
).
getTime
())
{
map
.
put
(
DateUtil
.
endOfMonth
(
DateUtil
.
date
(
i
)).
getMonth
()
+
1
+
""
,
0
);
}
return
map
;
}
private
static
long
getDefaultStart
(
long
start
)
{
//如果没传时间进来 默认开始时间是今天开始时间
if
(
start
==
0
)
{
start
=
System
.
currentTimeMillis
();
start
=
DateUtil
.
beginOfYear
(
DateUtil
.
date
(
start
)).
getTime
();
}
return
start
;
}
private
static
long
getDefaultEnd
(
long
end
)
{
//如果没传时间进来 默认开始时间是今天开始时间
if
(
end
==
0
)
{
end
=
System
.
currentTimeMillis
();
end
=
DateUtil
.
endOfYear
(
DateUtil
.
date
(
end
)).
getTime
();
}
return
end
;
}
/**
* 计算处理派发单每条数据的标准产值
*
...
...
@@ -651,12 +763,63 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
return
rts
;
}
/**
* 计算分析派发单每条数据的标准产值
*
* @param param 统计条件
* @return 分析任务详情
*/
private
List
<
NormProduction
.
NormProductionDetail
>
calculateSampleDistributionOptimize
(
Map
<
String
,
Object
>
param
)
{
List
<
EntrustSample
>
entrustSamples
=
iSampleDistributionService
.
getSampleDistribution
(
param
);
List
<
NormProduction
.
NormProductionDetail
>
rts
=
new
ArrayList
<>(
entrustSamples
.
size
());
List
<
Integer
>
groupTeamIds
=
entrustSamples
.
stream
().
map
(
EntrustSample:
:
getTeamGroupId
).
collect
(
Collectors
.
toList
());
if
(
groupTeamIds
.
size
()
==
0
)
{
return
new
ArrayList
<>();
}
List
<
TeamGroup
>
teamGroups
=
iTeamGroupService
.
listByIds
(
groupTeamIds
);
for
(
EntrustSample
entrustSample
:
entrustSamples
)
{
TeamGroup
teamGroup
=
teamGroups
.
stream
()
.
filter
(
arg
->
arg
.
getId
().
intValue
()
==
entrustSample
.
getTeamGroupId
())
.
findFirst
().
orElse
(
null
);
if
(
entrustSample
==
null
||
teamGroup
==
null
)
{
continue
;
}
String
key
=
entrustSample
.
getTeamGroupId
()
+
":"
+
"1"
;
//判断缓存是否存在
if
(!
normProductionCache
.
containsKey
(
key
))
{
//初始化
initNormProductionCache
();
}
NormProduction
normProduction
=
normProductionCache
.
get
(
key
);
if
(
normProduction
==
null
)
{
//如果没有配置 标准产值设置 跳过不计算
continue
;
}
NormProduction
.
NormProductionDetail
productionDetail
=
initNormProductionDetail
(
entrustSample
,
normProduction
,
normProduction
.
getAnalyseRate
());
productionDetail
.
setUserId
(
entrustSample
.
getUserId
());
productionDetail
.
setCheckTime
(
entrustSample
.
getFinishTime
());
productionDetail
.
setDistributionId
(
entrustSample
.
getDistributionId
());
productionDetail
.
setAssessId
(
entrustSample
.
getTeamGroupId
());
productionDetail
.
setGroupTeamName
(
teamGroup
.
getName
());
rts
.
add
(
productionDetail
);
}
return
rts
;
}
/**
* 计算分析派发单每条数据的标准产值
*
* @param qwDis 统计条件
* @return 分析任务详情
* @Deprecated 已废弃, 有替代方法
* @see NormProductionServiceImpl#calculateSampleDistributionOptimize
*/
@Deprecated
private
List
<
NormProduction
.
NormProductionDetail
>
calculateSampleDistribution
(
QueryWrapper
<
SampleDistribution
>
qwDis
)
{
List
<
SampleDistribution
>
distributions
=
iSampleDistributionService
.
list
(
qwDis
);
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/SampleDistributionServiceImpl.java
View file @
744b734e
...
...
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -29,4 +30,9 @@ public class SampleDistributionServiceImpl extends ServiceImpl<SampleDistributio
public
List
<
EntrustSample
>
getEntrustSample
()
{
return
sampleDistributionMapper
.
getEntrustSample
();
}
@Override
public
List
<
EntrustSample
>
getSampleDistribution
(
Map
<
String
,
Object
>
param
)
{
return
sampleDistributionMapper
.
getSampleDistribution
(
param
);
}
}
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