血型复核功能开发

This commit is contained in:
jiangs 2026-08-04 11:05:09 +08:00
parent dce2bb18b1
commit 5b44e56256
9 changed files with 125 additions and 20 deletions

View File

@ -49,4 +49,8 @@ public class BloodInterfaceTypeConstants {
* 血型复核 * 血型复核
*/ */
public static final String CHECK_BLOOD_TYPE = "CHECK_BLOOD_TYPE"; public static final String CHECK_BLOOD_TYPE = "CHECK_BLOOD_TYPE";
/**
* 取消血型复核
*/
public static final String CANCEL_CHECK_BLOOD_TYPE = "CANCEL_CHECK_BLOOD_TYPE";
} }

View File

@ -0,0 +1,21 @@
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 CancelCheckBloodTypeRequest implements BloodInterfaceType {
private final String method = BloodInterfaceTypeConstants.CANCEL_CHECK_BLOOD_TYPE;
private String billNo;
@Override
public String serializationJson() {
return JSONUtil.toJsonStr(this);
}
}

View File

@ -1,18 +1,24 @@
package com.czblood.busBloodbank.controller; package com.czblood.busBloodbank.controller;
import com.czblood.bus.pojo.XkCheckBloodtype; import com.czblood.bus.pojo.XkCheckBloodtype;
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
import com.czblood.busBloodbank.service.CheckBloodTypeService; import com.czblood.busBloodbank.service.CheckBloodTypeService;
import com.czblood.common.core.controller.BaseController;
import com.czblood.common.core.domain.Result; import com.czblood.common.core.domain.Result;
import com.czblood.common.core.page.TableDataInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Api(tags = "血型复核") @Api(tags = "血型复核")
@RestController @RestController
@RequestMapping("/bus/bloodbank/checkBloodType") @RequestMapping("/bus/bloodbank/checkBloodType")
public class CheckBloodTypeController { public class CheckBloodTypeController extends BaseController {
@Resource @Resource
private CheckBloodTypeService checkBloodTypeService; private CheckBloodTypeService checkBloodTypeService;
@ -31,8 +37,8 @@ public class CheckBloodTypeController {
@ApiOperation("保存数据") @ApiOperation("保存数据")
@PostMapping("/saveData") @PostMapping("/saveData")
public Result saveData(@RequestBody XkCheckBloodtype xkCheckBloodtype){ public Result saveData(@RequestBody XkCheckBloodtypeVO xkCheckBloodtypeVO){
return checkBloodTypeService.saveData(xkCheckBloodtype); return checkBloodTypeService.saveData(xkCheckBloodtypeVO);
} }
@ApiOperation("删除数据") @ApiOperation("删除数据")
@ -41,6 +47,14 @@ public class CheckBloodTypeController {
return checkBloodTypeService.delCheckBloodTypeInfo(billNo); return checkBloodTypeService.delCheckBloodTypeInfo(billNo);
} }
@ApiOperation("查询血型复核历史记录")
@GetMapping("/queryHistoryInfo")
public TableDataInfo queryHistoryInfo(HistoryQueryVO historyQueryVO){
startPage();
List<Map<String,Object>> mapList = checkBloodTypeService.queryHistoryInfo(historyQueryVO);
return getDataTable(mapList);
}
} }

View File

@ -1,5 +1,7 @@
package com.czblood.busBloodbank.mapper; package com.czblood.busBloodbank.mapper;
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -8,4 +10,5 @@ public interface CheckBloodTypeMapper {
int checkMatchedBloodNotOut(String billNo); int checkMatchedBloodNotOut(String billNo);
List<Map<String,Object>> queryOne(String billNo); List<Map<String,Object>> queryOne(String billNo);
int queryOutMainCount(String billNo); int queryOutMainCount(String billNo);
List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO);
} }

View File

@ -0,0 +1,13 @@
package com.czblood.busBloodbank.pojo.VO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HistoryQueryVO {
private String beinhos_id;
private String patient_name;
}

