输血申请单保存业务,审核业务

This commit is contained in:
jiangs 2026-07-07 11:55:02 +08:00
parent fa0fc0d361
commit 67c19dd9a2
26 changed files with 462 additions and 26 deletions

View File

@ -13,39 +13,39 @@ import java.util.Collection;
public class OptionCache {
/**
* 设置字典缓存
* 设置参数缓存
*
* @param key 参数键
* @param xkParameter 参数值
*/
public static void setDictCache(String key, XkParameter xkParameter) {
removeDictCache( key);
public static void setOptCache(String key, XkParameter xkParameter) {
removeOptCache( key);
SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), xkParameter);
}
/**
* 获取字典缓存
* 获取参数缓存
*
* @param key 参数键
* @return dictDatas 字典数据列表
* @return 参数值
*/
public static XkParameter getOptCache(String key) {
return SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key));
}
/**
* 删除指定字典缓存
* 删除指定参数缓存
*
* @param key 字典键
* @param key 参数键
*/
public static void removeDictCache(String key) {
public static void removeOptCache(String key) {
SpringUtils.getBean(RedisCache.class).deleteObject(getCacheKey(key));
}
/**
* 清空字典缓存
* 清空参数缓存
*/
public static void clearDictCache() {
public static void clearOptCache() {
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.XK_PARAMETER_KEY + "*");
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}

View File

@ -24,4 +24,8 @@ public class BloodInterfaceTypeConstants {
* 使用his接口验证密码
*/
public static final String HIS_USE_PASSWORD = "HIS_USE_PASSWORD";
/**
* 获取lis血型结果
*/
public static final String GET_TEST_RESULT_BLOOD_TYPE = "GET_TEST_RESULT_BLOOD_TYPE";
}

View File

@ -2,11 +2,13 @@ package com.czblood.bus.controller;
import com.czblood.bus.mapper.XkProTransfuseProjectMapper;
import com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper;
import com.czblood.bus.mapper.xtwh.XkXtwhOperationMapper;
import com.czblood.bus.pojo.*;
import com.czblood.bus.pojo.inter.HisUsePasswordRequest;
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
import com.czblood.bus.pojo.xtwh.XkDmzd;
import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose;
import com.czblood.bus.pojo.xtwh.XkXtwhOperation;
import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.bus.utils.BloodInterfaceUtil;
import com.czblood.common.core.controller.BaseController;
@ -14,6 +16,7 @@ import com.czblood.common.core.domain.Result;
import com.czblood.common.core.domain.entity.SysUser;
import com.czblood.common.core.page.TableDataInfo;
import com.czblood.common.utils.SecurityUtils;
import com.czblood.system.mapper.SysUserMapper;
import com.czblood.system.util.CommonUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -35,6 +38,10 @@ public class BloodCommonController extends BaseController {
CommonUtil commonUtil;
@Resource
XkXtwhIllDiagnoseMapper xkXtwhIllDiagnoseMapper;
@Resource
XkXtwhOperationMapper xkXtwhOperationMapper;
@Resource
SysUserMapper sysUserMapper;
@ApiOperation("获取输血前检验项目")
@PostMapping("/queryLisProject")
@ -109,6 +116,22 @@ public class BloodCommonController extends BaseController {
return new Result("0","校验成功!");
}
@ApiOperation("查询手术字典")
@GetMapping("/queryOperation")
public TableDataInfo queryOperation(XkXtwhOperation xkXtwhOperation){
startPage();
List<XkXtwhOperation> xkXtwhOperationList = xkXtwhOperationMapper.queryList(xkXtwhOperation);
return getDataTable(xkXtwhOperationList);
}
@ApiOperation("获取员工数据")
@GetMapping("/queryUserInfo")
public TableDataInfo queryUserInfo(SysUser sysUser){
List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser);
return getDataTable(sysUserList);
}
// @ApiOperation("测试接口")
// @GetMapping("/test01")
// public Result test01(String billNo){

View File

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

View File

@ -148,4 +148,6 @@ public class XkTransfuseApply {
private String operation_level;
@ApiModelProperty("身份证号")
private String card_no;
@ApiModelProperty("是否需要做血型复核(A,B需要,C申请单无交叉配血需求时不做血型复查)")
private String need_check;
}

View File

@ -0,0 +1,20 @@
package com.czblood.bus.pojo.inter;
import cn.hutool.json.JSONUtil;
import com.czblood.bus.constants.BloodInterfaceTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetTestResultBloodTypeRequest implements BloodInterfaceType {
private final String method = BloodInterfaceTypeConstants.GET_TEST_RESULT;
private String beinhos_id;
@Override
public String serializationJson() {
return JSONUtil.toJsonStr( this);
}
}

View File

@ -0,0 +1,17 @@
package com.czblood.bus.pojo.xtwh;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api(tags = "手术字典")
public class XkXtwhOperation {
private String icd_code;
private String oper_name;
private String oper_level;
private String zjf;
}

View File

@ -133,6 +133,12 @@ public class BloodExtInterfaceService implements ExtSystemInterface {
sysDept.setStatus(useSign);
sysDept.setCreateBy("admin");
sysDept.setCreateTime(bloodBankUtil.getCurrentTimeDate());
//科室类别,001 临床科室 002 输血科室
if(xkDmzd.getWordbook_name().contains("输血科")){
sysDept.setDeptType("002");
}else{
sysDept.setDeptType("001");
}
sysDeptMapper.insertDept(sysDept);
j++;
}

View File

@ -109,6 +109,7 @@ public class BloodBankUtil {
if(parameterCache == null){
XkParameter xkParameter = xkParameterMapper.queryOne(parameterCode);
if(xkParameter == null) return "";
OptionCache.setOptCache(parameterCode, xkParameter);
return BloodBankUtil.isBank(xkParameter.getParameter_value());
}else{
return BloodBankUtil.isBank(parameterCache.getParameter_value());

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.xtwh.XkXtwhOperationMapper">
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkXtwhOperation">
select * from xk_xtwh_operation
<where>
<if test="icd_code != null and icd_code != ''">and icd_code = #{icd_code}</if>
<if test="oper_name != null and oper_name != ''">and oper_name like '%'+ #{oper_name} +'%' </if>
</where>
</select>
</mapper>

View File

@ -7,6 +7,7 @@ import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
import com.czblood.busDoctor.pojo.VO.ApplyCheckVO;
import com.czblood.busDoctor.pojo.VO.CheckMedicVO;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
import com.czblood.busDoctor.service.TransfuseApplyService;
import com.czblood.common.annotation.Log;
@ -118,10 +119,17 @@ public class TransfuseApplyController extends BaseController {
}
@Log(title = BloodSysLogConstants.LOG_TYPE_TRANSFUSE_APPLY, businessType = BusinessType.CHECK)
@ApiOperation("申请单审核")
@ApiOperation("申请单审核前校验")
@PostMapping("/applyCheck")
public Result applyCheck(ApplyCheckVO applyCheckVO){
return transfuseApplyService.applyCheck(applyCheckVO);
public Result applyPreCheck(ApplyCheckVO applyCheckVO){
applyCheckVO.setUserId(getUsername());
return transfuseApplyService.applyPreCheck(applyCheckVO);
}
@ApiOperation("申请单审核结果填写")
@PostMapping("/checkExplain")
public Result checkExplain(ExplainVO explainVO){
return transfuseApplyService.checkExplain(explainVO);
}

View File

@ -0,0 +1,38 @@
package com.czblood.busDoctor.controller;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.busDoctor.service.TransfuseCheckExplainService;
import com.czblood.common.core.domain.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "审核意见")
@RestController
@RequestMapping("/bus/doctor/checkExplain")
@Slf4j
public class TransfuseCheckExplainController {
@Resource
TransfuseCheckExplainService transfuseCheckExplainService;
@ApiOperation("获取输血指征数据")
@GetMapping("/queryCausailsList")
public Result queryCausailsList(String billNo){
return transfuseCheckExplainService.queryCausailsList(billNo);
}
@ApiOperation("审核意见")
@PostMapping("/checkExplain")
public Result checkExplain(ExplainVO explainVO){
return transfuseCheckExplainService.checkExplain(explainVO);
}
}

View File

@ -1,6 +1,7 @@
package com.czblood.busDoctor.mapper;
import com.czblood.bus.pojo.XkCheckBloodtype;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
import org.apache.ibatis.annotations.Param;
@ -18,4 +19,6 @@ public interface TransfuseApplyMapper {
String checkSameBloodType(@Param("beinhos_id") String beinhos_id,@Param("blood_breed") String blood_breed);
List<Map<String,Object>> checkSelfBlood(@Param("beinhos_id") String beinhos_id);
BigDecimal queryApplyTransTotalNum(@Param("beinhos_id") String beinhos_id,@Param("stime") Date stime, @Param("etime") Date etime,@Param("bloodKindList") List<String> bloodKindList,@Param("billNo") String billNo);
long queryBillStatusCount(String beinhos_id);
XkCheckBloodtype queryCheckDate(String beinhos_id);
}

View File

@ -0,0 +1,7 @@
package com.czblood.busDoctor.mapper;
import com.czblood.bus.pojo.XkCheckBloodtype;
public interface TransfuseCheckExplainMapper {
XkCheckBloodtype queryCheckDate(String beinhos_id);
}

View File

@ -1,12 +1,23 @@
package com.czblood.busDoctor.pojo.VO;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ApplyCheckVO {
@NotBlank(message = "单据号不能为空!")
private String billNo;
private String userId;
@NotBlank(message = "上级医生不能为空!")
private String checkMedic;
@NotBlank(message = "审核时间不能为空!")
private Date checkDate;
private TransfuseApplyInfoOne transfuseApplyInfoOne;
}

View File

@ -0,0 +1,26 @@
package com.czblood.busDoctor.pojo.VO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ExplainVO {
@ApiModelProperty("上次血型复核结果")
private String checkResult;
@ApiModelProperty("审核意见")
private String checkExplain;
@ApiModelProperty("是否需要血型复核")
private String needCheck;
@ApiModelProperty("申请单号")
private String applyNo;
@ApiModelProperty("输血是否合理")
private String validFlag;
@ApiModelProperty("上次血型复核时间")
private String checkDateText;
@ApiModelProperty("申请单类别")
private String billSort;
}

View File

@ -4,6 +4,7 @@ import com.czblood.bus.pojo.XkTransfuseApply;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
import com.czblood.busDoctor.pojo.VO.ApplyCheckVO;
import com.czblood.busDoctor.pojo.VO.CheckMedicVO;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
import com.czblood.common.core.domain.Result;
@ -26,5 +27,7 @@ public interface TransfuseApplyService {
Result applyMedicCheck(CheckMedicVO checkMedicVO);
Result applyCheck(ApplyCheckVO applyCheckVO);
Result applyPreCheck(ApplyCheckVO applyCheckVO);
Result checkExplain(ExplainVO explainVO);
}

View File

@ -0,0 +1,10 @@
package com.czblood.busDoctor.service;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.common.core.domain.Result;
public interface TransfuseCheckExplainService {
Result queryCausailsList(String billNo);
Result checkExplain(ExplainVO explainVO);
}

View File

@ -1,14 +1,18 @@
package com.czblood.busDoctor.service.impl;
import cn.hutool.core.date.DateUtil;
import com.czblood.bus.mapper.*;
import com.czblood.bus.pojo.*;
import com.czblood.bus.pojo.inter.GetTestResultBloodTypeRequest;
import com.czblood.bus.pojo.xtwh.XkDmzd;
import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.bus.utils.BloodInterfaceUtil;
import com.czblood.busDoctor.mapper.TransfuseApplyMapper;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
import com.czblood.busDoctor.pojo.VO.ApplyCheckVO;
import com.czblood.busDoctor.pojo.VO.CheckMedicVO;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
import com.czblood.busDoctor.service.TransfuseApplyService;
import com.czblood.busDoctor.utils.TransfuseApplyUtil;
@ -19,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -86,8 +91,8 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
private Result getTransfuseApplyInfo(XkTransfuseApplyBefore xkTransfuseApplyBefore,XkPatientInfo xkPatientInfo,String userId) {
String beinhosId = xkTransfuseApplyBefore.getBeinhos_id();
TransfuseApplyInfoOne transfuseApplyInfoOne = new TransfuseApplyInfoOne();
XkTransfuseApply xkTransfuseApply = transfuseApplyInfoOne.getXkTransfuseApply();
XkPatientInfo xkPatientInfoSet = transfuseApplyInfoOne.getXkPatientInfo();
XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
XkPatientInfo xkPatientInfoSet = new XkPatientInfo();
xkTransfuseApply.setBeinhos_id(beinhosId);
xkTransfuseApply.setHos_id(xkTransfuseApplyBefore.getHos_id());
xkTransfuseApply.setBeinhos_number(xkPatientInfo.getBeinhos_number());
@ -124,6 +129,8 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
xkPatientInfoSet.setPatient_sex(xkPatientInfo.getPatient_sex());
xkPatientInfoSet.setAge(xkPatientInfo.getAge());
xkPatientInfoSet.setApanage(xkPatientInfo.getApanage());
transfuseApplyInfoOne.setXkTransfuseApply(xkTransfuseApply);
transfuseApplyInfoOne.setXkPatientInfo(xkPatientInfoSet);
return new Result("0","操作成功",transfuseApplyInfoOne);
}
@ -385,14 +392,17 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
}
/**
* 输血申请单审核
* 输血申请单审核前校验
* @param applyCheckVO
* @return
*/
@Override
public Result applyCheck(ApplyCheckVO applyCheckVO) {
public Result applyPreCheck(ApplyCheckVO applyCheckVO) {
String billNo = applyCheckVO.getBillNo();
String userId = applyCheckVO.getUserId();
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo);
String billStasus = xkTransfuseApply.getBill_stasus();
switch (billStasus){
case "B":
@ -407,6 +417,101 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
return new Result("-1","该单据已发血,不允许重复审核!");
}
SysUser userInfo = bloodBankUtil.getUserInfo(userId);
String deptType = userInfo.getDept().getDeptType();
if(deptType.equals("001")){
//临床科室,代表上级医生审核
CheckMedicVO checkMedicVO = new CheckMedicVO();
checkMedicVO.setBillNo(billNo);
checkMedicVO.setCheckMedic(applyCheckVO.getCheckMedic());
checkMedicVO.setCheckDate(applyCheckVO.getCheckDate());
return applyMedicCheck(checkMedicVO);
}
/**
* 下面是输血科审核的逻辑
*/
String applyType = xkTransfuseApply.getApply_type();
XkDmzd sqlxDictOne = bloodBankUtil.getDictCacheOne("sqlx", applyType);
String exp2 = BloodBankUtil.isBank(sqlxDictOne.getExp2());
//是否使用用血审批控制
String sfsyyxsp = bloodBankUtil.getParameterValue("SFSYYXSP");
//不是抢救用血的类型,就需要判断是否是大量用血的标准,\
if(!exp2.equals("Y") && !sfsyyxsp.equals("Y")){
if(xkTransfuseApplyApproval != null){
String applyLevel = xkTransfuseApplyApproval.getApplyLevel();
String flag = BloodBankUtil.isBank(xkTransfuseApplyApproval.getFlag());
String archiater = xkTransfuseApplyApproval.getArchiater();
String medicalDept = BloodBankUtil.isBank(xkTransfuseApplyApproval.getMedical_Dept());
if(applyLevel.equals("2") && flag.equals("N")) return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行科室主任核准,暂不能审核,请到(大量用血申请)菜单进行审核!");
if(applyLevel.equals("3") && flag.equals("N")){
if(archiater.equals("")){
return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行科室主任及医务部核准,暂不能审核,请到(大量用血申请)菜单进行审核!");
}else if(medicalDept.equals("")){
return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行医务部审批,暂不能审核,请到(大量用血申请)菜单进行审核!");
}
}
}
}
String sqdshpdxx = bloodBankUtil.getParameterValue("SQDSHPDXX");
if(sqdshpdxx.equals("Y")){
//调用lis接口,获取血型结果
GetTestResultBloodTypeRequest getTestResultBloodTypeRequest = new GetTestResultBloodTypeRequest();
getTestResultBloodTypeRequest.setBeinhos_id(xkTransfuseApply.getBeinhos_id());
Result result = BloodInterfaceUtil.invokeBloodInterface(getTestResultBloodTypeRequest);
if(!result.getCode().equals("0")) return result;
}
String billSort = transfuseApplyUtil.checkBillSort(xkTransfuseApplyBloodbreedList, xkTransfuseApply.getBeinhos_id());
ExplainVO explainVO = new ExplainVO();
explainVO.setCheckResult(xkTransfuseApply.getCheck_explain());
explainVO.setCheckExplain(xkTransfuseApply.getRemark());
explainVO.setBillSort(billSort);
explainVO.setApplyNo(xkTransfuseApply.getBill_no());
explainVO.setValidFlag(xkTransfuseApply.getValid_Flag());
int i = transfuseApplyMapper.queryXkCheckBloodtypeCount(xkTransfuseApply.getBeinhos_id());
String msg = "";
String needCheck = "";
if(i > 0) msg ="该患者的历史血型复核为亚型,请注意!";
/**
* 是否需要做血型复核
*/
//申请单无交叉配血需求时不做血型复查,Y是,N否!
String sqxwpxbzxx = bloodBankUtil.getParameterValue("SQXWPXBZXX");
if(sqxwpxbzxx.equals("Y") && explainVO.getNeedCheck().equals("A")) explainVO.setNeedCheck("C");
//上次血型复核时间
XkCheckBloodtype xkCheckBloodtype = transfuseApplyMapper.queryCheckDate(xkTransfuseApply.getBeinhos_id());
//上次复核三天前的时间
Date threeDayBefore = null;
if(xkCheckBloodtype != null){
Date testDate = xkCheckBloodtype.getTest_date();
threeDayBefore = DateUtil.offsetDay(xkCheckBloodtype.getTest_date(), 3);
if(testDate != null) explainVO.setCheckDateText("血型复核时间:"+ DateUtil.format(testDate,"yyyy-MM-dd HH:mm:ss"));
}
if(explainVO.getNeedCheck().equals("A") || explainVO.getNeedCheck().equals("B")){
needCheck = "Y"; //需要做血型复核
}else{
needCheck = "N"; //不需要做血型复核
}
if(explainVO.getNeedCheck().equals("B")){
if(xkCheckBloodtype == null){ //没有做过血型鉴定的,必须要做
needCheck = "Y";
}else if(DateUtil.compare(bloodBankUtil.getCurrentTimeDate(),threeDayBefore) > 0){ //之前做的血型鉴定的结果,超过了三天,也需要重新再做
needCheck = "Y";
}
}else{
needCheck = "N";
}
explainVO.setNeedCheck(needCheck);
if(!msg.equals("")){
return new Result("1",msg,explainVO);
}else{
return new Result("0","校验成功!",explainVO);
}
}
@Override
public Result checkExplain(ExplainVO explainVO) {
return null;
}

View File

@ -0,0 +1,62 @@
package com.czblood.busDoctor.service.impl;
import com.czblood.bus.mapper.XkTransfuseApplyCausalisMapper;
import com.czblood.bus.pojo.XkTransfuseApplyCausalis;
import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.busDoctor.pojo.VO.ExplainVO;
import com.czblood.busDoctor.service.TransfuseCheckExplainService;
import com.czblood.common.core.domain.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
@Slf4j
public class TransfuseCheckExplainServiceImpl implements TransfuseCheckExplainService {
@Resource
XkTransfuseApplyCausalisMapper xkTransfuseApplyCausalisMapper;
@Resource
BloodBankUtil bloodBankUtil;
@Override
public Result queryCausailsList(String billNo) {
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList = xkTransfuseApplyCausalisMapper.queryListByBillNo(billNo);
return new Result("0","查询成功",xkTransfuseApplyCausalisList);
}
@Override
public Result checkExplain(ExplainVO explainVO) {
String billSort = explainVO.getBillSort();
String billSortTemp = "";
String needCheck = explainVO.getNeedCheck();
if(billSort.equals("A") || billSort.equals("C")){
if(needCheck.equals("Y")){
billSortTemp = "A";
}else{
billSortTemp = "C";
}
}else if(billSort.equals("B")){
if(needCheck.equals("Y")){
billSortTemp = "B";
}else{
billSortTemp = "D";
}
}
String tmsfzsxshsc = bloodBankUtil.getParameterValue("TMSFZSXSHSC");
String ixxfh = "";
if (tmsfzsxshsc.equals("Y")) {
if(needCheck.equals("Y")){
ixxfh = "1";
}else{
ixxfh = "0";
}
}
return null;
}
}

View File

@ -304,4 +304,28 @@ public class TransfuseApplyUtil {
xkTransfuseApplyApprovalMapper.insert(xkTransfuseApplyApproval);
}
public String checkBillSort(List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList,String beinhos_id){
if(xkTransfuseApplyBloodbreedList.isEmpty()) return "";
//循环取血液品种中的bloodbreed,只要其中有一个需要进行配血,就算需要配血
boolean isMatch = false;
String sort = "";
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed);
if(xkBloodBreed.getIs_match().equals("Y")) {
isMatch = true;
break;
}
}
long l = transfuseApplyMapper.queryBillStatusCount(beinhos_id);
if(isMatch){
sort = "B";
}else if(!isMatch && l > 0){
sort = "C";
}else if(!isMatch && l == 0){
sort = "A";
}
return sort;
}
}

