公共接口

This commit is contained in:
jiangs 2026-06-04 17:20:02 +08:00
parent 06e87e87fd
commit 38606033a6
31 changed files with 637 additions and 0 deletions

View File

@ -22,6 +22,7 @@ public class DmzdCache {
* @param dictDatas 字典数据列表
*/
public static void setDictCache(String key, List<XkDmzd> dictDatas) {
removeDictCache( key);
SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), dictDatas);
}

View File

@ -0,0 +1,7 @@
package com.czblood.bus.constants;
/**
* 输血日志常量类
*/
public class BloodSysLogConstants {
}

View File

@ -0,0 +1,45 @@
package com.czblood.bus.controller;
import com.czblood.bus.mapper.XkProTransfuseProjectMapper;
import com.czblood.bus.pojo.XkDmzd;
import com.czblood.bus.pojo.XkProTransfuseProject;
import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.common.core.domain.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Api(tags = "公共接口")
@RestController
@RequestMapping("/bus/common")
public class BloodCommonController {
@Resource
private XkProTransfuseProjectMapper xkProTransfuseProjectMapper;
@Resource
private BloodBankUtil bloodBankUtil;
@ApiOperation("获取输血前检验项目")
@PostMapping("/queryLisProject")
public Result queryLisProject(@RequestBody XkProTransfuseProject xkProTransfuseProject){
List<XkProTransfuseProject> lisProjecetList = xkProTransfuseProjectMapper.queryList(xkProTransfuseProject);
return new Result("0","获取数据成功!",lisProjecetList);
}
@ApiOperation("查询字典信息")
@GetMapping("/queryDictData")
public Result queryDictData(String dictType ){
List<XkDmzd> dictCache = bloodBankUtil.getDictCache(dictType);
return new Result("0","获取数据成功!",dictCache);
}
@ApiOperation("根据代码查询单个字典信息")
@GetMapping("/queryDictDataOne")
public Result queryDictDataOne(String dictType,String dictCode){
XkDmzd dictCacheOne = bloodBankUtil.getDictCacheOne(dictType, dictCode);
return new Result("0","获取数据成功!",dictCacheOne);
}
}

View File

