From 95d997467feeed52367d4342c6a0f767edae7d07 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 22 Jul 2026 17:31:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=93=E8=A1=80=E5=BC=B9=E7=AA=97=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=EF=BC=8C=E5=A4=A7=E9=87=8F=E7=94=A8=E8=A1=80=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/MarsCodeWorkspaceAppSettings.xml | 7 ++ .../constants/BloodPrintTypeConstants.java | 4 + .../XkTransfuseApplyApprovalMapper.java | 3 + .../com/czblood/bus/pojo/ReportParam.java | 1 + .../mapper/XkTransfuseApplyApprovalMapper.xml | 7 ++ .../controller/BimStipsController.java | 39 ++++++++ .../busBloodbank/mapper/BimStipsMapper.java | 10 ++ .../busBloodbank/service/BimStipsService.java | 12 +++ .../service/impl/BimStipsServiceImpl.java | 39 ++++++++ .../main/resources/mapper/BimStipsMapper.xml | 97 +++++++++++++++++++ .../mapper/TransfuseApplyBeforeMapper.java | 3 + .../impl/TransfuseApplyBeforeServiceImpl.java | 36 ++++++- .../impl/TransfuseApplyServiceImpl.java | 17 +++- .../busDoctor/utils/TransfuseApplyUtil.java | 27 ++++-- .../mapper/TransfuseApplyBeforeMapper.xml | 16 +++ 15 files changed, 308 insertions(+), 10 deletions(-) create mode 100644 .idea/MarsCodeWorkspaceAppSettings.xml create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BimStipsController.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/BimStipsMapper.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BimStipsService.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BimStipsServiceImpl.java create mode 100644 blood_bus_bloodbank/src/main/resources/mapper/BimStipsMapper.xml diff --git a/.idea/MarsCodeWorkspaceAppSettings.xml b/.idea/MarsCodeWorkspaceAppSettings.xml new file mode 100644 index 0000000..b26fdc6 --- /dev/null +++ b/.idea/MarsCodeWorkspaceAppSettings.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file 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 750787d..2125198 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 @@ -16,4 +16,8 @@ public class BloodPrintTypeConstants { * 知情同意书2 */ public static final String INFORMED_CONSENT_2 = "INFORMED_CONSENT_2"; + /** + * 大量用血审批单 + */ + public static final String LARGE_APPLY = "LARGE_APPLY"; } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkTransfuseApplyApprovalMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkTransfuseApplyApprovalMapper.java index dbb8220..9a8a128 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkTransfuseApplyApprovalMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkTransfuseApplyApprovalMapper.java @@ -2,8 +2,11 @@ package com.czblood.bus.mapper; import com.czblood.bus.pojo.XkTransfuseApplyApproval; +import java.util.List; + public interface XkTransfuseApplyApprovalMapper { XkTransfuseApplyApproval queryOneByBillNo(String billNo); + List queryList(XkTransfuseApplyApproval xkTransfuseApplyApproval); void insert(XkTransfuseApplyApproval xkTransfuseApplyApproval); void update(XkTransfuseApplyApproval xkTransfuseApplyApproval); void delete(String billNo); diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/ReportParam.java b/blood_bus/src/main/java/com/czblood/bus/pojo/ReportParam.java index 449b59a..5715718 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/ReportParam.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/ReportParam.java @@ -14,4 +14,5 @@ import java.util.Date; public class ReportParam { private String billNo; private String beinhosId; + private String bloodSum; } diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml index 76aa432..a53bb3c 100644 --- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml @@ -40,6 +40,13 @@ + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BimStipsController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BimStipsController.java new file mode 100644 index 0000000..c1050cb --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BimStipsController.java @@ -0,0 +1,39 @@ +package com.czblood.busBloodbank.controller; + +import com.czblood.busBloodbank.service.BimStipsService; +import com.czblood.common.core.domain.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags = "右下角提醒") +@RestController +@RequestMapping("/bus/bloodbank/stips") +public class BimStipsController { + + @Resource + private BimStipsService bimStipsService; + + + @ApiOperation("查询列表数据,医生站,血型总量类型") + @GetMapping("/queryListByDoctor") + public Result queryListByDoctor(){ + return bimStipsService.queryListByDoctor(); + } + + @ApiOperation("查询列表数据,输血科,血液品种总量类型") + @GetMapping("/queryListByBlood") + public Result queryListByBlood(){ + return bimStipsService.queryListByBlood(); + } + + @ApiOperation("查询过期血液") + @GetMapping("/queryExpiredBlood") + public Result queryExpiredBlood(){ + return bimStipsService.queryExpiredBlood(); + } +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/BimStipsMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/BimStipsMapper.java new file mode 100644 index 0000000..f4b73d2 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/BimStipsMapper.java @@ -0,0 +1,10 @@ +package com.czblood.busBloodbank.mapper; + +import java.util.List; +import java.util.Map; + +public interface BimStipsMapper { + List> queryListByDoctor(); + List> queryListByBlood(); + List> queryExpiredBlood(Long day); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BimStipsService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BimStipsService.java new file mode 100644 index 0000000..51673ad --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BimStipsService.java @@ -0,0 +1,12 @@ +package com.czblood.busBloodbank.service; + +import com.czblood.common.core.domain.Result; + +public interface BimStipsService { + Result queryListByDoctor(); + + Result queryListByBlood(); + + Result queryExpiredBlood(); + +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BimStipsServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BimStipsServiceImpl.java new file mode 100644 index 0000000..6f671af --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BimStipsServiceImpl.java @@ -0,0 +1,39 @@ +package com.czblood.busBloodbank.service.impl; + +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busBloodbank.mapper.BimStipsMapper; +import com.czblood.busBloodbank.service.BimStipsService; +import com.czblood.common.core.domain.Result; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +public class BimStipsServiceImpl implements BimStipsService { + + @Resource + BimStipsMapper bimStipsMapper; + @Resource + BloodBankUtil bloodBankUtil; + + @Override + public Result queryListByDoctor() { + List> mapList = bimStipsMapper.queryListByDoctor(); + return new Result("0", "操作成功", mapList); + } + + @Override + public Result queryListByBlood() { + List> mapList = bimStipsMapper.queryListByBlood(); + return new Result("0", "操作成功", mapList); + } + + @Override + public Result queryExpiredBlood() { + String deadlinecheck = bloodBankUtil.getParameterValue("DEADLINECHECK"); + List> mapList = bimStipsMapper.queryExpiredBlood(Long.parseLong(deadlinecheck)); + return new Result("0", "操作成功", mapList); + } +} diff --git a/blood_bus_bloodbank/src/main/resources/mapper/BimStipsMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/BimStipsMapper.xml new file mode 100644 index 0000000..b5bf757 --- /dev/null +++ b/blood_bus_bloodbank/src/main/resources/mapper/BimStipsMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + \ No newline at end of file diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyBeforeMapper.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyBeforeMapper.java index 2fb05bc..f9e6c01 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyBeforeMapper.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApplyBeforeMapper.java @@ -1,10 +1,13 @@ package com.czblood.busDoctor.mapper; import com.czblood.busDoctor.pojo.VO.TransfuseApplyBeforeVO; +import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Map; public interface TransfuseApplyBeforeMapper { List> queryList(TransfuseApplyBeforeVO transfuseApplyBeforeVO); + BigDecimal getBloodSum(@Param("beinhos_id") String beinhos_id,@Param("stime") String stime,@Param("etime") String etime,@Param("bloodKindList") List bloodKindList); } 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 29d7011..cc1c68e 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 @@ -1,16 +1,17 @@ package com.czblood.busDoctor.service.impl; import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONUtil; import com.czblood.bus.constants.BloodPrintTypeConstants; -import com.czblood.bus.mapper.XkPatientInfoMapper; -import com.czblood.bus.mapper.XkTransfuseApplyBeforeMapper; -import com.czblood.bus.mapper.XkTransfuseApplyTestitemMapper; +import com.czblood.bus.mapper.*; import com.czblood.bus.pojo.*; import com.czblood.bus.pojo.inter.BeforeAssessRequest; import com.czblood.bus.pojo.inter.GetPatientInfoRequest; import com.czblood.bus.pojo.inter.GetTestResultRequest; +import com.czblood.bus.pojo.xtwh.XkBloodBreed; +import com.czblood.bus.pojo.xtwh.XkDmzd; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.bus.utils.BloodInterfaceUtil; import com.czblood.bus.utils.ReportUtil; @@ -19,6 +20,7 @@ import com.czblood.busDoctor.pojo.DTO.TransfuseApplyBeforeDTO; import com.czblood.busDoctor.pojo.VO.TransfuseApplyBeforeVO; import com.czblood.busDoctor.service.TransfuseApplyBeforeService; import com.czblood.busDoctor.utils.TransfuseApplyBeforeUtil; +import com.czblood.busDoctor.utils.TransfuseApplyUtil; import com.czblood.common.config.RuoYiConfig; import com.czblood.common.core.domain.Result; import com.czblood.common.utils.file.FileUtils; @@ -27,6 +29,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.File; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -50,6 +53,14 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ ReportUtil reportUtil; @Resource TransfuseApplyBeforeMapper transfuseApplyBeforeMapper; + @Resource + XkTransfuseApplyApprovalMapper xkTransfuseApplyApprovalMapper; + @Resource + TransfuseApplyUtil transfuseApplyUtil; + @Resource + XkTransfuseApplyBloodbreedMapper xkTransfuseApplyBloodbreedMapper; + @Resource + XkTransfuseApplyMapper xkTransfuseApplyMapper; @Override public Result queryList(TransfuseApplyBeforeVO xkTransfuseApplyBeforeVO) { @@ -184,6 +195,25 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ log.error("合并pdf:{}报告失败:{}",mergeBgdhList,e); return new Result("-1",e.getMessage()); } + case "LARGE_APPLY": + String dlyxspDyjb = bloodBankUtil.getParameterValue("DLYXSP_DYJB"); + XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval(); + xkTransfuseApplyApprovalTemp.setBill_no(billNo); + xkTransfuseApplyApprovalTemp.setApplyLevel(dlyxspDyjb); + List xkTransfuseApplyApprovalList = xkTransfuseApplyApprovalMapper.queryList(xkTransfuseApplyApprovalTemp); + if(xkTransfuseApplyApprovalList.isEmpty()) return new Result("-1","没有大量用血审批记录,无需打印申请单!"); + //24小时总血总量,包含了当前申请单的用血量 + List xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo); + List largeKindStr = transfuseApplyUtil.getLargeKindStr(xkTransfuseApplyBloodbreedList); + XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo); + String beinhosId = xkTransfuseApply.getBeinhos_id(); + 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()); + Result result2 = reportUtil.printToPdf(BloodPrintTypeConstants.LARGE_APPLY, reportParam, true); + if(!result2.getCode().equals("0")) return result2; + return new Result("0","打印成功!",BloodBankUtil.isBank(result2.getData())); } return new Result("-1","没有找到对应的打印模版!"); 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 5a181f2..ab0a2cc 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 @@ -654,6 +654,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { public Result bloodCloseLoop(String billNo) { List applyStatusList = BloodApplyStatusConstants.values(); XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo); + if(xkTransfuseApply == null) return new Result("-1","没有查到该申请单的信息!"); List closedLoopStatusList = new ArrayList<>(); XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); for (String statusName : applyStatusList) { @@ -668,7 +669,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { } ClosedLoopStatus closedLoopStatus = new ClosedLoopStatus(); closedLoopStatus.setStatusName(statusName); - if(xkTransfuseApply == null) closedLoopStatus.setVisible("N"); + closedLoopStatus.setVisible("N"); switch (statusName) { case BloodApplyStatusConstants.BILL_STATUS_OPEN: if(xkTransfuseApply.getApply_medic() != null && !xkTransfuseApply.getApply_medic().equals("")){ @@ -684,6 +685,20 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { closedLoopStatus.setVisible("Y"); } break; + case BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK: + if(xkTransfuseApplyApproval.getArchiater() != null && !xkTransfuseApplyApproval.getArchiater().equals("")){ + closedLoopStatus.setOccurName(xkTransfuseApplyApproval.getArchiater()); + closedLoopStatus.setOccurDate(xkTransfuseApplyApproval.getArchiater_CheckTime()); + closedLoopStatus.setVisible("Y"); + } + break; + case BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK: + if(xkTransfuseApplyApproval.getMedical_Dept() != null && !xkTransfuseApplyApproval.getMedical_Dept().equals("")){ + closedLoopStatus.setOccurName(xkTransfuseApplyApproval.getMedical_Dept()); + closedLoopStatus.setOccurDate(xkTransfuseApplyApproval.getMedical_CheckTime()); + closedLoopStatus.setVisible("Y"); + } + break; case BloodApplyStatusConstants.BILL_STATUS_BLOOD_TYPE_CHECK: break; case BloodApplyStatusConstants.BILL_STATUS_MATCH_CHECK: 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 d41d0a7..5675785 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 @@ -48,6 +48,26 @@ public class TransfuseApplyUtil { @Resource XkTransfuseApplyMapper xkTransfuseApplyMapper; + + /** + * 血液品种是否参与大量用血判断 + * @param xkTransfuseApplyBloodbreedList + * @return + */ + public List getLargeKindStr(List xkTransfuseApplyBloodbreedList){ + List bloodKindList = new ArrayList<>(); + for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) { + String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed(); + XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed); + XkDmzd xylxDmzd = bloodBankUtil.getDictCacheOne("xylx", xkBloodBreed.getBlood_kind()); + String exp1 = BloodBankUtil.isBank(xylxDmzd.getExp1()); //是否参与大量用血计算 + if(!BloodBankUtil.isBank(exp1).equals("Y")) continue; + bloodKindList.add(xkBloodBreed.getBlood_kind()); + } + return bloodKindList; + } + + /** * 计算大量用血 */ @@ -66,18 +86,13 @@ public class TransfuseApplyUtil { if(BloodBankUtil.isBank(exp2).equals("Y")) return new Result("0","抢救用血不参与大量用血计算"); //血液品种是否参与大量用血判断 BigDecimal totalApplyNum = BigDecimal.ZERO; - List bloodKindList = new ArrayList<>(); List xkTransfuseApplyBloodbreedList = transfuseApplyDTO.getXkTransfuseApplyBloodbreedList(); + List bloodKindList = getLargeKindStr(xkTransfuseApplyBloodbreedList); for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) { String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed(); BigDecimal bloodNum = xkTransfuseApplyBloodbreed.getBlood_num(); - XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed); - XkDmzd xylxDmzd = bloodBankUtil.getDictCacheOne("xylx", xkBloodBreed.getBlood_kind()); - String exp1 = BloodBankUtil.isBank(xylxDmzd.getExp1()); //是否参与大量用血计算 - if(!BloodBankUtil.isBank(exp1).equals("Y")) continue; BigDecimal applyTransNum = bloodBankUtil.getApplyTransNum(bloodBreed,bloodNum); totalApplyNum = totalApplyNum.add(applyTransNum); - bloodKindList.add(xkBloodBreed.getBlood_kind()); } Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); diff --git a/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyBeforeMapper.xml b/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyBeforeMapper.xml index e027ea1..76d5aba 100644 --- a/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyBeforeMapper.xml +++ b/blood_bus_doctor/src/main/resources/mapper/TransfuseApplyBeforeMapper.xml @@ -9,4 +9,20 @@ and a.beinhos_id = #{beinhos_id} and b.patient_name like '%'+#{patient_name}+'%' + \ No newline at end of file