View File

@ -0,0 +1,19 @@
package com.czblood.busBloodbank.pojo.VO;
import com.czblood.bus.pojo.XkCheckBloodtype;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("保存血型复核参数")
public class XkCheckBloodtypeVO {
@ApiModelProperty("血型复核数据")
XkCheckBloodtype xkCheckBloodtype;
@ApiModelProperty("血型复核结果是否和申请单信息一致,1一致,0不一致")
private String flag;
}

View File

@ -1,12 +1,19 @@
package com.czblood.busBloodbank.service; package com.czblood.busBloodbank.service;
import com.czblood.bus.pojo.XkCheckBloodtype; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
import com.czblood.common.core.domain.Result; import com.czblood.common.core.domain.Result;
import com.czblood.common.core.page.TableDataInfo;
import java.util.List;
import java.util.Map;
public interface CheckBloodTypeService { public interface CheckBloodTypeService {
Result queryWaitInfo(); Result queryWaitInfo();
Result queryOne(String billNo); Result queryOne(String billNo);
Result saveData(XkCheckBloodtype xkCheckBloodtype); Result saveData(XkCheckBloodtypeVO xkCheckBloodtypeVO);
Result delCheckBloodTypeInfo(String billNo); Result delCheckBloodTypeInfo(String billNo);
List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO);
} }

View File

