血型复核功能开发

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 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;
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.common.core.controller.BaseController;
import com.czblood.common.core.domain.Result;
import com.czblood.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Api(tags = "血型复核")
@RestController
@RequestMapping("/bus/bloodbank/checkBloodType")
public class CheckBloodTypeController {
public class CheckBloodTypeController extends BaseController {
@Resource
private CheckBloodTypeService checkBloodTypeService;
@ -31,8 +37,8 @@ public class CheckBloodTypeController {
@ApiOperation("保存数据")
@PostMapping("/saveData")
public Result saveData(@RequestBody XkCheckBloodtype xkCheckBloodtype){
return checkBloodTypeService.saveData(xkCheckBloodtype);
public Result saveData(@RequestBody XkCheckBloodtypeVO xkCheckBloodtypeVO){
return checkBloodTypeService.saveData(xkCheckBloodtypeVO);
}
@ApiOperation("删除数据")
@ -41,6 +47,14 @@ public class CheckBloodTypeController {
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;
import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import java.util.List;
import java.util.Map;
@ -8,4 +10,5 @@ public interface CheckBloodTypeMapper {
int checkMatchedBloodNotOut(String billNo);
List<Map<String,Object>> queryOne(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;
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.page.TableDataInfo;
import java.util.List;
import java.util.Map;
public interface CheckBloodTypeService {
Result queryWaitInfo();
Result queryOne(String billNo);
Result saveData(XkCheckBloodtype xkCheckBloodtype);
Result saveData(XkCheckBloodtypeVO xkCheckBloodtypeVO);
Result delCheckBloodTypeInfo(String billNo);
List<Map<String,Object>> queryHistoryInfo(HistoryQueryVO historyQueryVO);
}

View File

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