diff --git a/.idea/MarsCodeWorkspaceAppSettings.xml b/.idea/MarsCodeWorkspaceAppSettings.xml deleted file mode 100644 index 81f2d8c..0000000 --- a/.idea/MarsCodeWorkspaceAppSettings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java new file mode 100644 index 0000000..9ea8d85 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodApplyStatusConstants.java @@ -0,0 +1,31 @@ +package com.czblood.bus.constants; + +import java.util.Arrays; +import java.util.List; + +public class BloodApplyStatusConstants { + public static final String BILL_STATUS_OPEN = "开单"; + public static final String BILL_STATUS_CHECK_DOCTOR = "上级医生审核"; + public static final String BILL_STATUS_ARCHIATER_CHECK = "科主任审核"; + public static final String BILL_STATUS_MEDICAL_CHECK = "医务部审核"; + public static final String BILL_STATUS_BANK_DIRECTOR_CHECK = "输血科审核"; + public static final String BILL_STATUS_BLOOD_TYPE_CHECK = "血型复核"; + public static final String BILL_STATUS_MATCH_CHECK = "交叉配血"; + public static final String BILL_STATUS_OUT_CHECK = "临床发血"; + + + public static final List ALL_STATUS_LIST = Arrays.asList( + BILL_STATUS_OPEN, + BILL_STATUS_CHECK_DOCTOR, + BILL_STATUS_ARCHIATER_CHECK, + BILL_STATUS_MEDICAL_CHECK, + BILL_STATUS_BANK_DIRECTOR_CHECK, + BILL_STATUS_BLOOD_TYPE_CHECK, + BILL_STATUS_MATCH_CHECK, + BILL_STATUS_OUT_CHECK + ); + + public static List values() { + return ALL_STATUS_LIST; + } +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java index 86faa33..c9c6ba3 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyApproval.java @@ -14,7 +14,7 @@ import java.util.Date; @NoArgsConstructor @ApiModel("大量用血审批") public class XkTransfuseApplyApproval { - private String Bill_No; + private String bill_no; private String Archiater; private Date Archiater_CheckTime; private String Medical_Dept; diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java index e225c16..4911bdb 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyCausalis.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; @ApiModel("输血指征") public class XkTransfuseApplyCausalis { @ApiModelProperty("输血申请单编号") - private String Bill_No; + private String bill_no; @ApiModelProperty("医疗机构ID") private String Hos_ID; private Integer SID; diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml index 7b06847..76aa432 100644 --- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyApprovalMapper.xml @@ -18,7 +18,7 @@ #{Medical_CheckTime}, #{ApplyLevel}, #{Flag}, - #{billNo} + #{bill_no} ) @@ -30,8 +30,8 @@ Medical_CheckTime = #{Medical_CheckTime}, ApplyLevel = #{ApplyLevel}, Flag = #{Flag}, - bill_no = #{Bill_No} - where bill_no = #{Bill_No} + bill_no = #{bill_no} + where bill_no = #{bill_no} delete from xk_transfuse_apply_approval where bill_no = #{billNo} diff --git a/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml b/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml index 4edcb07..9b2640e 100644 --- a/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkTransfuseApplyCausalisMapper.xml @@ -4,7 +4,7 @@ insert into xk_transfuse_apply_causalis (Bill_No, Hos_ID, SID,Causalis_Code,Causalis_Type,Causalis_Name,Causalis_Result,Use_Flag,Upload_Flag,Explain) - values (#{bill_no}, #{hos_id}, #{sid}, #{causalis_code}, #{causalis_type}, #{causalis_name}, #{causalis_result}, #{use_flag}, #{upload_flag}, #{explain}) + values (#{bill_no}, #{hos_id}, #{SID}, #{Causalis_Code}, #{Causalis_Type}, #{Causalis_Name}, #{Causalis_Result}, #{Use_Flag}, #{Upload_Flag}, #{Explain}) update xk_transfuse_apply_causalis @@ -22,13 +22,13 @@ where Bill_No = #{bill_no} and Causalis_Code = #{Causalis_Code} - delete from xk_transfuse_apply_causalis where Bill_No = #{bill_no} and Hos_ID = #{hos_id} + delete from xk_transfuse_apply_causalis where Bill_No = #{billNo} and Hos_ID = #{hos_id} \ No newline at end of file diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java index 483fb55..2bce0b1 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyController.java @@ -150,5 +150,11 @@ public class TransfuseApplyController extends BaseController { return transfuseApplyService.invokeEMR(beinhos_id); } + @ApiOperation("输血申请单状态闭环") + @GetMapping("/bloodCloseLoop") + public Result bloodCloseLoop(String billNo){ + return transfuseApplyService.bloodCloseLoop(billNo); + } + } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java new file mode 100644 index 0000000..e3c9086 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/ClosedLoopStatus.java @@ -0,0 +1,17 @@ +package com.czblood.busDoctor.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ClosedLoopStatus { + private String statusName; + private Date occurDate; + private String occurName; + private String visible; +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java index ca77ed1..3232206 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApplyService.java @@ -33,4 +33,6 @@ public interface TransfuseApplyService { Result cancelApply(CancelApplyVO cancelApplyVO); Result invokeEMR(String beinhosId); + + Result bloodCloseLoop(String billNo); } 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 8be9fe0..5a181f2 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 @@ -1,6 +1,7 @@ package com.czblood.busDoctor.service.impl; import cn.hutool.core.date.DateUtil; +import com.czblood.bus.constants.BloodApplyStatusConstants; import com.czblood.bus.mapper.*; import com.czblood.bus.pojo.*; import com.czblood.bus.pojo.inter.CancelApplyCheckRequest; @@ -11,6 +12,7 @@ import com.czblood.bus.pojo.xtwh.XkDmzd; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.bus.utils.BloodInterfaceUtil; import com.czblood.busDoctor.mapper.TransfuseApplyMapper; +import com.czblood.busDoctor.pojo.ClosedLoopStatus; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO; import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne; import com.czblood.busDoctor.pojo.VO.*; @@ -23,9 +25,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; @Service @Slf4j @@ -313,9 +313,10 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { //xkTransfuseApply.setSend_able("Y"); //代表新增单据 + String newBillNo = ""; if(billNo == null){ //产生申请单编号 - String newBillNo = bloodBankUtil.produceBillNo("SQD"); + newBillNo = bloodBankUtil.produceBillNo("SQD"); //申请单信息 xkTransfuseApply.setBill_no(newBillNo); @@ -328,7 +329,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { List xkTransfuseApplyCausalisList = transfuseApplyDTO.getXkTransfuseApplyCausalisList(); if(xkTransfuseApplyCausalisList != null && !xkTransfuseApplyCausalisList.isEmpty()){ for (XkTransfuseApplyCausalis xkTransfuseApplyCausalis : xkTransfuseApplyCausalisList) { - xkTransfuseApplyCausalis.setBill_No(newBillNo); + xkTransfuseApplyCausalis.setBill_no(newBillNo); } } //检验项目明细 @@ -339,16 +340,17 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { } } //大量用血申请单表 - xkTransfuseApplyApproval.setBill_No(newBillNo); + xkTransfuseApplyApproval.setBill_no(newBillNo); } - + transfuseApplyDTO.setXkTransfuseApplyApproval(xkTransfuseApplyApproval); //保存数据 transfuseApplyUtil.saveTransfuseApply(transfuseApplyDTO, billNo == null); + if(newBillNo.equals("")) newBillNo = billNo; if(code.equals("0")){ - return new Result("0","保存成功!"); + return new Result("0","保存成功!",newBillNo); }else{ - return new Result("1",msg); + return new Result("1",msg,newBillNo); } } @@ -648,4 +650,51 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { return BloodInterfaceUtil.invokeBloodInterface(invokeHisEmrRequest); } + @Override + public Result bloodCloseLoop(String billNo) { + List applyStatusList = BloodApplyStatusConstants.values(); + XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo); + List closedLoopStatusList = new ArrayList<>(); + XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); + for (String statusName : applyStatusList) { + //大量用血申请表没有,说明没有科主任审核和医务科审核 + if((xkTransfuseApplyApproval == null) && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK) || statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK))) continue; + if(xkTransfuseApplyApproval != null){ + String applyLevel = xkTransfuseApplyApproval.getApplyLevel(); + //一级审核也没有科主任和医务科审核 + if(applyLevel.equals("1") && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK) || statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK))) continue; + //二级审核没有医务科审核 + if((applyLevel.equals("2") && (statusName.equals(BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK)))) continue; + } + ClosedLoopStatus closedLoopStatus = new ClosedLoopStatus(); + closedLoopStatus.setStatusName(statusName); + if(xkTransfuseApply == null) closedLoopStatus.setVisible("N"); + switch (statusName) { + case BloodApplyStatusConstants.BILL_STATUS_OPEN: + if(xkTransfuseApply.getApply_medic() != null && !xkTransfuseApply.getApply_medic().equals("")){ + closedLoopStatus.setOccurName(xkTransfuseApply.getApply_medic()); + closedLoopStatus.setOccurDate(xkTransfuseApply.getApply_date()); + closedLoopStatus.setVisible("Y"); + } + break; + case BloodApplyStatusConstants.BILL_STATUS_CHECK_DOCTOR: + if(xkTransfuseApply.getMedic_check_date() != null){ + closedLoopStatus.setOccurName(xkTransfuseApply.getCheck_medic()); + closedLoopStatus.setOccurDate(xkTransfuseApply.getMedic_check_date()); + closedLoopStatus.setVisible("Y"); + } + break; + case BloodApplyStatusConstants.BILL_STATUS_BLOOD_TYPE_CHECK: + break; + case BloodApplyStatusConstants.BILL_STATUS_MATCH_CHECK: + break; + case BloodApplyStatusConstants.BILL_STATUS_OUT_CHECK: + break; + } + closedLoopStatusList.add(closedLoopStatus); + } + + return new Result("0","获取数据成功",closedLoopStatusList); + } + } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java index 73f227b..90cfb6e 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java @@ -63,7 +63,7 @@ public class TransfuseApprovalServiceImpl implements TransfuseApprovalService { if(applyLevel.equals("2") && flag.equals("Y")) return new Result("1","该申请单已进行科主任核准!"); Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval(); - xkTransfuseApplyApprovalTemp.setBill_No(billNo); + xkTransfuseApplyApprovalTemp.setBill_no(billNo); xkTransfuseApplyApprovalTemp.setArchiater( username); xkTransfuseApplyApprovalTemp.setArchiater_CheckTime(currentTimeDate); xkTransfuseApplyApprovalTemp.setFlag("Y"); @@ -96,7 +96,7 @@ public class TransfuseApprovalServiceImpl implements TransfuseApprovalService { if(!medicalDept.equals("")) return new Result("-1","该申请单已进行医务部审核,无需重复审核!"); Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval(); - xkTransfuseApplyApprovalTemp.setBill_No(billNo); + xkTransfuseApplyApprovalTemp.setBill_no(billNo); xkTransfuseApplyApprovalTemp.setMedical_Dept(username); xkTransfuseApplyApprovalTemp.setMedical_CheckTime(currentTimeDate); xkTransfuseApplyApprovalTemp.setFlag("Y"); 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 2d94be2..d41d0a7 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 @@ -99,13 +99,13 @@ public class TransfuseApplyUtil { flag = "N"; msg = "申请用血量≥1600ml,需科主任进入临床用血(大量用血审批)页面核准后,再报医务部门在临床用血(大量用血审批)批准!"; } - XkTransfuseApplyApproval xkTransfuseApplyApproval = null; - if(billNo == null){ - xkTransfuseApplyApproval = new XkTransfuseApplyApproval(); - }else{ - xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); - } + XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); + if(xkTransfuseApplyApproval == null) xkTransfuseApplyApproval = new XkTransfuseApplyApproval(); + //有可能第一次判定的时候没有,后面修改的时候发现是大量用血 + if(billNo != null && !billNo.equals("")){ + xkTransfuseApplyApproval.setBill_no(billNo); + } xkTransfuseApplyApproval.setApplyLevel(applyLev); xkTransfuseApplyApproval.setFlag(flag); @@ -131,6 +131,7 @@ public class TransfuseApplyUtil { String beinhosId = BloodBankUtil.isBank(xkTransfuseApply.getBeinhos_id()); String deptType = BloodBankUtil.isBank(xkTransfuseApply.getDept_Type()); String useType = BloodBankUtil.isBank(xkTransfuseApply.getUse_type()); + String billNo = xkTransfuseApply.getBill_no(); //这个返回也是原来的逻辑 if(beinhosId.equals("") || deptType.equals("") || useType.equals("") ) return new Result("0","字段没有填完整,无法校验!"); XkCausalisSet xkCausalisSet = new XkCausalisSet(); @@ -291,7 +292,7 @@ public class TransfuseApplyUtil { //保存输血指征表 if(xkTransfuseApplyCausalisList != null && !xkTransfuseApplyCausalisList.isEmpty()){ - xkTransfuseApplyCausalisMapper.deleteByBillNo(xkTransfuseApplyCausalisList.get(0).getBill_No()); + xkTransfuseApplyCausalisMapper.deleteByBillNo(xkTransfuseApplyCausalisList.get(0).getBill_no()); for (XkTransfuseApplyCausalis xkTransfuseApplyCausalis : xkTransfuseApplyCausalisList) { xkTransfuseApplyCausalisMapper.insert(xkTransfuseApplyCausalis); } @@ -305,7 +306,7 @@ public class TransfuseApplyUtil { //大量用血申请单表 if(xkTransfuseApplyApproval != null){ - xkTransfuseApplyApprovalMapper.delete(xkTransfuseApplyApproval.getBill_No()); + xkTransfuseApplyApprovalMapper.delete(xkTransfuseApplyApproval.getBill_no()); xkTransfuseApplyApprovalMapper.insert(xkTransfuseApplyApproval); }