View File

@ -134,7 +134,7 @@
select breed_code
from xk_blood_breed
where blood_kind ='0004' ) and
t1.bill_no =t2.bill_no;
t1.bill_no =t2.bill_no and t1.hos_id = #{hos_id};
</select>
<select id="checkSelfBlood" resultType="java.util.Map">
SELECT xk_blood_breed.breed_name,
@ -151,7 +151,7 @@
( xk_gather_main.apply_no = xk_transfuse_apply.bill_no ) and
( ( xk_blood_info.blood_sort = 'Z' ) AND
( xk_blood_info.blood_status = '1' ) AND
( xk_transfuse_apply.beinhos_id = #{beinhos_id} ) )
( xk_transfuse_apply.beinhos_id = #{beinhos_id} ) ) and xk_transfuse_apply.hos_id = #{hos_id}
group by xk_blood_breed.breed_name,xk_blood_info.unit
</select>
@ -163,7 +163,7 @@
k.blood_kind =b.blood_breed AND
t.blood_breed =k.breed_code AND
<![CDATA[a.bill_stasus <> 'Z' and]]>
a.apply_date Between #{stime} AND #{etime}
a.apply_date Between #{stime} AND #{etime} and a.hos_id = #{hos_id}
<if test="billNo != null and billNo != ''"><![CDATA[and a.bill_no <> #{billNo}]]></if>
<if test="bloodKindList != null and bloodKindList.size() > 0">
and k.blood_kind in
@ -172,4 +172,17 @@
</foreach>
</if>
</select>
<select id="queryBillStatusCount" resultType="java.lang.Long">
SELECT Count ( *) FROM xk_transfuse_apply
Where xk_transfuse_apply.beinhos_id = #{beinhos_id} And
( xk_transfuse_apply.bill_stasus ='D' OR
xk_transfuse_apply.bill_stasus ='W' OR
xk_transfuse_apply.bill_stasus ='S' OR
xk_transfuse_apply.bill_stasus ='SF' ) and xk_transfuse_apply.hos_id = #{hos_id}
</select>
<select id="queryCheckDate" resultType="com.czblood.bus.pojo.XkCheckBloodtype">
SELECT * FROM xk_check_bloodtype
<![CDATA[ Where Beinhos_id = #{beinhos_id} and isnull(remark,'')<>'系统生成' Order By test_date Desc;]]>
</select>
</mapper>

View File

@ -0,0 +1,10 @@
<?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.busDoctor.mapper.TransfuseCheckExplainMapper">
<select id="queryCheckDate" resultType="com.czblood.bus.pojo.XkCheckBloodtype">
SELECT * FROM xk_check_bloodtype
<![CDATA[ Where Beinhos_id = #{beinhos_id} and isnull(remark,'')<>'系统生成' Order By test_date Desc;]]>
</select>
</mapper>

View File

@ -58,10 +58,19 @@ public class SysDept extends BaseEntity
private String deptCodeOld;
private String hos_id;
private String deptType;
/** 子部门 */
private List<SysDept> children = new ArrayList<SysDept>();
public String getDeptType() {
return deptType;
}
public void setDeptType(String deptType) {
this.deptType = deptType;
}
public String getDeptCodeOld() {
return deptCodeOld;
}
@ -229,9 +238,10 @@ public class SysDept extends BaseEntity
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("deptCode", getDeptCode())
.append("hos_id", getHos_id())
.append("deptCodeOld", getDeptCodeOld())
.append("deptCode", getDeptCode())
.append("hos_id", getHos_id())
.append("deptCodeOld", getDeptCodeOld())
.append("deptType", getDeptType())
.toString();
}
}

View File

@ -21,11 +21,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="deptType" column="dept_type" />
<result property="hos_id" column="hos_id" />
</resultMap>
<sql id="selectDeptVo">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time ,d.dept_code,d.hos_id
,d.dept_type
from sys_dept d
</sql>
@ -65,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,d.dept_code,d.hos_id,
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
(select dept_name from sys_dept where dept_id = d.parent_id) parent_name,d.dept_type
from sys_dept d
where d.dept_id = #{deptId}
</select>
@ -89,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="checkDeptNameUnique" resultMap="SysDeptResult">
select top 1 d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time,d.hos_id
,d.dept_type
from sys_dept d
where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0'
</select>
@ -105,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">status,</if>
<if test="deptCode != null and deptCode != ''">dept_code,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="deptType != null and deptType != ''">dept_type,</if>
create_time,hos_id
)values(
<if test="parentId != null and parentId != 0">#{parentId},</if>
@ -117,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">#{status},</if>
<if test="deptCode != null and deptCode != ''">#{deptCode},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="deptType != null and deptType != ''">#{deptType},</if>
getdate(),#{hos_id}
)
</insert>
@ -134,7 +139,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="email != null">email = #{email},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="hos_id != null and hos_id != ''">hos_id = #{hos_id},</if>
<if test="hos_id != null and hos_id != ''">hos_id = #{hos_id},</if>
<if test="deptType != null and deptType != ''">dept_type = #{deptType},</if>
update_time = getdate()
</set>
where dept_id = #{deptId}

View File

@ -488,3 +488,9 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_a
ALTER TABLE xk_transfuse_apply_causalis ADD CONSTRAINT PK_xk_transfuse_apply_causalis PRIMARY KEY CLUSTERED (bill_no,Causalis_Code);
END
GO
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_dept' AND COLUMN_NAME = 'dept_type')
begin
alter table sys_dept add dept_type varchar(10)
end
go