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
6c290ab6
Commit
6c290ab6
authored
Apr 17, 2023
by
lijingjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
查询优化:父级分类一次性查询;
parent
d26d8ca8
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
91 deletions
+139
-91
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+139
-91
No files found.
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
6c290ab6
...
...
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.toolkit.IdWorker;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.controller.LoginHelper
;
import
com.patzn.cloud.commons.exception.PatznException
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.toolkit.*
;
import
com.patzn.cloud.feign.base.client.SysOrgClient
;
...
...
@@ -203,20 +202,23 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
*
* @param sample
*/
private
void
sampleCodeHandler
(
EntrustSample
sample
)
{
String
code
=
sample
.
getCode
(),
firstCode
=
sample
.
getFirstCode
(),
secondCode
=
sample
.
getSecondCode
(),
thirdCode
=
sample
.
getThirdCode
();
private
void
fillCodeAfterHandle
(
EntrustSample
sample
)
{
String
code
=
sample
.
getCode
(),
firstCode
=
sample
.
getFirstCode
(),
secondCode
=
sample
.
getSecondCode
(),
thirdCode
=
sample
.
getThirdCode
();
if
(
StringUtils
.
isNotBlank
(
code
))
{
sample
.
setCode
(
code
.
trim
().
toUpperCase
(
));
sample
.
setCode
(
StringHandleUtils
.
toUpper
(
code
));
}
if
(
StringUtils
.
isNotBlank
(
firstCode
))
{
sample
.
setFirstCode
(
firstCode
.
trim
().
toUpperCase
(
));
sample
.
setFirstCode
(
StringHandleUtils
.
toUpper
(
firstCode
));
}
if
(
StringUtils
.
isNotBlank
(
secondCode
))
{
sample
.
setFirstCode
(
secondCode
.
trim
().
toUpperCase
(
));
sample
.
setFirstCode
(
StringHandleUtils
.
toUpper
(
secondCode
));
}
if
(
StringUtils
.
isNotBlank
(
thirdCode
))
{
sample
.
setFirstCode
(
thirdCode
.
trim
().
toUpperCase
(
));
sample
.
setFirstCode
(
StringHandleUtils
.
toUpper
(
thirdCode
));
}
}
...
...
@@ -230,7 +232,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
sample
.
setSlotNo
(
slotNo
.
trim
());
}
public
void
initSampleCode
(
Entrust
entrust
,
EntrustSample
sample
)
{
public
void
initSampleCode
(
Entrust
entrust
,
EntrustSample
sample
,
Map
<
String
,
LmsChemicalCategory
>
categoryMap
)
{
// 如果合同编号不为空,样品编号不为空,一级编号不为空,则不进行编号生成
if
(
null
!=
sample
.
getContractSampleId
()
&&
StringUtils
.
isNotBlank
(
sample
.
getCode
())
&&
StringUtils
.
isNotBlank
(
sample
.
getFirstCode
()))
{
return
;
...
...
@@ -240,7 +242,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
RestAssert
.
fail
(
StringUtils
.
isBlank
(
category
),
"样品类型不能为空"
);
String
parentCategory
=
""
;
if
(
StringUtils
.
isNotBlank
(
category
))
{
LmsChemicalCategory
chemicalCategory
=
lmsChemicalCategoryClient
.
getTopCategory
(
category
).
getData
(
);
LmsChemicalCategory
chemicalCategory
=
categoryMap
.
get
(
category
);
RestAssert
.
fail
(
null
==
chemicalCategory
,
"样品(物资)类型不能为空"
);
parentCategory
=
chemicalCategory
.
getName
();
}
...
...
@@ -398,11 +400,13 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
/**
* 样品编号处理
*/
private
void
handleSampleCode
(
Entrust
entrust
,
EntrustSample
sample
)
{
String
sampleCode
=
sample
.
getCode
(),
secondCode
=
sample
.
getSecondCode
(),
thirdCode
=
sample
.
getThirdCode
();
if
(
isExistSampleCode
(
sample
)
&&
StringUtils
.
isBlank
(
sampleCode
))
{
throw
new
PatznException
(
"样品编号为空"
);
}
private
void
handleSampleCode
(
Entrust
entrust
,
EntrustSample
sample
,
Map
<
String
,
LmsChemicalCategory
>
categoryMap
)
{
String
sampleCode
=
sample
.
getCode
(),
secondCode
=
sample
.
getSecondCode
(),
thirdCode
=
sample
.
getThirdCode
();
// 若为【已有编码物质】,且编号为空的情况下,提示【编号为空】
RestAssert
.
fail
(
isExistSampleCode
(
sample
)
&&
StringUtils
.
isBlank
(
sampleCode
),
"样品编号为空"
);
// 非已有编码物质为空时,需要生成样品编号
// 若有采样ID,样品编号自动获取
Long
samplingId
=
sample
.
getSamplingId
();
...
...
@@ -418,7 +422,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
sample
.
setThirdCode
(
thirdCode
);
}
else
{
initSampleCode
(
entrust
,
sample
);
initSampleCode
(
entrust
,
sample
,
categoryMap
);
if
(
StringUtils
.
isNotBlank
(
sampleCode
))
{
sample
.
setCode
(
sampleCode
);
sample
.
setFirstCode
(
sampleCode
);
...
...
@@ -488,19 +492,10 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// 保存并提交委托时使用
dto
.
setId
(
entrust
.
getId
());
// ==
// 先对样品进行处理
Set
<
String
>
sampleNames
=
new
HashSet
<>(),
sampleCodes
=
new
HashSet
<>(),
sampleSlots
=
new
HashSet
<>();
for
(
EntrustSampleDTO
sampleDTO
:
sampleDTOList
)
{
String
sname
=
sampleDTO
.
getName
(),
scode
=
sampleDTO
.
getCode
(),
slotNo
=
sampleDTO
.
getSlotNo
();
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
scode
)
&&
sampleCodes
.
contains
(
scode
),
String
.
format
(
"样品编号【%s】重复!"
,
scode
));
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
slotNo
)
&&
sampleSlots
.
contains
(
slotNo
),
String
.
format
(
"样品槽号【%s】重复!"
,
scode
));
sampleNames
.
add
(
sname
);
sampleCodes
.
add
(
scode
);
sampleSlots
.
add
(
slotNo
);
}
RestAssert
.
fail
(
sampleNames
.
size
()
>
1
,
"一个委托只能下同一种样品!"
);
List
<?>
dataList
=
verifyAndPrepareSampleData
(
sampleDTOList
,
isSubmit
);
String
sampleName
=
dataList
.
get
(
0
).
toString
();
entrust
.
setSampleName
(
sampleName
);
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
(
Map
<
String
,
LmsChemicalCategory
>)
dataList
.
get
(
1
);
List
<
EntrustSample
>
saveSampleList
=
new
ArrayList
<>();
List
<
EntrustSampleItem
>
saveEntrustSampleItemList
=
new
ArrayList
<>();
...
...
@@ -510,16 +505,17 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if
(
null
!=
sampleDTO
.
getContractSampleId
())
{
contractSampleIds
.
add
(
sampleDTO
.
getContractSampleId
());
}
EntrustSample
sample
=
sampleDTO
.
convert
(
EntrustSample
.
class
);
sample
.
setEntrustId
(
entrust
.
getId
()
);
sampleSlotNoHandler
(
sample
);
initSampleJudgeNew
(
entrust
.
getId
(),
incNum
,
sample
);
// 只有在提交时,才初始化样品编号
if
(
isSubmit
)
{
// 判断是否样品为空时,需要考虑是否进场物资
// 若为进场物资,需要考虑是否为采样样品
// 若为采样样品,需要赋值采样样品编号
if
(
StringUtils
.
isBlank
(
sample
.
getCode
())
||
Objects
.
nonNull
(
sample
.
getSamplingId
()))
{
handleSampleCode
(
entrust
,
sample
);
handleSampleCode
(
entrust
,
sample
,
categoryMap
);
}
if
(
StringUtils
.
isNotBlank
(
sample
.
getCode
()))
{
sample
.
setCode
(
sample
.
getCode
().
trim
().
toUpperCase
());
...
...
@@ -528,33 +524,29 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
}
// 处理下编号
sampleCodeHandler
(
sample
);
fillCodeAfterHandle
(
sample
);
judgeSampleFields
(
sample
,
isSubmit
);
sample
.
setId
(
IdWorker
.
getId
());
sample
.
setOrderBy
(
incNum
);
saveSampleList
.
add
(
sample
);
logger
.
error
(
"添加了编号为【{}】的【{}】样品。"
,
sample
.
getCode
(),
sample
.
getName
());
// 样品的顺序号,为了插入标样方便设置
incNum
+=
10
;
List
<
EntrustSampleItem
>
experiments
=
sampleDTO
.
getItemList
();
if
(
CollectionUtils
.
isEmpty
(
experiments
))
{
List
<
EntrustSampleItem
>
itemList
=
sampleDTO
.
getItemList
();
if
(
CollectionUtils
.
isEmpty
(
itemList
))
{
logger
.
error
(
"✦✦✦✦ EntrustServiceImpl ✦✦✦✦ saveEntrustDTO ✦✦✦✈ 【{},{}】检测项目数据为空!"
,
sample
.
getId
(),
sample
.
getCode
());
continue
;
}
for
(
EntrustSampleItem
sampleItem
:
experiments
)
{
for
(
EntrustSampleItem
sampleItem
:
itemList
)
{
if
(
null
!=
sampleItem
.
getPrice
())
{
totalFee
=
totalFee
.
add
(
sampleItem
.
getPrice
());
}
sampleItem
.
setEntrustSampleId
(
sample
.
getId
());
sampleItem
.
setEntrustId
(
entrust
.
getId
());
saveEntrustSampleItemList
.
add
(
sampleItem
);
}
}
//计算费用
entrust
.
setTotalFee
(
totalFee
);
//保存样品名称
entrust
.
setSampleName
(
sampleDTOList
.
get
(
0
).
getName
());
saveEntrust
(
entrust
);
if
(
CollectionUtils
.
isNotEmpty
(
saveSampleList
))
{
entrustSampleService
.
saveBatch
(
saveSampleList
);
...
...
@@ -570,8 +562,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
private
void
retakeSourceCodeHandle
(
EntrustSample
sample
)
{
// 判定是否原铝重取
String
name
=
sample
.
getName
();
if
(!
"原铝重取"
.
equals
(
name
))
{
if
(!
Objects
.
equals
(
"原铝重取"
,
sample
.
getName
()))
{
return
;
}
String
code
=
sample
.
getCode
();
...
...
@@ -729,28 +720,20 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
editEntrust
(
EntrustDTO
entrustDTO
,
boolean
isSubmit
,
Account
account
)
{
final
Long
entrustId
=
entrustDTO
.
getId
();
public
boolean
editEntrust
(
EntrustDTO
dto
,
boolean
isSubmit
,
Account
account
)
{
final
Long
entrustId
=
dto
.
getId
();
// ==
RestAssert
.
fail
(
Objects
.
isNull
(
entrustId
),
"委托编号为空"
);
List
<
EntrustSampleDTO
>
sampleList
=
entrustDTO
.
getSampleDTOList
();
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleList
),
"委托样品为空"
);
RestAssert
.
fail
(
sampleList
.
stream
().
map
(
EntrustSampleDTO:
:
getName
).
distinct
().
count
()
>
1
,
"一个委托只能下同一种样品!"
);
Set
<
String
>
sampleNames
=
new
HashSet
<>(),
sampleCodes
=
new
HashSet
<>(),
sampleSlots
=
new
HashSet
<>();
for
(
EntrustSampleDTO
sampleDTO
:
sampleList
)
{
String
sname
=
sampleDTO
.
getName
(),
scode
=
sampleDTO
.
getCode
(),
slotNo
=
sampleDTO
.
getSlotNo
();
RestAssert
.
fail
(
StringUtils
.
isBlank
(
sname
),
"样品名称不能为空"
);
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
scode
)
&&
sampleCodes
.
contains
(
scode
),
String
.
format
(
"样品编号【%s】重复!"
,
scode
));
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
slotNo
)
&&
sampleSlots
.
contains
(
slotNo
),
String
.
format
(
"样品槽号【%s】重复!"
,
slotNo
));
sampleNames
.
add
(
sname
);
sampleCodes
.
add
(
scode
);
sampleSlots
.
add
(
slotNo
);
}
RestAssert
.
fail
(
sampleNames
.
size
()
>
1
,
"一个委托只能下同一种样品!"
);
// ==
List
<
EntrustSampleDTO
>
sampleList
=
dto
.
getSampleDTOList
();
// == 验证 ==> 样品信息
List
<?>
dataList
=
verifyAndPrepareSampleData
(
sampleList
,
isSubmit
);
Entrust
entrust
=
entrustDTO
.
convert
(
Entrust
.
class
);
// 保存样品名字至委托备用
entrust
.
setSampleName
(
sampleList
.
get
(
0
).
getName
());
Entrust
entrust
=
dto
.
convert
(
Entrust
.
class
);
// 强制获取数据 样品名称
entrust
.
setSampleName
(
dataList
.
get
(
0
).
toString
());
// 强制获取数据 分类列表
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
(
Map
<
String
,
LmsChemicalCategory
>)
dataList
.
get
(
1
);
if
(
updateById
(
entrust
))
{
List
<
EntrustSample
>
updateSampleList
=
new
ArrayList
<>();
...
...
@@ -758,37 +741,28 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List
<
EntrustSampleItem
>
saveItemList
=
new
ArrayList
<>();
int
incNum
=
10
;
for
(
EntrustSampleDTO
dto
:
sampleList
)
{
EntrustSample
sample
=
dto
.
convert
(
EntrustSample
.
class
);
sample
.
setEntrustId
(
entrustId
);
sample
.
setOrderBy
(
incNum
);
sampleSlotNoHandler
(
sample
);
for
(
EntrustSampleDTO
sto
:
sampleList
)
{
EntrustSample
sample
=
sto
.
convert
(
EntrustSample
.
class
);
boolean
isInsert
=
initSampleJudgeNew
(
entrustId
,
incNum
,
sample
);
incNum
+=
10
;
boolean
isInsert
=
false
;
// 如果室新增的样品
if
(
null
==
sample
.
getId
())
{
isInsert
=
true
;
sample
.
setId
(
IdWorker
.
getId
());
}
if
(
isSubmit
)
{
// 样品编号为空,或者采样ID不为空
if
(
StringUtils
.
isBlank
(
sample
.
getCode
())
||
Objects
.
nonNull
(
sample
.
getSamplingId
()))
{
handleSampleCode
(
entrust
,
sample
);
handleSampleCode
(
entrust
,
sample
,
categoryMap
);
}
if
(
StringUtils
.
isNotBlank
(
sample
.
getCode
()))
{
sample
.
setCode
(
sample
.
getCode
().
trim
().
toUpperCase
(
));
sample
.
setCode
(
StringHandleUtils
.
toUpper
(
sample
.
getCode
()
));
retakeSourceCodeHandle
(
sample
);
RestAssert
.
fail
(
entrustSampleService
.
isRepeatSampleCode
(
sample
),
String
.
format
(
"样品编号【%s】重复!"
,
sample
.
getCode
()));
//
RestAssert.fail(entrustSampleService.isRepeatSampleCode(sample), String.format("样品编号【%s】重复!", sample.getCode()));
}
}
// 对样品编号处理
sampleCodeHandler
(
sample
);
fillCodeAfterHandle
(
sample
);
if
(
isInsert
)
{
saveSampleList
.
add
(
sample
);
logger
.
error
(
"添加了编号为【{}】的【{}】样品"
,
sample
.
getCode
(),
sample
.
getName
());
}
else
{
updateSampleList
.
add
(
sample
);
logger
.
error
(
"修改了编号为【{}】的【{}】样品"
,
sample
.
getCode
(),
sample
.
getName
());
}
if
(
StringUtils
.
isNotBlank
(
sample
.
getCode
()))
{
...
...
@@ -797,9 +771,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
judgeSampleFields
(
sample
,
isSubmit
);
List
<
EntrustSampleItem
>
viewItemList
=
d
to
.
getItemList
();
if
(
CollectionUtils
.
isNotEmpty
(
viewI
temList
))
{
for
(
EntrustSampleItem
item
:
viewI
temList
)
{
List
<
EntrustSampleItem
>
itemList
=
s
to
.
getItemList
();
if
(
CollectionUtils
.
isNotEmpty
(
i
temList
))
{
for
(
EntrustSampleItem
item
:
i
temList
)
{
if
(
null
==
item
.
getId
())
{
item
.
setId
(
IdWorker
.
getId
());
item
.
setEntrustSampleId
(
sample
.
getId
());
...
...
@@ -809,6 +783,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
saveItemList
.
add
(
item
);
}
}
}
else
{
logger
.
error
(
"✦✦✦✦ EntrustServiceImpl ✦✦✦✦ editEntrust ✦✦✦✈ 【{},{}】检测项目数据为空!"
,
sample
.
getId
(),
sample
.
getCode
());
}
}
...
...
@@ -835,6 +811,50 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return
true
;
}
private
static
boolean
initSampleJudgeNew
(
Long
entrustId
,
int
incNum
,
EntrustSample
sample
)
{
sample
.
setEntrustId
(
entrustId
);
sample
.
setOrderBy
(
incNum
);
sample
.
setSlotNo
(
StringHandleUtils
.
nvlBlank
(
sample
.
getSlotNo
()));
if
(
Objects
.
isNull
(
sample
.
getId
()))
{
sample
.
setId
(
IdWorker
.
getId
());
return
true
;
}
return
false
;
}
private
List
<?>
verifyAndPrepareSampleData
(
List
<
EntrustSampleDTO
>
sampleList
,
boolean
isSubmit
)
{
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleList
),
"委托样品为空"
);
List
<
Object
>
dataList
=
new
ArrayList
<>();
// == 变量声明
Set
<
String
>
sampleNameSet
=
new
HashSet
<>(),
sampleCodeSet
=
new
HashSet
<>(),
sampleSlotSet
=
new
HashSet
<>(),
categoriesSet
=
new
HashSet
<>();
for
(
EntrustSampleDTO
s
:
sampleList
)
{
String
sname
=
s
.
getName
(),
scode
=
s
.
getCode
(),
slotNo
=
s
.
getSlotNo
();
RestAssert
.
fail
(
StringUtils
.
isBlank
(
sname
),
"样品名称不能为空"
);
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
scode
)
&&
sampleCodeSet
.
contains
(
scode
),
String
.
format
(
"样品编号【%s】重复!"
,
scode
));
RestAssert
.
fail
(
StringUtils
.
isNotBlank
(
slotNo
)
&&
sampleSlotSet
.
contains
(
slotNo
),
String
.
format
(
"样品槽号【%s】重复!"
,
slotNo
));
sampleNameSet
.
add
(
sname
);
sampleCodeSet
.
add
(
scode
);
sampleSlotSet
.
add
(
slotNo
);
categoriesSet
.
add
(
s
.
getCategory
());
}
RestAssert
.
fail
(
sampleNameSet
.
size
()
>
1
,
"一个委托只能下同一种样品!"
);
// 0:样品名称
dataList
.
add
(
sampleNameSet
.
iterator
().
next
());
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
new
HashMap
<>();
if
(
isSubmit
)
{
categoryMap
=
lmsChemicalCategoryClient
.
getTopCategoryMap
(
new
ArrayList
<>(
categoriesSet
)).
getData
();
RestAssert
.
fail
(
MapUtils
.
isEmpty
(
categoryMap
),
"物料父级分类为空!"
);
}
// 1:分类Map
dataList
.
add
(
categoryMap
);
return
dataList
;
}
public
void
calTotalFee
(
Long
id
)
{
//计算委托费用
...
...
@@ -1221,6 +1241,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// 保存委托信息
saveEntrust
(
entrust
);
entrustIdList
.
add
(
entrust
.
getId
());
// 单独查询分类信息
List
<
String
>
categoryList
=
sampleList
.
stream
().
map
(
EntrustSample:
:
getCategory
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
lmsChemicalCategoryClient
.
getTopCategoryMap
(
categoryList
).
getData
();
if
(
MapUtils
.
isEmpty
(
categoryMap
))
{
categoryMap
=
new
HashMap
<>(
4
);
}
int
sampleIndex
=
0
;
for
(
EntrustSample
sample
:
sampleList
)
{
Long
oldSampleId
=
sample
.
getId
();
...
...
@@ -1229,7 +1255,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
sample
.
setId
(
IdWorker
.
getId
());
sample
.
setCode
(
null
).
setFirstCode
(
null
).
setSecondCode
(
null
).
setThirdCode
(
null
);
//生成样品编号,可能存在为空的情况
initSampleCode
(
entrust
,
sample
);
initSampleCode
(
entrust
,
sample
,
categoryMap
);
// 样品编号问题,手填的样品编号不清空
if
(
StringUtils
.
isBlank
(
sample
.
getCode
()))
{
sample
.
setCode
(
sampleCode
);
...
...
@@ -1245,6 +1271,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
//
List
<
EntrustSampleItem
>
itemList
=
entrustSampleItemService
.
list
(
Condition
.
create
().
eq
(
"entrust_sample_id"
,
oldSampleId
).
eq
(
"deleted"
,
0
));
if
(
CollectionUtils
.
isEmpty
(
itemList
))
{
logger
.
error
(
"✦✦✦✦ EntrustServiceImpl ✦✦✦✦ cloneEntrust ✦✦✦✈ 【{},{}】检测项目数据为空!"
,
sample
.
getId
(),
sample
.
getCode
());
continue
;
}
...
...
@@ -1704,23 +1731,40 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
normalIds
=
new
ArrayList
<>();
List
<
Long
>
sendUserIdList
=
new
ArrayList
<>();
List
<
EntrustSample
>
samples
=
entrustSampleService
.
listByEntrustIds
(
Arrays
.
asList
(
ids
));
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
samples
),
"提交的样品信息为空!"
);
Map
<
Long
,
List
<
EntrustSample
>>
entrustSampleMap
=
new
HashMap
<>(
8
);
Optional
.
ofNullable
(
samples
).
ifPresent
(
dl
->
dl
.
forEach
(
d
->
MapMergeUtils
.
getorCreateMapArrayList
(
d
.
getEntrustId
(),
entrustSampleMap
,
d
)));
List
<
String
>
categoryList
=
new
ArrayList
<>();
List
<
Long
>
sampleIds
=
new
ArrayList
<>();
samples
.
forEach
(
s
->
{
sampleIds
.
add
(
s
.
getId
());
MapMergeUtils
.
getorCreateMapArrayList
(
s
.
getEntrustId
(),
entrustSampleMap
,
s
);
String
category
=
s
.
getCategory
();
if
(
StringUtils
.
isNotBlank
(
category
)
&&
!
categoryList
.
contains
(
category
))
{
categoryList
.
add
(
category
);
}
});
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
lmsChemicalCategoryClient
.
getTopCategoryMap
(
categoryList
).
getData
();
List
<
EntrustSampleItem
>
itemList
=
entrustSampleItemService
.
list
(
Condition
.<
EntrustSampleItem
>
wrapper
().
in
(
"entrust_sample_id"
,
sampleIds
));
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
itemList
),
"提交的检测项目数据为空!"
);
Map
<
Long
,
List
<
EntrustSampleItem
>>
sampleItemMap
=
new
HashMap
<>();
itemList
.
forEach
(
it
->
MapMergeUtils
.
getorCreateMapArrayList
(
it
.
getEntrustSampleId
(),
sampleItemMap
,
it
));
for
(
Entrust
entrust
:
entrustList
)
{
RestAssert
.
fail
(!
Objects
.
equals
(
entrust
.
getFlowStatus
(),
EntrustFlowEnum
.
DRAFT
.
name
()),
"只能提交草稿状态的委托!"
);
List
<
EntrustSample
>
sampleList
=
entrustSampleMap
.
get
(
entrust
.
getId
());
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleList
),
String
.
format
(
"委托编号为的【%s】样品为空!"
,
entrust
.
getCode
()));
// 若存在任何一个样品的编号为空,那么需要自动生成其编号
for
(
EntrustSample
sample
:
sampleList
)
{
sample
SlotNoHandler
(
sample
);
sample
.
setSlotNo
(
StringHandleUtils
.
nvlBlank
(
sample
.
getSlotNo
())
);
if
(
StringUtils
.
isBlank
(
sample
.
getCode
())
||
Objects
.
nonNull
(
sample
.
getSamplingId
()))
{
handleSampleCode
(
entrust
,
sample
);
handleSampleCode
(
entrust
,
sample
,
categoryMap
);
}
// 额外处理样品编号空格,大写
sampleCodeHandler
(
sample
);
fillCodeAfterHandle
(
sample
);
// 处理重取原编号
retakeSourceCodeHandle
(
sample
);
RestAssert
.
fail
(
entrustSampleService
.
isRepeatSampleCode
(
sample
),
String
.
format
(
"样品编号【%s】重复!"
,
sample
.
getCode
()));
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleItemMap
.
get
(
sample
.
getId
())),
String
.
format
(
"【%s】样品对应的检测项目为空!"
,
sample
.
getCode
()));
}
entrustSampleService
.
updateBatchById
(
sampleList
);
...
...
@@ -1740,6 +1784,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
}
// 更新委托,发送消息
Entrust
updateModel
=
new
Entrust
();
if
(
CollectionUtils
.
isNotEmpty
(
specialIds
))
{
...
...
@@ -1809,6 +1854,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List
<
EntrustSample
>
sampleList
=
new
ArrayList
<>();
List
<
EntrustSampleItem
>
itemList
=
new
ArrayList
<>();
List
<
String
>
categoryList
=
sampleDTOList
.
stream
().
map
(
EntrustSampleDTO:
:
getCategory
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
String
,
LmsChemicalCategory
>
categoryMap
=
lmsChemicalCategoryClient
.
getTopCategoryMap
(
categoryList
).
getData
();
for
(
EntrustSampleDTO
dto
:
sampleDTOList
)
{
EntrustSample
sample
=
dto
.
convert
(
EntrustSample
.
class
);
sample
.
setEntrustId
(
entrustId
).
setFirstCode
(
null
).
setSecondCode
(
null
).
setThirdCode
(
null
)
...
...
@@ -1816,7 +1864,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
.
setSampleGrading
(
null
).
setLtime
(
new
Date
()).
setLid
(
account
.
getUserId
()).
setCtime
(
new
Date
())
.
setJudgeStatus
(
0
).
setJudgeTime
(
null
).
setJudgeCheckTime
(
null
).
setJudgeCheckerId
(
null
).
setJudger
(
null
)
.
setJudgeProgress
(
null
).
setOkJudge
(
null
).
setConclusion
(
null
);
initSampleCode
(
entrust
,
sample
);
initSampleCode
(
entrust
,
sample
,
categoryMap
);
// 重置三级编码
sample
.
setThirdCode
(
getSampleThirdCode
(
sample
));
sample
.
setOrderBy
(
incNum
).
setId
(
IdWorker
.
getId
());
...
...
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