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
71a7f82a
Commit
71a7f82a
authored
Mar 18, 2021
by
竹天卫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
本所编号最大值 优化
parent
fbf022ff
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
343 additions
and
301 deletions
+343
-301
EntrustController.java
...wise/sc/cement/business/controller/EntrustController.java
+0
-19
ReportController.java
.../wise/sc/cement/business/controller/ReportController.java
+47
-152
EntrustReport.java
...java/cn/wise/sc/cement/business/entity/EntrustReport.java
+19
-8
Sample.java
...c/main/java/cn/wise/sc/cement/business/entity/Sample.java
+30
-0
SampleCheckMapper.java
.../cn/wise/sc/cement/business/mapper/SampleCheckMapper.java
+4
-3
EntrustMapper.xml
...a/cn/wise/sc/cement/business/mapper/xml/EntrustMapper.xml
+20
-3
SampleCheckMapper.xml
.../wise/sc/cement/business/mapper/xml/SampleCheckMapper.xml
+14
-12
TenElementKey.java
.../java/cn/wise/sc/cement/business/model/TenElementKey.java
+33
-0
TenElementReport.java
...va/cn/wise/sc/cement/business/model/TenElementReport.java
+26
-18
IEntrustService.java
...a/cn/wise/sc/cement/business/service/IEntrustService.java
+2
-17
EntrustServiceImpl.java
...e/sc/cement/business/service/impl/EntrustServiceImpl.java
+100
-21
report_new.ftl
cement-business/src/main/resources/templates/report_new.ftl
+48
-48
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java
View file @
71a7f82a
...
...
@@ -814,20 +814,6 @@ public class EntrustController {
beanParams
,
response
,
FileExt
.
DOC
);
}
@ApiOperation
(
value
=
"查看样品流转单"
)
@GetMapping
(
"/getSampleFlowList"
)
public
BaseResponse
getSampleFlowList
(
Integer
entrustId
)
{
try
{
return
entrustService
.
getSampleFlowList
(
entrustId
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"查看样品流转单{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@PostMapping
(
"/exportSampleFlow/{entrustId}"
)
@ApiOperation
(
"导出样品流转单"
)
public
void
exportSampleFlow
(
@PathVariable
(
"entrustId"
)
Integer
entrustId
,
...
...
@@ -854,8 +840,6 @@ public class EntrustController {
beanParams
,
response
,
FileExt
.
DOC
);
}
@ApiOperation
(
"导出样品标签"
)
@PostMapping
(
"/exportSampleLabel/{entrustId}"
)
public
void
exportSampleLabel
(
@PathVariable
(
"entrustId"
)
Integer
entrustId
,
...
...
@@ -868,9 +852,6 @@ public class EntrustController {
}
}
@ApiOperation
(
"导出-委托单校核详情"
)
@PostMapping
(
"/exportCheckDetail/{entrustId}"
)
public
void
exportCheckDetail
(
@PathVariable
(
"entrustId"
)
Integer
entrustId
,
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/controller/ReportController.java
View file @
71a7f82a
...
...
@@ -4,20 +4,14 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.wise.sc.cement.business.entity.EntityEnclosure
;
import
cn.wise.sc.cement.business.model.BaseResponse
;
import
cn.wise.sc.cement.business.entity.Sample
;
import
cn.wise.sc.cement.business.model.*
;
import
cn.wise.sc.cement.business.enumation.FileExt
;
import
cn.wise.sc.cement.business.model.IndustrialElementKey
;
import
cn.wise.sc.cement.business.model.IndustrialReport
;
import
cn.wise.sc.cement.business.model.PageQuery
;
import
cn.wise.sc.cement.business.model.ReportDetailVo
;
import
cn.wise.sc.cement.business.model.SixElementKey
;
import
cn.wise.sc.cement.business.model.SixElementReport
;
import
cn.wise.sc.cement.business.model.query.SampleHandleEnclosureQuery
;
import
cn.wise.sc.cement.business.model.vo.EntrustVo
;
import
cn.wise.sc.cement.business.service.IEntityEnclosureService
;
import
cn.wise.sc.cement.business.service.IEntrustService
;
import
cn.wise.sc.cement.business.util.WordUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
...
...
@@ -27,8 +21,8 @@ import io.swagger.annotations.ApiOperation;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.Assert
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -39,13 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -84,23 +72,6 @@ public class ReportController {
return
iEntrustService
.
getReportPage
(
pageQuery
,
startDate
,
endDate
,
clientId
,
projectName
,
projectCode
);
}
@ApiOperation
(
value
=
"置顶取消置顶 (createTime = updateTime显示置顶,否则显示取消置顶)"
)
@PostMapping
(
"/setTopping"
)
public
BaseResponse
<
String
>
setTopping
(
Integer
id
)
{
try
{
return
iEntrustService
.
setTopping
(
id
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"置顶取消置顶 {}"
,
e
.
getMessage
());
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@DeleteMapping
(
"/{id}"
)
@ApiOperation
(
"删除报告"
)
public
BaseResponse
<
Boolean
>
deleteById
(
@PathVariable
(
"id"
)
Integer
id
)
{
return
iEntrustService
.
deleteById
(
id
);
}
@PostMapping
(
"/{entrustId}"
)
@ApiOperation
(
"导出报告封面和首页"
)
public
void
getReportDetail
(
@PathVariable
(
"entrustId"
)
Integer
entrustId
,
...
...
@@ -132,29 +103,58 @@ public class ReportController {
beanParams
.
put
(
"methodNames"
,
moveFirst
(
rts
.
getMethodNames
()));
beanParams
.
put
(
"equipmentNames"
,
moveFirst
(
rts
.
getEquipmentNames
()));
//六元素导出
List
<
SixElementReport
>
list
=
iEntrustService
.
getSampleSixElementCheck
(
entrustId
);
//十元素1导出
List
<
TenElementReport
>
list1
=
iEntrustService
.
getTen1List
(
entrustId
);
beanParams
.
put
(
"list1"
,
list1
);
//十元素2导出
List
<
TenElementReport
>
list2
=
new
ArrayList
<>();
beanParams
.
put
(
"list2"
,
list2
);
list
.
forEach
(
this
::
initMapStr2AlongPro
);
List
<
SixElementReport
>
al2o3AndTio2List
=
list
.
stream
()
.
filter
(
arg
->
!
"-"
.
equals
(
arg
.
getAl2o3AndTio2
()))
.
collect
(
Collectors
.
toList
());
List
<
SixElementReport
>
al2o3SplitTio2List
=
list
.
stream
()
.
filter
(
arg
->
"-"
.
equals
(
arg
.
getAl2o3AndTio2
()))
.
collect
(
Collectors
.
toList
());
beanParams
.
put
(
"list1"
,
al2o3AndTio2List
);
beanParams
.
put
(
"list2"
,
al2o3SplitTio2List
);
//化学工业导出
List
<
IndustrialReport
>
list1
=
iEntrustService
.
getSampleIndustrialCheck
(
entrustId
);
list1
.
forEach
(
this
::
initMapStr2AlongPro
);
beanParams
.
put
(
"list3"
,
list1
);
List
<
IndustrialReport
>
list3
=
iEntrustService
.
getSampleIndustrialCheck
(
entrustId
);
beanParams
.
put
(
"list3"
,
list3
);
WordUtil
.
writeWordReport
(
rts
.
getProjectName
()
+
"(报告)"
,
"report_new.ftl"
,
beanParams
,
response
,
FileExt
.
EXCL
);
}
private
String
getFirstSet
(
Set
<
String
>
set
)
{
Iterator
<
String
>
iterator
=
set
.
iterator
();
if
(
iterator
.
hasNext
())
{
return
iterator
.
next
();
}
return
""
;
}
private
static
Set
<
String
>
moveFirst
(
Set
<
String
>
set
)
{
Set
<
String
>
newSet
=
new
HashSet
<>(
set
.
size
());
Iterator
<
String
>
iterator
=
set
.
iterator
();
if
(
iterator
.
hasNext
())
{
String
next
=
iterator
.
next
();
newSet
.
addAll
(
set
);
newSet
.
remove
(
next
);
return
newSet
;
}
return
null
;
}
private
String
set2String
(
Set
<
String
>
source
)
{
if
(
source
.
size
()
==
0
)
{
return
""
;
}
StringBuilder
strBuilder
=
new
StringBuilder
();
for
(
String
target
:
source
)
{
strBuilder
.
append
(
"、"
).
append
(
target
);
}
return
strBuilder
.
replace
(
0
,
1
,
""
).
toString
();
}
@PostMapping
(
"/upload"
)
@ApiOperation
(
"上传报告"
)
public
BaseResponse
<
Boolean
>
uploadReport
(
@RequestBody
SampleHandleEnclosureQuery
query
)
{
...
...
@@ -197,110 +197,5 @@ public class ReportController {
}
/**
* 将样品六元素检测Map转换成单独属性
*
* @param sixElement 带转换的六元素检测结果
* @return 已转换结果
*/
private
void
initMapStr2AlongPro
(
SixElementReport
sixElement
)
{
String
countResult
=
sixElement
.
getCountResults
();
List
<
SixElementReport
.
Element
>
list
=
JSON
.
parseArray
(
countResult
,
SixElementReport
.
Element
.
class
);
HashMap
<
String
,
String
>
countResultMap
=
new
HashMap
<>(
list
.
size
());
list
.
forEach
(
arg
->
countResultMap
.
put
(
arg
.
getName
(),
arg
.
getValue
()));
sixElement
.
setAl2o3
(
"-"
);
sixElement
.
setTio2
(
"-"
);
sixElement
.
setAl2o3AndTio2
(
"-"
);
//判断检测结果中六元素Al2O3是否包含TiO2
if
(
countResultMap
.
containsKey
(
SixElementKey
.
Al2O3AndTiO2
.
getKey
()))
{
sixElement
.
setAl2o3AndTio2
(
countResultMap
.
get
(
SixElementKey
.
Al2O3AndTiO2
.
getKey
()));
}
else
{
sixElement
.
setAl2o3
(
countResultMap
.
getOrDefault
(
SixElementKey
.
Al2O3
.
getKey
(),
"0"
));
sixElement
.
setTio2
(
countResultMap
.
getOrDefault
(
SixElementKey
.
TiO2
.
getKey
(),
"0"
));
}
sixElement
.
setCao
(
countResultMap
.
getOrDefault
(
SixElementKey
.
CaO
.
getKey
(),
"0"
));
sixElement
.
setCl
(
countResultMap
.
getOrDefault
(
SixElementKey
.
Cl
.
getKey
(),
"0"
));
sixElement
.
setFe2o3
(
countResultMap
.
getOrDefault
(
SixElementKey
.
Fe2O3
.
getKey
(),
"0"
));
sixElement
.
setLoi
(
countResultMap
.
getOrDefault
(
SixElementKey
.
LOI
.
getKey
(),
"0"
));
sixElement
.
setMgo
(
countResultMap
.
getOrDefault
(
SixElementKey
.
MgO
.
getKey
(),
"0"
));
sixElement
.
setSio2
(
countResultMap
.
getOrDefault
(
SixElementKey
.
SiO2
.
getKey
(),
"0"
));
sixElement
.
setSo3
(
countResultMap
.
getOrDefault
(
SixElementKey
.
SO3
.
getKey
(),
"0"
));
}
private
String
getFirstSet
(
Set
<
String
>
set
)
{
Iterator
<
String
>
iterator
=
set
.
iterator
();
if
(
iterator
.
hasNext
())
{
return
iterator
.
next
();
}
return
""
;
}
private
static
Set
<
String
>
moveFirst
(
Set
<
String
>
set
)
{
Set
<
String
>
newSet
=
new
HashSet
<>(
set
.
size
());
Iterator
<
String
>
iterator
=
set
.
iterator
();
if
(
iterator
.
hasNext
())
{
String
next
=
iterator
.
next
();
newSet
.
addAll
(
set
);
newSet
.
remove
(
next
);
return
newSet
;
}
return
null
;
}
private
void
initMapStr2AlongPro
(
IndustrialReport
industrialReport
)
{
String
countResult
=
industrialReport
.
getCountResults
();
List
<
SixElementReport
.
Element
>
list
=
JSON
.
parseArray
(
countResult
,
SixElementReport
.
Element
.
class
);
HashMap
<
String
,
String
>
countResultMap
=
new
HashMap
<>(
list
.
size
());
list
.
forEach
(
arg
->
countResultMap
.
put
(
arg
.
getName
(),
arg
.
getValue
()));
industrialReport
.
setAad
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
Aad
.
getKey
(),
"0"
));
industrialReport
.
setJz
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
JZ
.
getKey
(),
"0"
));
industrialReport
.
setMad
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
Mad
.
getKey
(),
"0"
));
industrialReport
.
setMjkg
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
QnetAdMJkg
.
getKey
(),
"0"
));
industrialReport
.
setStad
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
StAd
.
getKey
(),
"0"
));
industrialReport
.
setVad
(
countResultMap
.
getOrDefault
(
IndustrialElementKey
.
Vad
.
getKey
(),
"0"
));
}
private
String
set2String
(
Set
<
String
>
source
)
{
if
(
source
.
size
()
==
0
)
{
return
""
;
}
StringBuilder
strBuilder
=
new
StringBuilder
();
for
(
String
target
:
source
)
{
strBuilder
.
append
(
"、"
).
append
(
target
);
}
return
strBuilder
.
replace
(
0
,
1
,
""
).
toString
();
}
private
String
set2StringN
(
Set
<
String
>
source
)
{
if
(
source
.
size
()
==
0
)
{
return
""
;
}
StringBuilder
strBuilder
=
new
StringBuilder
();
for
(
String
target
:
source
)
{
strBuilder
.
append
(
" "
).
append
(
target
);
}
return
strBuilder
.
replace
(
0
,
5
,
""
).
toString
();
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/entity/EntrustReport.java
View file @
71a7f82a
...
...
@@ -29,16 +29,31 @@ public class EntrustReport {
*/
private
Integer
clientId
;
/**
* 样品id
*/
private
Integer
sampleId
;
/**
* 项目id
*/
private
Integer
entrustId
;
/**
* 项目类型
*/
private
String
projectType
;
//8888888888888888888888888888888888888888888888888
/**
* 样品id
*/
private
Integer
sampleId
;
/**
* 检测项目ids
*/
...
...
@@ -84,10 +99,6 @@ public class EntrustReport {
*/
private
String
entrustCode
;
/**
* 项目类型
*/
private
String
projectType
;
/**
* 样品创建时间
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/entity/Sample.java
View file @
71a7f82a
...
...
@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.apache.commons.lang3.StringUtils
;
/**
* <p>
...
...
@@ -122,4 +123,33 @@ public class Sample implements Serializable {
@ApiModelProperty
(
"样品是否来自国外 (0来自国内,1来自国外)"
)
private
Integer
isForeign
;
/**
* 将样品重量换算成公斤(kg)
* 样品重量计量单位(1微克,2毫克,3克,4千克,5吨)
* @param weight
* @param weightType
* @return
*/
public
static
String
weight2Kg
(
String
weight
,
Integer
weightType
){
String
result
=
""
;
if
(
StringUtils
.
isNotBlank
(
weight
)){
if
(
weightType
==
1
){
result
=
new
BigDecimal
(
weight
).
divide
(
new
BigDecimal
(
1000000000
)).
toString
();
}
else
if
(
weightType
==
2
){
result
=
new
BigDecimal
(
weight
).
divide
(
new
BigDecimal
(
1000000
)).
toString
();
}
else
if
(
weightType
==
3
){
result
=
new
BigDecimal
(
weight
).
divide
(
new
BigDecimal
(
1000
)).
toString
();
}
else
if
(
weightType
==
4
){
result
=
weight
;
}
else
if
(
weightType
==
5
){
result
=
new
BigDecimal
(
weight
).
multiply
(
new
BigDecimal
(
1000
)).
toString
();
}
else
{
result
=
""
;
}
}
return
result
;
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/SampleCheckMapper.java
View file @
71a7f82a
...
...
@@ -2,11 +2,12 @@ package cn.wise.sc.cement.business.mapper;
import
cn.wise.sc.cement.business.entity.SampleCheck
;
import
cn.wise.sc.cement.business.model.IndustrialReport
;
import
cn.wise.sc.cement.business.model.
Six
ElementReport
;
import
cn.wise.sc.cement.business.model.
Ten
ElementReport
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Set
;
/**
* <p>
...
...
@@ -19,12 +20,12 @@ import java.util.List;
public
interface
SampleCheckMapper
extends
BaseMapper
<
SampleCheck
>
{
/**
* 获取样品
六元素
检测结果
* 获取样品
十元素1
检测结果
*
* @param entrustId 项目id
* @return SixElementReport
*/
List
<
SixElementReport
>
getSampleSixElementCheck
(
@Param
(
"entrustId"
)
Integer
entrustId
);
List
<
TenElementReport
>
getSampleTenElementCheck
(
@Param
(
"entrustId"
)
Integer
entrustId
,
@Param
(
"teamNames"
)
Set
<
String
>
teamNames
);
/**
* 获取样品工业检测结果
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/EntrustMapper.xml
View file @
71a7f82a
...
...
@@ -327,9 +327,7 @@
</where>
</sql>
<select
id=
"getReportDetail"
resultType=
"cn.wise.sc.cement.business.entity.EntrustReport"
>
<!-- <select id="getReportDetail" resultType="cn.wise.sc.cement.business.entity.EntrustReport">
SELECT e.id,e.project_name,e.send_name,e.client_id,e.entrust_code,e.project_type,sscct.* FROM entrust e
RIGHT JOIN
(SELECT id,entrust_id,team_ids,method_numbers,name,scct.check_id,
...
...
@@ -342,6 +340,25 @@
ON s.id = scct.sample_id) sscct
ON sscct.entrust_id = e.id
WHERE e.id IS NOT NULL
</select>-->
<select
id=
"getReportDetail"
resultType=
"cn.wise.sc.cement.business.entity.EntrustReport"
>
SELECT e.id,e.project_name,e.send_name,e.client_id,e.entrust_code,e.project_type,s_tab.*
FROM entrust e
RIGHT JOIN
(
SELECT s.id,s.entrust_id,s.team_ids,s.method_numbers,s.name,s.create_time,
sd_tab.check_id,sd_tab.equipment_name,sd_tab.user_id,sd_tab.equipment_id
FROM sample s
RIGHT JOIN(
SELECT sd.id,sd.check_id,sd.sample_id,sd.user_id,
sde.equipment_id,sde.equipment_name FROM sample_distribution sd
left JOIN sample_distribution_equipment sde ON sde.distribution_id = sd.id where sd.entrust_id = 90
)sd_tab
ON s.id = sd_tab.sample_id
) s_tab
ON s_tab.entrust_id = e.id
WHERE e.id IS NOT NULL
</select>
<select
id=
"getQualityDetail"
resultType=
"cn.wise.sc.cement.business.entity.QualityDetail"
>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleCheckMapper.xml
View file @
71a7f82a
...
...
@@ -2,18 +2,20 @@
<!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.SampleCheckMapper"
>
<select
id=
"getSampleSixElementCheck"
resultType=
"cn.wise.sc.cement.business.model.SixElementReport"
>
SELECT * FROM (SELECT count_results,entrust_id,team_group_name,sct.sample_id,sc.id FROM sample_check sc
LEFT JOIN
(SELECT check_id,sample_id FROM sample_check_team) sct
ON sct.check_id = sc.id
WHERE sample_id IS NOT NULL AND sc.team_group_name = '六元素' ) sscct
RIGHT JOIN
(SELECT cement_code,sample_code,sample_form,`name` as sample_name,parallel_code,weight,id
FROM sample) s
ON s.id = sscct.sample_id AND entrust_id = #{entrustId}
WHERE count_results IS NOT NULL AND s.parallel_code = cement_code;
<select
id=
"getSampleTenElementCheck"
resultType=
"cn.wise.sc.cement.business.model.TenElementReport"
>
select s.id,s.name as sampleName,s.sample_form as sampleForm,s.sample_code as sampleCode,s.weight as weight,
s.weight_type as weightType,s.cement_code as cementCode,
t.name as teamName,IF(ISNULL(sdc.last_result),'—',sdc.last_result) as lastResult
from sample_distribution sd
left join team t on t.id = sd.team_id
left join sample_distribution_check sdc on sdc.id = sd.check_id
left join sample s on s.id = sd.sample_id
where sd.entrust_id = #{entrustId} and sd.check_id is not null and s.cement_code = s.parallel_code
and t.name in
<foreach
collection=
"teamNames"
open=
"("
close=
")"
item=
"teamNames"
separator=
","
>
#{teamNames}
</foreach>
group by s.id, sdc.id,t.name
</select>
<select
id=
"getSampleIndustrialCheck"
resultType=
"cn.wise.sc.cement.business.model.IndustrialReport"
>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/model/
Six
ElementKey.java
→
cement-business/src/main/java/cn/wise/sc/cement/business/model/
Ten
ElementKey.java
View file @
71a7f82a
package
cn
.
wise
.
sc
.
cement
.
business
.
model
;
/**
* @description:
六元素
检测结果中的key
* @description:
十元素1
检测结果中的key
* @author: qh
* @create: 2020-10-15 14:03
**/
public
enum
Six
ElementKey
{
public
enum
Ten
ElementKey
{
//
六元素
key
//
十元素1
key
LOI
(
"L.O.I"
),
SiO2
(
"SiO
2
"
),
Al2O3
(
"Al2O3
"
),
TiO2
(
"TiO2
"
),
SiO2
(
"SiO
<sub>2</sub>
"
),
Al2O3
AndTiO2
(
"Al<sub>2</sub>O<sub>3</sub>+TiO<sub>2</sub>
"
),
Fe2O3
(
"Fe<sub>2</sub>O<sub>3</sub>
"
),
CaO
(
"CaO"
),
MgO
(
"MgO"
),
SO3
(
"So3"
),
Cl
(
"Cl"
),
Fe2O3
(
"Fe2O3"
),
Al2O3AndTiO2
(
"Al2O3+TiO2"
);
K2O
(
"K<sub>2</sub>O"
),
Na2O
(
"Na<sub>2</sub>O"
),
SO3
(
"SO<sub>3</sub>"
),
Cl
(
"Cl<sup>-</sup>"
),
FSiO2
(
"f-SiO<sub>2</sub>"
);
private
String
key
;
Six
ElementKey
(
String
key
)
{
Ten
ElementKey
(
String
key
)
{
this
.
key
=
key
;
}
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/model/
Six
ElementReport.java
→
cement-business/src/main/java/cn/wise/sc/cement/business/model/
Ten
ElementReport.java
View file @
71a7f82a
package
cn
.
wise
.
sc
.
cement
.
business
.
model
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @description: 六元素检测报告
* @author:
qh
* @author:
ztw
* @create: 2020-10-15 12:24
**/
@Data
public
class
Six
ElementReport
implements
Serializable
{
public
class
Ten
ElementReport
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
/**
* 样品id
*/
private
Integer
id
;
/**
* 样品名称
*/
...
...
@@ -34,38 +42,38 @@ public class SixElementReport implements Serializable {
*/
private
String
weight
;
/**
* 样品重量计量单位(1微克,2毫克,3克,4千克,5吨)
*/
private
Integer
weightType
;
/**
* 本所编号
*/
private
String
cementCode
;
/**
*
校核数据
*
检测项名称
*/
private
String
countResults
;
private
String
teamName
;
//下面为六元素
/**
* 最终结果
*/
private
String
lastResult
;
//下面为十元素1
private
String
loi
=
""
;
private
String
sio2
=
""
;
private
String
al2o3AndTio2
=
""
;
private
String
fe2o3
=
""
;
private
String
cao
=
""
;
private
String
mgo
=
""
;
private
String
k2o
=
""
;
private
String
na2o
=
""
;
private
String
so3
=
""
;
private
String
cl
=
""
;
private
String
fsio2
=
""
;
//情况一:Al2O3(含TiO3)
private
String
al2o3AndTio2
=
""
;
//情况二:Al2O3和TiO3单独分开
private
String
al2o3
=
""
;
private
String
tio2
=
""
;
@Data
public
static
class
Element
implements
Serializable
{
private
String
name
;
private
String
value
;
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java
View file @
71a7f82a
package
cn
.
wise
.
sc
.
cement
.
business
.
service
;
import
cn.wise.sc.cement.business.entity.*
;
import
cn.wise.sc.cement.business.model.BaseResponse
;
import
cn.wise.sc.cement.business.model.IndustrialReport
;
import
cn.wise.sc.cement.business.model.PageQuery
;
import
cn.wise.sc.cement.business.model.ReportDetailVo
;
import
cn.wise.sc.cement.business.model.SixElementReport
;
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
;
...
...
@@ -129,8 +125,6 @@ public interface IEntrustService extends IService<Entrust> {
String
endDate
,
Integer
clientId
,
String
projectName
,
String
projectCode
);
BaseResponse
<
Boolean
>
deleteById
(
Integer
id
);
ReportDetailVo
getReportDetail
(
Integer
entrustId
);
BaseResponse
<
IPage
<
EntrustVo
>>
getQualityPage
(
PageQuery
pageQuery
,
...
...
@@ -144,8 +138,6 @@ public interface IEntrustService extends IService<Entrust> {
Integer
clientId
,
String
projectName
,
String
projectCode
,
String
fileName
,
HttpServletResponse
response
);
void
exportConsignation
(
Integer
cycle
,
String
startDate
,
String
endDate
,
Integer
clientId
,
String
clientName
,
String
fileName
,
HttpServletResponse
response
);
BaseResponse
<
EntrustVo
>
getBaseDtail
(
Integer
id
);
...
...
@@ -157,14 +149,7 @@ public interface IEntrustService extends IService<Entrust> {
BaseResponse
<
List
<
SampleVo
>>
getSampleCheckDtail
(
Integer
id
);
/**
* 查询六元素的检测结果
*
* @param entrustId 委托id
* @return 六元素校核
*/
List
<
SixElementReport
>
getSampleSixElementCheck
(
Integer
entrustId
);
List
<
TenElementReport
>
getTen1List
(
Integer
entrustId
);
/**
* 查询工业特性
*
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
View file @
71a7f82a
...
...
@@ -1230,13 +1230,65 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
BaseResponse
.
okData
(
sampleVoList
);
}
@Override
public
List
<
SixElementReport
>
getSampleSixElementCheck
(
Integer
entrustId
)
{
return
sampleCheckMapper
.
getSampleSixElementCheck
(
entrustId
);
/**
* 获取十元素1的检测信息
* @param entrustId 委托id
* @return
*/
@Override
public
List
<
TenElementReport
>
getTen1List
(
Integer
entrustId
){
List
<
TenElementReport
>
list
=
getSampleTenElementCheck
(
entrustId
);
Map
<
Integer
,
List
<
TenElementReport
>>
groupBySample
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
TenElementReport:
:
getId
,
Collectors
.
toList
()));
List
<
TenElementReport
>
newList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
Integer
,
List
<
TenElementReport
>>
entry
:
groupBySample
.
entrySet
()){
TenElementReport
first
=
entry
.
getValue
().
get
(
0
);
Map
<
String
,
TenElementReport
>
sixElementReportMap
=
entry
.
getValue
().
stream
().
collect
(
Collectors
.
toMap
(
TenElementReport:
:
getTeamName
,
item
->
item
));
first
.
setLoi
(
sixElementReportMap
.
get
(
TenElementKey
.
LOI
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
LOI
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
LOI
.
getKey
()).
getLastResult
());
first
.
setSio2
(
sixElementReportMap
.
get
(
TenElementKey
.
SiO2
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
SiO2
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
SiO2
.
getKey
()).
getLastResult
());
first
.
setAl2o3AndTio2
(
sixElementReportMap
.
get
(
TenElementKey
.
Al2O3AndTiO2
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
Al2O3AndTiO2
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
Al2O3AndTiO2
.
getKey
()).
getLastResult
());
first
.
setFe2o3
(
sixElementReportMap
.
get
(
TenElementKey
.
Fe2O3
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
Fe2O3
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
Fe2O3
.
getKey
()).
getLastResult
());
first
.
setCao
(
sixElementReportMap
.
get
(
TenElementKey
.
CaO
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
CaO
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
CaO
.
getKey
()).
getLastResult
());
first
.
setMgo
(
sixElementReportMap
.
get
(
TenElementKey
.
MgO
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
MgO
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
MgO
.
getKey
()).
getLastResult
());
first
.
setK2o
(
sixElementReportMap
.
get
(
TenElementKey
.
K2O
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
K2O
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
K2O
.
getKey
()).
getLastResult
());
first
.
setNa2o
(
sixElementReportMap
.
get
(
TenElementKey
.
Na2O
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
Na2O
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
Na2O
.
getKey
()).
getLastResult
());
first
.
setSo3
(
sixElementReportMap
.
get
(
TenElementKey
.
SO3
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
SO3
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
SO3
.
getKey
()).
getLastResult
());
first
.
setCl
(
sixElementReportMap
.
get
(
TenElementKey
.
Cl
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
Cl
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
Cl
.
getKey
()).
getLastResult
());
first
.
setFsio2
(
sixElementReportMap
.
get
(
TenElementKey
.
FSiO2
.
getKey
())==
null
||
org
.
springframework
.
util
.
StringUtils
.
isEmpty
(
sixElementReportMap
.
get
(
TenElementKey
.
FSiO2
.
getKey
()).
getLastResult
())
?
"—"
:
sixElementReportMap
.
get
(
TenElementKey
.
FSiO2
.
getKey
()).
getLastResult
());
newList
.
add
(
first
);
}
//将样品重量换算成kg
newList
.
stream
().
forEach
(
arg
->{
arg
.
setWeight
(
Sample
.
weight2Kg
(
arg
.
getWeight
(),
arg
.
getWeightType
()));
});
return
newList
;
}
//获取十元素1的检测项检测信息
private
List
<
TenElementReport
>
getSampleTenElementCheck
(
Integer
entrustId
)
{
Set
<
String
>
list
=
new
HashSet
<>(
11
);
list
.
add
(
"L.O.I"
);
list
.
add
(
"SiO<sub>2</sub>"
);
list
.
add
(
"Al<sub>2</sub>O<sub>3</sub>+TiO<sub>2</sub>"
);
list
.
add
(
"Fe<sub>2</sub>O<sub>3</sub>"
);
list
.
add
(
"CaO"
);
list
.
add
(
"MgO"
);
list
.
add
(
"K<sub>2</sub>O"
);
list
.
add
(
"Na<sub>2</sub>O"
);
list
.
add
(
"SO<sub>3</sub>"
);
list
.
add
(
"Cl<sup>-</sup>"
);
list
.
add
(
"f-SiO<sub>2</sub>"
);
return
sampleCheckMapper
.
getSampleTenElementCheck
(
entrustId
,
list
);
}
@Override
public
List
<
IndustrialReport
>
getSampleIndustrialCheck
(
Integer
entrustId
)
{
...
...
@@ -1698,8 +1750,8 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
sampleService
.
saveBatch
(
sampleList
);
//最大的平行样编号放入redis
System
.
out
.
println
(
"审批时的最大本所编号*******************************************"
+
max
CementCode
);
redisUtil
.
setString
(
"maxCementCode"
,
max
CementCode
);
System
.
out
.
println
(
"审批时的最大本所编号*******************************************"
+
last
CementCode
);
redisUtil
.
setString
(
"maxCementCode"
,
last
CementCode
);
}
return
BaseResponse
.
okMsg
(
"成功"
);
}
...
...
@@ -4732,13 +4784,24 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
BaseResponse
.
okData
(
countResultMap
);
}
/**
* 检测报告分页列表
* @param pageQuery
* @param startDate
* @param endDate
* @param clientId
* @param projectName
* @param projectCode
* @return
*/
@Override
public
BaseResponse
<
IPage
<
EntrustVo
>>
getReportPage
(
PageQuery
pageQuery
,
String
startDate
,
String
endDate
,
Integer
clientId
,
String
projectName
,
String
projectCode
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"startDate"
,
startDate
);
params
.
put
(
"endDate"
,
endDate
);
params
.
put
(
"reportStatus"
,
4
);
// params.put("reportStatus", 4);
params
.
put
(
"status"
,
8
);
params
.
put
(
"clientId"
,
clientId
);
params
.
put
(
"projectName"
,
projectName
);
params
.
put
(
"projectCode"
,
projectCode
);
...
...
@@ -4799,6 +4862,11 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
BaseResponse
.
okData
(
pages
);
}
/**
* 导出报告封面和首页
* @param entrustId
* @return
*/
@Override
public
ReportDetailVo
getReportDetail
(
Integer
entrustId
)
{
...
...
@@ -4863,19 +4931,16 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
null
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
BaseResponse
<
Boolean
>
deleteById
(
Integer
id
)
{
if
(
id
==
null
||
id
<=
0
)
{
return
BaseResponse
.
errorMsg
(
"id编号不能为空!"
);
}
Entrust
entrust
=
this
.
getById
(
id
);
entrust
.
setIsDelete
(
0
);
boolean
b
=
this
.
updateById
(
entrust
);
return
BaseResponse
.
okData
(
b
);
}
/**
* 质量检测分页列表
* @param pageQuery
* @param startDate
* @param endDate
* @param clientId
* @param projectName
* @param projectCode
* @return
*/
@Override
public
BaseResponse
<
IPage
<
EntrustVo
>>
getQualityPage
(
PageQuery
pageQuery
,
String
startDate
,
String
endDate
,
Integer
clientId
,
String
projectName
,
String
projectCode
)
{
...
...
@@ -4931,6 +4996,11 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
BaseResponse
.
okData
(
pages
);
}
/**
* 获取质量详情
* @param entrustId
* @return
*/
@Override
public
QualityDetailVo
getQualityDetail
(
Integer
entrustId
)
{
...
...
@@ -5143,7 +5213,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
List
<
Client
>
clients
=
JSON
.
parseArray
(
redisUtil
.
getString
(
clientKey
)
+
""
,
Client
.
class
);
if
(
clients
.
size
()
==
0
)
{
log
.
error
(
"=================送
养
单位表中没有任何数据!=================="
);
log
.
error
(
"=================送
样
单位表中没有任何数据!=================="
);
}
else
{
clients
.
stream
().
filter
(
arg
->
arg
.
getId
().
intValue
()
==
firstReportDetail
.
getClientId
())
.
findFirst
().
ifPresent
(
arg
->
rts
.
setSendName
(
arg
.
getName
()));
...
...
@@ -5270,7 +5340,16 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
@Resource
private
ISampleDistributionService
sampleDistributionService
;
@Override
/**
* 委托单进展导出(东哥写的例子)
* @param cycle
* @param startDate
* @param endDate
* @param clientId
* @param clientName
* @param fileName
* @param response
*/
public
void
exportConsignation
(
Integer
cycle
,
String
startDate
,
String
endDate
,
Integer
clientId
,
String
clientName
,
String
fileName
,
HttpServletResponse
response
)
{
...
...
cement-business/src/main/resources/templates/report_new.ftl
View file @
71a7f82a
...
...
@@ -3829,7 +3829,7 @@
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:StyleID=
"s127"
><ss:Data
ss:Type=
"String"
xmlns=
"http://www.w3.org/TR/REC-html40"
><Font
html:Color=
"#FF0000"
>
共
</Font><Font
html:Face=
"宋体"
x:CharSet=
"134"
html:Color=
"#FF0000"
>
3
</Font><Font
html:Face=
"宋体"
x:CharSet=
"134"
html:Color=
"#FF0000"
>
9
</Font><Font
html:Color=
"#FF0000"
>
页
</Font></ss:Data><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:StyleID=
"s128"
><ss:Data
ss:Type=
"String"
xmlns=
"http://www.w3.org/TR/REC-html40"
>
第
<Font
html:Face=
"宋体"
...
...
@@ -4054,11 +4054,9 @@
<Cell
ss:MergeDown=
"8"
ss:StyleID=
"s187"
><Data
ss:Type=
"String"
>
主要仪器设备(编号)
</Data><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:StyleID=
"s178"
>
<
#if !firstEquipment??>
<ss:Data
ss:Type=
"String"
xmlns=
"http://www.w3.org/TR/REC-html40"
>
<Font
html:Size=
"12"
>
${firstEquipment}
</Font><Font
html:Face=
"Times New Roman"
x:Family=
"Roman"
html:Size=
"12"
>
</Font></ss:Data>
<
/#if>
<NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:Index=
"4"
ss:StyleID=
"s562"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
...
...
@@ -4068,7 +4066,7 @@
<Cell
ss:StyleID=
"s122"
/>
<Cell
ss:StyleID=
"s122"
/>
</Row>
<
#
if !equipmentNames??
>
<
#
--
<
#if equipmentNames??>--
>
<
#list equipmentNames as item>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"18"
>
<Cell
ss:Index=
"2"
ss:StyleID=
"s179"
>
...
...
@@ -4082,9 +4080,8 @@
<Cell
ss:Index=
"11"
ss:StyleID=
"s173"
/>
</Row>
<
/#list>
<
/#if>
<
#if !equipmentNames??
&&
equipmentNames?size lte 8>
<
#list 1..(8-(quipmentNames?size)) as i>
<
#--
<
/#if>-->
<
#if equipmentNames?size lte 8>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"18"
>
<Cell
ss:Index=
"2"
ss:StyleID=
"s179"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:Index=
"4"
ss:StyleID=
"s563"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
...
...
@@ -4093,10 +4090,7 @@
<Cell
ss:StyleID=
"s122"
/>
<Cell
ss:StyleID=
"s122"
/>
</Row>
<
/#list>
<
/#if>
<
#if equipmentNames??>
<
#list 1..8 as i>
<
#list 1..(7-equipmentNames?size) as i>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"18"
>
<Cell
ss:Index=
"2"
ss:StyleID=
"s179"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:Index=
"4"
ss:StyleID=
"s563"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
...
...
@@ -4106,9 +4100,15 @@
<Cell
ss:StyleID=
"s122"
/>
</Row>
<
/#list>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"18"
>
<Cell
ss:Index=
"2"
ss:StyleID=
"s179"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:Index=
"4"
ss:StyleID=
"s563"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:Index=
"8"
ss:StyleID=
"s122"
><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
<Cell
ss:StyleID=
"s122"
/>
<Cell
ss:StyleID=
"s122"
/>
<Cell
ss:StyleID=
"s122"
/>
</Row>
<
/#if>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"18"
ss:StyleID=
"s107"
>
<Cell
ss:StyleID=
"s195"
><Data
ss:Type=
"String"
>
项目名称
</Data><NamedCell
ss:Name=
"_FilterDatabase"
/></Cell>
...
...
@@ -4248,7 +4248,7 @@
<Cell
ss:MergeAcross=
"15"
ss:StyleID=
"s223"
><NamedCell
ss:Name=
"Print_Area"
/></Cell>
</Row>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"43.5"
>
<Cell
ss:MergeAcross=
"15"
ss:StyleID=
"s227"
><Data
ss:Type=
"String"
>
检 测 报 告
1
</Data><NamedCell
<Cell
ss:MergeAcross=
"15"
ss:StyleID=
"s227"
><Data
ss:Type=
"String"
>
检 测 报 告
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
</Row>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"15"
>
...
...
@@ -4272,7 +4272,7 @@
<Cell
ss:StyleID=
"s63"
><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s63"
><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s63"
><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s290"
ss:Formula=
""
><Data
ss:Type=
"String"
>
共
3
页
</Data><NamedCell
<Cell
ss:StyleID=
"s290"
ss:Formula=
""
><Data
ss:Type=
"String"
>
共
9
页
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s291"
><Data
ss:Type=
"String"
>
第2页
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
...
...
@@ -4357,15 +4357,15 @@
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s261"
><Data
ss:Type=
"String"
>
${item.mgo}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
—
</Data><NamedCell
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
${item.k2o}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
—
</Data><NamedCell
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
${item.na2o}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s261"
><Data
ss:Type=
"String"
>
${item.so3}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s262"
><Data
ss:Type=
"String"
>
${item.cl}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
—
</Data><NamedCell
<Cell
ss:StyleID=
"s248"
><Data
ss:Type=
"String"
>
${item.fsio2}
</Data><NamedCell
ss:Name=
"Print_Area"
/></Cell>
<Cell
ss:StyleID=
"s259"
/>
</Row>
...
...
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