From 360a1076d8576a521a4c9423d513381960602877 Mon Sep 17 00:00:00 2001
From: jiangs <373297395@qq.com>
Date: Fri, 24 Jul 2026 17:57:42 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BE=93=E8=A1=80=E7=94=B3=E8=AF=B7=E5=8D=95?=
=?UTF-8?q?=E7=95=8C=E9=9D=A2=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C?=
=?UTF-8?q?=E6=8A=A4=E5=A3=AB=E6=A0=87=E6=9C=AC=E5=BD=95=E5=85=A5=E7=95=8C?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../constants/BloodPrintTypeConstants.java | 4 +
.../bus/pojo/XkProTransfuseProject.java | 1 +
.../czblood/bus/pojo/XkTransfuseApply.java | 3 +
.../bus/pojo/XkTransfuseApplyTestitem.java | 2 +
.../bus/system/BloodExtInterfaceService.java | 4 +-
.../com/czblood/bus/utils/BloodBankUtil.java | 1 +
.../mapper/XkTransfuseApplyMapper.xml | 1 +
.../TransfuseApplyBeforeController.java | 2 +-
.../impl/TransfuseApplyBeforeServiceImpl.java | 24 +++---
.../impl/TransfuseApplyServiceImpl.java | 29 +++++++-
.../TransfuseCheckExplainServiceImpl.java | 1 +
.../busDoctor/utils/TransfuseApplyUtil.java | 12 ++-
.../controller/SampleInfoController.java | 30 ++++++++
.../busNurse/mapper/SampleInfoMapper.java | 10 +++
.../busNurse/pojo/VO/SampleInfoVO.java | 23 ++++++
.../busNurse/service/SampleInfoService.java | 8 ++
.../service/impl/SampleInfoServiceImpl.java | 38 ++++++++++
.../resources/mapper/SampleInfoMapper.xml | 73 +++++++++++++++++++
sql/updatedb_blood.sql | 7 ++
19 files changed, 255 insertions(+), 18 deletions(-)
create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/SampleInfoController.java
create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/SampleInfoMapper.java
create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/SampleInfoVO.java
create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/service/SampleInfoService.java
create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/SampleInfoServiceImpl.java
create mode 100644 blood_bus_nurse/src/main/resources/mapper/SampleInfoMapper.xml
diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodPrintTypeConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodPrintTypeConstants.java
index 2125198..85cb748 100644
--- a/blood_bus/src/main/java/com/czblood/bus/constants/BloodPrintTypeConstants.java
+++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodPrintTypeConstants.java
@@ -20,4 +20,8 @@ public class BloodPrintTypeConstants {
* 大量用血审批单
*/
public static final String LARGE_APPLY = "LARGE_APPLY";
+ /**
+ * 输血申请单
+ */
+ public static final String BLOOD_APPLY = "BLOOD_APPLY";
}
diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkProTransfuseProject.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkProTransfuseProject.java
index 4ff8e72..b582e85 100644
--- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkProTransfuseProject.java
+++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkProTransfuseProject.java
@@ -16,6 +16,7 @@ public class XkProTransfuseProject {
private Integer sid;
@ApiModelProperty("项目名称")
private String pro_name;
+ @ApiModelProperty("结果类型A数值型,B阴阳型")
private String result_type;
private String unit;
private String need;
diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java
index 43e6875..e449e5d 100644
--- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java
+++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApply.java
@@ -115,6 +115,7 @@ public class XkTransfuseApply {
private String agreement_ink;
private String exp1;
private String exp2;
+ @ApiModelProperty("输血科审核人")
private String exp3;
private String exp4;
@ApiModelProperty("最后修改时间")
@@ -152,4 +153,6 @@ public class XkTransfuseApply {
private String need_check;
@ApiModelProperty("是否需要血型复核,生成条码标志(1=是,0=否)")
private String isxxfh;
+ @ApiModelProperty("审核时间")
+ private Date check_date;
}
diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyTestitem.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyTestitem.java
index 505a6bb..d4a2614 100644
--- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyTestitem.java
+++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyTestitem.java
@@ -26,4 +26,6 @@ public class XkTransfuseApplyTestitem {
private Date test_date;
@ApiModelProperty("上传标志")
private String upload_flag;
+ @ApiModelProperty("检验项目结果类型")
+ private String result_type;
}
diff --git a/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java b/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java
index d05947a..e9de781 100644
--- a/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java
+++ b/blood_bus/src/main/java/com/czblood/bus/system/BloodExtInterfaceService.java
@@ -126,9 +126,9 @@ public class BloodExtInterfaceService implements ExtSystemInterface {
String useSign = xkDmzd.getUse_sign();
sysDept.setDeptCode(xkDmzd.getWordbook_code());
if(useSign.equals("Y")) {
- useSign = "1";
- }else{
useSign = "0";
+ }else{
+ useSign = "1";
}
sysDept.setStatus(useSign);
sysDept.setCreateBy("admin");
diff --git a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java
index 313f4d9..2ebdc0a 100644
--- a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java
+++ b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java
@@ -173,6 +173,7 @@ public class BloodBankUtil {
public BigDecimal getApplyTransNum(String bloodBreed,BigDecimal applyNum){
BigDecimal applyTransNum = bloodBankMapper.getApplyTransNum(bloodBreed);
+ if(applyTransNum == null) return applyNum;
//计算结果保留 2 位小数,采用四舍五入规则。
return applyNum.divide(applyTransNum,2, RoundingMode.HALF_UP);
}
diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyMapper.xml
index 60b6090..9726c38 100644
--- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyMapper.xml
+++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyMapper.xml
@@ -226,6 +226,7 @@
operation_name = #{operation_name},
operation_level = #{operation_level},
card_no = #{card_no},
+ check_date = #{check_date},
hos_id = #{hos_id}
where bill_no = #{bill_no}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyBeforeController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyBeforeController.java
index d0373cb..dc092e2 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyBeforeController.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyBeforeController.java
@@ -71,7 +71,7 @@ public class TransfuseApplyBeforeController extends BaseController {
@ApiOperation("打印单据")
@GetMapping("/print")
- public Result print(@ApiParam(value = "单据编号", required = true) String billNo,@ApiParam(value = "模板名称:ASSESS_BEFORE(输血前评估单),INFORMED_CONSENT(知情同意书),LARGE_APPLY(大量用血审批单)", required = true) String templateName){
+ public Result print(@ApiParam(value = "单据编号", required = true) String billNo,@ApiParam(value = "模板名称:ASSESS_BEFORE(输血前评估单),INFORMED_CONSENT(知情同意书),LARGE_APPLY(大量用血审批单),BLOOD_APPLY(输血申请单)", required = true) String templateName){
return transfuseApplyBeforeService.print(billNo,templateName);
}
}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyBeforeServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyBeforeServiceImpl.java
index cc1c68e..3871d1d 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyBeforeServiceImpl.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyBeforeServiceImpl.java
@@ -210,11 +210,13 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ
String currentTimeDate = bloodBankUtil.getCurrentTime();
String stime = DateUtil.format(DateUtil.offsetDay(bloodBankUtil.getCurrentTimeDate(), -1),"yyyy-MM-dd HH:mm:ss");
BigDecimal bloodSum = transfuseApplyBeforeMapper.getBloodSum(beinhosId,stime,currentTimeDate,largeKindStr);
- reportParam.setBloodSum(bloodSum.toString());
+ reportParam.setBloodSum(BloodBankUtil.isBank(bloodSum));
Result result2 = reportUtil.printToPdf(BloodPrintTypeConstants.LARGE_APPLY, reportParam, true);
if(!result2.getCode().equals("0")) return result2;
return new Result("0","打印成功!",BloodBankUtil.isBank(result2.getData()));
-
+ case "BLOOD_APPLY":
+ Result result3 = reportUtil.printToPdf(BloodPrintTypeConstants.BLOOD_APPLY, reportParam, true);
+ return new Result("0","打印成功!",BloodBankUtil.isBank(result3.getData()));
}
return new Result("-1","没有找到对应的打印模版!");
@@ -227,15 +229,15 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ
if(xkTransfuseApplyBefore == null) return new Result("-1","没有找到对应的评估单!");
String billStatus = xkTransfuseApplyBefore.getBill_status();
if(billStatus.equals("2")) return new Result("-1","该单据已使用,无法修改!");
-// XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
-// xkTransfuseApply.setAssess_bill_no(billNo);
-// List xkTransfuseApplyList = xkTransfuseApplyMapper.queryList(xkTransfuseApply);
-// if(xkTransfuseApplyList.size() > 0){
-// for (XkTransfuseApply transfuseApply : xkTransfuseApplyList) {
-// String checkSign = transfuseApply.getCheck_sign();
-// if(checkSign.equals("Y")) return new Result("-1","该评估单对应的申请单已审核,无法修改或删除!");
-// }
-// }
+ XkTransfuseApply xkTransfuseApply = new XkTransfuseApply();
+ xkTransfuseApply.setAssess_bill_no(billNo);
+ List xkTransfuseApplyList = xkTransfuseApplyMapper.queryList(xkTransfuseApply);
+ if(xkTransfuseApplyList.size() > 0){
+ for (XkTransfuseApply transfuseApply : xkTransfuseApplyList) {
+ String checkSign = transfuseApply.getCheck_sign();
+ if(checkSign.equals("Y")) return new Result("-1","该评估单对应的申请单已审核,无法修改或删除!");
+ }
+ }
return new Result("0","可以修改!");
}
}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java
index ab0a2cc..10f5fef 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApplyServiceImpl.java
@@ -85,6 +85,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
TransfuseApplyDTO transfuseApplyDTO = new TransfuseApplyDTO();
transfuseApplyDTO.setTransfuseApplyInfoOne((TransfuseApplyInfoOne)result.getData());
transfuseApplyDTO.setXkTransfuseApplyTestitemList(xkTransfuseApplyTestitemList);
+ //transfuseApplyDTO.setXkTransfuseApplyBloodbreedList(getBloodBreedList(xkTransfuseApplyBefore));
return new Result(code,warnMsg,transfuseApplyDTO);
}
@@ -444,15 +445,15 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
//是否使用用血审批控制
String sfsyyxsp = bloodBankUtil.getParameterValue("SFSYYXSP");
//不是抢救用血的类型,就需要判断是否是大量用血的标准,
- if(!exp2.equals("Y") && !sfsyyxsp.equals("Y")){
+ 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 archiater = BloodBankUtil.isBank(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(applyLevel.equals("3")){
if(archiater.equals("")){
return new Result("-1","申请单24小时用血量达到大量用血标准,用血申请还未进行科室主任及医务部核准,暂不能审核,请到(大量用血申请)菜单进行审核!");
}else if(medicalDept.equals("")){
@@ -699,6 +700,13 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
closedLoopStatus.setVisible("Y");
}
break;
+ case BloodApplyStatusConstants.BILL_STATUS_BANK_DIRECTOR_CHECK:
+ String checkSign = BloodBankUtil.isBank(xkTransfuseApply.getCheck_sign());
+ if(checkSign.equals("Y")){
+ closedLoopStatus.setOccurName(xkTransfuseApply.getExp3());
+ closedLoopStatus.setOccurDate(xkTransfuseApply.getCheck_date());
+ closedLoopStatus.setVisible("Y");
+ }
case BloodApplyStatusConstants.BILL_STATUS_BLOOD_TYPE_CHECK:
break;
case BloodApplyStatusConstants.BILL_STATUS_MATCH_CHECK:
@@ -712,4 +720,19 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
return new Result("0","获取数据成功",closedLoopStatusList);
}
+
+ public List getBloodBreedList(XkTransfuseApplyBefore xkTransfuseApplyBefore) {
+ List bloodBreedList = new ArrayList<>();
+ if(xkTransfuseApplyBefore == null) return bloodBreedList;
+ String bloodBreed = xkTransfuseApplyBefore.getBlood_breed();
+ if(bloodBreed == null || bloodBreed.equals("")) return bloodBreedList;
+ XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed = new XkTransfuseApplyBloodbreed();
+ xkTransfuseApplyBloodbreed.setBlood_breed(bloodBreed);
+ xkTransfuseApplyBloodbreed.setBlood_num(xkTransfuseApplyBefore.getBlood_num());
+ xkTransfuseApplyBloodbreed.setUnit(xkTransfuseApplyBefore.getUnit());
+ xkTransfuseApplyBloodbreed.setIntent(xkTransfuseApplyBefore.getIntent());
+ bloodBreedList.add(xkTransfuseApplyBloodbreed);
+ return bloodBreedList;
+ }
+
}
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java
index 3609a66..1dc4ba5 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseCheckExplainServiceImpl.java
@@ -114,6 +114,7 @@ public class TransfuseCheckExplainServiceImpl implements TransfuseCheckExplainSe
xkTransfuseApplyTemp.setNotify_sign("Y");
xkTransfuseApplyTemp.setExp3(explainVO.getUserId());
xkTransfuseApplyTemp.setIsxxfh(isxxfh);
+ xkTransfuseApplyTemp.setCheck_date(bloodBankUtil.getCurrentTimeDate());
transfuseCheckExplainUtil.updateApplyStatus(xkTransfuseApplyTemp,xkCheckBloodtype);
//保存条码数据
Result result = transfuseCheckExplainUtil.createSampleData(applyNo);
diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java
index 5675785..3831820 100644
--- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java
+++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyUtil.java
@@ -47,6 +47,8 @@ public class TransfuseApplyUtil {
XkTransfuseApplyTestitemMapper xkTransfuseApplyTestitemMapper;
@Resource
XkTransfuseApplyMapper xkTransfuseApplyMapper;
+ @Resource
+ XkTransfuseApplyBeforeMapper xkTransfuseApplyBeforeMapper;
/**
@@ -90,8 +92,9 @@ public class TransfuseApplyUtil {
List bloodKindList = getLargeKindStr(xkTransfuseApplyBloodbreedList);
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
+ XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed);
BigDecimal bloodNum = xkTransfuseApplyBloodbreed.getBlood_num();
- BigDecimal applyTransNum = bloodBankUtil.getApplyTransNum(bloodBreed,bloodNum);
+ BigDecimal applyTransNum = bloodBankUtil.getApplyTransNum(xkBloodBreed.getBlood_kind(),bloodNum);
totalApplyNum = totalApplyNum.add(applyTransNum);
}
@@ -325,6 +328,13 @@ public class TransfuseApplyUtil {
xkTransfuseApplyApprovalMapper.insert(xkTransfuseApplyApproval);
}
+ //修改输血评估单状态
+ XkTransfuseApplyBefore xkTransfuseApplyBefore = new XkTransfuseApplyBefore();;
+ String assessBillNo = BloodBankUtil.isBank(xkTransfuseApply.getAssess_bill_no());
+ xkTransfuseApplyBefore.setBill_no(assessBillNo);
+ xkTransfuseApplyBefore.setBill_status("2");
+ xkTransfuseApplyBeforeMapper.updateXkTransfuseApplyBefore(xkTransfuseApplyBefore);
+
}
diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/SampleInfoController.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/SampleInfoController.java
new file mode 100644
index 0000000..a179d81
--- /dev/null
+++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/SampleInfoController.java
@@ -0,0 +1,30 @@
+package com.czblood.busNurse.controller;
+
+import com.czblood.busNurse.pojo.VO.SampleInfoVO;
+import com.czblood.busNurse.service.SampleInfoService;
+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/nurse/sampleInfo")
+@Slf4j
+public class SampleInfoController {
+
+ @Resource
+ private SampleInfoService sampleInfoService;
+
+ @ApiOperation("查询样本信息列表")
+ @GetMapping("/queryList")
+ public Result queryList(SampleInfoVO sampleInfoVO){
+ return sampleInfoService.queryList(sampleInfoVO);
+ }
+}
diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/SampleInfoMapper.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/SampleInfoMapper.java
new file mode 100644
index 0000000..8b1737a
--- /dev/null
+++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/SampleInfoMapper.java
@@ -0,0 +1,10 @@
+package com.czblood.busNurse.mapper;
+
+import com.czblood.busNurse.pojo.VO.SampleInfoVO;
+
+import java.util.List;
+import java.util.Map;
+
+public interface SampleInfoMapper {
+ List