@ -1,18 +1,19 @@
package com.czblood.busBloodbank.service.impl; package com.czblood.busBloodbank.service.impl;
import com.czblood.bus.mapper.XkChargeMainMapper; import com.czblood.bus.mapper.*;
import com.czblood.bus.mapper.XkCheckBloodtypeMapper;
import com.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper;
import com.czblood.bus.mapper.XkTransfuseApplyMapper;
import com.czblood.bus.pojo.*; import com.czblood.bus.pojo.*;
import com.czblood.bus.pojo.inter.CancelCheckBloodTypeRequest;
import com.czblood.bus.pojo.inter.CheckBloodTypeRequest; import com.czblood.bus.pojo.inter.CheckBloodTypeRequest;
import com.czblood.bus.utils.BloodBankUtil; import com.czblood.bus.utils.BloodBankUtil;
import com.czblood.bus.utils.BloodInterfaceUtil; import com.czblood.bus.utils.BloodInterfaceUtil;
import com.czblood.busBloodbank.mapper.CheckBloodTypeMapper; import com.czblood.busBloodbank.mapper.CheckBloodTypeMapper;
import com.czblood.busBloodbank.pojo.DTO.CheckBloodTypeDTO; import com.czblood.busBloodbank.pojo.DTO.CheckBloodTypeDTO;
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
import com.czblood.busBloodbank.service.CheckBloodTypeService; import com.czblood.busBloodbank.service.CheckBloodTypeService;
import com.czblood.busBloodbank.utils.CheckBloodTypeUtil; import com.czblood.busBloodbank.utils.CheckBloodTypeUtil;
import com.czblood.common.core.domain.Result; import com.czblood.common.core.domain.Result;
import com.czblood.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -37,7 +38,6 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
@Resource @Resource
XkChargeMainMapper xkChargeMainMapper; XkChargeMainMapper xkChargeMainMapper;
@Override @Override
public Result queryWaitInfo() { public Result queryWaitInfo() {
//只复核标本接收之后的申请单 //只复核标本接收之后的申请单
@ -61,11 +61,13 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
/** /**
* 保存数据 * 保存数据
* @param xkCheckBloodtype * @param xkCheckBloodtypeVO
* @return * @return
*/ */
@Override @Override
public Result saveData(XkCheckBloodtype xkCheckBloodtype) { public Result saveData(XkCheckBloodtypeVO xkCheckBloodtypeVO) {
XkCheckBloodtype xkCheckBloodtype = xkCheckBloodtypeVO.getXkCheckBloodtype();
String flag = xkCheckBloodtypeVO.getFlag();
String applyNo = xkCheckBloodtype.getApply_no(); String applyNo = xkCheckBloodtype.getApply_no();
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(applyNo); XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(applyNo);
if(xkTransfuseApply == null) return new Result("-1","若不是紧急情况,请先选择输血申请单!"); if(xkTransfuseApply == null) return new Result("-1","若不是紧急情况,请先选择输血申请单!");
@ -92,13 +94,19 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
xkTransfuseApplyTemp.setNotify_sign("Y"); xkTransfuseApplyTemp.setNotify_sign("Y");
//当血型复核的结果和申请单之前的结果不一致的时候,需要更新申请单的血型,以及病人基本信息的血型 //当血型复核的结果和申请单之前的结果不一致的时候,需要更新申请单的血型,以及病人基本信息的血型
XkPatientInfo xkPatientInfoTemp = null;
if(flag.equals("0")){
xkTransfuseApplyTemp.setAbo_type(xkCheckBloodtype.getAffirm_abo()); xkTransfuseApplyTemp.setAbo_type(xkCheckBloodtype.getAffirm_abo());
xkTransfuseApplyTemp.setRh_type(xkCheckBloodtype.getCheck_rh()); xkTransfuseApplyTemp.setRh_type(xkCheckBloodtype.getCheck_rh());
xkTransfuseApplyTemp.setBloodcheck_abnor("N");
xkTransfuseApplyTemp.setAbnor_next("Y");
XkPatientInfo xkPatientInfoTemp = new XkPatientInfo(); xkPatientInfoTemp = new XkPatientInfo();
xkPatientInfoTemp.setAbo(xkCheckBloodtype.getAffirm_abo()); xkPatientInfoTemp.setAbo(xkCheckBloodtype.getAffirm_abo());
xkPatientInfoTemp.setRh(xkCheckBloodtype.getCheck_rh()); xkPatientInfoTemp.setRh(xkCheckBloodtype.getCheck_rh());
xkPatientInfoTemp.setBeinhos_id(xkCheckBloodtype.getBeinhos_id()); xkPatientInfoTemp.setBeinhos_id(xkCheckBloodtype.getBeinhos_id());
}
checkBloodTypeUtil.saveData(xkCheckBloodtype,xkTransfuseApplyTemp,xkPatientInfoTemp); checkBloodTypeUtil.saveData(xkCheckBloodtype,xkTransfuseApplyTemp,xkPatientInfoTemp);
//调用外部接口 //调用外部接口
@ -134,8 +142,16 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
} }
checkBloodTypeUtil.deleteData(xkTransfuseApplyTemp,chargeBillNo,billNo); checkBloodTypeUtil.deleteData(xkTransfuseApplyTemp,chargeBillNo,billNo);
//调用外部接口 TODO //调用外部接口
CancelCheckBloodTypeRequest cancelCheckBloodTypeRequest = new CancelCheckBloodTypeRequest();
cancelCheckBloodTypeRequest.setBillNo(billNo);
Result result = BloodInterfaceUtil.invokeBloodInterface(cancelCheckBloodTypeRequest);
if(!result.getCode().equals("0")) return result;
return new Result("0","删除成功!"); return new Result("0","删除成功!");
} }
@Override
public List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO) {
return checkBloodTypeMapper.queryHistoryInfo(historyQueryVO);
}
} }

View File

@ -65,4 +65,12 @@
<select id="queryOutMainCount" resultType="java.lang.Integer"> <select id="queryOutMainCount" resultType="java.lang.Integer">
Select count (*) From xk_out_main where check_no = #{billNo} and check_sign ='N'; Select count (*) From xk_out_main where check_no = #{billNo} and check_sign ='N';
</select> </select>
<select id="queryHistoryInfo" resultType="java.util.Map">
select * from xk_check_bloodtype
<where>
<if test="beinhos_id != null">and beinhos_id = #{beinhos_id}</if>
<if test="patient_name != null">and patient_name like '%'+#{patient_name}+'%'</if>
</where>
</select>
</mapper> </mapper>