Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-hmhj
Overview
Overview
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
wangweidong
patzn-cloud-service-hmhj
Commits
92cf07ec
Commit
92cf07ec
authored
Jun 29, 2021
by
lijingjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加原铝、电解质、磷生铁统计分析
parent
e0c67824
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
221 additions
and
23 deletions
+221
-23
EntrustSampleController.java
...service/lims/hmhj/controller/EntrustSampleController.java
+23
-0
UserInspectionCodeController.java
...ce/lims/hmhj/controller/UserInspectionCodeController.java
+1
-0
EntrustSampleMapper.java
...n/cloud/service/lims/hmhj/mapper/EntrustSampleMapper.java
+11
-0
IEntrustSampleService.java
...loud/service/lims/hmhj/service/IEntrustSampleService.java
+11
-0
EntrustSampleServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
+0
-0
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+54
-14
EntrustSampleItemMapper.xml
src/main/resources/mapper/hmhj/EntrustSampleItemMapper.xml
+12
-9
EntrustSampleMapper.xml
src/main/resources/mapper/hmhj/EntrustSampleMapper.xml
+0
-0
20210629新增视图.sql
src/test/java/resources/db_sql/base/v113/20210629新增视图.sql
+14
-0
20210629新增函数.sql
src/test/java/resources/db_sql/hmhj/v113/20210629新增函数.sql
+95
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustSampleController.java
View file @
92cf07ec
...
...
@@ -3,12 +3,17 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.google.common.collect.Lists
;
import
com.patzn.cloud.service.hmhj.dto.QueryDTO
;
import
com.patzn.cloud.service.hmhj.dto.ReportDTO
;
import
com.patzn.cloud.service.hmhj.dto.StatsQueryDTO
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSample
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum
;
import
com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleVO
;
import
com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -24,6 +29,7 @@ import io.swagger.annotations.ApiImplicitParams;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
import
java.util.Map
;
/**
* 委托单样品 前端控制器
...
...
@@ -447,4 +453,21 @@ public class EntrustSampleController extends ServiceController {
return
success
(
entrustSampleService
.
pageTestResultQuery
(
getPage
(),
entrustSample
));
}
@ApiOperation
(
"原铝品味统计查询"
)
@PostMapping
(
"/al_taste_stats_query"
)
public
RestResult
<
List
<
AlTasteStatsVO
>>
getAlTasteStatsQuery
(
StatsQueryDTO
statsQueryDTO
)
{
return
success
(
entrustSampleService
.
getAlTasteStatsQuery
(
statsQueryDTO
));
}
@ApiOperation
(
"电解质分子比统计查询"
)
@PostMapping
(
"/electrolyte_ratio_stats_query"
)
public
RestResult
<
List
<
ElectrolyteRatioStatsVO
>>
getElectrolyteRatioStatsQuery
(
QueryDTO
queryDTO
)
{
return
success
(
entrustSampleService
.
getElectrolyteRatioStatsQuery
(
queryDTO
));
}
@ApiOperation
(
"磷生铁统计查询"
)
@PostMapping
(
"/p_make_fe_stats_query"
)
public
RestResult
<
List
<
PMakeFeStatsVO
>>
getPMakeFeStatsQuery
(
QueryDTO
queryDTO
)
{
return
success
(
entrustSampleService
.
getPMakeFeStatsQuery
(
queryDTO
));
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/UserInspectionCodeController.java
View file @
92cf07ec
...
...
@@ -61,6 +61,7 @@ public class UserInspectionCodeController extends ServiceController {
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
UserInspectionCode
userInspectionCode
)
{
userInspectionCode
.
setCreator
(
getAccount
().
getUserName
());
return
success
(
userInspectionCodeService
.
save
(
userInspectionCode
));
}
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/EntrustSampleMapper.java
View file @
92cf07ec
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
mapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.service.hmhj.dto.QueryDTO
;
import
com.patzn.cloud.service.hmhj.dto.StatsQueryDTO
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSample
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleVO
;
import
com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
...
...
@@ -26,4 +31,10 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List
<
EntrustSampleVO
>
selectMinStatusByEntrustIds
(
@Param
(
"entrustIds"
)
List
<
Long
>
entrustIds
);
List
<
EntrustSampleVO
>
selectTestResultQuery
(
RowBounds
rowBounds
,
@Param
(
"vo"
)
EntrustSampleVO
entrustSample
);
List
<
AlTasteStatsVO
>
selectAlTasteStats
(
@Param
(
"vo"
)
StatsQueryDTO
queryDTO
);
List
<
ElectrolyteRatioStatsVO
>
selectElectrolyteRatioStats
(
@Param
(
"vo"
)
QueryDTO
queryDTO
);
List
<
PMakeFeStatsVO
>
selectPMakeFeStats
(
@Param
(
"vo"
)
QueryDTO
queryDTO
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleService.java
View file @
92cf07ec
...
...
@@ -4,9 +4,14 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.service.IBaseService
;
import
com.patzn.cloud.service.hmhj.dto.QueryDTO
;
import
com.patzn.cloud.service.hmhj.dto.ReportDTO
;
import
com.patzn.cloud.service.hmhj.dto.StatsQueryDTO
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSample
;
import
com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleVO
;
import
com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO
;
import
java.util.List
;
...
...
@@ -53,4 +58,10 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
Page
<
EntrustSampleVO
>
pageTestResultQuery
(
Page
<
EntrustSampleVO
>
page
,
EntrustSampleVO
entrustSample
);
int
countByEntrustId
(
Long
id
);
List
<
AlTasteStatsVO
>
getAlTasteStatsQuery
(
StatsQueryDTO
queryDTO
);
List
<
ElectrolyteRatioStatsVO
>
getElectrolyteRatioStatsQuery
(
QueryDTO
queryDTO
);
List
<
PMakeFeStatsVO
>
getPMakeFeStatsQuery
(
QueryDTO
queryDTO
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
View file @
92cf07ec
This diff is collapsed.
Click to expand it.
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
92cf07ec
...
...
@@ -8,6 +8,7 @@ import com.patzn.cloud.commons.controller.LoginHelper;
import
com.patzn.cloud.commons.toolkit.DateUtils
;
import
com.patzn.cloud.commons.toolkit.StringHandleUtils
;
import
com.patzn.cloud.feign.base.client.SysOrgClient
;
import
com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient
;
import
com.patzn.cloud.service.base.entity.SysOrg
;
import
com.patzn.cloud.service.hmhj.dto.EntrustDTO
;
import
com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO
;
...
...
@@ -16,6 +17,7 @@ import com.patzn.cloud.service.hmhj.enums.*;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustVO
;
import
com.patzn.cloud.service.lims.chemical.entity.LmsChemicalCategory
;
import
com.patzn.cloud.service.lims.common.service.ILmsMsgService
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.*
;
...
...
@@ -73,6 +75,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Autowired
private
SysOrgClient
sysOrgClient
;
@Autowired
private
LmsChemicalCategoryClient
lmsChemicalCategoryClient
;
@Override
public
Page
<
Entrust
>
page
(
Page
<
Entrust
>
page
,
Entrust
entrust
)
{
...
...
@@ -97,47 +102,82 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
public
void
initSampleCode
(
EntrustSample
sample
)
{
// 样品类型
String
category
=
sample
.
getCategory
();
RestAssert
.
fail
(
StringUtils
.
isBlank
(
category
),
"样品类型不能为空"
);
String
parentCategory
=
""
;
if
(
StringUtils
.
isNotBlank
(
category
))
{
LmsChemicalCategory
chemicalCategory
=
lmsChemicalCategoryClient
.
getTopCategory
(
category
).
getData
();
RestAssert
.
fail
(
null
==
chemicalCategory
,
"样品(物资)类型不能为空"
);
parentCategory
=
chemicalCategory
.
getName
();
}
Account
account
=
LoginHelper
.
getAccount
();
int
codeTypeNo
=
0
;
List
<
SysOrg
>
orgList
=
sysOrgClient
.
getListByUserId
(
account
.
getUserId
()).
getData
();
//
是否包含二期部门
boolean
secondPhase
=
orgList
.
stream
().
filter
(
t
->
t
.
getName
().
contains
(
"二期"
)).
count
()
>
0
;
//
具体是哪一期
String
phase
=
orgList
.
stream
().
filter
(
t
->
t
.
getName
().
contains
(
"二期"
)).
count
()
>
0
?
"Z"
:
"F"
;
// 默认样品初始编号
CodeTypeEnum
codeType
=
null
;
switch
(
sample
.
getName
()
)
{
switch
(
parentCategory
)
{
case
"原铝"
:
codeType
=
CodeTypeEnum
.
SAMPLE_YL_CODE
;
break
;
case
"电解质"
:
codeType
=
CodeTypeEnum
.
SAMPLE_DJZ_CODE
;
break
;
case
"外委检测"
:
case
"外委检测
物质
"
:
codeType
=
CodeTypeEnum
.
SAMPLE_WWJC_CODE
;
break
;
case
"三级编码物质"
:
codeType
=
CodeTypeEnum
.
SAMPLE_YFL_CODE
;
break
;
default
:
codeType
=
CodeTypeEnum
.
SAMPLE_CODE
;
break
;
}
String
sampleCode
=
codeRuleService
.
getKey
((
Integer
)
codeType
.
getValue
(),
codeType
.
getName
(),
sample
);
String
replaceStr
=
"XX"
,
inspectNo
=
""
,
secondCode
=
""
,
thirdCode
=
""
;
// 若为外委检测和三级编码,则查询质检编号
if
(
CodeTypeEnum
.
SAMPLE_WWJC_CODE
==
codeType
||
CodeTypeEnum
.
SAMPLE_YFL_CODE
==
codeType
)
{
List
<
UserInspectionCode
>
userInspectionCodeList
=
userInspectionCodeService
.
list
(
Condition
.
create
().
eq
(
"user_id"
,
account
.
getUserId
()).
eq
(
"type"
,
"ZJ"
).
eq
(
"deleted"
,
0
));
if
(
CollectionUtils
.
isNotEmpty
(
userInspectionCodeList
))
{
inspectNo
=
userInspectionCodeList
.
get
(
0
).
getNo
();
}
}
if
(
CodeTypeEnum
.
SAMPLE_YL_CODE
==
codeType
||
CodeTypeEnum
.
SAMPLE_DJZ_CODE
==
codeType
)
{
sampleCode
+=
sample
.
getSlotNo
();
}
else
if
(
CodeTypeEnum
.
SAMPLE_WWJC_CODE
==
codeType
)
{
sampleCode
=
(
secondPhase
?
"Z"
:
"F"
)
+
sampleCode
.
substring
(
1
);
// XX替换成质检员编号
// sampleCode = sampleCode.replace("XX", "01");
List
<
UserInspectionCode
>
userInspectionCodeList
=
userInspectionCodeService
.
list
(
Condition
.
create
().
eq
(
"user_id"
,
account
.
getUserId
()).
eq
(
"type"
,
"ZJ"
).
eq
(
"deleted"
,
0
));
if
(
CollectionUtils
.
isNotEmpty
(
userInspectionCodeList
)){
sampleCode
=
sampleCode
.
replace
(
"XX"
,
userInspectionCodeList
.
get
(
0
).
getNo
());
}
}
// 外委检测样品编号
else
if
(
CodeTypeEnum
.
SAMPLE_WWJC_CODE
==
codeType
)
{
sampleCode
=
phase
+
sampleCode
.
substring
(
1
);
secondCode
=
sampleCode
.
replace
(
replaceStr
,
""
);
sampleCode
=
sampleCode
.
replace
(
replaceStr
,
inspectNo
);
}
// 三级编码默认使用第一级别的委托的编码,也就是默认为A
else
if
(
CodeTypeEnum
.
SAMPLE_YFL_CODE
==
codeType
)
{
sampleCode
=
phase
+
sampleCode
.
substring
(
1
);
secondCode
=
sampleCode
.
replace
(
"A"
,
"B"
).
replace
(
replaceStr
,
inspectNo
);
thirdCode
=
sampleCode
.
replace
(
"A"
,
"C"
).
replace
(
replaceStr
,
"HY"
);
sampleCode
=
sampleCode
.
replace
(
replaceStr
,
inspectNo
);
}
if
(
StringUtils
.
isNotBlank
(
sampleCode
))
{
sample
.
setCode
(
sampleCode
);
// 现只有一级编码
sample
.
setCodeType
(
codeTypeNo
);
sample
.
setFirstCode
(
sampleCode
);
// 默认一级编码
sample
.
setCodeType
(
codeTypeNo
);
// 若为三级编号,修改对应类别
if
(
codeType
==
CodeTypeEnum
.
SAMPLE_WWJC_CODE
)
{
sample
.
setCodeType
(
2
);
sample
.
setSecondCode
(
secondCode
);
}
else
if
(
codeType
==
CodeTypeEnum
.
SAMPLE_YFL_CODE
)
{
sample
.
setCodeType
(
3
);
sample
.
setSecondCode
(
secondCode
);
sample
.
setThirdCode
(
thirdCode
);
}
}
}
...
...
src/main/resources/mapper/hmhj/EntrustSampleItemMapper.xml
View file @
92cf07ec
...
...
@@ -35,15 +35,18 @@
<select
id=
"selectByItemLeftRight"
resultType=
"com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO"
>
WITH i AS (
SELECT
id,
entrust_sample_id,
name,
status,
company_id,
standard,
group_name,
test_value,
group_id
id,
entrust_sample_id,
name,
status,
company_id,
standard,
group_name,
test_value,
group_id,
tester,
tester_id,
test_time
FROM
entrust_sample_item
WHERE
...
...
src/main/resources/mapper/hmhj/EntrustSampleMapper.xml
View file @
92cf07ec
This diff is collapsed.
Click to expand it.
src/test/java/resources/db_sql/base/v113/20210629新增视图.sql
0 → 100644
View file @
92cf07ec
-- 新增视图-用户所属第几期
-- 新增视图-用户所属第几期
create
or
replace
view
v_user_period
as
SELECT
rel
.
user_id
,
CASE
WHEN
sum
(
strpos
(
r
.
name
::
text
,
'三期'
::
text
))
>
0
THEN
'三期'
::
text
ELSE
'二期'
::
text
END
AS
period
FROM
sys_user_rel_role
rel
JOIN
sys_role
r
ON
r
.
id
=
rel
.
role_id
WHERE
r
.
status
=
1
GROUP
BY
rel
.
user_id
\ No newline at end of file
src/test/java/resources/db_sql/hmhj/v113/20210629新增函数.sql
0 → 100644
View file @
92cf07ec
-- 开启dblink拓展
-- 开启dblink拓展
--执行:create extension dblink;
create
extension
dblink
;
-- 创建数据库链接
SELECT
dblink_connect
(
'dev_base'
,
'host=localhost dbname=dev_base user=postgres password=post123'
);
SELECT
dblink_connect
(
'dev_lims'
,
'host=localhost dbname=dev_lims user=postgres password=post123'
);
SELECT
dblink_connect
(
'pc_base'
,
'host=localhost dbname=pc_base user=hjhmdb password=hm57hj6'
);
SELECT
dblink_connect
(
'pc_lims'
,
'host=localhost dbname=pc_lims user=hjhmdb password=hm57hj6'
);
-------------------------------------------------------------------------------------------------
-- 创建字符,数字处理函数
CREATE
OR
REPLACE
FUNCTION
"public"
.
"func_decode"
(
VARIADIC
"p_decode_list"
_text
)
RETURNS
"pg_catalog"
.
"text"
AS
$
BODY
$
declare
-- 获取数组长度(即入参个数)
v_len
integer
:
=
array_length
(
p_decode_list
,
1
);
-- 声明存放返回值的变量
v_ret
text
;
begin
/*
* 功能说明:模拟Oracle中的DECODE功能(字符串处理, 其它格式可以自行转换返回值)
* 参数说明:格式同Oracle相同,至少三个参数
* 实现原理: 1、VARIADIC 允许变参; 2、Oracle中的DECODE是拿第一个数依次和之后的偶数位值进行比较,相同则取偶数位+1的数值,否则取最后一位值(最后一位为偶数为,否则为null)
*/
-- 同Oracle相同当参数不足三个抛出异常
if
v_len
>=
3
then
-- Oracle中的DECODE是拿第一个数依次和之后的偶数位值进行比较,相同则取偶数位+1的数值
for
i
in
2
..(
v_len
-
1
)
loop
v_ret
:
=
null
;
if
mod
(
i
,
2
)
=
0
then
if
p_decode_list
[
1
]
=
p_decode_list
[
i
]
then
v_ret
:
=
p_decode_list
[
i
+
1
];
elsif
p_decode_list
[
1
]
<>
p_decode_list
[
i
]
then
if
v_len
=
i
+
2
and
v_len
>
3
then
v_ret
:
=
p_decode_list
[
v_len
];
end
if
;
end
if
;
end
if
;
exit
when
v_ret
is
not
null
;
end
loop
;
else
raise
exception
'UPG-00938: not enough args for function.'
;
end
if
;
return
v_ret
;
end
;
$
BODY
$
LANGUAGE
plpgsql
VOLATILE
COST
100
------------------------------------------------------------------------------------------------
CREATE
OR
REPLACE
FUNCTION
"public"
.
"func_if"
(
"p_condition"
bool
,
"p_fist_val"
text
,
"p_last_val"
text
)
RETURNS
"pg_catalog"
.
"text"
AS
$
BODY
$
declare
v_ret_val
text
;
begin
/*
* 功能说明:模拟三元表达式 ( condition ? value1 : value2 );
* 参数说明:p_condition 接收 boolean类型的表达式 如: 1 = 1, 2 > 1 等; 后两个值是根据p_condition的真假对应的返回值
* 实现原理: p_condition 为真则返回p_fist_val, 否则返回P_last_val
*/
v_ret_val
:
=
null
;
if
true
=
p_condition
then
v_ret_val
:
=
p_fist_val
;
elsif
false
=
p_condition
then
v_ret_val
:
=
P_last_val
;
end
if
;
return
v_ret_val
;
end
;
$
BODY
$
LANGUAGE
plpgsql
VOLATILE
COST
100
--------------------------------------------------------------------------------
CREATE
OR
REPLACE
FUNCTION
"public"
.
"func_if_int"
(
"p_condition"
bool
,
"p_fist_val"
int8
,
"p_last_val"
int8
)
RETURNS
"pg_catalog"
.
"int8"
AS
$
BODY
$
declare
v_ret_val
int8
;
begin
/*
* 功能说明:模拟三元表达式 ( condition ? value1 : value2 );
* 参数说明:p_condition 接收 boolean类型的表达式 如: 1 = 1, 2 > 1 等; 后两个值是根据p_condition的真假对应的返回值
* 实现原理: p_condition 为真则返回p_fist_val, 否则返回P_last_val
*/
v_ret_val
:
=
null
;
if
true
=
p_condition
then
v_ret_val
:
=
p_fist_val
;
elsif
false
=
p_condition
then
v_ret_val
:
=
P_last_val
;
end
if
;
return
v_ret_val
;
end
;
$
BODY
$
LANGUAGE
plpgsql
VOLATILE
COST
100
----------------------------------------------------------------------------------
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