修改标本接收,标本送出

This commit is contained in:
jiangs 2026-08-05 18:03:16 +08:00
parent 701b75590e
commit 15ac15e1b9
14 changed files with 174 additions and 23 deletions

View File

@ -1,5 +1,6 @@
package com.czblood.bus.controller;
import com.czblood.bus.mapper.XkBloodInfoMapper;
import com.czblood.bus.mapper.XkProTransfuseProjectMapper;
import com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper;
import com.czblood.bus.mapper.xtwh.XkXtwhOperationMapper;
@ -42,6 +43,9 @@ public class BloodCommonController extends BaseController {
XkXtwhOperationMapper xkXtwhOperationMapper;
@Resource
SysUserMapper sysUserMapper;
@Resource
XkBloodInfoMapper xkBloodInfoMapper;
@ApiOperation("获取输血前检验项目")
@PostMapping("/queryLisProject")
@ -140,6 +144,13 @@ public class BloodCommonController extends BaseController {
return new Result("0","获取数据成功!",BloodBankUtil.isBank(deptType));
}
@ApiOperation("根据血液流水号获取血液信息")
@GetMapping("/queryBloodInfoByBloodNo")
public Result queryBloodInfoByBloodNo(String bloodNo){
List<XkBloodInfo> xkBloodInfoList = xkBloodInfoMapper.queryListByBloodNo(bloodNo);
return new Result("0","获取数据成功!",xkBloodInfoList);
}
// @ApiOperation("测试接口")
// @GetMapping("/test01")
// public Result test01(String billNo){

View File

@ -0,0 +1,10 @@
package com.czblood.bus.mapper;
import com.czblood.bus.pojo.XkBloodInfo;
import java.util.List;
public interface XkBloodInfoMapper {
XkBloodInfo queryOne(String bloodNo,String productNo);
List<XkBloodInfo> queryListByBloodNo(String bloodNo);
}

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.XkBloodInfoMapper">
<select id="queryOne" resultType="com.czblood.bus.pojo.XkBloodInfo">
select * from xk_blood_info where blood_no = #{bloodNo} and product_no = #{productNo}
</select>
<select id="queryListByBloodNo" resultType="com.czblood.bus.pojo.XkBloodInfo">
select * from xk_blood_info where blood_no = #{bloodNo}
</select>
</mapper>

View File

@ -74,8 +74,15 @@
<if test="send_Nurse != null ">send_Nurse = #{send_Nurse},</if>
<if test="send_Date != null ">send_Date = #{send_Date},</if>
<if test="takeOver_Man != null ">takeOver_Man = #{takeOver_Man},</if>
<if test="takeOver_Date != null and takeOver_Date != '1900-01-01' ">takeOver_Date = #{takeOver_Date},</if>
<if test="takeOver_Date != null and takeOver_Date == '1900-01-01' ">takeOver_Date = null,</if>
<if test="takeOver_Date != null">
<!-- 时间戳0代表要置null -->
<if test="takeOver_Date.time == 0">
takeOver_Date = null,
</if>
<if test="takeOver_Date.time != 0">
takeOver_Date = #{takeOver_Date},
</if>
</if>
<if test="overdue_Flag != null ">overdue_Flag = #{overdue_Flag},</if>
<if test="exp1 != null ">exp1 = #{exp1},</if>
<if test="exp2 != null ">exp2 = #{exp2},</if>

View File

@ -3,6 +3,7 @@ package com.czblood.busBloodbank.controller;
import com.czblood.bus.constants.BloodSysLogConstants;
import com.czblood.bus.pojo.XkSampleInfo;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoQueryVO;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoVO;
import com.czblood.busBloodbank.service.AcceptSampleInfoService;
import com.czblood.common.annotation.Log;
import com.czblood.common.core.controller.BaseController;
@ -11,10 +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 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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@ -30,16 +28,16 @@ public class AcceptSampleInfoController extends BaseController {
@ApiOperation("标本列表查询")
@GetMapping("/queryList")
public TableDataInfo queryList(AcceptSampleInfoQueryVO acceptSampleInfoQueryVO){
public Result queryList(AcceptSampleInfoQueryVO acceptSampleInfoQueryVO){
List<Map<String,Object>> list = acceptSampleInfoService.queryList(acceptSampleInfoQueryVO);
return getDataTable(list);
return new Result("0","查询成功!",list);
}
@Log(title = BloodSysLogConstants.LOG_TYPE_ACCEPT_SAMPLE_INFO, businessType = BusinessType.INSERT)
@ApiOperation("标本接收")
@PostMapping("/acceptSampleInfo")
public Result acceptSampleInfo(XkSampleInfo xKSampleInfo){
return acceptSampleInfoService.acceptSampleInfo(xKSampleInfo);
public Result acceptSampleInfo(@RequestBody AcceptSampleInfoVO acceptSampleInfoVO){
return acceptSampleInfoService.acceptSampleInfo(acceptSampleInfoVO);
}
@ApiOperation("查询单个标本信息")
@ -50,7 +48,7 @@ public class AcceptSampleInfoController extends BaseController {
@Log(title = BloodSysLogConstants.LOG_TYPE_ACCEPT_SAMPLE_INFO, businessType = BusinessType.DELETE)
@ApiOperation("取消标本接收")
@PostMapping("/cancelSampleInfo")
@GetMapping("/cancelSampleInfo")
public Result cancelSampleInfo(String sampleNo){
return acceptSampleInfoService.cancelSampleInfo(sampleNo);
}
@ -58,7 +56,7 @@ public class AcceptSampleInfoController extends BaseController {
@Log(title = BloodSysLogConstants.LOG_TYPE_ACCEPT_SAMPLE_INFO, businessType = BusinessType.DELETE_VS)
@ApiOperation("标本退回")
@PostMapping("/backSampleInfo")
public Result backSampleInfo(AcceptSampleInfoQueryVO acceptSampleInfoQueryVO){
public Result backSampleInfo(@RequestBody AcceptSampleInfoQueryVO acceptSampleInfoQueryVO){
return acceptSampleInfoService.backSampleInfo(acceptSampleInfoQueryVO);
}

View File

@ -29,4 +29,10 @@ public class MatchBloodController {
public Result queryWaitInfo(){
return matchBloodService.queryWaitInfo();
}
@ApiOperation("获取血液信息")
@GetMapping("/getBloodInfo")
public Result getBloodInfo(){
}
}

View File

@ -9,4 +9,5 @@ public interface MatchBloodMapper {
int checkMatchBloodNotOut(String billNo);
int queryCheckBloodTypeCount(String applyNo);
Date querySampleMaxDate(String applyNo);
List<Map<String,Object>> queryMatchMainInfo(String applyNo);
}

View File

@ -0,0 +1,17 @@
package com.czblood.busBloodbank.pojo.DTO;
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MatchBloodDTO {
private List<Map<String,Object>> matchMainInfoList;
private List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList;
}

View File

@ -0,0 +1,23 @@
package com.czblood.busBloodbank.pojo.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("标本接收参数")
public class AcceptSampleInfoVO {
private String sampleNo;
@ApiModelProperty("接收人")
private String takeOver_Man;
@ApiModelProperty("接收时间")
private Date takeOver_Date;
@ApiModelProperty("运送人")
private String sendPerson;
}

View File

@ -2,6 +2,7 @@ package com.czblood.busBloodbank.service;
import com.czblood.bus.pojo.XkSampleInfo;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoQueryVO;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoVO;
import com.czblood.common.core.domain.Result;
import java.util.List;
@ -9,7 +10,7 @@ import java.util.Map;
public interface AcceptSampleInfoService {
List<Map<String, Object>> queryList(AcceptSampleInfoQueryVO acceptSampleInfoQueryVO);
Result acceptSampleInfo(XkSampleInfo xKSampleInfo);
Result acceptSampleInfo(AcceptSampleInfoVO acceptSampleInfoVO);
Result queryOne(String sampleNo);
Result cancelSampleInfo(String sampleNo);
Result backSampleInfo(AcceptSampleInfoQueryVO acceptSampleInfoQueryVO);

View File

@ -8,6 +8,7 @@ import com.czblood.bus.pojo.XkTransfuseApply;
import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.busBloodbank.mapper.AcceptSampleInfoMapper;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoQueryVO;
import com.czblood.busBloodbank.pojo.VO.AcceptSampleInfoVO;
import com.czblood.busBloodbank.service.AcceptSampleInfoService;
import com.czblood.common.core.domain.Result;
import com.czblood.common.utils.spring.SpringUtils;
@ -39,20 +40,20 @@ public class AcceptSampleInfoServiceImpl implements AcceptSampleInfoService {
/**
* 接收样本信息
* @param xKSampleInfo
* @param acceptSampleInfoVO
* @return
*/
@Override
public Result acceptSampleInfo(XkSampleInfo xKSampleInfo) {
String sampleNo = xKSampleInfo.getSample_No();
public Result acceptSampleInfo(AcceptSampleInfoVO acceptSampleInfoVO) {
String sampleNo = acceptSampleInfoVO.getSampleNo();
XkSampleInfo xkSampleInfo1 = xkSampleInfoMapper.queryOne(sampleNo);
if(xkSampleInfo1 == null) return new Result("-1","没有找到对应的样本信息!");
XkSampleInfo xkSampleInfoTemp = new XkSampleInfo();
xkSampleInfoTemp.setSample_No(xkSampleInfo1.getSample_No());
xkSampleInfoTemp.setTakeOver_Man(xkSampleInfo1.getTakeOver_Man());
xkSampleInfoTemp.setTakeOver_Date(xkSampleInfo1.getTakeOver_Date());
xkSampleInfoTemp.setSample_No(sampleNo);
xkSampleInfoTemp.setTakeOver_Man(acceptSampleInfoVO.getTakeOver_Man());
xkSampleInfoTemp.setTakeOver_Date(acceptSampleInfoVO.getTakeOver_Date());
xkSampleInfoTemp.setSample_status("5");
xkSampleInfoTemp.setSendperson(xkSampleInfo1.getSendperson());
xkSampleInfoTemp.setSendperson(acceptSampleInfoVO.getSendPerson());
XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
xkTransfuseApply.setBill_no(xkSampleInfo1.getRelate_ApplyNo());
@ -79,7 +80,7 @@ public class AcceptSampleInfoServiceImpl implements AcceptSampleInfoService {
if(xkSampleInfo == null) return new Result("-1","没有找到对应的样本信息!");
XkSampleInfo xkSampleInfoTemp = new XkSampleInfo();
xkSampleInfoTemp.setSample_No(xkSampleInfo.getSample_No());
xkSampleInfoTemp.setTakeOver_Date(DateUtil.parse("1900-01-01","yyyy-MM-dd"));
xkSampleInfoTemp.setTakeOver_Date(new Date(0)); //置为null
xkSampleInfoTemp.setTakeOver_Man("");
xkSampleInfoTemp.setSendperson("");
xkSampleInfoMapper.update(xkSampleInfoTemp);
@ -101,11 +102,16 @@ public class AcceptSampleInfoServiceImpl implements AcceptSampleInfoService {
String sampleNo = acceptSampleInfoQueryVO.getSampleNo();
XkSampleInfo xkSampleInfo = xkSampleInfoMapper.queryOne(sampleNo);
if(xkSampleInfo == null) return new Result("-1","没有找到对应的样本信息!");
String returnFlag = BloodBankUtil.isBank(xkSampleInfo.getExp2());
if(returnFlag.equals("Y")) return new Result("-1","该标本已经退回!");
XkSampleInfo xkSampleInfoTemp = new XkSampleInfo();
xkSampleInfoTemp.setSample_No(xkSampleInfo.getSample_No());
xkSampleInfoTemp.setDiscard_person(discardPerson);
xkSampleInfoTemp.setDiscard_date(currentTimeDate);
xkSampleInfoTemp.setDiscard_reason(discardReason);
xkSampleInfoTemp.setTakeOver_Man("");
xkSampleInfoTemp.setTakeOver_Date(new Date(0));
xkSampleInfoTemp.setExp2("Y");
xkSampleInfoMapper.update(xkSampleInfoTemp);
return new Result("0","样本退回成功!");
}

View File

@ -1,8 +1,11 @@
package com.czblood.busBloodbank.service.impl;
import com.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper;
import com.czblood.bus.mapper.XkTransfuseApplyMapper;
import com.czblood.bus.pojo.XkTransfuseApply;
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
import com.czblood.busBloodbank.mapper.MatchBloodMapper;
import com.czblood.busBloodbank.pojo.DTO.MatchBloodDTO;
import com.czblood.busBloodbank.service.MatchBloodService;
import com.czblood.busBloodbank.utils.MatchBloodUtil;
import com.czblood.common.core.domain.Result;
@ -21,6 +24,8 @@ public class MatchBloodServiceImpl implements MatchBloodService {
XkTransfuseApplyMapper xkTransfuseApplyMapper;
@Resource
MatchBloodUtil matchBloodUtil;
@Resource
XkTransfuseApplyBloodbreedMapper xkTransfuseApplyBloodbreedMapper;
@Override
public Result queryWaitInfo() {
@ -50,8 +55,20 @@ public class MatchBloodServiceImpl implements MatchBloodService {
case "A":
return new Result("-1","该申请单尚未审核,请先审核!");
}
String msg = "";
Result result = matchBloodUtil.checkSampleValid(billNo);
if(result.getCode().equals("-1")) return result;
return null;
if(result.getCode().equals("1")) msg = result.getMsg();
List<Map<String, Object>> matchMainInfoList = matchBloodMapper.queryMatchMainInfo(billNo);
if(matchMainInfoList.size() <= 0) return new Result("-1","没有找到该申请单信息,请检查!");
MatchBloodDTO matchBloodDTO = new MatchBloodDTO();
matchBloodDTO.setMatchMainInfoList(matchMainInfoList);
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo);
matchBloodDTO.setXkTransfuseApplyBloodbreedList(xkTransfuseApplyBloodbreedList);
if(msg.equals("")){
return new Result("0","获取数据成功!",matchBloodDTO);
}else{
return new Result("1",msg,matchBloodDTO);
}
}
}

View File

@ -36,4 +36,46 @@
<select id="querySampleMaxDate" resultType="java.util.Date">
Select Max ( Pick_Date ) From xk_sample_info Where Relate_Applyno = #{applyNo}
</select>
<select id="queryMatchMainInfo" resultType="java.util.Map">
SELECT
xk_patient_info.patient_name,
xk_patient_info.age,
xk_patient_info.patient_sex,
xk_transfuse_apply.bill_no,
xk_patient_info.transfuse_history,
xk_patient_info.gestation_history,
xk_patient_info.parturition_history,
xk_patient_info.reaction_history,
xk_patient_info.match_history,
xk_transfuse_apply.apply_date,
xk_transfuse_apply.abo_type,
xk_transfuse_apply.rh_type,
xk_transfuse_apply.diagnoses,
xk_transfuse_apply.intent,
xk_transfuse_apply.apply_type,
xk_transfuse_apply.zone_id,
xk_transfuse_apply.use3_date,
xk_transfuse_apply.use2_date,
xk_transfuse_apply.use1_date,
xk_transfuse_apply.beinhos_id,
xk_transfuse_apply.dept_id,
xk_transfuse_apply.patient_bed,
xk_transfuse_apply_bloodbreed.blood_breed,
xk_transfuse_apply_bloodbreed.blood_num,
xk_transfuse_apply_bloodbreed.unit,
xk_transfuse_apply_bloodbreed.replace_bloodbreed,
xk_check_bloodtype.affirm_abo,
xk_check_bloodtype.check_rh,
xk_check_bloodtype.bill_no,
xk_check_bloodtype.affirm_antibody,
xk_transfuse_apply_bloodbreed.apply_bloodtype,
xk_check_bloodtype.Sub_Blood
FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id,
xk_transfuse_apply_bloodbreed,
xk_check_bloodtype
WHERE ( xk_transfuse_apply.bill_no = xk_transfuse_apply_bloodbreed.bill_no ) and
( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and
( xk_transfuse_apply.bill_no = #{applyNo})
</select>
</mapper>

View File

@ -29,7 +29,7 @@
xk_transfuse_apply.beinhos_id,
xk_transfuse_apply.bill_stasus
FROM xk_sample_info ,xk_transfuse_apply
where xk_sample_info.Relate_ApplyNo = xk_transfuse_apply.bill_no
where xk_sample_info.Relate_ApplyNo = xk_transfuse_apply.bill_no and xk_sample_info.Send_Date between #{stime} and #{etime}
<if test="sampleNo != null and sampleNo != ''">and xk_sample_info.Sample_No = #{sampleNo}</if>
<if test="dept != null and dept != ''">and xk_transfuse_apply.dept_id = #{dept}</if>
<if test="status != null and status != ''">and xk_sample_info.sample_status = #{status}</if>