@ -0,0 +1,26 @@
package com.czblood.bus.enums;
import com.czblood.bus.pojo.inter.SqdAuditRequest;
public enum BloodInterfaceType {
/**
* 申请单审核
*/
SQD_AUDIT("SQD_AUDIT",SqdAuditRequest.class);
private final String type;
private final Class<?> dataType; // 用 ? 通配符
BloodInterfaceType(String type, Class<?> dataType) {
this.type = type;
this.dataType = dataType;
}
public String getType() {
return type;
}
public Class<?> getDataType() {
return dataType;
}
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkDmzd;
import java.util.List;
public interface XkDmzdMapper {
List<XkDmzd> queryList(XkDmzd xkDmzd);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkPatientInfo;
import java.util.List;
public interface XkPatientInfoMapper {
List<XkPatientInfo> queryList(XkPatientInfo xkPatientInfo);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkProTransfuseProject;
import java.util.List;
public interface XkProTransfuseProjectMapper {
List<XkProTransfuseProject> queryList(XkProTransfuseProject xkProTransfuseProject);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkTransfuseApplyBefore;
import java.util.List;
public interface XkTransfuseApplyBeforeMapper {
List<XkTransfuseApplyBefore> queryList(XkTransfuseApplyBefore xkTransfuseApplyBefore);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
import java.util.List;
public interface XkTransfuseApplyBloodbreedMapper {
List<XkTransfuseApplyBloodbreed> queryList(XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkTransfuseApplyCausalis;
import java.util.List;
public interface XkTransfuseApplyCausalisMapper {
List<XkTransfuseApplyCausalis> queryList(XkTransfuseApplyCausalis xkTransfuseApplyCausalis);
}

View File

@ -0,0 +1,9 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkTransfuseApply;
import java.util.List;
public interface XkTransfuseApplyMapper {
List<XkTransfuseApply> queryList(XkTransfuseApply xkTransfuseApply);
}

View File

@ -0,0 +1,31 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkPatientInfo {
private String hos_id;
private String beinhos_id;
private String patient_name;
private String patient_sex;
private String age;
private Date patient_birthday;
private String apanage;
private String out_sign;
private String abo;
private String rh;
private String transfuse_history;
private String reaction_history;
private String gestation_history;
private String parturition_history;
private String match_history;
private String transplant_history;
private Date last_modified;
private String times;
}

View File

@ -0,0 +1,25 @@
package com.czblood.bus.pojo;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "输血前检查项目")
public class XkProTransfuseProject {
private Integer sid;
private String pro_name;
private String result_type;
private String unit;
private String need;
private String lis_name;
private String max_value;
private String min_value;
private String upload_flag;
private String Pro_Name_All;
private Float ValidTime;
}

View File

@ -0,0 +1,84 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkTransfuseApply {
private String bill_no;
private String hos_id;
private String beinhos_id;
private String beinhos_number;
private String zone_id;
private String patient_bed;
private String casehistory_id;
private String transfuse_history;
private String reaction_history;
private String gestation_history;
private String parturition_history;
private String match_history;
private String transplant_history;
private String dept_id;
private Date apply_date;
private String send_person;
private String charge_sign;
private String input_person;
private Date receive_date;
private String attending_medic;
private String treat_medic;
private String causalis;
private String bank_director;
private String medical_affairs;
private String sample_id;
private Date gather_date;
private String abo_type;
private String rh_type;
private String check_sign;
private String check_explain;
private String bill_stasus;
private String bill_type;
private String apply_medic;
private String diagnoses;
private String intent;
private String apply_type;
private Date use1_date;
private Date use2_date;
private Date use3_date;
private String remark;
private String is_plan;
private String bill_sort;
private String sample_sign;
private String input_dept;
private String send_able;
private Date medic_check_date;
private String check_medic;
private String is_large_use;
private String operation_type;
private String bloodcheck_abnor;
private String abnor_next;
private String agreement_ink;
private String exp1;
private String exp2;
private String exp3;
private String exp4;
private Date last_modified;
private String notify_sign;
private String adm_no;
private BigDecimal Use1_Num;
private BigDecimal Use2_Num;
private BigDecimal Use3_Num;
private String Dept_Type;
private String use_type;
private String Ill_Code;
private String Ops_Name;
private String isemergency;
private String Valid_Flag;
private String notice_yn;
private String his_SerialNo;
}

View File

@ -0,0 +1,22 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkTransfuseApplyApproval {
private String Bill_No;
private String Archiater;
private Date Archiater_CheckTime;
private String Medical_Dept;
private Date Medical_CheckTime;
private String ApplyLevel;
private String Flag;
private BigDecimal SID;
}

View File

@ -0,0 +1,32 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkTransfuseApplyBefore {
private String bill_no;
private String beinhos_id;
private String dept_id;
private String zone_id;
private String agreement_ink;
private BigDecimal blood_loss;
private Date assess_data;
private String assess_person;
private String blood_breed;
private BigDecimal blood_num;
private String unit;
private String intent;
private String diagnoses;
private String patient_bed;
private String anemia;
private String metabolism;
private String cruor;
private String bqgy;
}

View File

@ -0,0 +1,26 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkTransfuseApplyBloodbreed {
private String bill_no;
private String blood_breed;
private BigDecimal blood_num;
private String unit;
private String special_deal;
private BigDecimal onetime_num;
private String remark;
private String replace_bloodbreed;
private String apply_bloodtype;
private BigDecimal ops_bleeding;
private BigDecimal ops_fact_use;
private String intent;
private String causalis;
}

View File

@ -0,0 +1,21 @@
package com.czblood.bus.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class XkTransfuseApplyCausalis {
private String Bill_No;
private String Hos_ID;
private Integer SID;
private String Causalis_Code;
private String Causalis_Type;
private String Causalis_Name;
private String Causalis_Result;
private String Use_Flag;
private String Upload_Flag;
private String Explain;
}

View File

@ -0,0 +1,14 @@
package com.czblood.bus.pojo.inter;
import com.czblood.bus.enums.BloodInterfaceType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BloodInterfaceStr<T> {
public BloodInterfaceType bloodInterfaceType;
public T data;
}

View File

@ -0,0 +1,22 @@
package com.czblood.bus.pojo.inter;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 申请单审核
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SqdAuditRequest {
/**
* 申请单编号
*/
private String applyNo;
/**
* 申请单状态
*/
private String billStatus;
}

View File

@ -1,9 +1,58 @@
package com.czblood.bus.utils;
import com.czblood.bus.cache.DmzdCache;
import com.czblood.bus.mapper.XkDmzdMapper;
import com.czblood.bus.pojo.XkDmzd;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class BloodBankUtil {
@Resource
XkDmzdMapper xkDmzdMapper;
/**
* 根据字典类别获取字典数据
* @param key
* @return
*/
public List<XkDmzd> getDictCache(String key){
List<XkDmzd> dictCache = DmzdCache.getDictCache(key);
//缓存没有命中,从数据库中取值
if(dictCache == null){
XkDmzd xkDmzd = new XkDmzd();
xkDmzd.setWordbook_sign( key);
List<XkDmzd> xkDmzdList = xkDmzdMapper.queryList(xkDmzd);
if(xkDmzdList == null) return null;
//设置缓存
DmzdCache.setDictCache(key,xkDmzdList);
return xkDmzdList;
}
return dictCache;
}
/**
* 根据字典类别和字典编码获取字典数据
* @param dictType
* @param dictCode
* @return
*/
public XkDmzd getDictCacheOne(String dictType,String dictCode){
List<XkDmzd> dictCache = getDictCache(dictType);
if(dictCache == null) return null;
List<XkDmzd> collect = dictCache.stream().filter(xkDmzd -> xkDmzd.getWordbook_code().equals(dictCode)).collect(Collectors.toList());
if(collect.size() > 0) {
return collect.get(0);
}else{
return null;
}
}
}

View File

@ -0,0 +1,67 @@
package com.czblood.bus.utils;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.czblood.bus.enums.BloodInterfaceType;
import com.czblood.bus.pojo.inter.BloodInterfaceStr;
import com.czblood.common.config.RuoYiConfig;
import com.czblood.common.core.domain.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
/**
* 接口调用类
*/
@Slf4j
public class BloodInterfaceUtil {
public Result invokeBloodInterface(BloodInterfaceStr<T> bloodInterfaceStr) {
// BloodInterfaceStr<SqdAuditRequest> sqdAuditRequestBloodInterfaceStr = new BloodInterfaceStr<>();
// sqdAuditRequestBloodInterfaceStr.setBloodInterfaceType(BloodInterfaceType.SQD_AUDIT);
// sqdAuditRequestBloodInterfaceStr.setData(new SqdAuditRequest());
String jsonStr = JSONUtil.toJsonStr(bloodInterfaceStr);
return invokeHttp(jsonStr);
}
/**
* 调用http接口,暂时只考虑这种情况
* @param jsonStr
* @return
*/
private Result invokeHttp(String jsonStr){
String interfaceUrl = RuoYiConfig.getInterfaceUrl();
if(interfaceUrl == null || "".equals(interfaceUrl)) return new Result("-1","没有配置接口地址,请检查interfaceUrl配置项!!!");
String retMsg = "";
try {
HttpRequest httpRequest = HttpRequest.post(interfaceUrl);
httpRequest.header("Content-Type","application/json");
HttpResponse httpResponse = httpRequest.body(jsonStr).execute();
int status = httpResponse.getStatus();
retMsg = httpResponse.body();
if (status != 200) {
log.info("调用http接口失败:"+retMsg);
return new Result("-1","调用http接口失败:"+retMsg);
}
}catch (Exception e){
e.printStackTrace();
log.error("调用lis的http接口出错:",e);
return new Result("-1","调用http接口失败:"+e.getMessage());
}
log.info("调用http接口成功类型:,入参:{}\r\n,出参:{}",jsonStr,retMsg);
String message="";
String resultCode="";
// 检查输入是否为空
if (JSONUtil.isJson(retMsg)) {
JSONObject json = JSONUtil.parseObj(retMsg);
// 使用安全的方式获取值
message = json.getStr("message");
resultCode= json.getStr("resultCode");
} else {
// 处理非JSON格式的情况
}
return new Result(resultCode,"调用接口成功!",message);
}
}

View File

@ -0,0 +1,8 @@
<?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.czblood.bus.mapper.XkDmzdMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkDmzd">
select * from xk_dmzd where wordbook_sign=#{wordbook_sign}
</select>
</mapper>

View File

@ -0,0 +1,11 @@
<?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.czblood.bus.mapper.XkPatientInfoMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkPatientInfo">
select * from xk_patient_info
<where>
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,11 @@
<?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.czblood.bus.mapper.XkProTransfuseProjectMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkProTransfuseProject">
select * from xk_pro_transfuse_project
<where>
<if test="need != null and need != ''">and need = #{need}</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,13 @@
<?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.czblood.bus.mapper.XkTransfuseApplyBeforeMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyBefore">
select * from xk_transfuse_apply_before
<where>
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,9 @@
<?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.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyBloodbreed">
select * from xk_transfuse_apply_bloodbreed where bill_no = #{bill_no}
<if test="blood_breed != null and blood_breed != ''">and blood_breed = #{blood_breed}</if>
</select>
</mapper>

View File

@ -0,0 +1,9 @@
<?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.czblood.bus.mapper.XkTransfuseApplyCausalisMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyCausalis">
select * from xk_transfuse_apply_causalis where Bill_No = #{bill_no}
<if test="SID != null">and sid = #{SID}</if>
</select>
</mapper>

View File

@ -0,0 +1,12 @@
<?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.czblood.bus.mapper.XkTransfuseApplyMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApply">
select * from xk_transfuse_apply
<where>
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
<if test="beinhos_id != null and beinhos_id != ''">and beinhos_id = #{beinhos_id}</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,13 @@
package com.czblood.busDoctor.controller;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "输血前评估")
@RestController
@RequestMapping("/doctor/applyBefore")
@Slf4j
public class TransfuseApplyBeforeController {
}

View File

@ -0,0 +1,16 @@
package com.czblood.busDoctor.controller;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 输血申请
*/
@Api(tags = "输血申请")
@RestController
@RequestMapping("/doctor/apply")
@Slf4j
public class TransfuseApplyController {
}