交叉配血,血型复核修改
This commit is contained in:
parent
ebb6676687
commit
88d214bc24
@ -0,0 +1,10 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkInstorageDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface XkInstorageDetailMapper {
|
||||
List<XkInstorageDetail> queryByBillNo(String bill_no);
|
||||
List<XkInstorageDetail> queryByBloodNo(String blood_no,String product_no);
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkInstorageMain;
|
||||
|
||||
public interface XkInstorageMainMapper {
|
||||
XkInstorageMain queryOneByBillNo(String bill_no);
|
||||
}
|
||||
@ -58,11 +58,13 @@ public class XkCheckBloodtype {
|
||||
private String need_match;
|
||||
@ApiModelProperty("单据类别")
|
||||
private String bill_sort;
|
||||
@ApiModelProperty("单据状态")
|
||||
@ApiModelProperty("单据状态 A初登,B已配血,C已发血")
|
||||
private String bill_status;
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
private String Sub_Blood;
|
||||
private String bz1;
|
||||
private String hos_id;
|
||||
@ApiModelProperty("血小板抗体检测")
|
||||
private String plt_test;
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package com.czblood.bus.pojo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel("血液入库明细")
|
||||
public class XkInstorageDetail {
|
||||
private String bill_no;
|
||||
private Integer sid;
|
||||
private String blood_no;
|
||||
private BigDecimal price;
|
||||
private String remark;
|
||||
private String check_abo;
|
||||
private String check_rh;
|
||||
private String check_person;
|
||||
private Date check_date;
|
||||
private String product_no;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.czblood.bus.pojo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel("血液入库主表")
|
||||
public class XkInstorageMain {
|
||||
private String bill_no;
|
||||
private String org;
|
||||
private String out_no;
|
||||
private Date out_date;
|
||||
private Date occur_date;
|
||||
private String handle_person;
|
||||
private String stor_mode;
|
||||
private BigDecimal total_money;
|
||||
private String remark;
|
||||
private String input_person;
|
||||
private Date input_date;
|
||||
private String book_no;
|
||||
private String check_sign;
|
||||
}
|
||||
@ -30,6 +30,7 @@ public class XkTransfuseApplyBloodbreed {
|
||||
private String replace_bloodbreed;
|
||||
private String apply_bloodtype;
|
||||
private BigDecimal ops_bleeding;
|
||||
@ApiModelProperty("实际用血量")
|
||||
private BigDecimal ops_fact_use;
|
||||
@ApiModelProperty("输血目的")
|
||||
private String intent;
|
||||
|
||||
@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import com.czblood.bus.cache.DmzdCache;
|
||||
import com.czblood.bus.cache.OptionCache;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.XkBloodInfo;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkParameter;
|
||||
@ -38,7 +39,7 @@ public class BloodBankUtil {
|
||||
@Resource
|
||||
SysUserMapper sysUserMapper;
|
||||
@Resource
|
||||
XkBloodApplyTransMapper xkBloodApplyTransMapper;
|
||||
XkBloodInfoMapper xkBloodInfoMapper;
|
||||
|
||||
|
||||
/**
|
||||
@ -178,4 +179,8 @@ public class BloodBankUtil {
|
||||
return applyNum.divide(applyTransNum,2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
public XkBloodInfo queryBloodInfoOne(String bloodNo,String productNo){
|
||||
return xkBloodInfoMapper.queryOne(bloodNo, productNo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="Sub_Blood != null">Sub_Blood,</if>
|
||||
<if test="bz1 != null">bz1,</if>
|
||||
<if test="plt_test != null">plt_test,</if>
|
||||
hos_id,bill_no,apply_no,beinhos_id,patient_name,dept_id,check_abo,check_fabo,affirm_abo
|
||||
)values (
|
||||
<if test="check_rh != null">#{check_rh},</if>
|
||||
@ -42,6 +43,7 @@
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="Sub_Blood != null">#{Sub_Blood},</if>
|
||||
<if test="bz1 != null">#{bz1},</if>
|
||||
<if test="plt_test != null">#{plt_test},</if>
|
||||
#{hos_id},#{bill_no},#{apply_no},#{beinhos_id},#{patient_name},#{dept_id},#{check_abo},#{check_fabo},#{affirm_abo})
|
||||
</insert>
|
||||
<delete id="delete">
|
||||
|
||||
@ -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.XkInstorageDetailMapper">
|
||||
|
||||
<select id="queryByBillNo" resultType="com.czblood.bus.pojo.XkInstorageDetail">
|
||||
SELECT * FROM xk_instorage_detail WHERE bill_no = #{bill_no}
|
||||
</select>
|
||||
<select id="queryByBloodNo" resultType="com.czblood.bus.pojo.XkInstorageDetail">
|
||||
select * from xk_instorage_detail where blood_no = #{blood_no} and product_no = #{product_no}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -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.XkInstorageMainMapper">
|
||||
<select id="queryOneByBillNo" resultType="com.czblood.bus.pojo.XkInstorageMain">
|
||||
SELECT * FROM xk_instorage_main WHERE bill_no = #{bill_no}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -1,6 +1,7 @@
|
||||
package com.czblood.busBloodbank.controller;
|
||||
|
||||
import com.czblood.bus.constants.BloodSysLogConstants;
|
||||
import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
|
||||
import com.czblood.busBloodbank.service.CheckBloodTypeService;
|
||||
@ -11,6 +12,7 @@ import com.czblood.common.core.page.TableDataInfo;
|
||||
import com.czblood.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -59,6 +61,18 @@ public class CheckBloodTypeController extends BaseController {
|
||||
return getDataTable(mapList);
|
||||
}
|
||||
|
||||
@ApiOperation("检索血型复核记录")
|
||||
@GetMapping("/queryList")
|
||||
public Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO){
|
||||
return checkBloodTypeService.queryList(checkBloodTypeListQueryVO);
|
||||
}
|
||||
|
||||
@ApiOperation("查询单个血型复核单据详情")
|
||||
@GetMapping("/queryOneInfo")
|
||||
public Result queryOneInfo(@Parameter(description = "血型复核单据编号") String billNo, @Parameter(description = "申请编号") String applyNo){
|
||||
return checkBloodTypeService.queryOneInfo(billNo,applyNo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.czblood.busBloodbank.controller;
|
||||
|
||||
import com.czblood.bus.mapper.XkBloodInfoMapper;
|
||||
import com.czblood.bus.pojo.XkBloodInfo;
|
||||
import com.czblood.busBloodbank.service.MatchBloodService;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -30,9 +32,16 @@ public class MatchBloodController {
|
||||
return matchBloodService.queryWaitInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 先调用公共血液信息,确定某一条血液信息之后,再调用此接口
|
||||
* 前端:录入血液的时候,要判断血液是否已经录入,有若干血液提示需要前端写
|
||||
* @param bloodNo
|
||||
* @param productNo
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("获取血液信息")
|
||||
@GetMapping("/getBloodInfo")
|
||||
public Result getBloodInfo(){
|
||||
return null;
|
||||
@GetMapping("/getBloodInfoMatch")
|
||||
public Result getBloodInfoMatch(String bloodNo,String productNo){
|
||||
return matchBloodService.getBloodInfoMatch(bloodNo, productNo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,18 @@
|
||||
package com.czblood.busBloodbank.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkCheckBloodtype;
|
||||
import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface CheckBloodTypeMapper {
|
||||
List<Map<String,Object>> queryWaitInfo(String bbjszhxxfh);
|
||||
List<Map<String,Object>> queryWaitInfo(@Param("bbjszhxxfh") Integer bbjszhxxfh);
|
||||
int checkMatchedBloodNotOut(String billNo);
|
||||
List<Map<String,Object>> queryOne(String billNo);
|
||||
int queryOutMainCount(String billNo);
|
||||
List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO);
|
||||
List<XkCheckBloodtype> queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO);
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.czblood.busBloodbank.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -10,4 +12,15 @@ public interface MatchBloodMapper {
|
||||
int queryCheckBloodTypeCount(String applyNo);
|
||||
Date querySampleMaxDate(String applyNo);
|
||||
List<Map<String,Object>> queryMatchMainInfo(String applyNo);
|
||||
int queryOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBloodOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBackOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBackOutCount1(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBloodOutHosCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryOutCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBloodOutTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBackOutCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryBloodOutHosCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
String checkBloodNeedMatch(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
int queryOutCountThree(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.czblood.busBloodbank.pojo.DTO;
|
||||
|
||||
import com.czblood.bus.pojo.XkCheckBloodtype;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@ -14,4 +15,5 @@ import java.util.Map;
|
||||
public class CheckBloodTypeDTO {
|
||||
private List<Map<String,Object>> patientInfoList;
|
||||
private List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList;
|
||||
private XkCheckBloodtype xkCheckBloodtype;
|
||||
}
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.czblood.busBloodbank.pojo.VO;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CheckBloodTypeListQueryVO {
|
||||
private String stime;
|
||||
private String etime;
|
||||
@ApiModelProperty("血型复核单号")
|
||||
private String billNo;
|
||||
private String dept;
|
||||
private String beinhos_id;
|
||||
private String bloodNo;
|
||||
@ApiModelProperty("申请单号")
|
||||
private String applyNo;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.czblood.busBloodbank.service;
|
||||
|
||||
import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
@ -12,8 +13,8 @@ public interface CheckBloodTypeService {
|
||||
Result queryWaitInfo();
|
||||
Result queryOne(String billNo);
|
||||
Result saveData(XkCheckBloodtypeVO xkCheckBloodtypeVO);
|
||||
|
||||
Result delCheckBloodTypeInfo(String billNo);
|
||||
|
||||
List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO);
|
||||
Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO);
|
||||
Result queryOneInfo(String billNo,String applyNo);
|
||||
}
|
||||
|
||||
@ -5,4 +5,5 @@ import com.czblood.common.core.domain.Result;
|
||||
public interface MatchBloodService {
|
||||
Result queryWaitInfo();
|
||||
Result queryOne(String billNo);
|
||||
Result getBloodInfoMatch(String bloodNo, String productNo);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.busBloodbank.mapper.CheckBloodTypeMapper;
|
||||
import com.czblood.busBloodbank.pojo.DTO.CheckBloodTypeDTO;
|
||||
import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
|
||||
import com.czblood.busBloodbank.service.CheckBloodTypeService;
|
||||
@ -40,9 +41,11 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
|
||||
|
||||
@Override
|
||||
public Result queryWaitInfo() {
|
||||
int xxfh = 0;
|
||||
//只复核标本接收之后的申请单
|
||||
String bbjszhxxfh = bloodBankUtil.getParameterValue("BBJSZHXXFH");
|
||||
List<Map<String, Object>> mapList = checkBloodTypeMapper.queryWaitInfo(bbjszhxxfh);
|
||||
if(bbjszhxxfh.equals("Y")) xxfh = 1;
|
||||
List<Map<String, Object>> mapList = checkBloodTypeMapper.queryWaitInfo(xxfh);
|
||||
return new Result("0","获取数据成功!",mapList);
|
||||
}
|
||||
|
||||
@ -82,9 +85,9 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
|
||||
String billSort = xkTransfuseApply.getBill_sort();
|
||||
//是否需要配血
|
||||
if(billSort.equals("B")){
|
||||
xkCheckBloodtype.setBill_status("Y");
|
||||
xkCheckBloodtype.setNeed_match("Y");
|
||||
}else{
|
||||
xkCheckBloodtype.setBill_status("N");
|
||||
xkCheckBloodtype.setNeed_match("N");
|
||||
}
|
||||
String newBillNo = bloodBankUtil.produceBillNo("XXFH");
|
||||
xkCheckBloodtype.setBill_no(newBillNo);
|
||||
@ -154,4 +157,22 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
|
||||
public List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO) {
|
||||
return checkBloodTypeMapper.queryHistoryInfo(historyQueryVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO) {
|
||||
List<XkCheckBloodtype> xkCheckBloodtypeList = checkBloodTypeMapper.queryList(checkBloodTypeListQueryVO);
|
||||
return new Result("0","查询成功!",xkCheckBloodtypeList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryOneInfo(String billNo,String applyNo) {
|
||||
XkCheckBloodtype xkCheckBloodtype = xkCheckBloodtypeMapper.queryOne(billNo);
|
||||
List<Map<String, Object>> mainList = checkBloodTypeMapper.queryOne(applyNo);
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(applyNo);
|
||||
CheckBloodTypeDTO checkBloodTypeDTO = new CheckBloodTypeDTO();
|
||||
checkBloodTypeDTO.setPatientInfoList(mainList);
|
||||
checkBloodTypeDTO.setXkTransfuseApplyBloodbreedList(xkTransfuseApplyBloodbreedList);
|
||||
checkBloodTypeDTO.setXkCheckBloodtype(xkCheckBloodtype);
|
||||
return new Result("0","查询成功!",checkBloodTypeDTO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,8 +2,10 @@ package com.czblood.busBloodbank.service.impl;
|
||||
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyMapper;
|
||||
import com.czblood.bus.pojo.XkBloodInfo;
|
||||
import com.czblood.bus.pojo.XkTransfuseApply;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.busBloodbank.mapper.MatchBloodMapper;
|
||||
import com.czblood.busBloodbank.pojo.DTO.MatchBloodDTO;
|
||||
import com.czblood.busBloodbank.service.MatchBloodService;
|
||||
@ -12,6 +14,7 @@ import com.czblood.common.core.domain.Result;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -26,6 +29,8 @@ public class MatchBloodServiceImpl implements MatchBloodService {
|
||||
MatchBloodUtil matchBloodUtil;
|
||||
@Resource
|
||||
XkTransfuseApplyBloodbreedMapper xkTransfuseApplyBloodbreedMapper;
|
||||
@Resource
|
||||
BloodBankUtil bloodBankUtil;
|
||||
|
||||
@Override
|
||||
public Result queryWaitInfo() {
|
||||
@ -71,4 +76,38 @@ public class MatchBloodServiceImpl implements MatchBloodService {
|
||||
return new Result("1",msg,matchBloodDTO);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result getBloodInfoMatch(String bloodNo, String productNo) {
|
||||
if(bloodNo.length() < 8) return new Result("1","血液流水号长度不能低于8位!");
|
||||
XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo);
|
||||
if(xkBloodInfo == null) return new Result("-1","该血液信息不存在!");
|
||||
Result result = matchBloodUtil.checkBloodExistOut("",bloodNo,productNo);
|
||||
if(!result.getCode().equals("0")) return result;
|
||||
Date validDate = xkBloodInfo.getValid_date();
|
||||
Date currentTimeDate = bloodBankUtil.getCurrentTimeDate();
|
||||
if(currentTimeDate.compareTo(validDate) > 0) return new Result("-1","该血液已过期!");
|
||||
String bloodSort = xkBloodInfo.getBlood_sort();
|
||||
if(bloodSort.equals("Z")) return new Result("-1","该血液为自体血,不可在这操作!");
|
||||
Result result1 = matchBloodUtil.checkAboCheckAbnor(bloodNo, productNo);
|
||||
if(!result1.getCode().equals("0")) return result1;
|
||||
Result result2 = matchBloodUtil.checkBloodNeedMatch(bloodNo, productNo);
|
||||
if(!result2.getCode().equals("0")) return result2;
|
||||
String bloodStatus = xkBloodInfo.getBlood_status();
|
||||
switch (bloodStatus){
|
||||
case "2":
|
||||
return new Result("-1","该血液已经报废!");
|
||||
case "3":
|
||||
return new Result("-1","该血液正在制备或者配血!");
|
||||
case "4":
|
||||
return new Result("-1","该血液已经出库!");
|
||||
}
|
||||
int i = matchBloodMapper.queryOutCountThree(bloodNo, productNo);
|
||||
if(i > 0) return new Result("-1","该血液已经登记出库信息,请检查!");
|
||||
|
||||
//返回数据 TODO
|
||||
|
||||
|
||||
return new Result("0","获取数据成功!",xkBloodInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package com.czblood.busBloodbank.utils;
|
||||
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.czblood.bus.mapper.XkSampleInfoMapper;
|
||||
import com.czblood.bus.pojo.XkSampleInfo;
|
||||
import com.czblood.bus.mapper.XkInstorageDetailMapper;
|
||||
import com.czblood.bus.pojo.XkBloodInfo;
|
||||
import com.czblood.bus.pojo.XkInstorageDetail;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.busBloodbank.mapper.MatchBloodMapper;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
@ -11,6 +12,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class MatchBloodUtil {
|
||||
@ -19,6 +21,8 @@ public class MatchBloodUtil {
|
||||
BloodBankUtil bloodBankUtil;
|
||||
@Resource
|
||||
MatchBloodMapper matchBloodMapper;
|
||||
@Resource
|
||||
XkInstorageDetailMapper xkInstorageDetailMapper;
|
||||
|
||||
public Result checkSampleValid(String applyNo){
|
||||
//xkSampleInfoMapper.queryOne()
|
||||
@ -37,4 +41,56 @@ public class MatchBloodUtil {
|
||||
}
|
||||
return new Result("0","校验通过!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断血液是否已经出库
|
||||
* @param bloodNo
|
||||
* @param productNo
|
||||
* @param billNo
|
||||
* @return
|
||||
*/
|
||||
public Result checkBloodExistOut(String bloodNo,String productNo,String billNo){
|
||||
if(billNo != null && !billNo.equals("")){
|
||||
int i = matchBloodMapper.queryOutCount(bloodNo, productNo, billNo);
|
||||
if(i > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在临床发血出库!");
|
||||
int i1 = matchBloodMapper.queryBloodOutCount(bloodNo, productNo, billNo);
|
||||
if(i1 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在调血出库!");
|
||||
int i2 = matchBloodMapper.queryBackOutCount(bloodNo, productNo, billNo);
|
||||
if(i2 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!");
|
||||
int i3 = matchBloodMapper.queryBackOutCount1(bloodNo, productNo, billNo);
|
||||
if(i3 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!");
|
||||
int i4 = matchBloodMapper.queryBloodOutHosCount(bloodNo, productNo, billNo);
|
||||
if(i4 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在协议医院出库!");
|
||||
}else{
|
||||
int i = matchBloodMapper.queryOutCountTwo(bloodNo, productNo);
|
||||
if(i > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在临床发血出库!");
|
||||
int i1 = matchBloodMapper.queryBloodOutTwo(bloodNo, productNo);
|
||||
if(i1 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在调血出库!");
|
||||
int i2 = matchBloodMapper.queryBackOutCountTwo(bloodNo, productNo);
|
||||
if(i2 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!");
|
||||
int i3 = matchBloodMapper.queryBloodOutHosCountTwo(bloodNo, productNo);
|
||||
if(i3 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在协议医院出库!");
|
||||
}
|
||||
|
||||
return new Result("0","校验通过!");
|
||||
}
|
||||
|
||||
public Result checkAboCheckAbnor(String bloodNo,String productNo){
|
||||
XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo);
|
||||
List<XkInstorageDetail> xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(bloodNo, productNo);
|
||||
if(xkInstorageDetailList.size() > 0){
|
||||
String checkAbo = xkInstorageDetailList.get(0).getCheck_abo();
|
||||
String checkRh = xkInstorageDetailList.get(0).getCheck_rh();
|
||||
if(!checkAbo.equals(xkBloodInfo.getBlood_type()) || !checkRh.equals(xkBloodInfo.getRh_blood_type())){
|
||||
return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"的Abo型或Rh型与入库时的不一致!");
|
||||
}
|
||||
}
|
||||
return new Result("0","校验通过!");
|
||||
}
|
||||
|
||||
public Result checkBloodNeedMatch(String bloodNo,String productNo){
|
||||
String isMatch = matchBloodMapper.checkBloodNeedMatch(bloodNo, productNo);
|
||||
if(isMatch.equals("Y")) return new Result("0","校验通过!");
|
||||
return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"该血液流水号对应的血液不需要进行配血操作!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
(((xk_transfuse_apply.check_explain = xk_dmzd.wordbook_code) AND (xk_dmzd.wordbook_sign ='sqdshyj') and (xk_dmzd.exp1 = 'Y')) OR (isnull(xk_transfuse_apply.check_explain,'') = ''))
|
||||
-- 两天前 00:00:00 当天23:59:59
|
||||
AND xk_transfuse_apply.apply_date between DATEADD(DD, DATEDIFF(DD,0,GETDATE())-2, 0) and DATEADD(SS, -1, DATEADD(DD, DATEDIFF(DD,0,GETDATE())+1, 0))
|
||||
<if test="bbjszhxxfh == 'Y'"><![CDATA[and xk_transfuse_apply.bill_no in (select Relate_ApplyNo from xk_sample_info where TakeOver_Man is not null or TakeOver_Man <> '')]]></if>
|
||||
<if test="bbjszhxxfh != null and bbjszhxxfh == 1"><![CDATA[and xk_transfuse_apply.bill_no in (select Relate_ApplyNo from xk_sample_info where TakeOver_Man is not null or TakeOver_Man <> '')]]></if>
|
||||
</select>
|
||||
<select id="checkMatchedBloodNotOut" resultType="java.lang.Integer">
|
||||
SELECT Count ( xk_match_detail.blood_no )
|
||||
@ -73,4 +73,14 @@
|
||||
|
||||
</where>
|
||||
</select>
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkCheckBloodtype">
|
||||
SELECT * FROM xk_check_bloodtype
|
||||
WHERE ( xk_check_bloodtype.test_date between #{stime} and #{etime} )
|
||||
<if test="billNo != null">AND ( xk_check_bloodtype.bill_no = #{billNo} ) </if>
|
||||
<if test="applyNo != null">AND ( xk_check_bloodtype.apply_no = #{applyNo} )</if>
|
||||
<if test="beinhos_id != null">AND ( xk_check_bloodtype.beinhos_id like '%'+#{beinhos_id}+'%' )</if>
|
||||
<![CDATA[and ( isnull( xk_check_bloodtype.remark,'') <> '血站配型') ]]>
|
||||
<![CDATA[and ( isnull( xk_check_bloodtype.remark,'') <> '系统生成') ]]>
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@ -78,4 +78,83 @@
|
||||
( xk_transfuse_apply.bill_no = #{applyNo})
|
||||
|
||||
</select>
|
||||
<select id="queryOutCount" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_out_detail , xk_out_main
|
||||
WHERE xk_out_detail.blood_no = #{bloodNo} AND xk_out_main.bill_no =xk_out_detail.bill_no AND xk_out_main.check_sign ='N' AND
|
||||
<![CDATA[xk_out_main.bill_no <> #{billNo} and ]]>
|
||||
xk_out_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBloodOutCount" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_bloodout_detail , xk_bloodout_main
|
||||
WHERE xk_bloodout_detail.blood_no = #{bloodNo} AND xk_bloodout_main.bill_no =xk_bloodout_detail.bill_no AND
|
||||
xk_bloodout_main.out_flag ='N' AND
|
||||
<![CDATA[ xk_bloodout_main.bill_no <> #{billNo} and ]]>
|
||||
xk_bloodout_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBackOutCount" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_backout_main , xk_backout_detail
|
||||
WHERE xk_backout_detail.blood_no = #{bloodNo} AND
|
||||
xk_backout_main.bill_no =xk_backout_detail.bill_no AND
|
||||
xk_backout_main.org_type ='A' AND xk_backout_main.audit_person IS Null AND
|
||||
<![CDATA[xk_backout_main.bill_no <> #{billNo} AND ]]>
|
||||
xk_backout_detail.cancle_flag ='N' and xk_backout_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBackOutCount1" resultType="java.lang.Integer">
|
||||
SELECT count ( *)
|
||||
FROM xk_backout_main , xk_backout_detail
|
||||
WHERE xk_backout_detail.blood_no = #{bloodNo} AND
|
||||
xk_backout_main.bill_no =xk_backout_detail.bill_no AND
|
||||
xk_backout_main.org_type ='A' AND
|
||||
xk_backout_main.bill_cancle_flag ='Y' AND
|
||||
xk_backout_main.out_flag ='Y' and
|
||||
xk_backout_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBloodOutHosCount" resultType="java.lang.Integer">
|
||||
SELECT count(*) into :ll_count_bloodout_hos FROM xk_bloodout_hos_main,dbo.xk_bloodout_hos_detail
|
||||
WHERE xk_bloodout_hos_main.Bill_No = xk_bloodout_hos_detail.Bill_No
|
||||
AND xk_bloodout_hos_main.Audit_Flag = 'Y'
|
||||
AND xk_bloodout_hos_detail.Blood_No = #{bloodNo}
|
||||
AND product_no = #{productNo}
|
||||
<![CDATA[and xk_bloodout_hos_detail.bill_no <> #{billNo} ]]>
|
||||
</select>
|
||||
<select id="queryOutCountTwo" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_out_detail , xk_out_main WHERE xk_out_detail.blood_no = #{bloodNo} AND
|
||||
xk_out_main.bill_no =xk_out_detail.bill_no AND
|
||||
xk_out_main.check_sign ='N' and
|
||||
xk_out_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBloodOutTwo" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_bloodout_detail , xk_bloodout_main
|
||||
WHERE xk_bloodout_detail.blood_no = #{bloodNo} AND
|
||||
xk_bloodout_main.bill_no =xk_bloodout_detail.bill_no AND
|
||||
xk_bloodout_main.out_flag ='N' and
|
||||
xk_bloodout_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBackOutCountTwo" resultType="java.lang.Integer">
|
||||
SELECT count ( *) FROM xk_backout_main , xk_backout_detail
|
||||
WHERE xk_backout_detail.blood_no = #{bloodNo} AND
|
||||
xk_backout_main.bill_no =xk_backout_detail.bill_no AND
|
||||
xk_backout_main.org_type ='A' AND
|
||||
xk_backout_main.audit_person IS Null AND
|
||||
xk_backout_detail.cancle_flag ='N' and
|
||||
xk_backout_detail.product_no = #{productNo}
|
||||
</select>
|
||||
<select id="queryBloodOutHosCountTwo" resultType="java.lang.Integer">
|
||||
SELECT count(*) FROM xk_bloodout_hos_main,dbo.xk_bloodout_hos_detail
|
||||
WHERE xk_bloodout_hos_main.Bill_No = xk_bloodout_hos_detail.Bill_No
|
||||
AND xk_bloodout_hos_main.Audit_Flag = 'Y'
|
||||
AND xk_bloodout_hos_detail.Blood_No = #{bloodNo}
|
||||
AND product_no = #{productNo}
|
||||
</select>
|
||||
<select id="checkBloodNeedMatch" resultType="java.lang.String">
|
||||
SELECT xk_blood_breed.is_match
|
||||
FROM xk_blood_breed , xk_blood_info
|
||||
WHERE ( xk_blood_breed.breed_code =xk_blood_info.blood_breed ) and
|
||||
xk_blood_info.blood_no = #{bloodNo} and xk_blood_info.product_no= #{productNo};
|
||||
</select>
|
||||
<select id="queryOutCountThree" resultType="java.lang.Integer">
|
||||
SELECT Count ( *) FROM xk_out_detail
|
||||
Where blood_no = #{bloodNo}
|
||||
<![CDATA[and product_no = #{productNo} AND isnull(exp1,'N') <> 'Y']]>
|
||||
</select>
|
||||
</mapper>
|
||||
@ -456,3 +456,10 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_s
|
||||
alter table xk_search_transfuse_bill add hos_id varchar(10)
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_check_bloodtype' AND COLUMN_NAME = 'plt_test')
|
||||
BEGIN
|
||||
alter table xk_check_bloodtype add plt_test varchar(5)
|
||||
END
|
||||
GO
|
||||
@ -112,4 +112,21 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_charge_deta
|
||||
|
||||
ALTER TABLE xk_charge_detail ADD CONSTRAINT PK_xk_charge_detail PRIMARY KEY CLUSTERED (bill_no,sid);
|
||||
END
|
||||
GO
|
||||
GO
|
||||
|
||||
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_instorage_main' AND type = 'PK' )
|
||||
BEGIN
|
||||
|
||||
ALTER TABLE xk_instorage_main ADD CONSTRAINT PK_xk_instorage_main PRIMARY KEY CLUSTERED (bill_no);
|
||||
END
|
||||
GO
|
||||
|
||||
ALTER TABLE xk_instorage_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL;
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_instorage_detail' AND type = 'PK' )
|
||||
BEGIN
|
||||
|
||||
ALTER TABLE xk_instorage_detail ADD CONSTRAINT PK_xk_instorage_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no);
|
||||
END
|
||||
GO
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user