Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
huang.tao
/
jmai-platform
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
29ed627e
authored
Jan 28, 2026
by
zhu.zewen
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
优化云签接口
parent
b3eb3fbc
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
322 additions
and
28 deletions
jmai-physic/src/main/java/com/jmai/physic/cloudsign/CloudsignService.java
jmai-physic/src/main/java/com/jmai/physic/cloudsign/SignResult.java
jmai-physic/src/main/java/com/jmai/physic/entity/ISignData.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicAmpoule.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicApply.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicBill.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicBillHandover.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroy.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheck.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheckDetail.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicRecord.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicStorageAmpoule.java
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicWarehouse.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicAmpouleServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicApplyServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicBillServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyCheckServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicRecordServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicStorageAmpouleServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicWarehouseServiceImpl.java
jmai-physic/src/main/java/com/jmai/physic/cloudsign/CloudsignService.java
View file @
29ed627e
...
...
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.jmai.api.exception.ServiceException
;
import
com.jmai.physic.config.CloudSignProperties
;
import
com.jmai.physic.entity.CloudSignToken
;
import
com.jmai.physic.entity.ISignData
;
import
com.jmai.physic.mapper.CloudSignTokenMapper
;
import
com.jmai.sys.ctx.SpringContextUtils
;
import
com.jmai.sys.dto.UserDto
;
...
...
@@ -226,12 +227,21 @@ public class CloudsignService {
}
/**
* 云签证书数字签名(接受业务对象)
* @param bizObj 业务对象(如PhysicAmpoule等)
* @return 签名值
*/
public
<
T
extends
ISignData
>
SignResult
sign
(
T
bizObj
){
return
sign
(
bizObj
.
getSignDataAsBase64
(),
bizObj
.
getSIgnBizId
());
}
/**
* 云签证书数字签名(带业务ID参数)
* @param base64SourceData 待签名数据的Base64编码
* @param bizId 业务ID
* @return 签名值
*/
p
ublic
SignResult
sign
(
String
base64SourceData
,
String
bizId
){
p
rivate
SignResult
sign
(
String
base64SourceData
,
String
bizId
){
// 使用默认业务类型和时间戳设置,但使用传入的业务ID
SignDataRequest
request
=
new
SignDataRequest
();
...
...
@@ -279,7 +289,6 @@ public class CloudsignService {
throw
new
ServiceException
(
"获取失败"
);
}
SignDataResponse
signDataResponse
=
JSON
.
parseObject
(
response
,
SignDataResponse
.
class
);
// 检查返回的状态码
if
(
signDataResponse
.
getStatusCode
()
!=
0
)
{
log
.
error
(
"{}-签名失败: {}"
,
logTip
,
signDataResponse
.
getEventMsg
());
...
...
@@ -291,8 +300,8 @@ public class CloudsignService {
signResult
.
setMsg
(
signDataResponse
.
getEventMsg
());
signResult
.
setBusinessOrgCode
(
request
.
getBusinessOrgCode
());
signResult
.
setRelBizNo
(
SpringContextUtils
.
getWorkNo
());
signResult
.
setBizId
(
request
.
getBizId
());
signResult
.
setSourceData
(
request
.
getBase64SourceData
());
signResult
.
setSignedData
(
signDataResponse
.
getEventValue
().
getSignedData
());
signResult
.
setTimestamp
(
signDataResponse
.
getEventValue
().
getTimestamp
());
...
...
@@ -316,7 +325,8 @@ public class CloudsignService {
// 设置签名时间、用户ID和业务ID
signResult
.
setSignTime
(
LocalDateTime
.
now
());
signResult
.
setUserId
(
SpringContextUtils
.
getUserId
());
signResult
.
setBizId
(
request
.
getBizId
());
signResult
.
setUserName
(
SpringContextUtils
.
getUserName
());
signResult
.
setWorkNo
(
SpringContextUtils
.
getWorkNo
());
return
signResult
;
}
catch
(
ServiceException
se
)
{
...
...
jmai-physic/src/main/java/com/jmai/physic/cloudsign/SignResult.java
View file @
29ed627e
...
...
@@ -17,8 +17,6 @@ public class SignResult {
@ApiModelProperty
(
value
=
"业务机构号"
)
private
String
businessOrgCode
;
@ApiModelProperty
(
value
=
"工号"
)
private
String
relBizNo
;
@ApiModelProperty
(
value
=
"业务ID"
)
private
String
bizId
;
...
...
@@ -28,9 +26,9 @@ public class SignResult {
private
String
signedData
;
@ApiModelProperty
(
value
=
"时间戳"
)
private
String
timestamp
;
@ApiModelProperty
(
value
=
"签名证书(BASE64)"
)
private
String
signCert
;
@ApiModelProperty
(
value
=
"签名图片"
)
private
String
stamp
;
...
...
@@ -38,8 +36,12 @@ public class SignResult {
private
LocalDateTime
signTime
;
@ApiModelProperty
(
value
=
"用户ID"
)
private
Long
userId
;
@ApiModelProperty
(
value
=
"用户名"
)
private
String
userName
;
@ApiModelProperty
(
value
=
"工号"
)
private
String
workNo
;
@ApiModelProperty
(
value
=
"签名图片(BASE64)"
)
@ApiModelProperty
(
value
=
"签名图片(BASE64)"
,
notes
=
"在线转换工具:https://www.lddgo.net/convert/base64-to-image"
)
public
String
getSignBase64Data
()
{
String
stamp
=
getStamp
();
if
(
ObjectUtil
.
isEmpty
(
stamp
)
&&
stamp
.
startsWith
(
"data:image"
))
{
...
...
jmai-physic/src/main/java/com/jmai/physic/entity/ISignData.java
0 → 100644
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
cn.hutool.core.codec.Base64Encoder
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.ApiModelProperty
;
/**
* 签名数据接口
*/
public
interface
ISignData
{
@ApiModelProperty
(
value
=
"主键ID"
)
Long
getId
();
@ApiModelProperty
(
value
=
"业务ID"
)
default
String
getSIgnBizId
()
{
return
getId
().
toString
();
}
@ApiModelProperty
(
value
=
"业务数据(JSON)"
)
JSONObject
getSignDataAsJson
();
@ApiModelProperty
(
value
=
"业务数据(Base64)"
)
default
String
getSignDataAsBase64
()
{
return
Base64Encoder
.
encode
(
getSignDataAsJson
().
toJSONString
());
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicAmpoule.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -10,7 +13,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品专用登记-科室/药房"
)
@TableName
(
"physic_ampoule"
)
public
class
PhysicAmpoule
extends
BaseVersionEntity
{
public
class
PhysicAmpoule
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"部门ID"
)
private
Long
deptId
;
...
...
@@ -49,6 +52,30 @@ public class PhysicAmpoule extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"复核人签名"
)
private
String
fhUser
;
private
String
remark
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"physicNum"
,
getPhysicNum
());
json
.
put
(
"type"
,
getType
());
json
.
put
(
"orderNo"
,
getOrderNo
());
json
.
put
(
"batchBalance"
,
getBatchBalance
());
json
.
put
(
"physicBalance"
,
getPhysicBalance
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
json
.
put
(
"remark"
,
getRemark
());
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicApply.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -9,7 +12,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品申请信息"
)
@TableName
(
"physic_apply"
)
public
class
PhysicApply
extends
BaseVersionEntity
{
public
class
PhysicApply
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"药品名称"
)
private
String
physicName
;
@ApiModelProperty
(
value
=
"规格"
)
...
...
@@ -51,4 +54,27 @@ public class PhysicApply extends BaseVersionEntity{
@ApiModelProperty
(
value
=
"复核人"
)
private
String
fhUser
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"returnNum"
,
getReturnNum
());
json
.
put
(
"prescriptionNum"
,
getPrescriptionNum
());
json
.
put
(
"requisitionNum"
,
getRequisitionNum
());
json
.
put
(
"actualNum"
,
getActualNum
());
json
.
put
(
"fyDeptId"
,
getFyDeptId
());
json
.
put
(
"lyDeptId"
,
getLyDeptId
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicBill.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -11,7 +14,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品专账"
)
@TableName
(
"physic_bill"
)
public
class
PhysicBill
extends
BaseVersionEntity
{
public
class
PhysicBill
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"部门ID"
)
private
Long
deptId
;
...
...
@@ -61,4 +64,32 @@ public class PhysicBill extends BaseVersionEntity {
private
Integer
balance
;
@ApiModelProperty
(
value
=
"总结存"
)
private
Integer
balanceAll
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"voucherNo"
,
getVoucherNo
());
json
.
put
(
"type"
,
getType
());
json
.
put
(
"acquireNum"
,
getAcquireNum
());
json
.
put
(
"expendNum"
,
getExpendNum
());
json
.
put
(
"settleDate"
,
getSettleDate
());
json
.
put
(
"settleMonth"
,
getSettleMonth
());
json
.
put
(
"refId"
,
getRefId
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
json
.
put
(
"balance"
,
getBalance
());
json
.
put
(
"balanceAll"
,
getBalanceAll
());
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicBillHandover.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -11,7 +14,7 @@ import java.time.LocalDateTime;
@Data
@ApiModel
(
description
=
"药品专账-交接单"
)
@TableName
(
"physic_bill_handover"
)
public
class
PhysicBillHandover
extends
BaseVersionEntity
{
public
class
PhysicBillHandover
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"部门"
)
private
Long
deptId
;
...
...
@@ -31,4 +34,20 @@ public class PhysicBillHandover extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"startBillId"
,
getStartBillId
());
json
.
put
(
"endBillId"
,
getEndBillId
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
json
.
put
(
"finishTime"
,
getFinishTime
());
json
.
put
(
"remark"
,
getRemark
());
return
json
;
}
}
\ No newline at end of file
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroy.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -13,7 +16,7 @@ import java.util.Date;
@Data
@ApiModel
(
description
=
"药品销毁表"
)
@TableName
(
"physic_destroy"
)
public
class
PhysicDestroy
extends
BaseVersionEntity
{
public
class
PhysicDestroy
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"部门id"
)
private
Long
deptId
;
@ApiModelProperty
(
value
=
"患者名称"
)
...
...
@@ -35,4 +38,21 @@ public class PhysicDestroy extends BaseVersionEntity {
private
String
images
;
@ApiModelProperty
(
value
=
"销毁时间"
)
private
LocalDateTime
destroyTime
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"sickName"
,
getSickName
());
json
.
put
(
"orderNo"
,
getOrderNo
());
json
.
put
(
"surplus"
,
getSurplus
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
// json.put("images", getImages());
json
.
put
(
"destroyTime"
,
getDestroyTime
());
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheck.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -10,7 +13,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品销毁审核表"
)
@TableName
(
"physic_destroy_check"
)
public
class
PhysicDestroyCheck
extends
BaseVersionEntity
{
public
class
PhysicDestroyCheck
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"单号"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"申请人"
)
...
...
@@ -38,4 +41,21 @@ public class PhysicDestroyCheck extends BaseVersionEntity {
private
String
bwkkzUser
;
@ApiModelProperty
(
value
=
"主管院长"
)
private
String
zgyzUser
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"orderNo"
,
getOrderNo
());
json
.
put
(
"applyName"
,
getApplyName
());
json
.
put
(
"applyDeptId"
,
getApplyDeptId
());
json
.
put
(
"applyTitle"
,
getApplyTitle
());
json
.
put
(
"applyReason"
,
getApplyReason
());
json
.
put
(
"destroyNum"
,
getDestroyNum
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicDestroyCheckDetail.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -10,7 +13,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品销毁审核详情表"
)
@TableName
(
"physic_destroy_check_detail"
)
public
class
PhysicDestroyCheckDetail
extends
BaseVersionEntity
{
public
class
PhysicDestroyCheckDetail
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"审核id"
)
private
Long
checkId
;
...
...
@@ -34,4 +37,23 @@ public class PhysicDestroyCheckDetail extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"原因"
)
private
String
reason
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"checkId"
,
getCheckId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"destroyNum"
,
getDestroyNum
());
json
.
put
(
"reason"
,
getReason
());
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicRecord.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -9,7 +12,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品专用登记"
)
@TableName
(
"physic_record"
)
public
class
PhysicRecord
extends
BaseVersionEntity
{
public
class
PhysicRecord
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"所属部门ID(科室、药房)"
)
private
Long
deptId
;
...
...
@@ -64,4 +67,34 @@ public class PhysicRecord extends BaseVersionEntity {
private
String
ysUser
;
@ApiModelProperty
(
value
=
"复核人"
)
private
String
fhUser
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"physicNum"
,
getPhysicNum
());
json
.
put
(
"type"
,
getType
());
json
.
put
(
"sickName"
,
getSickName
());
json
.
put
(
"sickSex"
,
getSickSex
());
json
.
put
(
"sickAge"
,
getSickAge
());
json
.
put
(
"sickIdCard"
,
getSickIdCard
());
json
.
put
(
"hospitalNumber"
,
getHospitalNumber
());
json
.
put
(
"diseaseName"
,
getDiseaseName
());
json
.
put
(
"prescriptionNumber"
,
getPrescriptionNumber
());
json
.
put
(
"prescriptionDoctor"
,
getPrescriptionDoctor
());
json
.
put
(
"relatedRecordId"
,
getRelatedRecordId
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicStorageAmpoule.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -11,7 +14,7 @@ import lombok.Data;
@ApiModel
(
description
=
"药品专用登记-药库(空安瓿登记)"
)
@TableName
(
"physic_storage_ampoule"
)
public
class
PhysicStorageAmpoule
extends
BaseVersionEntity
{
public
class
PhysicStorageAmpoule
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"药品名称"
)
private
String
physicName
;
@ApiModelProperty
(
value
=
"药品规格"
)
...
...
@@ -66,4 +69,35 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"physicNum"
,
getPhysicNum
());
json
.
put
(
"acquireNum"
,
getAcquireNum
());
json
.
put
(
"expendNum"
,
getExpendNum
());
json
.
put
(
"recycleReceiptNum"
,
getRecycleReceiptNum
());
json
.
put
(
"type"
,
getType
());
json
.
put
(
"destroyStatus"
,
getDestroyStatus
());
json
.
put
(
"orderNo"
,
getOrderNo
());
json
.
put
(
"transferDeptId"
,
getTransferDeptId
());
json
.
put
(
"acceptDeptId"
,
getAcceptDeptId
());
json
.
put
(
"batchBalance"
,
getBatchBalance
());
json
.
put
(
"physicBalance"
,
getPhysicBalance
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
json
.
put
(
"relatedCheckId"
,
getRelatedCheckId
());
json
.
put
(
"remark"
,
getRemark
());
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/entity/PhysicWarehouse.java
View file @
29ed627e
package
com
.
jmai
.
physic
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.jmai.sys.entity.BaseVersionEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -9,7 +12,7 @@ import lombok.Data;
@Data
@ApiModel
(
description
=
"药品入库信息"
)
@TableName
(
"physic_warehouse"
)
public
class
PhysicWarehouse
extends
BaseVersionEntity
{
public
class
PhysicWarehouse
extends
BaseVersionEntity
implements
ISignData
{
@ApiModelProperty
(
value
=
"部门ID"
)
private
Long
deptId
;
...
...
@@ -43,4 +46,26 @@ public class PhysicWarehouse extends BaseVersionEntity{
private
String
fhUser
;
@ApiModelProperty
(
value
=
"保管人"
)
private
String
bgUser
;
@Override
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
JSONObject
getSignDataAsJson
()
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"id"
,
getId
());
json
.
put
(
"deptId"
,
getDeptId
());
json
.
put
(
"physicName"
,
getPhysicName
());
json
.
put
(
"physicSpec"
,
getPhysicSpec
());
json
.
put
(
"physicType"
,
getPhysicType
());
json
.
put
(
"unit"
,
getUnit
());
json
.
put
(
"factoryName"
,
getFactoryName
());
json
.
put
(
"expireDate"
,
getExpireDate
());
json
.
put
(
"supplyName"
,
getSupplyName
());
json
.
put
(
"voucherNo"
,
getVoucherNo
());
json
.
put
(
"batchNo"
,
getBatchNo
());
json
.
put
(
"physicNum"
,
getPhysicNum
());
json
.
put
(
"status"
,
getStatus
());
// 去掉签名相关字段
return
json
;
}
}
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicAmpouleServiceImpl.java
View file @
29ed627e
...
...
@@ -155,8 +155,8 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
public
PhysicAmpoule
sign
(
PhysicAmpouleSignReq
physicAmpouleSignReq
)
{
Boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicAmpouleSignReq
.
getBase64SourceData
(),
physicAmpouleSignReq
.
getPhysicAmpouleId
().
toString
());
PhysicAmpoule
ampoule
=
getInfo
(
physicAmpouleSignReq
.
getPhysicAmpouleId
());
SignResult
signResult
=
cloudsignService
.
sign
(
ampoule
);
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
if
(
ampoule
.
getStatus
().
equals
(
0
)){
if
(!(
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
JS
)||
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
TH
))){
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicApplyServiceImpl.java
View file @
29ed627e
...
...
@@ -166,8 +166,8 @@ public class PhysicApplyServiceImpl extends AbstractService implements PhysicApp
Boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
SignResult
signResult
=
cloudsignService
.
sign
(
physicApplySignReq
.
getBase64SourceData
(),
physicApplySignReq
.
getPhysicApplyId
().
toString
());
PhysicApply
physicApply
=
physicApplyMapper
.
selectById
(
physicApplySignReq
.
getPhysicApplyId
());
SignResult
signResult
=
cloudsignService
.
sign
(
physicApply
);
if
(
physicApply
.
getStatus
().
equals
(
0
)){
if
(!
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
LY
)){
throw
new
ServiceException
(
"需要领药人权限才可进行签名"
);
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicBillServiceImpl.java
View file @
29ed627e
...
...
@@ -131,8 +131,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
public
PhysicBill
sign
(
PhysicBillSignReq
physicBillSignReq
)
{
Boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicBillSignReq
.
getBase64SourceData
(),
physicBillSignReq
.
getPhysicBillId
().
toString
());
PhysicBill
bill
=
physicBillMapper
.
selectById
(
physicBillSignReq
.
getPhysicBillId
());
SignResult
signResult
=
cloudsignService
.
sign
(
bill
);
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
if
(
ObjectUtil
.
equals
(
bill
.
getStatus
(),
0
))
{
if
(!
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
LY
))
{
...
...
@@ -325,8 +325,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
Long
currentDeptId
=
SpringContextUtils
.
getDeptId
();
SignResult
signResult
=
cloudsignService
.
sign
(
req
.
getBase64SourceData
(),
req
.
getHandoverId
().
toString
());
PhysicBillHandover
handover
=
physicBillHandoverMapper
.
selectById
(
req
.
getHandoverId
());
SignResult
signResult
=
cloudsignService
.
sign
(
handover
);
if
(
ObjectUtil
.
isEmpty
(
handover
))
{
throw
new
ServiceException
(
"未找到交接单:"
+
req
.
getHandoverId
());
}
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyCheckServiceImpl.java
View file @
29ed627e
...
...
@@ -123,8 +123,8 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
SignResult
signResult
=
cloudsignService
.
sign
(
physicDestroyCheckSignReq
.
getBase64SourceData
(),
physicDestroyCheckSignReq
.
getPhysicDestroyCheckId
().
toString
());
PhysicDestroyCheck
physicDestroyCheck
=
physicDestroyCheckMapper
.
selectById
(
physicDestroyCheckSignReq
.
getPhysicDestroyCheckId
());
SignResult
signResult
=
cloudsignService
.
sign
(
physicDestroyCheck
);
if
(
physicDestroyCheck
.
getStatus
().
equals
(
0
)){
if
(!
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
XH
)){
throw
new
ServiceException
(
"需要销毁人权限才可进行签名"
);
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicDestroyServiceImpl.java
View file @
29ed627e
...
...
@@ -64,8 +64,8 @@ public class PhysicDestroyServiceImpl extends AbstractService implements PhysicD
public
PhysicDestroy
sign
(
PhysicDestroySignReq
physicDestroySignReq
)
{
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicDestroySignReq
.
getBase64SourceData
(),
physicDestroySignReq
.
getPhysicDestroyId
().
toString
());
PhysicDestroy
physicDestroy
=
physicDestroyMapper
.
selectById
(
physicDestroySignReq
.
getPhysicDestroyId
());
SignResult
signResult
=
cloudsignService
.
sign
(
physicDestroy
);
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
if
(
physicDestroy
.
getStatus
().
equals
(
0
)){
if
(!
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
CZ
)){
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicRecordServiceImpl.java
View file @
29ed627e
...
...
@@ -154,8 +154,8 @@ public class PhysicRecordServiceImpl extends AbstractService implements PhysicRe
public
PhysicRecord
sign
(
PhysicRecordSignReq
physicRecordSignReq
)
{
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicRecordSignReq
.
getBase64SourceData
(),
physicRecordSignReq
.
getPhysicRecordId
().
toString
());
PhysicRecord
physicRecord
=
getInfo
(
physicRecordSignReq
.
getPhysicRecordId
());
SignResult
signResult
=
cloudsignService
.
sign
(
physicRecord
);
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
if
(
ObjectUtil
.
equals
(
physicRecord
.
getStatus
(),
0
))
{
// 1)发药人签名
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicStorageAmpouleServiceImpl.java
View file @
29ed627e
...
...
@@ -212,8 +212,8 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
public
PhysicStorageAmpoule
sign
(
PhysicStorageAmpouleSignReq
physicStorageAmpouleSignReq
)
{
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicStorageAmpouleSignReq
.
getBase64SourceData
(),
physicStorageAmpouleSignReq
.
getPhysicStorageAmpouleId
().
toString
());
PhysicStorageAmpoule
ampoule
=
getInfo
(
physicStorageAmpouleSignReq
.
getPhysicStorageAmpouleId
());
SignResult
signResult
=
cloudsignService
.
sign
(
ampoule
);
if
(
ampoule
.
getType
()==
2
&&
ampoule
.
getDestroyStatus
()==
1
){
throw
new
ServiceException
(
"已销毁记录不需要签名"
);
}
...
...
jmai-physic/src/main/java/com/jmai/physic/service/impl/PhysicWarehouseServiceImpl.java
View file @
29ed627e
...
...
@@ -92,8 +92,8 @@ public class PhysicWarehouseServiceImpl extends AbstractService implements Phys
public
PhysicWarehouseVO
sign
(
PhysicWarehouseSignReq
physicWarehouseSignReq
)
{
boolean
finished
=
false
;
Long
userId
=
SpringContextUtils
.
getUserId
();
SignResult
signResult
=
cloudsignService
.
sign
(
physicWarehouseSignReq
.
getBase64SourceData
(),
physicWarehouseSignReq
.
getPhysicWarehouseId
().
toString
());
PhysicWarehouse
physicWarehouse
=
physicWarehouseMapper
.
selectById
(
physicWarehouseSignReq
.
getPhysicWarehouseId
());
SignResult
signResult
=
cloudsignService
.
sign
(
physicWarehouse
);
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
if
(
physicWarehouse
.
getStatus
().
equals
(
0
)){
if
(!
RoleTypeEum
.
isPass
(
sysUser
.
getRoleAsList
(),
RoleTypeEum
.
YS
)){
...
...
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