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
cd63c3fe
Commit
cd63c3fe
authored
Sep 24, 2021
by
lijingjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加采样管理相关功能;
parent
0e500c49
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
394 additions
and
85 deletions
+394
-85
ContractSampleController.java
...ervice/lims/hmhj/controller/ContractSampleController.java
+17
-0
EntrustSampleBackupController.java
...e/lims/hmhj/controller/EntrustSampleBackupController.java
+21
-15
ContractSamplingMapper.java
...loud/service/lims/hmhj/mapper/ContractSamplingMapper.java
+1
-0
EntrustSampleBackupMapper.java
...d/service/lims/hmhj/mapper/EntrustSampleBackupMapper.java
+3
-1
IContractSamplingService.java
...d/service/lims/hmhj/service/IContractSamplingService.java
+2
-0
IEntrustSampleBackupService.java
...ervice/lims/hmhj/service/IEntrustSampleBackupService.java
+4
-0
ContractInfoServiceImpl.java
...rvice/lims/hmhj/service/impl/ContractInfoServiceImpl.java
+1
-1
ContractSampleServiceImpl.java
...ice/lims/hmhj/service/impl/ContractSampleServiceImpl.java
+38
-4
ContractSamplingServiceImpl.java
...e/lims/hmhj/service/impl/ContractSamplingServiceImpl.java
+188
-0
EntrustSampleBackupServiceImpl.java
...ims/hmhj/service/impl/EntrustSampleBackupServiceImpl.java
+34
-11
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+14
-1
ContractSampleMapper.xml
src/main/resources/mapper/hmhj/ContractSampleMapper.xml
+8
-0
ContractSamplingMapper.xml
src/main/resources/mapper/hmhj/ContractSamplingMapper.xml
+4
-0
EntrustSampleBackupMapper.xml
src/main/resources/mapper/hmhj/EntrustSampleBackupMapper.xml
+48
-49
LimsCodeGenerator.java
.../com/patzn/cloud/service/lims/test/LimsCodeGenerator.java
+3
-3
20210924__添加委托样品字段.sql
...st/java/resources/db_sql/hmhj/v168/20210924__添加委托样品字段.sql
+8
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/ContractSampleController.java
View file @
cd63c3fe
...
...
@@ -57,6 +57,23 @@ public class ContractSampleController extends ServiceController {
return
success
(
contractSampleService
.
pageVO
(
getPage
(),
contractSample
));
}
@ApiOperation
(
"合同下的储运合同分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SIDX
,
value
=
"排序字段"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SORD
,
value
=
"排序方式"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
})
@PostMapping
(
"/page_by_contract"
)
public
RestResult
<
Page
<
ContractSampleVO
>>
getPageByContract
(
ContractSampleVO
contractSample
)
{
// 根据组织显示数据
// contractSample.setPeriod(userInfoService.getUserPeriod(getAccount()));
if
(
null
==
contractSample
.
getContractId
())
{
return
success
(
null
);
}
return
success
(
contractSampleService
.
pageVO
(
getPage
(),
contractSample
));
}
@ApiOperation
(
"合同登记历史分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustSampleBackupController.java
View file @
cd63c3fe
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
controller
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleBackup
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleBackupStatusEnum
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO
;
import
com.patzn.cloud.service.lims.hmhj.service.impl.UserInfoServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.api.RestConstants
;
import
com.patzn.cloud.commons.api.RestResult
;
import
com.patzn.cloud.commons.controller.ServiceController
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleBackup
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleBackupStatusEnum
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleBackupService
;
import
com.patzn.cloud.service.lims.hmhj.service.impl.UserInfoServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
...
...
@@ -59,6 +50,21 @@ public class EntrustSampleBackupController extends ServiceController {
return
success
(
entrustSampleBackupService
.
pageVO
(
getPage
(),
entrustSampleBackup
));
}
@ApiOperation
(
"样品备样分页列表-采样"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SIDX
,
value
=
"排序字段"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_SORD
,
value
=
"排序方式"
,
paramType
=
"query"
,
dataTypeClass
=
String
.
class
),
})
@PostMapping
(
"/page_sampling"
)
public
RestResult
<
Page
<
EntrustSampleBackupVO
>>
getPageSampling
(
EntrustSampleBackupVO
entrustSampleBackup
)
{
entrustSampleBackup
.
setStatus
(
EntrustSampleBackupStatusEnum
.
BACKUP_ING
);
entrustSampleBackup
.
setType
(
"BY"
);
entrustSampleBackup
.
setGroupNameList
(
userInfoService
.
getCurGroupNameList
());
return
success
(
entrustSampleBackupService
.
pageCO
(
getPage
(),
entrustSampleBackup
));
}
@ApiOperation
(
"样品备样历史分页列表"
)
@ApiImplicitParams
({
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/ContractSamplingMapper.java
View file @
cd63c3fe
...
...
@@ -17,4 +17,5 @@ public interface ContractSamplingMapper extends BatchMapper<ContractSampling> {
List
<
ContractSamplingVO
>
selectVOList
(
RowBounds
rowBounds
,
@Param
(
"vo"
)
ContractSamplingVO
contractSamplingVO
);
String
selectLastCode
(
String
queryKey
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/EntrustSampleBackupMapper.java
View file @
cd63c3fe
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
mapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleBackup
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleBackup
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
...
...
@@ -21,5 +21,7 @@ public interface EntrustSampleBackupMapper extends BatchMapper<EntrustSampleBack
List
<
EntrustSampleBackupVO
>
selectVOList
(
RowBounds
rowBounds
,
@Param
(
"vo"
)
EntrustSampleBackupVO
entrustSampleBackup
);
List
<
EntrustSampleBackupVO
>
selectCOList
(
RowBounds
rowBounds
,
@Param
(
"vo"
)
EntrustSampleBackupVO
entrustSampleBackup
);
List
<
EntrustSampleBackupVO
>
selectManageList
(
Page
<
EntrustSampleBackupVO
>
page
,
@Param
(
"vo"
)
EntrustSampleBackupVO
entrustSampleBackup
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IContractSamplingService.java
View file @
cd63c3fe
...
...
@@ -28,4 +28,6 @@ public interface IContractSamplingService extends IBaseService<ContractSampling>
boolean
saveOrUpdateInfoBatch
(
List
<
ContractSampling
>
sampleList
);
boolean
updateSampling
(
ContractSampling
contractSampling
);
String
getNewCode
(
String
queryKey
,
int
lens
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleBackupService.java
View file @
cd63c3fe
...
...
@@ -24,7 +24,11 @@ public interface IEntrustSampleBackupService extends IBaseService<EntrustSampleB
Page
<
EntrustSampleBackupVO
>
pageVO
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
);
Page
<
EntrustSampleBackupVO
>
pageCO
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
);
boolean
submitToHandle
(
Long
[]
ids
,
Account
account
);
Page
<
EntrustSampleBackupVO
>
pageManage
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
);
void
updateEntrustId
(
Long
id
,
List
<
String
>
contractSamplings
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/ContractInfoServiceImpl.java
View file @
cd63c3fe
...
...
@@ -170,7 +170,7 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
continue
;
}
if
(
sheet
.
getRow
(
beginRowNum
-
1
).
getCell
(
k
).
getStringCellValue
().
equals
(
"合同数量"
))
{
info
.
setContractQuantity
(
row
.
getCell
(
k
).
get
StringCellValue
()
);
info
.
setContractQuantity
(
row
.
getCell
(
k
).
get
NumericCellValue
()
+
""
);
continue
;
}
if
(
sheet
.
getRow
(
beginRowNum
-
1
).
getCell
(
k
).
getStringCellValue
().
equals
(
"货位"
))
{
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/ContractSampleServiceImpl.java
View file @
cd63c3fe
...
...
@@ -13,10 +13,7 @@ import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import
com.patzn.cloud.service.hmhj.dto.ContractSampleDTO
;
import
com.patzn.cloud.service.hmhj.dto.ContractSampleVODTO
;
import
com.patzn.cloud.service.hmhj.entity.*
;
import
com.patzn.cloud.service.hmhj.enums.CodeTypeEnum
;
import
com.patzn.cloud.service.hmhj.enums.ContractInfoStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.ContractSampleStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.*
;
import
com.patzn.cloud.service.hmhj.vo.ContractSampleVO
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO
;
import
com.patzn.cloud.service.lims.common.BeanUtils
;
...
...
@@ -69,6 +66,8 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
@Autowired
private
IEntrustSampleService
entrustSampleService
;
@Autowired
private
IContractSamplingService
contractSamplingService
;
@Autowired
private
IContractSampleItemService
contractSampleItemService
;
...
...
@@ -77,6 +76,9 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
private
IEntrustSampleItemService
entrustSampleItemService
;
@Autowired
private
IEntrustSampleBackupService
entrustSampleBackupService
;
@Autowired
private
ILmsMsgService
lmsMsgService
;
@Override
...
...
@@ -281,6 +283,8 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
// lmsMsgService.sendMsg("/hmhj/accept_manage/sub_register", "验收任务登记提交至外委登记,请及时处理", "新的外委登记任务!", account, null);
contractSampleRecordService
.
record
(
ids
,
ContractSampleStatusEnum
.
DATA_SAMPLING
,
ContractSampleStatusEnum
.
OUT_DRIFT
,
0
,
"采样管理提交外委登记"
,
account
);
lmsMsgService
.
sendMsg
(
"/hmhj/accept_manage/sub_register"
,
"采样管理提交至外委登记,请及时处理"
,
"新的外委登记任务!"
,
account
,
null
);
// 额外处理备样数据
backupSampleHandler
(
ids
,
account
);
return
super
.
update
(
contractSample
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
...
...
@@ -294,6 +298,7 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
contractSample
.
setProgress
(
ContractSampleStatusEnum
.
CHECK_RESULT_INPUT
);
contractSampleRecordService
.
record
(
ids
,
ContractSampleStatusEnum
.
OUT_DRIFT
,
ContractSampleStatusEnum
.
CHECK_RESULT_INPUT
,
0
,
"外委登记提交至验收结果录入"
,
account
);
// lmsMsgService.sendMsg("/hmhj/accept_manage/sub_register","验收任务登记提交至外委登记,请及时处理","新的外委登记任务!",account,null);
backupSampleHandler
(
ids
,
account
);
return
super
.
update
(
contractSample
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
...
...
@@ -685,6 +690,7 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
//
ContractSample
contractSample
=
new
ContractSample
();
BeanUtils
.
copyProperties
(
contractInfo
,
contractSample
);
BeanUtils
.
copyProperties
(
contractSampleDTO
,
contractSample
,
true
);
contractSample
.
setId
(
IdWorker
.
getId
());
String
contractSampleCode
=
codeRuleService
.
getKey
((
Integer
)
CodeTypeEnum
.
STORAGE_TASK_CODE
.
getValue
(),
CodeTypeEnum
.
STORAGE_TASK_CODE
.
getName
(),
contractSample
);
contractSample
.
setCode
(
contractSampleCode
);
...
...
@@ -725,4 +731,32 @@ public class ContractSampleServiceImpl extends BaseServiceImpl<ContractSampleMap
return
super
.
update
(
contractSample
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
private
void
backupSampleHandler
(
Long
[]
ids
,
Account
account
)
{
if
(
null
==
ids
||
0
==
ids
.
length
)
{
return
;
}
List
<
ContractSample
>
contractSamples
=
getBatchIds
(
Arrays
.
asList
(
ids
));
List
<
EntrustSampleBackup
>
sampleBackupList
=
new
ArrayList
<>();
contractSamples
.
forEach
(
t
->
{
List
<
ContractSampling
>
samplingList
=
contractSamplingService
.
list
(
Condition
.
create
().
eq
(
"contract_sample_id"
,
t
.
getId
()).
ne
(
"type"
,
0
));
if
(
CollectionUtils
.
isEmpty
(
samplingList
))
{
sampleBackupList
.
addAll
(
samplingList
.
stream
().
map
(
x
->
{
EntrustSampleBackup
backup
=
new
EntrustSampleBackup
();
BeanUtils
.
copyProperties
(
x
,
backup
);
backup
.
setId
(
null
);
backup
.
setContractId
(
x
.
getContractSampleId
()).
setSampleId
(
x
.
getId
()).
setType
(
"BY"
)
.
setStatus
(
EntrustSampleBackupStatusEnum
.
BACKUP_ING
)
.
setProgress
(
EntrustSampleBackupStatusEnum
.
BACKUP_ING
)
.
setCtime
(
new
Date
()).
setUid
(
account
.
getUserId
()).
setLid
(
null
).
setLtime
(
null
);
return
backup
;
}).
collect
(
Collectors
.
toList
()));
}
});
if
(
CollectionUtils
.
isNotEmpty
(
sampleBackupList
))
{
entrustSampleBackupService
.
saveBatch
(
sampleBackupList
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/ContractSamplingServiceImpl.java
View file @
cd63c3fe
...
...
@@ -6,14 +6,28 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.baomidou.mybatisplus.toolkit.CollectionUtils
;
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.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.entity.ContractSampling
;
import
com.patzn.cloud.service.hmhj.entity.UserInspectionCode
;
import
com.patzn.cloud.service.hmhj.enums.CodeTypeEnum
;
import
com.patzn.cloud.service.hmhj.vo.ContractSamplingVO
;
import
com.patzn.cloud.service.lims.chemical.entity.LmsChemicalCategory
;
import
com.patzn.cloud.service.lims.hmhj.common.consts.HmConst
;
import
com.patzn.cloud.service.lims.hmhj.mapper.ContractSamplingMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.ICodeRuleService
;
import
com.patzn.cloud.service.lims.hmhj.service.IContractSamplingService
;
import
com.patzn.cloud.service.lims.hmhj.service.IUserInspectionCodeService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalTime
;
import
java.util.Collections
;
import
java.util.List
;
...
...
@@ -26,6 +40,18 @@ import java.util.List;
@Service
public
class
ContractSamplingServiceImpl
extends
BaseServiceImpl
<
ContractSamplingMapper
,
ContractSampling
>
implements
IContractSamplingService
{
@Autowired
private
SysOrgClient
sysOrgClient
;
@Autowired
private
ICodeRuleService
codeRuleService
;
@Autowired
private
LmsChemicalCategoryClient
lmsChemicalCategoryClient
;
@Autowired
private
IUserInspectionCodeService
userInspectionCodeService
;
@Override
public
Page
<
ContractSampling
>
page
(
Page
<
ContractSampling
>
page
,
ContractSampling
contractSampling
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
contractSampling
);
...
...
@@ -63,6 +89,7 @@ public class ContractSamplingServiceImpl extends BaseServiceImpl<ContractSamplin
sampleList
.
forEach
(
t
->
{
RestAssert
.
fail
(
null
==
t
.
getType
(),
"样品类型为空"
);
RestAssert
.
fail
(
StringUtils
.
isBlank
(
t
.
getName
()),
"样品名称为空"
);
initSamplingCode
(
t
);
});
return
saveOrUpdateBatch
(
sampleList
);
}
...
...
@@ -71,4 +98,164 @@ public class ContractSamplingServiceImpl extends BaseServiceImpl<ContractSamplin
public
boolean
updateSampling
(
ContractSampling
contractSampling
)
{
return
updateById
(
contractSampling
);
}
public
void
initSamplingCode
(
ContractSampling
sample
)
{
// 样品类型\名称
String
category
=
sample
.
getCategory
();
String
sampleName
=
sample
.
getName
();
RestAssert
.
fail
(
StringUtils
.
isBlank
(
category
),
"样品类型不能为空"
);
String
parentCategory
=
""
;
if
(
StringUtils
.
isNotBlank
(
category
))
{
LmsChemicalCategory
chemicalCategory
=
lmsChemicalCategoryClient
.
getTopCategory
(
category
).
getData
();
RestAssert
.
fail
(
null
==
chemicalCategory
,
"样品(物资)类型不能为空"
);
parentCategory
=
chemicalCategory
.
getName
();
}
// 判断槽号不能为空
if
(
"散样"
.
equals
(
parentCategory
))
{
RestAssert
.
fail
(
StringUtils
.
isBlank
(
sample
.
getSlotNo
()),
"样品槽号为空"
);
}
Account
account
=
LoginHelper
.
getAccount
();
int
codeTypeNo
=
0
;
List
<
SysOrg
>
orgList
=
sysOrgClient
.
getListByUserId
(
account
.
getUserId
()).
getData
();
// 具体是哪一期
String
phase
=
orgList
.
stream
().
anyMatch
(
t
->
t
.
getName
().
contains
(
"二期"
))
?
"Z"
:
"F"
;
// 默认样品初始编号
CodeTypeEnum
codeType
=
null
;
switch
(
parentCategory
)
{
case
HmConst
.
PRIMARY_ALUMINUM
:
codeType
=
CodeTypeEnum
.
SAMPLE_YL_CODE
;
break
;
case
HmConst
.
ELECTROLYTE
:
codeType
=
CodeTypeEnum
.
SAMPLE_DJZ_CODE
;
break
;
case
HmConst
.
EXTERNAL_INSPECTION_MATERIALS
:
codeType
=
CodeTypeEnum
.
SAMPLE_WWJC_CODE
;
break
;
case
HmConst
.
THIRD_CODE_MATERIALS
:
codeType
=
CodeTypeEnum
.
SAMPLE_YFL_CODE
;
break
;
case
HmConst
.
SCATTERED
:
if
(
"原铝散样"
.
equals
(
sampleName
))
{
codeType
=
CodeTypeEnum
.
AL_BULK_SAMPLE_CODE
;
}
else
if
(
"原铝重取"
.
equals
(
sampleName
))
{
codeType
=
CodeTypeEnum
.
AL_RETAKE_SAMPLE_CODE
;
}
else
if
(
"电解质散样"
.
equals
(
sampleName
))
{
codeType
=
CodeTypeEnum
.
ELECT_BULK_SAMPLE_CODE
;
}
break
;
default
:
codeType
=
CodeTypeEnum
.
SAMPLE_CODE
;
break
;
}
String
sampleCode
;
String
replaceStr
=
"XX"
,
inspectNo
=
""
,
secondCode
=
""
,
thirdCode
=
""
;
// ==
if
(
HmConst
.
EXIST_CODE_MATERIALS
.
equals
(
parentCategory
))
{
sampleCode
=
sample
.
getCode
();
}
else
{
sampleCode
=
codeRuleService
.
getKey
((
Integer
)
codeType
.
getValue
(),
codeType
.
getName
(),
sample
);
// 若为外委检测和三级编码,则查询质检编号
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
(
org
.
apache
.
commons
.
collections
.
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
=
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
);
}
// 原铝散样样品编号处理
else
if
(
CodeTypeEnum
.
AL_BULK_SAMPLE_CODE
==
codeType
)
{
// 替换槽号CH
sampleCode
=
sampleCode
.
replace
(
"CH"
,
sample
.
getSlotNo
());
// 根据当前系统时间获取班次
LocalTime
now
=
LocalTime
.
now
();
LocalTime
zero
=
LocalTime
.
parse
(
"00:00:00"
);
LocalTime
eight
=
LocalTime
.
parse
(
"08:00:00"
);
LocalTime
sixth
=
LocalTime
.
parse
(
"16:00:00"
);
String
clazz
;
if
(
now
.
isAfter
(
zero
)
&&
now
.
isBefore
(
eight
))
{
clazz
=
"E"
;
}
else
if
(
now
.
isAfter
(
eight
)
&&
now
.
isBefore
(
sixth
))
{
clazz
=
"A"
;
}
else
{
clazz
=
"C"
;
}
// 替换班次BC
sampleCode
=
sampleCode
.
replace
(
"BC"
,
clazz
);
// @yyMM&CH&BC&SN len(SN) = 3
String
queryKey
=
sampleCode
.
substring
(
0
,
sampleCode
.
length
()
-
3
);
sampleCode
=
getNewCode
(
queryKey
,
3
);
}
// 电解质散样样品编号处理
else
if
(
CodeTypeEnum
.
ELECT_BULK_SAMPLE_CODE
==
codeType
)
{
// 替换槽号CH
sampleCode
=
sampleCode
.
replace
(
"CH"
,
sample
.
getSlotNo
());
// @yyMM&CH&SN len(SN) = 3
String
queryKey
=
sampleCode
.
substring
(
0
,
sampleCode
.
length
()
-
3
);
sampleCode
=
getNewCode
(
queryKey
,
3
);
}
//原铝重取样品编号处理
else
if
(
CodeTypeEnum
.
AL_RETAKE_SAMPLE_CODE
==
codeType
)
{
// 替换槽号CH
sampleCode
=
sampleCode
.
replace
(
"CH"
,
sample
.
getSlotNo
());
// @yyMMdd&CH&C&SN len(SN) = 1
String
queryKey
=
sampleCode
.
substring
(
0
,
sampleCode
.
length
()
-
1
);
sampleCode
=
getNewCode
(
queryKey
,
1
);
}
}
if
(
StringUtils
.
isNotBlank
(
sampleCode
))
{
sample
.
setCode
(
sampleCode
);
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
);
}
}
}
@Override
public
String
getNewCode
(
String
queryKey
,
int
lens
)
{
String
startKey
=
"0000000000000000000"
,
defKey
=
queryKey
+
startKey
.
substring
(
0
,
lens
-
1
)
+
1
;
if
(
StringUtils
.
isBlank
(
queryKey
))
{
return
defKey
;
}
String
lastCode
=
baseMapper
.
selectLastCode
(
queryKey
);
if
(
StringUtils
.
isBlank
(
lastCode
))
{
return
defKey
;
}
String
sampleSN
=
lastCode
.
substring
(
lastCode
.
length
()
-
lens
);
try
{
Integer
nextSN
=
Integer
.
parseInt
(
sampleSN
)
+
1
;
return
queryKey
+
startKey
.
substring
(
0
,
lens
-
nextSN
.
toString
().
length
())
+
nextSN
;
}
catch
(
NumberFormatException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
.
getCause
());
throw
new
PatznException
(
"合同样品编码流水号获取异常"
);
}
}
}
\ No newline at end of file
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleBackupServiceImpl.java
View file @
cd63c3fe
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
.
impl
;
import
com.baomidou.mybatisplus.mapper.Condition
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.baomidou.mybatisplus.toolkit.CollectionUtils
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.constant.CommonConstants
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleBackup
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleBackupStatusEnum
;
import
com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleBackupMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleBackupService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
...
...
@@ -30,7 +32,6 @@ public class EntrustSampleBackupServiceImpl extends BaseServiceImpl<EntrustSampl
@Override
public
Page
<
EntrustSampleBackup
>
page
(
Page
<
EntrustSampleBackup
>
page
,
EntrustSampleBackup
entrustSampleBackup
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
entrustSampleBackup
);
return
this
.
page
(
page
,
wrapper
);
}
...
...
@@ -42,31 +43,53 @@ public class EntrustSampleBackupServiceImpl extends BaseServiceImpl<EntrustSampl
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
handleOk
(
Long
[]
ids
,
Account
account
)
{
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择完成处置的样品!"
);
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择完成处置的样品!"
);
EntrustSampleBackup
backup
=
new
EntrustSampleBackup
();
backup
.
setStatus
(
EntrustSampleBackupStatusEnum
.
HANDLE_OK
);
backup
.
setProgress
(
EntrustSampleBackupStatusEnum
.
HANDLE_OK
);
return
super
.
update
(
backup
,
Condition
.
create
().
in
(
"id"
,
ids
));
return
super
.
update
(
backup
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
@Override
public
Page
<
EntrustSampleBackupVO
>
pageVO
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
)
{
return
page
.
setRecords
(
baseMapper
.
selectVOList
(
page
,
entrustSampleBackup
));
return
page
.
setRecords
(
baseMapper
.
selectVOList
(
page
,
entrustSampleBackup
));
}
@Override
public
Page
<
EntrustSampleBackupVO
>
pageCO
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
)
{
return
page
.
setRecords
(
baseMapper
.
selectCOList
(
page
,
entrustSampleBackup
));
}
@Override
public
boolean
submitToHandle
(
Long
[]
ids
,
Account
account
)
{
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择提交处置的样品!"
);
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择提交处置的样品!"
);
EntrustSampleBackup
backup
=
new
EntrustSampleBackup
();
backup
.
setStatus
(
EntrustSampleBackupStatusEnum
.
HANDLE
);
backup
.
setProgress
(
EntrustSampleBackupStatusEnum
.
HANDLE
);
return
super
.
update
(
backup
,
Condition
.
create
().
in
(
"id"
,
ids
));
return
super
.
update
(
backup
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
@Override
public
Page
<
EntrustSampleBackupVO
>
pageManage
(
Page
<
EntrustSampleBackupVO
>
page
,
EntrustSampleBackupVO
entrustSampleBackup
)
{
return
page
.
setRecords
(
baseMapper
.
selectManageList
(
page
,
entrustSampleBackup
));
return
page
.
setRecords
(
baseMapper
.
selectManageList
(
page
,
entrustSampleBackup
));
}
@Override
public
void
updateEntrustId
(
Long
entrustId
,
List
<
String
>
contractSamplings
)
{
if
(
null
==
entrustId
||
CollectionUtils
.
isEmpty
(
contractSamplings
))
{
return
;
}
Wrapper
<
EntrustSampleBackup
>
wrapper
=
Condition
.
wrapper
();
for
(
String
s
:
contractSamplings
)
{
String
[]
ids
=
s
.
split
(
CommonConstants
.
SYMBOL_UNDERLINE
);
if
(
ids
.
length
!=
2
)
{
continue
;
}
wrapper
.
orNew
().
eq
(
"contract_id"
,
ids
[
0
]).
eq
(
"sampling_id"
,
ids
[
1
]);
}
update
(
new
EntrustSampleBackup
().
setEntrustId
(
entrustId
),
wrapper
);
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
cd63c3fe
...
...
@@ -152,6 +152,11 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
public
void
initSampleCode
(
EntrustSample
sample
)
{
// 如果合同编号不为空,样品编号不为空,一级编号不为空,则不进行编号生成
if
(
null
!=
sample
.
getContractSampleId
()
&&
StringUtils
.
isNotBlank
(
sample
.
getCode
())
&&
StringUtils
.
isNotBlank
(
sample
.
getFirstCode
()))
{
return
;
}
// 样品类型\名称
String
category
=
sample
.
getCategory
(),
sampleName
=
sample
.
getName
();
RestAssert
.
fail
(
StringUtils
.
isBlank
(
category
),
"样品类型不能为空"
);
...
...
@@ -343,8 +348,12 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
List
<
EntrustSample
>
saveSampleList
=
new
ArrayList
<>();
List
<
EntrustSampleItem
>
saveEntrustSampleItemList
=
new
ArrayList
<>();
List
<
String
>
contractSamplings
=
new
ArrayList
<>();
int
incNum
=
10
;
for
(
EntrustSampleDTO
sampleDTO
:
sampleDTOList
)
{
if
(
null
!=
sampleDTO
.
getContractSampleId
()
&&
null
!=
sampleDTO
.
getSamplingId
())
{
contractSamplings
.
add
(
sampleDTO
.
getContractSampleId
()
+
"_"
+
sampleDTO
.
getSamplingId
());
}
EntrustSample
sample
=
sampleDTO
.
convert
(
EntrustSample
.
class
);
sample
.
setEntrustId
(
entrust
.
getId
());
handleSampleCode
(
sample
);
...
...
@@ -371,10 +380,14 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrust
.
setTotalFee
(
totalFee
);
//保存样品名称
entrust
.
setSampleName
(
sampleDTOList
.
get
(
0
).
getName
());
if
(
null
==
entrust
.
getMaterialId
())
{
if
(
null
==
entrust
.
getMaterialId
())
{
entrust
.
setMaterialId
(
sampleDTOList
.
get
(
0
).
getMaterialId
());
}
if
(
saveEntrust
(
entrust
))
{
// 更新备样entrust_id 字段
entrustSampleBackupService
.
updateEntrustId
(
entrust
.
getId
(),
contractSamplings
);
if
(
CollectionUtils
.
isNotEmpty
(
saveSampleList
))
{
entrustSampleService
.
saveBatch
(
saveSampleList
);
}
...
...
src/main/resources/mapper/hmhj/ContractSampleMapper.xml
View file @
cd63c3fe
...
...
@@ -45,6 +45,14 @@
AND (s.factory_area is null or strpos(#{vo.period},s.factory_area) > 0 )
</if>
<if
test=
"null!=vo.contractId"
>
AND s.contract_id = #{vo.contractId}
</if>
<if
test=
"null!=vo.contractCode"
>
AND s.contract_code LIKE CONCAT('%',#{vo.contractCode},'%')
</if>
<if
test=
"null!=vo.statusList"
>
AND s.status IN
<foreach
collection=
"vo.statusList"
index=
"index"
item=
"status"
open=
"("
separator=
","
close=
")"
>
...
...
src/main/resources/mapper/hmhj/ContractSamplingMapper.xml
View file @
cd63c3fe
...
...
@@ -30,4 +30,8 @@
order by s.order_by asc, s.code ,s.ctime desc
</select>
<select
id=
"selectLastCode"
resultType=
"java.lang.String"
>
select max(s.code) "max_code" from contract_sampling s where s.deleted = 0 and s.code like concat(#{queryKey},'%')
</select>
</mapper>
src/main/resources/mapper/hmhj/EntrustSampleBackupMapper.xml
View file @
cd63c3fe
...
...
@@ -2,25 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleBackupMapper"
>
<select
id=
"selectVOList"
resultType=
"com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO"
>
SELECT
b.ID,
b.receive_time,
b.storage_location,
b.storage_method,
b.storage_period,
b.sample_id,
b.handler,
b.handle_time,
s.NAME AS "sampleName",
s.code AS "sampleCode" ,
e.client ,
e.code AS "entrustCode",
date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) "remain_days"
FROM
entrust_sample_backup b
JOIN entrust_sample s ON b.sample_id = s.ID
JOIN entrust e ON s.entrust_id = e.ID
<sql
id=
"where"
>
<where>
AND b.deleted = 0 AND s.deleted = 0 AND e.deleted = 0
<if
test=
"null!=vo.sampleCode"
>
...
...
@@ -52,6 +34,52 @@
</foreach>
</if>
</where>
</sql>
<select
id=
"selectVOList"
resultType=
"com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO"
>
SELECT
b.ID,
b.receive_time,
b.storage_location,
b.storage_method,
b.storage_period,
b.sample_id,
b.handler,
b.handle_time,
s.NAME AS "sampleName",
s.code AS "sampleCode" ,
e.client ,
e.code AS "entrustCode",
date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) "remain_days"
FROM
entrust_sample_backup b
JOIN entrust_sample s ON b.sample_id = s.ID
JOIN entrust e ON s.entrust_id = e.ID
<include
refid=
"where"
/>
order by date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) asc,b.ctime desc
</select>
<select
id=
"selectCOList"
resultType=
"com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO"
>
SELECT
b.ID,
b.receive_time,
b.storage_location,
b.storage_method,
b.storage_period,
b.sample_id,
b.handler,
b.handle_time,
s.NAME AS "sampleName",
s.code AS "sampleCode" ,
e.client ,
e.code AS "entrustCode",
date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) "remain_days"
FROM
entrust_sample_backup b
JOIN contract_sampling s ON b.sampling_id = s.ID
LEFT JOIN entrust e ON s.entrust_id = e.ID
<include
refid=
"where"
/>
order by date_part('day', CAST(b.storage_period AS TIMESTAMP) - CAST( now() AS TIMESTAMP)) asc,b.ctime desc
</select>
...
...
@@ -74,37 +102,8 @@
entrust_sample_backup b
JOIN entrust_sample s ON b.sample_id = s.ID
JOIN entrust e ON s.entrust_id = e.ID
<where>
AND b.deleted = 0 AND s.deleted = 0 AND e.deleted = 0
<if
test=
"null!=vo.sampleCode"
>
AND s.code LIKE CONCAT('%',#{vo.sampleCode},'%')
</if>
<if
test=
"null!=vo.status"
>
AND b.status =#{vo.status}
</if>
<if
test=
"null!=vo.notStatus"
>
AND b.status !=#{vo.notStatus}
</if>
<if
test=
"null!=vo.sampleName"
>
AND s.name LIKE CONCAT('%',#{vo.sampleName},'%')
</if>
<include
refid=
"where"
/>
<if
test=
"null!=vo.client"
>
AND e.client LIKE CONCAT('%',#{vo.client},'%')
</if>
<if
test=
"null!=vo.entrustCode"
>
AND e.code LIKE CONCAT('%',#{vo.entrustCode},'%')
</if>
<if
test=
"null != vo.groupNameList"
>
AND e.test_side IN
<foreach
collection=
"vo.groupNameList"
index=
"index"
item=
"groupName"
open=
"("
separator=
","
close=
")"
>
#{groupName}
</foreach>
</if>
</where>
order by (case when e.sample_handle_advise = '检测完毕退还' and s.status
>
20 then 1 else 0 end) desc, b.ctime desc
</select>
</mapper>
src/test/java/com/patzn/cloud/service/lims/test/LimsCodeGenerator.java
View file @
cd63c3fe
...
...
@@ -18,9 +18,9 @@ public class LimsCodeGenerator {
new
PostgresqlGenerator
().
setDataSourceConfig
(
new
DataSourceConfig
()
.
setDbType
(
DbType
.
POSTGRE_SQL
)
.
setDriverName
(
"org.postgresql.Driver"
)
.
setUrl
(
"jdbc:postgresql://
localhost:5432
/dev_lims_hmhj"
)
.
setUsername
(
"
dbdev
"
)
.
setPassword
(
"
Project312&QdPt!
"
)
.
setUrl
(
"jdbc:postgresql://
meazty.fun:5433
/dev_lims_hmhj"
)
.
setUsername
(
"
postgres
"
)
.
setPassword
(
"
post123
"
)
).
execute
(
"lims"
);
}
}
...
...
src/test/java/resources/db_sql/hmhj/v168/20210924__添加委托样品字段.sql
0 → 100644
View file @
cd63c3fe
/** created by meazty on 2021/9/24 18:15 **/
/** created by meazty on 2021/9/24 18:15 **/
-- --
ALTER
TABLE
"public"
.
"entrust_sample"
ADD
COLUMN
"sampling_id"
int8
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample"
.
"sampling_id"
IS
'储运合同样品id'
;
\ No newline at end of file
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