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
8445c881
Commit
8445c881
authored
Jul 09, 2021
by
lijingjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加优化字段;
parent
49baf927
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
486 additions
and
17 deletions
+486
-17
BeanUtils.java
...n/java/com/patzn/cloud/service/lims/common/BeanUtils.java
+37
-0
EntrustController.java
...cloud/service/lims/hmhj/controller/EntrustController.java
+12
-0
EntrustSampleController.java
...service/lims/hmhj/controller/EntrustSampleController.java
+6
-0
EntrustSampleRecordController.java
...e/lims/hmhj/controller/EntrustSampleRecordController.java
+75
-0
EntrustSampleRecordMapper.java
...d/service/lims/hmhj/mapper/EntrustSampleRecordMapper.java
+16
-0
IEntrustSamplePrepareService.java
...rvice/lims/hmhj/service/IEntrustSamplePrepareService.java
+2
-0
IEntrustSampleRecordService.java
...ervice/lims/hmhj/service/IEntrustSampleRecordService.java
+26
-0
IEntrustSampleService.java
...loud/service/lims/hmhj/service/IEntrustSampleService.java
+6
-0
IEntrustService.java
...atzn/cloud/service/lims/hmhj/service/IEntrustService.java
+4
-0
EntrustReportServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustReportServiceImpl.java
+11
-3
EntrustSamplePrepareServiceImpl.java
...ms/hmhj/service/impl/EntrustSamplePrepareServiceImpl.java
+24
-2
EntrustSampleRecordServiceImpl.java
...ims/hmhj/service/impl/EntrustSampleRecordServiceImpl.java
+66
-0
EntrustSampleServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
+57
-10
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+72
-2
EntrustSampleRecordMapper.xml
src/main/resources/mapper/hmhj/EntrustSampleRecordMapper.xml
+5
-0
20210708添加记录表和字段.sql
...test/java/resources/db_sql/hmhj/v145/20210708添加记录表和字段.sql
+67
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/common/BeanUtils.java
0 → 100644
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
common
;
import
org.apache.commons.beanutils.ConvertUtils
;
import
org.apache.commons.beanutils.converters.DateConverter
;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
import
java.beans.PropertyDescriptor
;
import
java.util.HashSet
;
import
java.util.Set
;
public
class
BeanUtils
{
public
static
String
[]
getNullPropertyNames
(
Object
source
)
{
final
BeanWrapper
src
=
new
BeanWrapperImpl
(
source
);
PropertyDescriptor
[]
pds
=
src
.
getPropertyDescriptors
();
Set
<
String
>
emptyNames
=
new
HashSet
<>();
for
(
PropertyDescriptor
pd
:
pds
)
{
Object
srcValue
=
src
.
getPropertyValue
(
pd
.
getName
());
if
(
srcValue
==
null
)
emptyNames
.
add
(
pd
.
getName
());
}
String
[]
result
=
new
String
[
emptyNames
.
size
()];
return
emptyNames
.
toArray
(
result
);
}
public
static
void
copyProperties
(
Object
source
,
Object
target
)
{
copyProperties
(
source
,
target
,
null
);
}
public
static
void
copyProperties
(
Object
source
,
Object
target
,
Boolean
ignoreNull
)
{
ConvertUtils
.
register
(
new
DateConverter
(
null
),
java
.
util
.
Date
.
class
);
String
[]
ignoreArr
=
null
!=
ignoreNull
&&
ignoreNull
.
booleanValue
()
?
getNullPropertyNames
(
source
)
:
null
;
org
.
springframework
.
beans
.
BeanUtils
.
copyProperties
(
source
,
target
,
ignoreArr
);
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustController.java
View file @
8445c881
...
...
@@ -306,6 +306,18 @@ public class EntrustController extends ServiceController {
return
success
(
entrustService
.
backFromCheck
(
ids
,
getAccount
(),
reason
));
}
@ApiOperation
(
"委托制备退回"
)
@PostMapping
(
"/back_from_make"
)
public
RestResult
<
Boolean
>
backFromMake
(
@RequestParam
(
"ids"
)
Long
[]
ids
,
@RequestParam
(
"reason"
)
String
reason
)
{
return
success
(
entrustService
.
backFromMake
(
ids
,
getAccount
(),
reason
));
}
@ApiOperation
(
"委托接收退回"
)
@PostMapping
(
"/back_from_receive"
)
public
RestResult
<
Boolean
>
backFromReceive
(
@RequestParam
(
"ids"
)
Long
[]
ids
,
@RequestParam
(
"reason"
)
String
reason
)
{
return
success
(
entrustService
.
backFromReceive
(
ids
,
getAccount
(),
reason
));
}
@ApiOperation
(
"提交至样品制备"
)
@PostMapping
(
"/submit_to_make"
)
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustSampleController.java
View file @
8445c881
...
...
@@ -120,6 +120,12 @@ public class EntrustSampleController extends ServiceController {
return
success
(
entrustSampleService
.
updateById
(
entrustSample
));
}
@ApiOperation
(
"根据 id 修改信息"
)
@PutMapping
(
"/edit_sample"
)
public
RestResult
<
Boolean
>
editSample
(
EntrustSample
entrustSample
,
String
source
)
{
return
success
(
entrustSampleService
.
updateSample
(
entrustSample
,
source
,
getAccount
()));
}
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
EntrustSample
entrustSample
)
{
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/EntrustSampleRecordController.java
0 → 100644
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
controller
;
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.EntrustSampleRecord
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleRecordService
;
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
;
/**
* 样品操作日志表 前端控制器
*
* @author meazty
* @since 2021-07-08
*/
@Api
(
tags
=
"样品操作日志表"
)
@RestController
@RequestMapping
(
"/v1/entrust_sample_record"
)
public
class
EntrustSampleRecordController
extends
ServiceController
{
@Autowired
private
IEntrustSampleRecordService
entrustSampleRecordService
;
@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
),
})
@PostMapping
(
"/page"
)
public
RestResult
<
Page
<
EntrustSampleRecord
>>
getPage
(
EntrustSampleRecord
entrustSampleRecord
)
{
return
success
(
entrustSampleRecordService
.
page
(
getPage
(),
entrustSampleRecord
));
}
@ApiOperation
(
"查询 id 信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@GetMapping
(
"/{id}"
)
public
RestResult
<
EntrustSampleRecord
>
get
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
entrustSampleRecordService
.
getById
(
id
));
}
@ApiOperation
(
"根据 id 修改信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@PutMapping
(
"/{id}"
)
public
RestResult
<
Boolean
>
edit
(
@PathVariable
(
"id"
)
Long
id
,
EntrustSampleRecord
entrustSampleRecord
)
{
entrustSampleRecord
.
setId
(
id
);
return
success
(
entrustSampleRecordService
.
updateById
(
entrustSampleRecord
));
}
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
EntrustSampleRecord
entrustSampleRecord
)
{
return
success
(
entrustSampleRecordService
.
save
(
entrustSampleRecord
));
}
@ApiOperation
(
"根据 ids 删除"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"主键列表"
,
required
=
true
,
paramType
=
"query"
,
allowMultiple
=
true
,
dataTypeClass
=
Long
.
class
),
})
@DeleteMapping
(
"/"
)
public
RestResult
<
Boolean
>
delete
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
return
success
(
entrustSampleRecordService
.
removeByIds
(
ids
));
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/mapper/EntrustSampleRecordMapper.java
0 → 100644
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
mapper
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord
;
/**
* <p>
* 样品操作日志表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-07-08
*/
public
interface
EntrustSampleRecordMapper
extends
BatchMapper
<
EntrustSampleRecord
>
{
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSamplePrepareService.java
View file @
8445c881
...
...
@@ -28,4 +28,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean
submitSampleReceive
(
Long
[]
ids
,
Account
account
);
boolean
addOrUpdateToSetStatus
(
Long
[]
sampleIds
,
EntrustSamplePrepareStatusEnum
statusEnum
);
boolean
removeBySampleIds
(
Long
[]
sampleIds
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleRecordService.java
0 → 100644
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
;
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.entity.EntrustSampleRecord
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 样品操作日志表 服务类
*
* @author meazty
* @since 2021-07-08
*/
public
interface
IEntrustSampleRecordService
extends
IBaseService
<
EntrustSampleRecord
>
{
Page
<
EntrustSampleRecord
>
page
(
Page
<
EntrustSampleRecord
>
page
,
EntrustSampleRecord
entrustSampleRecord
);
boolean
removeByIds
(
List
<
Long
>
ids
);
void
record
(
Long
[]
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
);
void
record
(
Collection
<
Long
>
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleService.java
View file @
8445c881
...
...
@@ -74,4 +74,10 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
boolean
updateSamplePrevFlowInfo
(
Entrust
entrust
,
EntrustFlowEnum
prevFlowStatus
,
Account
account
);
boolean
addStandardSampleDTO
(
EntrustSampleDTO
dto
,
Account
account
);
List
<
EntrustSample
>
getByEntrustId
(
Long
entrustId
);
List
<
Long
>
getIdsByEntrustId
(
Long
entrustId
);
boolean
updateSample
(
EntrustSample
entrustSample
,
String
source
,
Account
account
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustService.java
View file @
8445c881
...
...
@@ -78,4 +78,8 @@ public interface IEntrustService extends IBaseService<Entrust> {
boolean
rejectToPrevNode
(
Entrust
entrust
,
String
reason
,
Account
account
);
boolean
cloneEntrust
(
Long
[]
ids
,
Account
account
);
boolean
backFromMake
(
Long
[]
ids
,
Account
account
,
String
reason
);
boolean
backFromReceive
(
Long
[]
ids
,
Account
account
,
String
reason
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustReportServiceImpl.java
View file @
8445c881
...
...
@@ -155,7 +155,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
private
boolean
executeSubmitOperation
(
Entrust
entrust
,
Account
account
)
{
if
(
null
==
entrust
||
StringUtils
.
isBlank
(
entrust
.
getStatusPath
()))
{
if
(
StringUtils
.
isBlank
(
entrust
.
getStatusPath
()))
{
logger
.
error
(
"委托为空,或者委托路径为空不进行下一步操作"
);
return
false
;
}
...
...
@@ -222,7 +222,10 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation
(
getByReportId
(
ids
[
0
]),
account
);
Entrust
entrust
=
getByReportId
(
ids
[
0
]);
entrust
.
setTestTimeE
(
new
Date
());
entrustService
.
updateById
(
entrust
);
executeSubmitOperation
(
entrust
,
account
);
return
super
.
update
(
report
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
...
...
@@ -254,7 +257,12 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
}
// 存在的状态路径时,方可进入处理操作
executeSubmitOperation
(
getByReportId
(
ids
[
0
]),
account
);
Entrust
entrust
=
getByReportId
(
ids
[
0
]);
// 报告批准,获取当前时间为检测结束时间
entrust
.
setTestTimeE
(
new
Date
());
entrustService
.
updateById
(
entrust
);
executeSubmitOperation
(
entrust
,
account
);
return
super
.
update
(
report
,
Condition
.
create
().
in
(
"id"
,
ids
));
}
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSamplePrepareServiceImpl.java
View file @
8445c881
...
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import
com.baomidou.mybatisplus.toolkit.StringUtils
;
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.service.hmhj.dto.SamplePrepareDTO
;
import
com.patzn.cloud.service.hmhj.entity.*
;
import
com.patzn.cloud.service.hmhj.enums.*
;
...
...
@@ -64,6 +65,17 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
@Override
public
boolean
removeBySampleIds
(
Long
[]
sampleIds
)
{
if
(
null
==
sampleIds
||
sampleIds
.
length
==
0
){
return
false
;
}
Account
account
=
LoginHelper
.
getAccount
();
EntrustSamplePrepare
samplePrepare
=
new
EntrustSamplePrepare
();
samplePrepare
.
setDeleted
(
1
).
setLid
(
account
.
getUserId
()).
setLtime
(
new
Date
());
return
update
(
samplePrepare
,
Condition
.
create
().
in
(
"entrust_sample_id"
,
sampleIds
).
eq
(
"deleted"
,
0
));
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
makeEnd
(
SamplePrepareDTO
dto
,
Account
account
)
{
...
...
@@ -154,6 +166,7 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
Entrust
updateEntrust
=
new
Entrust
();
updateEntrust
.
setStatus
(
EntrustStatusEnum
.
TEST
);
updateEntrust
.
setProgress
(
EntrustStatusEnum
.
TEST
);
updateEntrust
.
setFlowStatus
(
EntrustFlowEnum
.
RECEIVE
.
getName
());
updateEntrust
.
setId
(
entrust
.
getId
());
entrustService
.
updateById
(
updateEntrust
);
// String remark = "提交至样品接收", title = "新的样品接收任务!";
...
...
@@ -183,6 +196,12 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
sampleIdsList
.
add
(
prepare
.
getEntrustSampleId
());
}
EntrustSample
entrustSample
=
entrustSampleService
.
getById
(
prepareList
.
get
(
0
).
getEntrustSampleId
());
Entrust
entrust
=
entrustService
.
getById
(
entrustSample
.
getEntrustId
());
if
(
null
==
entrust
.
getTestAddress
()){
// entrust.setReceiveTime(new Date());
}
EntrustSamplePrepare
prepare
=
new
EntrustSamplePrepare
();
prepare
.
setStatus
(
EntrustSamplePrepareStatusEnum
.
TEST
);
prepare
.
setStatus
(
EntrustSamplePrepareStatusEnum
.
TEST
);
...
...
@@ -214,10 +233,13 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
}
if
(
CollectionUtils
.
isEmpty
(
notOkSampleIds
))
{
EntrustSample
entrustSample
=
entrustSampleService
.
getById
(
prepareList
.
get
(
0
).
getEntrustSampleId
());
Entrust
entrust
=
entrustService
.
getById
(
entrustSample
.
getEntrustId
());
// 检测开始时间为接收时间
entrust
.
setTestTimeS
(
new
Date
());
if
(
StringUtils
.
isNotEmpty
(
entrust
.
getStatusPath
()))
{
entrustService
.
submitToNextNode
(
entrust
,
account
);
}
else
{
entrust
.
setFlowStatus
(
EntrustFlowEnum
.
TEST
.
getName
());
entrustService
.
updateById
(
entrust
);
}
}
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleRecordServiceImpl.java
0 → 100644
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
.
impl
;
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.controller.Account
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.hmhj.entity.EntrustSampleRecord
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleRecordMapper
;
import
com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleRecordService
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 样品操作日志表 服务实现类
*
* @author meazty
* @since 2021-07-08
*/
@Service
public
class
EntrustSampleRecordServiceImpl
extends
BaseServiceImpl
<
EntrustSampleRecordMapper
,
EntrustSampleRecord
>
implements
IEntrustSampleRecordService
{
@Override
public
Page
<
EntrustSampleRecord
>
page
(
Page
<
EntrustSampleRecord
>
page
,
EntrustSampleRecord
entrustSampleRecord
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
entrustSampleRecord
);
return
this
.
page
(
page
,
wrapper
);
}
@Override
public
boolean
removeByIds
(
List
<
Long
>
ids
)
{
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
@Override
public
void
record
(
Long
[]
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
)
{
record
(
Arrays
.
asList
(
ids
),
from
,
to
,
type
,
account
,
remark
);
}
@Override
public
void
record
(
Collection
<
Long
>
ids
,
String
from
,
String
to
,
int
type
,
Account
account
,
String
remark
)
{
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
ids
),
"样品ID不能为空"
);
List
<
EntrustSampleRecord
>
saveRecord
=
new
ArrayList
<>();
for
(
Long
entrustId
:
ids
)
{
EntrustSampleRecord
sampleRecord
=
new
EntrustSampleRecord
();
sampleRecord
.
setSampleId
(
entrustId
);
sampleRecord
.
setOperator
(
account
.
getUserName
());
sampleRecord
.
setOperatorId
(
account
.
getUserId
());
sampleRecord
.
setOrigin
(
from
);
sampleRecord
.
setTarget
(
to
);
sampleRecord
.
setType
(
type
);
sampleRecord
.
setRemark
(
remark
);
saveRecord
.
add
(
sampleRecord
);
}
if
(
CollectionUtils
.
isNotEmpty
(
saveRecord
))
{
saveBatch
(
saveRecord
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
View file @
8445c881
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
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.google.common.collect.Lists
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.toolkit.DateUtils
;
import
com.patzn.cloud.commons.toolkit.FileUtils
;
import
com.patzn.cloud.feign.base.client.SysFileTemplateClient
;
import
com.patzn.cloud.oss.starter.OssClient
;
import
com.patzn.cloud.service.base.entity.SysFileTemplate
;
import
com.patzn.cloud.service.hmhj.dto.EntrustSampleDTO
;
import
com.patzn.cloud.service.hmhj.dto.QueryDTO
;
import
com.patzn.cloud.service.hmhj.dto.ReportDTO
;
...
...
@@ -18,16 +20,14 @@ import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import
com.patzn.cloud.service.hmhj.entity.*
;
import
com.patzn.cloud.service.hmhj.enums.*
;
import
com.patzn.cloud.service.hmhj.vo.*
;
import
com.patzn.cloud.service.lims.common.BeanUtils
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleMapper
;
import
com.patzn.cloud.service.lims.hmhj.original.OriginalUtil
;
import
com.patzn.cloud.service.lims.hmhj.service.*
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.poibox.xwpf.PoiUtil2007
;
import
com.patzn.poibox.xwpf.XWPFTemplate
;
import
org.apache.commons.collections.ListUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.util.CellRangeAddress
;
...
...
@@ -38,9 +38,6 @@ import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import
org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.io.File
;
...
...
@@ -48,7 +45,6 @@ import java.io.FileOutputStream;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -63,6 +59,9 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Autowired
private
SysFileTemplateClient
sysFileTemplateClient
;
@Autowired
private
IEntrustSampleRecordService
entrustSampleRecordService
;
@Autowired
private
IEntrustReportTemplateService
entrustReportTemplateService
;
...
...
@@ -376,7 +375,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
@Override
public
boolean
updateSamplePrevFlowInfo
(
Entrust
entrust
,
EntrustFlowEnum
prevFlowStatus
,
Account
account
)
{
EntrustStatusEnum
statusEnum
=
entrust
.
getStatus
();
List
<
EntrustSample
>
sampleList
=
list
(
Condition
.
create
().
eq
(
"entrust_id"
,
entrust
.
getId
()).
eq
(
"deleted"
,
0
));
List
<
EntrustSample
>
sampleList
=
getByEntrustId
(
entrust
.
getId
(
));
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleList
),
String
.
format
(
"编号为【%s】委托下样品为空"
,
entrust
.
getCode
()));
Long
[]
sampleIds
=
sampleList
.
stream
().
map
(
t
->
t
.
getId
()).
toArray
(
size
->
new
Long
[
size
]);
//
...
...
@@ -433,12 +432,18 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
sampleStatus
=
EntrustSampleStatusEnum
.
REPORT_SEND
;
}
if
(
statusEnum
==
EntrustStatusEnum
.
TEST
&&
prevFlowStatus
.
getValue
()
<
5
)
{
entrustSamplePrepareService
.
removeBySampleIds
(
sampleIds
);
}
if
(
null
!=
sampleStatus
)
{
updateSample
.
setStatus
(
sampleStatus
);
updateSample
.
setProgress
(
sampleStatus
);
update
(
updateSample
,
Condition
.
create
().
eq
(
"entrust_id"
,
entrust
.
getId
()));
}
if
(
null
!=
itemStatus
)
{
updateItem
.
setStatus
(
itemStatus
);
updateItem
.
setProgress
(
itemStatus
);
entrustSampleItemService
.
update
(
updateItem
,
Condition
.
create
().
in
(
"entrust_sample_id"
,
sampleIds
));
}
return
false
;
...
...
@@ -480,6 +485,20 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
@Override
public
List
<
EntrustSample
>
getByEntrustId
(
Long
entrustId
)
{
return
list
(
Condition
.
create
().
eq
(
"entrust_id"
,
entrustId
).
eq
(
"deleted"
,
0
));
}
@Override
public
List
<
Long
>
getIdsByEntrustId
(
Long
entrustId
)
{
List
<
EntrustSample
>
list
=
getByEntrustId
(
entrustId
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
new
ArrayList
<>();
}
return
list
.
stream
().
map
(
t
->
t
.
getId
()).
collect
(
Collectors
.
toList
());
}
@Override
public
boolean
removeByIds
(
List
<
Long
>
ids
)
{
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
...
...
@@ -1104,7 +1123,34 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
cell
.
setText
(
StringHandleUtils
.
getFieldValueByFieldName
(
StringHandleUtils
.
getObjectFromMap
(
itemCellMap
,
k
),
object
));
}
}
}
}
@Override
public
boolean
updateSample
(
EntrustSample
entrustSample
,
String
source
,
Account
account
)
{
RestAssert
.
fail
(
StringUtils
.
isBlank
(
source
),
"来源节点不能为空"
);
EntrustFlowEnum
flowStatus
=
EntrustFlowEnum
.
convert
(
source
.
toUpperCase
());
EntrustSample
sourceSample
=
getById
(
entrustSample
.
getId
());
EntrustSample
updateSample
=
new
EntrustSample
();
BeanUtils
.
copyProperties
(
sourceSample
,
updateSample
);
BeanUtils
.
copyProperties
(
entrustSample
,
updateSample
,
true
);
updateById
(
updateSample
);
String
sampleShape
=
null
==
entrustSample
.
getSampleShape
()
?
""
:
entrustSample
.
getSampleShape
();
String
sampleFrom
=
null
==
entrustSample
.
getSampleFrom
()
?
""
:
entrustSample
.
getSampleFrom
();
StringBuffer
sb
=
new
StringBuffer
();
String
remark
=
""
;
if
(!
sourceSample
.
getSampleShape
().
equals
(
sampleShape
))
{
sb
.
append
(
String
.
format
(
"样品状态:由【%s】 修改为 【%s】,"
,
sourceSample
.
getSampleShape
(),
sampleShape
));
}
if
(!
sourceSample
.
getSampleFrom
().
equals
(
sampleFrom
))
{
sb
.
append
(
String
.
format
(
"样品来源:由【%s】 修改为 【%s】,"
,
sourceSample
.
getSampleFrom
(),
sampleFrom
));
}
if
(
sb
.
length
()
>
0
)
{
remark
=
sb
.
substring
(
0
,
sb
.
length
()
-
1
);
}
entrustSampleRecordService
.
record
(
new
Long
[]{
entrustSample
.
getId
()},
flowStatus
.
getDisplay
(),
flowStatus
.
getDisplay
(),
2
,
account
,
remark
);
return
true
;
}
}
\ No newline at end of file
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
8445c881
...
...
@@ -258,6 +258,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
Entrust
entrust
=
new
Entrust
();
entrust
.
setStatus
(
EntrustStatusEnum
.
CHECK
);
entrust
.
setProgress
(
EntrustStatusEnum
.
CHECK
);
entrust
.
setFlowStatus
(
EntrustFlowEnum
.
CHECK
.
getName
());
if
(
update
(
entrust
,
Condition
.
create
().
in
(
"id"
,
ids
)))
{
entrustRecordService
.
record
(
ids
,
EntrustStatusEnum
.
DRAFT
.
getDisplay
(),
EntrustStatusEnum
.
CHECK
.
getDisplay
(),
0
,
account
,
"提交至委托审核"
);
lmsMsgService
.
sendMsg
(
"/hmhj/entrust_manage/entrust_review"
,
"有委托从委托登记提交过来,请及时审核"
,
"新的委托审核任务!"
,
account
,
null
);
...
...
@@ -298,6 +299,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
else
{
e
.
setStatus
(
EntrustStatusEnum
.
DRAFT
);
e
.
setProgress
(
EntrustStatusEnum
.
BACK_CHECK
);
e
.
setFlowStatus
(
EntrustFlowEnum
.
DRAFT
.
getName
());
updateById
(
e
);
entrustRecordService
.
record
(
new
Long
[]{
e
.
getId
()},
EntrustStatusEnum
.
CHECK
.
getDisplay
(),
EntrustStatusEnum
.
DRAFT
.
getDisplay
(),
1
,
account
,
reason
);
}
...
...
@@ -324,6 +326,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
else
{
e
.
setStatus
(
EntrustStatusEnum
.
MAKE
);
e
.
setProgress
(
EntrustStatusEnum
.
MAKE
);
e
.
setFlowStatus
(
EntrustFlowEnum
.
MAKE
.
getName
());
updateById
(
e
);
entrustRecordService
.
record
(
new
Long
[]{
e
.
getId
()},
EntrustStatusEnum
.
CHECK
.
getDisplay
(),
EntrustStatusEnum
.
MAKE
.
getDisplay
(),
0
,
account
,
"提交至样品待制备"
);
}
...
...
@@ -349,6 +352,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
else
{
e
.
setStatus
(
EntrustStatusEnum
.
MAKE
);
e
.
setProgress
(
EntrustStatusEnum
.
MAKE
);
e
.
setFlowStatus
(
EntrustFlowEnum
.
MAKE
.
getName
());
updateById
(
e
);
entrustRecordService
.
record
(
new
Long
[]{
e
.
getId
()},
EntrustStatusEnum
.
DRAFT
.
getDisplay
(),
EntrustStatusEnum
.
MAKE
.
getDisplay
(),
0
,
account
,
"委托登记提交至样品待制备"
);
}
...
...
@@ -962,12 +966,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
else
if
(
prevStatus
==
EntrustStatusEnum
.
QUALITY_CHECK
)
{
uri
=
"/hmhj/quality_manage/quality_decide"
;
}
// 更新委托样品信息
entrustSampleService
.
updateSamplePrevFlowInfo
(
entrust
,
prevFlowStatus
,
account
);
entrust
.
setStatus
(
prevStatus
);
entrust
.
setProgress
(
EntrustStatusEnum
.
BACK_CHECK
);
entrust
.
setFlowStatus
(
prevFlowStatus
.
getName
());
updateById
(
entrust
);
// 更新委托样品信息
entrustSampleService
.
updateSamplePrevFlowInfo
(
entrust
,
prevFlowStatus
,
account
);
String
title
=
String
.
format
(
"新的%s任务!"
,
prevFlowStatus
.
getDisplay
()),
content
=
String
.
format
(
"有%s驳回过来,请及时%s"
,
EntrustFlowEnum
.
convert
(
flowStatus
).
getDisplay
(),
prevFlowStatus
.
getDisplay
());
entrustRecordService
.
record
(
new
Long
[]{
entrust
.
getId
()},
status
.
getDisplay
(),
prevStatus
.
getDisplay
(),
1
,
account
,
reason
);
...
...
@@ -1040,6 +1047,69 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return
true
;
}
@Override
public
boolean
backFromMake
(
Long
[]
ids
,
Account
account
,
String
reason
)
{
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择要驳回的委托"
);
int
count
=
super
.
count
(
Condition
.
create
().
in
(
"id"
,
ids
).
eq
(
"status"
,
EntrustStatusEnum
.
MAKE
));
RestAssert
.
fail
(
ids
.
length
!=
count
,
"请选择要退回至登记的委托"
);
List
<
Entrust
>
entrustList
=
getBatchIds
(
Arrays
.
asList
(
ids
));
boolean
hasSendMessage
=
false
;
for
(
Entrust
e
:
entrustList
)
{
e
.
setStatus
(
EntrustStatusEnum
.
DRAFT
);
e
.
setProgress
(
EntrustStatusEnum
.
BACK_MAKE
);
// 流程节点变更为登记
e
.
setFlowStatus
(
EntrustFlowEnum
.
DRAFT
.
getName
());
updateById
(
e
);
entrustRecordService
.
record
(
new
Long
[]{
e
.
getId
()},
EntrustStatusEnum
.
MAKE
.
getDisplay
(),
EntrustStatusEnum
.
DRAFT
.
getDisplay
(),
1
,
account
,
reason
);
// 更新样品状态
EntrustSample
entrustSample
=
new
EntrustSample
();
entrustSample
.
setStatus
(
EntrustSampleStatusEnum
.
DRAFT
);
entrustSample
.
setProgress
(
EntrustSampleStatusEnum
.
DRAFT
);
EntrustSampleItem
entrustSampleItem
=
new
EntrustSampleItem
();
entrustSampleItem
.
setStatus
(
EntrustSampleItemStatusEnum
.
DRAFT
);
entrustSampleItem
.
setProgress
(
EntrustSampleItemStatusEnum
.
DRAFT
);
List
<
Long
>
sampleIds
=
entrustSampleService
.
getIdsByEntrustId
(
e
.
getId
());
entrustSampleService
.
update
(
entrustSample
,
Condition
.
create
().
eq
(
"entrust_id"
,
e
.
getId
()));
if
(
sampleIds
.
size
()
>
0
)
{
entrustSampleItemService
.
update
(
entrustSampleItem
,
Condition
.
create
().
in
(
"entrust_sample_id"
,
sampleIds
));
}
}
lmsMsgService
.
sendMsg
(
"/hmhj/entrust_manage/entrust_register"
,
"有委托从样品制备退回,请及时查看退回原因并处理"
,
"新的样品制备退回任务!"
,
account
,
null
);
return
true
;
}
@Override
public
boolean
backFromReceive
(
Long
[]
ids
,
Account
account
,
String
reason
)
{
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
ids
),
"请选择要驳回的委托"
);
int
count
=
super
.
count
(
Condition
.
create
().
in
(
"id"
,
ids
).
eq
(
"status"
,
EntrustStatusEnum
.
TEST
));
RestAssert
.
fail
(
ids
.
length
!=
count
,
"请选择要退回至登记的委托"
);
List
<
Entrust
>
entrustList
=
getBatchIds
(
Arrays
.
asList
(
ids
));
boolean
hasSendMessage
=
false
;
for
(
Entrust
e
:
entrustList
)
{
e
.
setStatus
(
EntrustStatusEnum
.
DRAFT
);
e
.
setProgress
(
EntrustStatusEnum
.
BACK_RECEIVE
);
// 流程节点变更为登记
e
.
setFlowStatus
(
EntrustFlowEnum
.
DRAFT
.
getName
());
updateById
(
e
);
entrustRecordService
.
record
(
new
Long
[]{
e
.
getId
()},
EntrustStatusEnum
.
TEST
.
getDisplay
(),
EntrustStatusEnum
.
DRAFT
.
getDisplay
(),
1
,
account
,
reason
);
// 更新样品状态
EntrustSample
entrustSample
=
new
EntrustSample
();
entrustSample
.
setStatus
(
EntrustSampleStatusEnum
.
DRAFT
);
entrustSample
.
setProgress
(
EntrustSampleStatusEnum
.
DRAFT
);
EntrustSampleItem
entrustSampleItem
=
new
EntrustSampleItem
();
entrustSampleItem
.
setStatus
(
EntrustSampleItemStatusEnum
.
DRAFT
);
entrustSampleItem
.
setProgress
(
EntrustSampleItemStatusEnum
.
DRAFT
);
List
<
Long
>
sampleIds
=
entrustSampleService
.
getIdsByEntrustId
(
e
.
getId
());
entrustSampleService
.
update
(
entrustSample
,
Condition
.
create
().
eq
(
"entrust_id"
,
e
.
getId
()));
entrustSamplePrepareService
.
removeBySampleIds
(
sampleIds
.
toArray
(
new
Long
[
sampleIds
.
size
()]));
if
(
sampleIds
.
size
()
>
0
)
{
entrustSampleItemService
.
update
(
entrustSampleItem
,
Condition
.
create
().
in
(
"entrust_sample_id"
,
sampleIds
));
}
}
lmsMsgService
.
sendMsg
(
"/hmhj/entrust_manage/entrust_register"
,
"有委托从样品接收退回,请及时查看退回原因并处理"
,
"新的样品接收退回任务!"
,
account
,
null
);
return
true
;
}
private
List
<
EntrustSampleDTO
>
listSampleDTOByType
(
Long
entrustId
,
int
type
)
{
List
<
EntrustSampleDTO
>
sampleDTOList
=
baseMapper
.
listByContractId
(
entrustId
);
return
sampleDTOList
.
stream
().
filter
(
t
->
(
null
==
t
.
getType
()
?
0
:
t
.
getType
().
intValue
())
==
type
).
collect
(
Collectors
.
toList
());
...
...
src/main/resources/mapper/hmhj/EntrustSampleRecordMapper.xml
0 → 100644
View file @
8445c881
<?xml version="1.0" encoding="UTF-8"?>
<!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.EntrustSampleRecordMapper"
>
</mapper>
src/test/java/resources/db_sql/hmhj/v145/20210708添加记录表和字段.sql
0 → 100644
View file @
8445c881
CREATE
TABLE
"public"
.
"entrust_sample_record"
(
CREATE
TABLE
"public"
.
"entrust_sample_record"
(
"id"
int8
NOT
NULL
,
"sample_id"
int8
,
"remark"
varchar
(
255
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"ctime"
timestamp
(
0
)
DEFAULT
NULL
::
timestamp
without
time
zone
,
"uid"
int8
,
"lid"
int8
,
"ltime"
timestamp
(
0
)
DEFAULT
NULL
::
timestamp
without
time
zone
,
"deleted"
int2
DEFAULT
0
,
"company_id"
int8
,
"type"
int2
DEFAULT
0
,
"origin"
varchar
(
50
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"target"
varchar
(
50
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"operator"
varchar
(
50
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"operator_id"
int8
)
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"id"
IS
'主键'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"sample_id"
IS
'样品ID'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"remark"
IS
'操作原因'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"ctime"
IS
'创建时间'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"uid"
IS
'创建人ID'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"lid"
IS
'最后修改人ID'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"ltime"
IS
'最后修改时间'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"deleted"
IS
'是否删除0否1是'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"company_id"
IS
'企业ID'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"type"
IS
'类型 0流转 1回退 2更新'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"origin"
IS
'操作阶段'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"target"
IS
'目标阶段'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"operator"
IS
'操作人'
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_record"
.
"operator_id"
IS
'操作人ID'
;
COMMENT
ON
TABLE
"public"
.
"entrust_sample_record"
IS
'样品操作日志表'
;
-- ----------------------------
-- Primary Key structure for table entrust_sample_record
-- ----------------------------
ALTER
TABLE
"public"
.
"entrust_sample_record"
ADD
CONSTRAINT
"entrust_sample_record_pkey"
PRIMARY
KEY
(
"id"
);
-- 新增委托字段 --
ALTER
TABLE
"public"
.
"entrust"
ADD
COLUMN
"expect_send_time"
timestamp
(
6
),
ADD
COLUMN
"live_witness"
int2
,
ADD
COLUMN
"sample_size"
varchar
(
64
)
COLLATE
"pg_catalog"
.
"default"
,
ADD
COLUMN
"priority"
varchar
(
32
)
COLLATE
"pg_catalog"
.
"default"
,
ADD
COLUMN
"test_fee"
numeric
default
0
.
00
,
ADD
COLUMN
"expect_time_s"
timestamp
(
6
),
ADD
COLUMN
"expect_time_e"
timestamp
(
6
);
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"expect_send_time"
IS
'客户期望报告发出日期'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"live_witness"
IS
'现场见证【0:否,1:是】'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"sample_size"
IS
'样品尺寸'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"priority"
IS
'优先级'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"test_fee"
IS
'检测费用'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"expect_time_s"
IS
'检测开始日期'
;
COMMENT
ON
COLUMN
"public"
.
"entrust"
.
"expect_time_e"
IS
'检测结束日期'
;
-- 新增样品字段 --
ALTER
TABLE
"public"
.
"entrust_sample"
ADD
COLUMN
"compliance_test"
int2
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample"
.
"compliance_test"
IS
'符合性检测【0:否,1:是】'
;
-- 新增样品检测项目字段 --
ALTER
TABLE
"public"
.
"entrust_sample_item"
ADD
COLUMN
"univalent"
numeric
default
0
.
00
;
COMMENT
ON
COLUMN
"public"
.
"entrust_sample_item"
.
"univalent"
IS
'单价'
;
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