Commit 29ed627e by zhu.zewen

优化云签接口

parent b3eb3fbc
Showing with 322 additions and 28 deletions
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.jmai.api.exception.ServiceException; import com.jmai.api.exception.ServiceException;
import com.jmai.physic.config.CloudSignProperties; import com.jmai.physic.config.CloudSignProperties;
import com.jmai.physic.entity.CloudSignToken; import com.jmai.physic.entity.CloudSignToken;
import com.jmai.physic.entity.ISignData;
import com.jmai.physic.mapper.CloudSignTokenMapper; import com.jmai.physic.mapper.CloudSignTokenMapper;
import com.jmai.sys.ctx.SpringContextUtils; import com.jmai.sys.ctx.SpringContextUtils;
import com.jmai.sys.dto.UserDto; import com.jmai.sys.dto.UserDto;
...@@ -226,12 +227,21 @@ public class CloudsignService { ...@@ -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参数) * 云签证书数字签名(带业务ID参数)
* @param base64SourceData 待签名数据的Base64编码 * @param base64SourceData 待签名数据的Base64编码
* @param bizId 业务ID * @param bizId 业务ID
* @return 签名值 * @return 签名值
*/ */
public SignResult sign(String base64SourceData, String bizId){ private SignResult sign(String base64SourceData, String bizId){
// 使用默认业务类型和时间戳设置,但使用传入的业务ID // 使用默认业务类型和时间戳设置,但使用传入的业务ID
SignDataRequest request = new SignDataRequest(); SignDataRequest request = new SignDataRequest();
...@@ -279,7 +289,6 @@ public class CloudsignService { ...@@ -279,7 +289,6 @@ public class CloudsignService {
throw new ServiceException("获取失败"); throw new ServiceException("获取失败");
} }
SignDataResponse signDataResponse = JSON.parseObject(response, SignDataResponse.class); SignDataResponse signDataResponse = JSON.parseObject(response, SignDataResponse.class);
// 检查返回的状态码 // 检查返回的状态码
if (signDataResponse.getStatusCode() != 0) { if (signDataResponse.getStatusCode() != 0) {
log.error("{}-签名失败: {}", logTip, signDataResponse.getEventMsg()); log.error("{}-签名失败: {}", logTip, signDataResponse.getEventMsg());
...@@ -291,8 +300,8 @@ public class CloudsignService { ...@@ -291,8 +300,8 @@ public class CloudsignService {
signResult.setMsg(signDataResponse.getEventMsg()); signResult.setMsg(signDataResponse.getEventMsg());
signResult.setBusinessOrgCode(request.getBusinessOrgCode()); signResult.setBusinessOrgCode(request.getBusinessOrgCode());
signResult.setRelBizNo(SpringContextUtils.getWorkNo());
signResult.setBizId(request.getBizId());
signResult.setSourceData(request.getBase64SourceData()); signResult.setSourceData(request.getBase64SourceData());
signResult.setSignedData(signDataResponse.getEventValue().getSignedData()); signResult.setSignedData(signDataResponse.getEventValue().getSignedData());
signResult.setTimestamp(signDataResponse.getEventValue().getTimestamp()); signResult.setTimestamp(signDataResponse.getEventValue().getTimestamp());
...@@ -316,7 +325,8 @@ public class CloudsignService { ...@@ -316,7 +325,8 @@ public class CloudsignService {
// 设置签名时间、用户ID和业务ID // 设置签名时间、用户ID和业务ID
signResult.setSignTime(LocalDateTime.now()); signResult.setSignTime(LocalDateTime.now());
signResult.setUserId(SpringContextUtils.getUserId()); signResult.setUserId(SpringContextUtils.getUserId());
signResult.setBizId(request.getBizId()); signResult.setUserName(SpringContextUtils.getUserName());
signResult.setWorkNo(SpringContextUtils.getWorkNo());
return signResult; return signResult;
} catch (ServiceException se) { } catch (ServiceException se) {
......
...@@ -17,8 +17,6 @@ public class SignResult { ...@@ -17,8 +17,6 @@ public class SignResult {
@ApiModelProperty(value = "业务机构号") @ApiModelProperty(value = "业务机构号")
private String businessOrgCode; private String businessOrgCode;
@ApiModelProperty(value = "工号")
private String relBizNo;
@ApiModelProperty(value = "业务ID") @ApiModelProperty(value = "业务ID")
private String bizId; private String bizId;
...@@ -28,9 +26,9 @@ public class SignResult { ...@@ -28,9 +26,9 @@ public class SignResult {
private String signedData; private String signedData;
@ApiModelProperty(value = "时间戳") @ApiModelProperty(value = "时间戳")
private String timestamp; private String timestamp;
@ApiModelProperty(value = "签名证书(BASE64)") @ApiModelProperty(value = "签名证书(BASE64)")
private String signCert; private String signCert;
@ApiModelProperty(value = "签名图片") @ApiModelProperty(value = "签名图片")
private String stamp; private String stamp;
...@@ -38,8 +36,12 @@ public class SignResult { ...@@ -38,8 +36,12 @@ public class SignResult {
private LocalDateTime signTime; private LocalDateTime signTime;
@ApiModelProperty(value = "用户ID") @ApiModelProperty(value = "用户ID")
private Long userId; 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() { public String getSignBase64Data() {
String stamp = getStamp(); String stamp = getStamp();
if (ObjectUtil.isEmpty(stamp) && stamp.startsWith("data:image")) { if (ObjectUtil.isEmpty(stamp) && stamp.startsWith("data:image")) {
......
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());
}
}
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -10,7 +13,7 @@ import lombok.Data; ...@@ -10,7 +13,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品专用登记-科室/药房") @ApiModel(description = "药品专用登记-科室/药房")
@TableName("physic_ampoule") @TableName("physic_ampoule")
public class PhysicAmpoule extends BaseVersionEntity { public class PhysicAmpoule extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "部门ID") @ApiModelProperty(value = "部门ID")
private Long deptId; private Long deptId;
...@@ -49,6 +52,30 @@ public class PhysicAmpoule extends BaseVersionEntity { ...@@ -49,6 +52,30 @@ public class PhysicAmpoule extends BaseVersionEntity {
@ApiModelProperty(value = "复核人签名") @ApiModelProperty(value = "复核人签名")
private String fhUser; private String fhUser;
private String remark; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -9,7 +12,7 @@ import lombok.Data; ...@@ -9,7 +12,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品申请信息") @ApiModel(description = "药品申请信息")
@TableName("physic_apply") @TableName("physic_apply")
public class PhysicApply extends BaseVersionEntity{ public class PhysicApply extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "药品名称") @ApiModelProperty(value = "药品名称")
private String physicName; private String physicName;
@ApiModelProperty(value = "规格") @ApiModelProperty(value = "规格")
...@@ -51,4 +54,27 @@ public class PhysicApply extends BaseVersionEntity{ ...@@ -51,4 +54,27 @@ public class PhysicApply extends BaseVersionEntity{
@ApiModelProperty(value = "复核人") @ApiModelProperty(value = "复核人")
private String fhUser; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -11,7 +14,7 @@ import lombok.Data; ...@@ -11,7 +14,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品专账") @ApiModel(description = "药品专账")
@TableName("physic_bill") @TableName("physic_bill")
public class PhysicBill extends BaseVersionEntity { public class PhysicBill extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "部门ID") @ApiModelProperty(value = "部门ID")
private Long deptId; private Long deptId;
...@@ -61,4 +64,32 @@ public class PhysicBill extends BaseVersionEntity { ...@@ -61,4 +64,32 @@ public class PhysicBill extends BaseVersionEntity {
private Integer balance; private Integer balance;
@ApiModelProperty(value = "总结存") @ApiModelProperty(value = "总结存")
private Integer balanceAll; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -11,7 +14,7 @@ import java.time.LocalDateTime; ...@@ -11,7 +14,7 @@ import java.time.LocalDateTime;
@Data @Data
@ApiModel(description = "药品专账-交接单") @ApiModel(description = "药品专账-交接单")
@TableName("physic_bill_handover") @TableName("physic_bill_handover")
public class PhysicBillHandover extends BaseVersionEntity { public class PhysicBillHandover extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "部门") @ApiModelProperty(value = "部门")
private Long deptId; private Long deptId;
...@@ -31,4 +34,20 @@ public class PhysicBillHandover extends BaseVersionEntity { ...@@ -31,4 +34,20 @@ public class PhysicBillHandover extends BaseVersionEntity {
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; 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
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -13,7 +16,7 @@ import java.util.Date; ...@@ -13,7 +16,7 @@ import java.util.Date;
@Data @Data
@ApiModel(description = "药品销毁表") @ApiModel(description = "药品销毁表")
@TableName("physic_destroy") @TableName("physic_destroy")
public class PhysicDestroy extends BaseVersionEntity { public class PhysicDestroy extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "部门id") @ApiModelProperty(value = "部门id")
private Long deptId; private Long deptId;
@ApiModelProperty(value = "患者名称") @ApiModelProperty(value = "患者名称")
...@@ -35,4 +38,21 @@ public class PhysicDestroy extends BaseVersionEntity { ...@@ -35,4 +38,21 @@ public class PhysicDestroy extends BaseVersionEntity {
private String images; private String images;
@ApiModelProperty(value = "销毁时间") @ApiModelProperty(value = "销毁时间")
private LocalDateTime destroyTime; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -10,7 +13,7 @@ import lombok.Data; ...@@ -10,7 +13,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品销毁审核表") @ApiModel(description = "药品销毁审核表")
@TableName("physic_destroy_check") @TableName("physic_destroy_check")
public class PhysicDestroyCheck extends BaseVersionEntity { public class PhysicDestroyCheck extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "单号") @ApiModelProperty(value = "单号")
private String orderNo; private String orderNo;
@ApiModelProperty(value = "申请人") @ApiModelProperty(value = "申请人")
...@@ -38,4 +41,21 @@ public class PhysicDestroyCheck extends BaseVersionEntity { ...@@ -38,4 +41,21 @@ public class PhysicDestroyCheck extends BaseVersionEntity {
private String bwkkzUser; private String bwkkzUser;
@ApiModelProperty(value = "主管院长") @ApiModelProperty(value = "主管院长")
private String zgyzUser; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -10,7 +13,7 @@ import lombok.Data; ...@@ -10,7 +13,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品销毁审核详情表") @ApiModel(description = "药品销毁审核详情表")
@TableName("physic_destroy_check_detail") @TableName("physic_destroy_check_detail")
public class PhysicDestroyCheckDetail extends BaseVersionEntity { public class PhysicDestroyCheckDetail extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "审核id") @ApiModelProperty(value = "审核id")
private Long checkId; private Long checkId;
...@@ -34,4 +37,23 @@ public class PhysicDestroyCheckDetail extends BaseVersionEntity { ...@@ -34,4 +37,23 @@ public class PhysicDestroyCheckDetail extends BaseVersionEntity {
@ApiModelProperty(value = "原因") @ApiModelProperty(value = "原因")
private String reason; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -9,7 +12,7 @@ import lombok.Data; ...@@ -9,7 +12,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品专用登记") @ApiModel(description = "药品专用登记")
@TableName("physic_record") @TableName("physic_record")
public class PhysicRecord extends BaseVersionEntity { public class PhysicRecord extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "所属部门ID(科室、药房)") @ApiModelProperty(value = "所属部门ID(科室、药房)")
private Long deptId; private Long deptId;
...@@ -64,4 +67,34 @@ public class PhysicRecord extends BaseVersionEntity { ...@@ -64,4 +67,34 @@ public class PhysicRecord extends BaseVersionEntity {
private String ysUser; private String ysUser;
@ApiModelProperty(value = "复核人") @ApiModelProperty(value = "复核人")
private String fhUser; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -11,7 +14,7 @@ import lombok.Data; ...@@ -11,7 +14,7 @@ import lombok.Data;
@ApiModel(description = "药品专用登记-药库(空安瓿登记)") @ApiModel(description = "药品专用登记-药库(空安瓿登记)")
@TableName("physic_storage_ampoule") @TableName("physic_storage_ampoule")
public class PhysicStorageAmpoule extends BaseVersionEntity { public class PhysicStorageAmpoule extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "药品名称") @ApiModelProperty(value = "药品名称")
private String physicName; private String physicName;
@ApiModelProperty(value = "药品规格") @ApiModelProperty(value = "药品规格")
...@@ -66,4 +69,35 @@ public class PhysicStorageAmpoule extends BaseVersionEntity { ...@@ -66,4 +69,35 @@ public class PhysicStorageAmpoule extends BaseVersionEntity {
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; 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;
}
} }
package com.jmai.physic.entity; package com.jmai.physic.entity;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jmai.sys.entity.BaseVersionEntity; import com.jmai.sys.entity.BaseVersionEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -9,7 +12,7 @@ import lombok.Data; ...@@ -9,7 +12,7 @@ import lombok.Data;
@Data @Data
@ApiModel(description = "药品入库信息") @ApiModel(description = "药品入库信息")
@TableName("physic_warehouse") @TableName("physic_warehouse")
public class PhysicWarehouse extends BaseVersionEntity{ public class PhysicWarehouse extends BaseVersionEntity implements ISignData {
@ApiModelProperty(value = "部门ID") @ApiModelProperty(value = "部门ID")
private Long deptId; private Long deptId;
...@@ -43,4 +46,26 @@ public class PhysicWarehouse extends BaseVersionEntity{ ...@@ -43,4 +46,26 @@ public class PhysicWarehouse extends BaseVersionEntity{
private String fhUser; private String fhUser;
@ApiModelProperty(value = "保管人") @ApiModelProperty(value = "保管人")
private String bgUser; 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;
}
} }
...@@ -155,8 +155,8 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA ...@@ -155,8 +155,8 @@ public class PhysicAmpouleServiceImpl extends AbstractService implements PhysicA
public PhysicAmpoule sign(PhysicAmpouleSignReq physicAmpouleSignReq) { public PhysicAmpoule sign(PhysicAmpouleSignReq physicAmpouleSignReq) {
Boolean finished = false; Boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicAmpouleSignReq.getBase64SourceData(), physicAmpouleSignReq.getPhysicAmpouleId().toString());
PhysicAmpoule ampoule = getInfo(physicAmpouleSignReq.getPhysicAmpouleId()); PhysicAmpoule ampoule = getInfo(physicAmpouleSignReq.getPhysicAmpouleId());
SignResult signResult = cloudsignService.sign(ampoule);
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
if(ampoule.getStatus().equals(0)){ if(ampoule.getStatus().equals(0)){
if(!(RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.JS)|| RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.TH))){ if(!(RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.JS)|| RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.TH))){
......
...@@ -166,8 +166,8 @@ public class PhysicApplyServiceImpl extends AbstractService implements PhysicApp ...@@ -166,8 +166,8 @@ public class PhysicApplyServiceImpl extends AbstractService implements PhysicApp
Boolean finished =false; Boolean finished =false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
SignResult signResult = cloudsignService.sign(physicApplySignReq.getBase64SourceData(), physicApplySignReq.getPhysicApplyId().toString());
PhysicApply physicApply = physicApplyMapper.selectById(physicApplySignReq.getPhysicApplyId()); PhysicApply physicApply = physicApplyMapper.selectById(physicApplySignReq.getPhysicApplyId());
SignResult signResult = cloudsignService.sign(physicApply);
if(physicApply.getStatus().equals(0)){ if(physicApply.getStatus().equals(0)){
if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.LY)){ if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.LY)){
throw new ServiceException("需要领药人权限才可进行签名"); throw new ServiceException("需要领药人权限才可进行签名");
......
...@@ -131,8 +131,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill ...@@ -131,8 +131,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
public PhysicBill sign(PhysicBillSignReq physicBillSignReq) { public PhysicBill sign(PhysicBillSignReq physicBillSignReq) {
Boolean finished = false; Boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicBillSignReq.getBase64SourceData(), physicBillSignReq.getPhysicBillId().toString());
PhysicBill bill = physicBillMapper.selectById(physicBillSignReq.getPhysicBillId()); PhysicBill bill = physicBillMapper.selectById(physicBillSignReq.getPhysicBillId());
SignResult signResult = cloudsignService.sign(bill);
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
if (ObjectUtil.equals(bill.getStatus(), 0)) { if (ObjectUtil.equals(bill.getStatus(), 0)) {
if (!RoleTypeEum.isPass(sysUser.getRoleAsList(), RoleTypeEum.LY)) { if (!RoleTypeEum.isPass(sysUser.getRoleAsList(), RoleTypeEum.LY)) {
...@@ -325,8 +325,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill ...@@ -325,8 +325,8 @@ public class PhysicBillServiceImpl extends AbstractService implements PhysicBill
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
Long currentDeptId = SpringContextUtils.getDeptId(); Long currentDeptId = SpringContextUtils.getDeptId();
SignResult signResult = cloudsignService.sign(req.getBase64SourceData(), req.getHandoverId().toString());
PhysicBillHandover handover = physicBillHandoverMapper.selectById(req.getHandoverId()); PhysicBillHandover handover = physicBillHandoverMapper.selectById(req.getHandoverId());
SignResult signResult = cloudsignService.sign(handover);
if (ObjectUtil.isEmpty(handover)) { if (ObjectUtil.isEmpty(handover)) {
throw new ServiceException("未找到交接单:" + req.getHandoverId()); throw new ServiceException("未找到交接单:" + req.getHandoverId());
} }
......
...@@ -123,8 +123,8 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy ...@@ -123,8 +123,8 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
SignResult signResult = cloudsignService.sign(physicDestroyCheckSignReq.getBase64SourceData(), physicDestroyCheckSignReq.getPhysicDestroyCheckId().toString());
PhysicDestroyCheck physicDestroyCheck = physicDestroyCheckMapper.selectById(physicDestroyCheckSignReq.getPhysicDestroyCheckId()); PhysicDestroyCheck physicDestroyCheck = physicDestroyCheckMapper.selectById(physicDestroyCheckSignReq.getPhysicDestroyCheckId());
SignResult signResult = cloudsignService.sign(physicDestroyCheck);
if(physicDestroyCheck.getStatus().equals(0)){ if(physicDestroyCheck.getStatus().equals(0)){
if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.XH)){ if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.XH)){
throw new ServiceException("需要销毁人权限才可进行签名"); throw new ServiceException("需要销毁人权限才可进行签名");
......
...@@ -64,8 +64,8 @@ public class PhysicDestroyServiceImpl extends AbstractService implements PhysicD ...@@ -64,8 +64,8 @@ public class PhysicDestroyServiceImpl extends AbstractService implements PhysicD
public PhysicDestroy sign(PhysicDestroySignReq physicDestroySignReq) { public PhysicDestroy sign(PhysicDestroySignReq physicDestroySignReq) {
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicDestroySignReq.getBase64SourceData(), physicDestroySignReq.getPhysicDestroyId().toString());
PhysicDestroy physicDestroy = physicDestroyMapper.selectById(physicDestroySignReq.getPhysicDestroyId()); PhysicDestroy physicDestroy = physicDestroyMapper.selectById(physicDestroySignReq.getPhysicDestroyId());
SignResult signResult = cloudsignService.sign(physicDestroy);
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
if(physicDestroy.getStatus().equals(0)){ if(physicDestroy.getStatus().equals(0)){
if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.CZ)){ if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.CZ)){
......
...@@ -154,8 +154,8 @@ public class PhysicRecordServiceImpl extends AbstractService implements PhysicRe ...@@ -154,8 +154,8 @@ public class PhysicRecordServiceImpl extends AbstractService implements PhysicRe
public PhysicRecord sign(PhysicRecordSignReq physicRecordSignReq) { public PhysicRecord sign(PhysicRecordSignReq physicRecordSignReq) {
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicRecordSignReq.getBase64SourceData(), physicRecordSignReq.getPhysicRecordId().toString());
PhysicRecord physicRecord = getInfo(physicRecordSignReq.getPhysicRecordId()); PhysicRecord physicRecord = getInfo(physicRecordSignReq.getPhysicRecordId());
SignResult signResult = cloudsignService.sign(physicRecord);
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
if (ObjectUtil.equals(physicRecord.getStatus(), 0)) { if (ObjectUtil.equals(physicRecord.getStatus(), 0)) {
// 1)发药人签名 // 1)发药人签名
......
...@@ -212,8 +212,8 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements ...@@ -212,8 +212,8 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
public PhysicStorageAmpoule sign(PhysicStorageAmpouleSignReq physicStorageAmpouleSignReq) { public PhysicStorageAmpoule sign(PhysicStorageAmpouleSignReq physicStorageAmpouleSignReq) {
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicStorageAmpouleSignReq.getBase64SourceData(), physicStorageAmpouleSignReq.getPhysicStorageAmpouleId().toString());
PhysicStorageAmpoule ampoule = getInfo(physicStorageAmpouleSignReq.getPhysicStorageAmpouleId()); PhysicStorageAmpoule ampoule = getInfo(physicStorageAmpouleSignReq.getPhysicStorageAmpouleId());
SignResult signResult = cloudsignService.sign(ampoule);
if(ampoule.getType()==2 && ampoule.getDestroyStatus()==1){ if(ampoule.getType()==2 && ampoule.getDestroyStatus()==1){
throw new ServiceException("已销毁记录不需要签名"); throw new ServiceException("已销毁记录不需要签名");
} }
......
...@@ -92,8 +92,8 @@ public class PhysicWarehouseServiceImpl extends AbstractService implements Phys ...@@ -92,8 +92,8 @@ public class PhysicWarehouseServiceImpl extends AbstractService implements Phys
public PhysicWarehouseVO sign(PhysicWarehouseSignReq physicWarehouseSignReq) { public PhysicWarehouseVO sign(PhysicWarehouseSignReq physicWarehouseSignReq) {
boolean finished = false; boolean finished = false;
Long userId = SpringContextUtils.getUserId(); Long userId = SpringContextUtils.getUserId();
SignResult signResult = cloudsignService.sign(physicWarehouseSignReq.getBase64SourceData(), physicWarehouseSignReq.getPhysicWarehouseId().toString());
PhysicWarehouse physicWarehouse = physicWarehouseMapper.selectById(physicWarehouseSignReq.getPhysicWarehouseId()); PhysicWarehouse physicWarehouse = physicWarehouseMapper.selectById(physicWarehouseSignReq.getPhysicWarehouseId());
SignResult signResult = cloudsignService.sign(physicWarehouse);
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
if(physicWarehouse.getStatus().equals(0)){ if(physicWarehouse.getStatus().equals(0)){
if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.YS)){ if(!RoleTypeEum.isPass(sysUser.getRoleAsList(),RoleTypeEum.YS)){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment