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
554c846d
Commit
554c846d
authored
Nov 18, 2020
by
qinhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.样品处置列表
2.产值加急3倍 3.质量控制样品历史记录
parent
5dc6af87
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
540 additions
and
215 deletions
+540
-215
PrecipriceController.java
...e/sc/cement/business/controller/PrecipriceController.java
+1
-1
SampleController.java
.../wise/sc/cement/business/controller/SampleController.java
+6
-0
StandardController.java
...ise/sc/cement/business/controller/StandardController.java
+2
-2
GroupStandard.java
...java/cn/wise/sc/cement/business/entity/GroupStandard.java
+5
-0
Preciprice.java
...in/java/cn/wise/sc/cement/business/entity/Preciprice.java
+4
-0
SampleMapper.java
.../java/cn/wise/sc/cement/business/mapper/SampleMapper.java
+3
-0
SampleMapper.xml
...va/cn/wise/sc/cement/business/mapper/xml/SampleMapper.xml
+25
-0
StandardMapper.xml
.../cn/wise/sc/cement/business/mapper/xml/StandardMapper.xml
+1
-1
SampleSaveDto.java
.../java/cn/wise/sc/cement/business/model/SampleSaveDto.java
+30
-0
IPrecipriceService.java
...n/wise/sc/cement/business/service/IPrecipriceService.java
+27
-23
ISampleService.java
...va/cn/wise/sc/cement/business/service/ISampleService.java
+6
-0
IStandardService.java
.../cn/wise/sc/cement/business/service/IStandardService.java
+1
-1
EntrustServiceImpl.java
...e/sc/cement/business/service/impl/EntrustServiceImpl.java
+2
-2
PrecipriceServiceImpl.java
...c/cement/business/service/impl/PrecipriceServiceImpl.java
+16
-11
SampleServiceImpl.java
...se/sc/cement/business/service/impl/SampleServiceImpl.java
+232
-173
StandardServiceImpl.java
.../sc/cement/business/service/impl/StandardServiceImpl.java
+82
-1
ExcelUtil.java
.../main/java/cn/wise/sc/cement/business/util/ExcelUtil.java
+97
-0
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/controller/PrecipriceController.java
View file @
554c846d
...
...
@@ -57,7 +57,7 @@ public class PrecipriceController {
@GetMapping
(
"/ddd"
)
@ApiOperation
(
"aaa"
)
public
void
add
(){
iNormProductionService
.
createPreciprice
(
1
,
1
,
1
,
1
,
1
);
iNormProductionService
.
createPreciprice
(
1
,
1
,
1
,
1
,
1
,
true
);
}
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/controller/SampleController.java
View file @
554c846d
...
...
@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.imageio.ImageIO
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
...
...
@@ -211,5 +212,10 @@ public class SampleController {
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
"下载样品处理记录"
)
@PostMapping
(
"/uploadSampleSaveList"
)
public
void
upload
(
HttpServletResponse
response
){
sampleService
.
upload
(
response
);
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/controller/StandardController.java
View file @
554c846d
...
...
@@ -187,9 +187,9 @@ public class StandardController {
@ApiOperation
(
"按检测组获取标样信息"
)
@GetMapping
(
"/list/byGroup"
)
public
BaseResponse
<
List
<
GroupStandard
>>
getStandards
()
{
public
BaseResponse
<
List
<
GroupStandard
>>
getStandards
(
String
name
)
{
return
BaseResponse
.
okData
(
standardService
.
getStandards
());
return
BaseResponse
.
okData
(
standardService
.
getStandards
(
name
));
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/GroupStandard.java
View file @
554c846d
...
...
@@ -19,6 +19,11 @@ public class GroupStandard implements Serializable {
*/
private
String
groupName
;
/**
* 本所编号
*/
private
String
cementCode
;
/**
* 标准样品key:value
*/
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/entity/Preciprice.java
View file @
554c846d
...
...
@@ -140,4 +140,8 @@ public class Preciprice implements Serializable {
* 检测组名
*/
private
String
groupTeamName
;
/**
* 是否加急 0:不加急 1:加急
*/
private
Integer
isUrgent
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/SampleMapper.java
View file @
554c846d
package
cn
.
wise
.
sc
.
cement
.
business
.
mapper
;
import
cn.wise.sc.cement.business.entity.Sample
;
import
cn.wise.sc.cement.business.model.SampleSaveDto
;
import
cn.wise.sc.cement.business.model.vo.SampleManageVo
;
import
cn.wise.sc.cement.business.model.vo.SampleVo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
...
...
@@ -55,4 +56,6 @@ public interface SampleMapper extends BaseMapper<Sample> {
@Select
(
"select * from sample where entrust_id = #{entrustId} order by id asc"
)
List
<
Sample
>
getSampleCheckList
(
Integer
entrustId
);
List
<
SampleSaveDto
>
getSampleSaveList
();
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleMapper.xml
View file @
554c846d
...
...
@@ -61,4 +61,29 @@
</select>
<select
id=
"getSampleSaveList"
resultType=
"cn.wise.sc.cement.business.model.SampleSaveDto"
>
SELECT
s.id,
s.entrust_id,
s.`name`,
s.`sample_form`,
s.cement_code,
s.sample_code,
s.little_position,
DATE_FORMAT(s.register_time,'%Y/%m/%d') as register_time,
DATE_FORMAT(s.destruction_time,'%Y/%m/%d') as destruction_time,
s.operator_id,
s.remark,
e.project_name,
e.project_code,
su.`name` as user_name
FROM
`sample` s
LEFT JOIN entrust e
ON s.entrust_id = e.id
LEFT JOIN sys_user su
ON su.id = s.operator_id
</select>
</mapper>
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/StandardMapper.xml
View file @
554c846d
...
...
@@ -47,7 +47,7 @@
select s.id as group_id,s.`name` as group_name,sv.element_name,sv.element_value FROM standard s
INNER JOIN
(SELECT * FROM standard_value) sv
ON s.id = sv.standard_id
AND s.`status` = 1
ON s.id = sv.standard_id
</select>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/model/SampleSaveDto.java
0 → 100644
View file @
554c846d
package
cn
.
wise
.
sc
.
cement
.
business
.
model
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @description:
* @author: qh
* @create: 2020-11-18 17:13
**/
@Data
public
class
SampleSaveDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
private
String
id
;
private
String
entrustId
;
private
String
name
;
private
String
userName
;
private
String
projectName
;
private
String
sampleForm
;
private
String
cementCode
;
private
String
sampleCode
;
private
String
littlePosition
;
private
String
registerTime
;
private
String
destructionTime
;
private
String
operatorId
;
private
String
remark
;
private
String
projectCode
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/IPrecipriceService.java
View file @
554c846d
...
...
@@ -7,14 +7,13 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import
cn.wise.sc.cement.business.model.vo.ProductionVo
;
import
cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
*
服务类
* 服务类
* </p>
*
* @author ztw
...
...
@@ -22,16 +21,16 @@ import java.util.List;
*/
public
interface
IPrecipriceService
extends
IService
<
Preciprice
>
{
boolean
createPreciprice
(
final
Integer
userId
,
final
Integer
entrustId
,
final
Integer
targetId
,
final
Integer
type
,
final
Integer
sampleId
);
boolean
createPreciprice
(
final
Integer
userId
,
final
Integer
entrustId
,
final
Integer
targetId
,
final
Integer
type
,
final
Integer
sampleId
,
boolean
isUrgent
);
/**
* 标准产值统计
*
* @param start 开始时间
* @param end 结束时间
* @param groupId
部门id
* @param start
开始时间
* @param end
结束时间
* @param groupId 部门id
* @return BaseResponse
*/
BaseResponse
<
List
<
NormProductionStatistics
>>
normProductionStatistics
(
Long
start
,
Long
end
,
String
name
,
Integer
groupId
);
...
...
@@ -50,53 +49,58 @@ public interface IPrecipriceService extends IService<Preciprice> {
/**
* 总产值统计
*
* @param name 用户
* @param start
开始时间
* @param end
结束时间
* @param name
用户
* @param start 开始时间
* @param end 结束时间
* @return 详细信息
*/
List
<
ProductionVo
>
production
(
String
name
,
Long
start
,
Long
end
,
Integer
groupId
);
/**
* 导出标准统计
* @param start 开始时间
* @param end 结束时间
* @param name 人员名字
*
* @param start 开始时间
* @param end 结束时间
* @param name 人员名字
* @param groupId 部门id
* @param response 响应体
*/
void
exportNormProductionStatistics
(
Long
start
,
Long
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
);
void
exportNormProductionStatistics
(
Long
start
,
Long
end
,
String
name
,
Integer
groupId
,
HttpServletResponse
response
);
/**
* 导出个人标准产值详情列表
* @param userId 用户id
*
* @param userId 用户id
* @param startTime 开始时间
* @param endTime 结束时间
* @param response 响应体
* @param endTime
结束时间
* @param response
响应体
*/
void
exportNormProductionDetail
(
Integer
userId
,
Long
startTime
,
Long
endTime
,
HttpServletResponse
response
);
/**
* 导出产值总统计列表
* @param name 名字检索
*
* @param name 名字检索
* @param startTime 开始时间
* @param endTime 结束时间
* @param endTime
结束时间
* @param response 响应体
*/
void
exportProduction
(
String
name
,
Long
startTime
,
Long
endTime
,
Integer
groupId
,
HttpServletResponse
response
);
void
exportProduction
(
String
name
,
Long
startTime
,
Long
endTime
,
Integer
groupId
,
HttpServletResponse
response
);
/**
* 统计工作量
*
* @param startTime 开始时间
* @param endTime 结束时间
* @param endTime
结束时间
* @return 统计对象
*/
List
<
WorkloadStatisticsVo
>
workloadStatistics
(
Date
startTime
,
Date
endTime
,
Integer
userId
);
/**
* 根据报告id更新
*
* @param entrustId
* @return
*/
boolean
updateStatusByEntrustId
(
Integer
entrustId
);
boolean
updateStatusByEntrustId
(
Integer
entrustId
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/ISampleService.java
View file @
554c846d
...
...
@@ -46,4 +46,10 @@ public interface ISampleService extends IService<Sample> {
* @return 复查成功与否
*/
BaseResponse
<
Boolean
>
ampleReview
(
Integer
id
);
/**
* 下载样品存储信息
* @param response 响应体
*/
void
upload
(
HttpServletResponse
response
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/IStandardService.java
View file @
554c846d
...
...
@@ -52,5 +52,5 @@ public interface IStandardService extends IService<Standard> {
* 按检测组获取标样信息
* @return GroupStandard
*/
List
<
GroupStandard
>
getStandards
();
List
<
GroupStandard
>
getStandards
(
String
name
);
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
View file @
554c846d
...
...
@@ -1348,7 +1348,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
//计算产值
if
(
sampleHandle
.
getHandleId
()
!=
null
)
{
try
{
iPrecipriceService
.
createPreciprice
(
sampleHandle
.
getUserId
(),
entrust
.
getId
(),
sampleHandle
.
getHandleId
(),
0
,
sample
.
getId
());
iPrecipriceService
.
createPreciprice
(
sampleHandle
.
getUserId
(),
entrust
.
getId
(),
sampleHandle
.
getHandleId
(),
0
,
sample
.
getId
()
,
true
);
}
catch
(
Exception
e
){
System
.
out
.
println
(
e
.
getMessage
());
return
BaseResponse
.
errorMsg
(
e
.
getMessage
());
...
...
@@ -1719,7 +1719,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if
(
sampleDistributionTeamGroupVoList
!=
null
&&
sampleDistributionTeamGroupVoList
.
size
()
>
0
)
{
for
(
SampleDistributionTeamVo
sdVo
:
sampleDistributionTeamGroupVoList
)
{
try
{
iPrecipriceService
.
createPreciprice
(
sdVo
.
getUserId
(),
entrust
.
getId
(),
sdVo
.
getTeamGroupId
(),
1
,
sample
.
getId
());
iPrecipriceService
.
createPreciprice
(
sdVo
.
getUserId
(),
entrust
.
getId
(),
sdVo
.
getTeamGroupId
(),
1
,
sample
.
getId
()
,
true
);
}
catch
(
Exception
e
){
return
BaseResponse
.
errorMsg
(
e
.
getMessage
());
}
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/PrecipriceServiceImpl.java
View file @
554c846d
...
...
@@ -37,17 +37,14 @@ import cn.wise.sc.cement.business.service.ISysPostService;
import
cn.wise.sc.cement.business.service.ISysUserService
;
import
cn.wise.sc.cement.business.service.ITeamGroupService
;
import
cn.wise.sc.cement.business.util.ExcelUtil
;
import
cn.wise.sc.cement.business.wrapper.page.Query
;
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
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.Assert
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
...
...
@@ -132,7 +129,7 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
NESTED
)
public
boolean
createPreciprice
(
final
Integer
userId
,
final
Integer
entrustId
,
final
Integer
targetId
,
final
Integer
type
,
final
Integer
sampleId
)
{
final
Integer
sampleId
,
boolean
isUrgent
)
{
Assert
.
notNull
(
userId
,
"用户id不能为空!"
);
Assert
.
notNull
(
entrustId
,
"项目id不能为空!"
);
...
...
@@ -146,11 +143,10 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
throw
new
IllegalArgumentException
(
"无效的项目id!"
);
}
Preciprice
preciprice
=
new
Preciprice
();
preciprice
.
setEntrustId
(
entrust
.
getId
());
preciprice
.
setEntrustCode
(
entrust
.
getEntrustCode
());
preciprice
.
setEntrustName
(
entrust
.
getProjectName
());
preciprice
.
setIsUrgent
(
isUrgent
?
1
:
0
);
//获取样品信息
Sample
sample
=
iSampleService
.
getById
(
sampleId
);
if
(
BeanUtil
.
isEmpty
(
sample
))
{
...
...
@@ -181,9 +177,17 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
preciprice
.
setSeparateRate
(
BigDecimal
.
valueOf
(
normProduction
.
getSeparateRate
()));
preciprice
.
setQuotaDay
(
BigDecimal
.
valueOf
(
normProduction
.
getQuotaDay
()));
if
(
type
==
1
)
{
preciprice
.
setPreciprice
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
()));
if
(
isUrgent
)
{
preciprice
.
setPreciprice
(
new
BigDecimal
(
3
).
subtract
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
())));
}
else
{
preciprice
.
setPreciprice
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
()));
}
}
else
{
preciprice
.
setPreciprice
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
()));
if
(
isUrgent
)
{
preciprice
.
setPreciprice
(
new
BigDecimal
(
3
).
subtract
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
())));
}
else
{
preciprice
.
setPreciprice
(
calculateWorkTimeCoefficient
(
normProduction
,
normProduction
.
getAnalyseRate
()));
}
}
//获取用户职位和账号
SysUser
sysUser
=
iSysUserService
.
getById
(
userId
);
...
...
@@ -325,6 +329,7 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
qw
.
like
(
"user_id"
,
userId
);
}
qw
.
eq
(
"status"
,
1
);
qw
.
orderByDesc
(
"create_time"
);
List
<
Preciprice
>
list
=
this
.
list
(
qw
);
List
<
NormProduction
.
NormProductionDetail
>
rts
=
new
ArrayList
<>(
list
.
size
());
for
(
Preciprice
preciprice
:
list
)
{
...
...
@@ -347,7 +352,7 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
}
//非标准产值
List
<
NonStandardValue
>
nonStandardValues
=
iNonStandardValueService
.
nonValue
(
startDate
,
endDate
,
groupId
,
name
).
getData
();
List
<
NonStandardValue
>
nonStandardValues
=
iNonStandardValueService
.
nonValue
(
startDate
,
endDate
,
groupId
,
name
).
getData
();
//标准产值
List
<
NormProductionStatistics
>
productionStatistics
=
this
.
normProductionStatistics
(
start
,
end
,
name
,
groupId
).
getData
();
//以userId找关系
...
...
@@ -588,12 +593,12 @@ public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Precipr
@Override
public
boolean
updateStatusByEntrustId
(
Integer
entrustId
)
{
cn
.
hutool
.
core
.
lang
.
Assert
.
notNull
(
entrustId
,
"报告id不能为空!"
);
cn
.
hutool
.
core
.
lang
.
Assert
.
notNull
(
entrustId
,
"报告id不能为空!"
);
try
{
precipriceMapper
.
updateStatusByEntrustId
(
entrustId
);
return
true
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"更新产值状态失败!"
);
return
false
;
}
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/SampleServiceImpl.java
View file @
554c846d
This diff is collapsed.
Click to expand it.
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/StandardServiceImpl.java
View file @
554c846d
package
cn
.
wise
.
sc
.
cement
.
business
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.wise.sc.cement.business.entity.*
;
import
cn.wise.sc.cement.business.mapper.EntityEnclosureMapper
;
import
cn.wise.sc.cement.business.mapper.StandardEnterMapper
;
...
...
@@ -11,6 +13,7 @@ import cn.wise.sc.cement.business.model.PageQuery;
import
cn.wise.sc.cement.business.model.query.*
;
import
cn.wise.sc.cement.business.model.vo.StandardValueVo
;
import
cn.wise.sc.cement.business.model.vo.StandardVo
;
import
cn.wise.sc.cement.business.service.ISampleCheckService
;
import
cn.wise.sc.cement.business.service.IStandardService
;
import
cn.wise.sc.cement.business.service.IStandardValueService
;
import
cn.wise.sc.cement.business.service.ISysUserService
;
...
...
@@ -27,8 +30,11 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
...
...
@@ -36,6 +42,8 @@ import java.util.HashSet;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.function.BiFunction
;
import
java.util.stream.Collectors
;
/**
* <p>
...
...
@@ -60,6 +68,8 @@ public class StandardServiceImpl extends ServiceImpl<StandardMapper, Standard> i
private
IStandardValueService
standardValueService
;
@Autowired
private
CommonServiceImpl
commonService
;
@Autowired
private
ISampleCheckService
iSampleCheckService
;
/**
* 分页查询
...
...
@@ -412,18 +422,22 @@ public class StandardServiceImpl extends ServiceImpl<StandardMapper, Standard> i
}
@Override
public
List
<
GroupStandard
>
getStandards
()
{
public
List
<
GroupStandard
>
getStandards
(
String
name
)
{
//获取标样信息
List
<
StandardGroupDto
>
list
=
standardMapper
.
getStandardsByGroup
();
List
<
GroupStandard
>
rts
=
new
ArrayList
<>(
list
.
size
());
Set
<
Integer
>
standardIds
=
new
HashSet
<>();
for
(
StandardGroupDto
tmp
:
list
)
{
//将每个标准值根据GroupId(样品id)分组
if
(!
standardIds
.
contains
(
tmp
.
getGroupId
()))
{
standardIds
.
add
(
tmp
.
getGroupId
());
//样品标样Vo
GroupStandard
groupStandard
=
new
GroupStandard
();
groupStandard
.
setGroupName
(
tmp
.
getGroupName
());
Map
<
String
,
String
>
map
=
new
HashMap
<>();
List
<
KeyValueMap
>
keyValueMaps
=
ObjUtils
.
str2Obj
(
tmp
.
getElementValue
());
//将标样元素添加进样品标样
keyValueMaps
.
stream
()
.
filter
(
arg
->
"标准值"
.
equals
(
arg
.
getName
()))
...
...
@@ -450,7 +464,74 @@ public class StandardServiceImpl extends ServiceImpl<StandardMapper, Standard> i
}
}
//获取历史样品信息
List
<
SampleCheck
>
sampleChecks
=
iSampleCheckService
.
list
();
if
(
CollectionUtil
.
isEmpty
(
sampleChecks
))
{
return
rts
;
}
Set
<
String
>
cementCodes
=
sampleChecks
.
stream
()
.
map
(
SampleCheck:
:
getCementCode
).
collect
(
Collectors
.
toSet
());
//根据cementCodes和team_group_id计算多个平行样的平均值
for
(
String
cementCode
:
cementCodes
)
{
List
<
SampleCheck
>
collect
=
sampleChecks
.
stream
()
.
filter
(
arg
->
arg
.
getCementCode
().
equals
(
cementCode
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtil
.
isEmpty
(
collect
))
{
continue
;
}
Set
<
Integer
>
groupIds
=
collect
.
stream
()
.
map
(
SampleCheck:
:
getTeamGroupId
).
collect
(
Collectors
.
toSet
());
//根据groupI处理team检测值
for
(
Integer
groupId
:
groupIds
)
{
List
<
SampleCheck
>
checkGroups
=
collect
.
stream
()
.
filter
(
arg
->
arg
.
getTeamGroupId
().
intValue
()
==
groupId
)
.
collect
(
Collectors
.
toList
());
if
(
CollectionUtil
.
isEmpty
(
checkGroups
))
{
continue
;
}
//将每个元素组的所有元素的标准值累加
Map
<
String
,
BigDecimal
>
elementMap
=
new
HashMap
<>();
checkGroups
.
forEach
(
arg
->
{
List
<
KeyValueMap
>
keyValueMaps
=
ObjUtils
.
str2Obj
(
arg
.
getCountResults
());
//将样品的输入值添加到map中
keyValueMaps
.
forEach
(
opt
->
{
if
(
elementMap
.
containsKey
(
opt
.
getName
()))
{
elementMap
.
get
(
opt
.
getName
()).
add
(
new
BigDecimal
(
StrUtil
.
isEmpty
(
opt
.
getValue
())
?
"0"
:
opt
.
getValue
()));
}
else
{
elementMap
.
put
(
opt
.
getName
(),
new
BigDecimal
(
StrUtil
.
isEmpty
(
opt
.
getValue
())
?
"0"
:
opt
.
getValue
()));
}
});
});
//求平均
GroupStandard
groupStandard
=
new
GroupStandard
();
Map
<
String
,
String
>
map
=
new
HashMap
<>();
groupStandard
.
setMap
(
map
);
groupStandard
.
setCementCode
(
cementCode
);
groupStandard
.
setGroupName
(
checkGroups
.
get
(
0
).
getTeamGroupName
()
+
"|"
+
cementCode
);
if
(
CollectionUtil
.
isEmpty
(
elementMap
))
{
continue
;
}
elementMap
.
keySet
().
forEach
(
opt
->
{
BigDecimal
avg
=
elementMap
.
get
(
opt
)
.
divide
(
new
BigDecimal
(
checkGroups
.
size
()))
.
setScale
(
2
,
RoundingMode
.
HALF_DOWN
);
map
.
put
(
opt
,
avg
.
toString
());
});
rts
.
add
(
groupStandard
);
}
}
if
(!
StrUtil
.
isEmpty
(
name
))
{
return
rts
.
stream
()
.
filter
(
opt
->
opt
.
getGroupName
().
contains
(
name
)
||
name
.
equals
(
opt
.
getCementCode
()))
.
collect
(
Collectors
.
toList
());
}
return
rts
;
}
public
static
void
main
(
String
[]
args
)
{
BigDecimal
bigDecimal
=
new
BigDecimal
(
111
);
System
.
out
.
println
(
bigDecimal
.
toString
());
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/util/ExcelUtil.java
View file @
554c846d
...
...
@@ -16,6 +16,7 @@ import org.apache.poi.ss.usermodel.Font;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.VerticalAlignment
;
import
org.apache.poi.ss.usermodel.Workbook
;
/**
...
...
@@ -113,7 +114,42 @@ public class ExcelUtil {
}
}
}
public
static
void
excelExportNew
(
String
fileName
,
String
[]
headers
,
List
<
Object
[]>
datas
,
HttpServletResponse
response
)
{
Workbook
workbook
=
getWorkbookNew
(
headers
,
datas
);
if
(
workbook
!=
null
)
{
ByteArrayOutputStream
byteArrayOutputStream
=
null
;
try
{
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
workbook
.
write
(
byteArrayOutputStream
);
String
suffix
=
".xls"
;
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
((
fileName
+
suffix
).
getBytes
(),
"iso-8859-1"
));
OutputStream
outputStream
=
response
.
getOutputStream
();
outputStream
.
write
(
byteArrayOutputStream
.
toByteArray
());
outputStream
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
if
(
byteArrayOutputStream
!=
null
)
{
byteArrayOutputStream
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
try
{
workbook
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
/**
* @param headers 列头
* @param datas 数据
...
...
@@ -176,4 +212,65 @@ public class ExcelUtil {
return
workbook
;
}
public
static
Workbook
getWorkbookNew
(
String
[]
headers
,
List
<
Object
[]>
datas
)
{
Workbook
workbook
=
new
HSSFWorkbook
();
Sheet
sheet
=
workbook
.
createSheet
();
workbook
.
setSheetName
(
0
,
"样品处置记录"
);
Row
row
=
null
;
Cell
cell
=
null
;
Font
font
=
workbook
.
createFont
();
int
line
=
0
,
maxColumn
=
0
;
if
(
headers
!=
null
&&
headers
.
length
>
0
)
{
// 设置列头
CellStyle
style
=
workbook
.
createCellStyle
();
style
.
setAlignment
(
HorizontalAlignment
.
CENTER_SELECTION
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
row
=
sheet
.
createRow
(
line
++);
row
.
setHeightInPoints
(
23
);
font
.
setFontHeightInPoints
((
short
)
12
);
font
.
setFontName
(
"宋体"
);
style
.
setFont
(
font
);
maxColumn
=
headers
.
length
;
for
(
int
i
=
0
;
i
<
maxColumn
;
i
++)
{
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
headers
[
i
]);
cell
.
setCellStyle
(
style
);
}
}
if
(
datas
!=
null
&&
datas
.
size
()
>
0
)
{
// 渲染数据
CellStyle
style
=
workbook
.
createCellStyle
();
for
(
int
index
=
0
,
size
=
datas
.
size
();
index
<
size
;
index
++)
{
Object
[]
data
=
datas
.
get
(
index
);
if
(
data
!=
null
&&
data
.
length
>
0
)
{
row
=
sheet
.
createRow
(
line
++);
row
.
setHeightInPoints
(
20
);
int
length
=
data
.
length
;
if
(
length
>
maxColumn
)
{
maxColumn
=
length
;
}
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
style
.
setWrapText
(
true
);
//关键
style
.
setFont
(
font
);
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
data
[
i
]
==
null
?
null
:
data
[
i
].
toString
());
cell
.
setCellStyle
(
style
);
style
.
setAlignment
(
HorizontalAlignment
.
CENTER_SELECTION
);
}
}
}
}
for
(
int
i
=
0
;
i
<
maxColumn
;
i
++)
{
sheet
.
autoSizeColumn
(
i
);
}
return
workbook
;
}
}
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