diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageDetailMapper.java new file mode 100644 index 0000000..54c6fbd --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageDetailMapper.java @@ -0,0 +1,10 @@ +package com.czblood.bus.mapper; + +import com.czblood.bus.pojo.XkInstorageDetail; + +import java.util.List; + +public interface XkInstorageDetailMapper { + List queryByBillNo(String bill_no); + List queryByBloodNo(String blood_no,String product_no); +} diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageMainMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageMainMapper.java new file mode 100644 index 0000000..f6a8717 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkInstorageMainMapper.java @@ -0,0 +1,7 @@ +package com.czblood.bus.mapper; + +import com.czblood.bus.pojo.XkInstorageMain; + +public interface XkInstorageMainMapper { + XkInstorageMain queryOneByBillNo(String bill_no); +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkCheckBloodtype.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkCheckBloodtype.java index 67c2fb0..2ee8b29 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkCheckBloodtype.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkCheckBloodtype.java @@ -58,11 +58,13 @@ public class XkCheckBloodtype { private String need_match; @ApiModelProperty("单据类别") private String bill_sort; - @ApiModelProperty("单据状态") + @ApiModelProperty("单据状态 A初登,B已配血,C已发血") private String bill_status; @ApiModelProperty("备注") private String remark; private String Sub_Blood; private String bz1; private String hos_id; + @ApiModelProperty("血小板抗体检测") + private String plt_test; } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageDetail.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageDetail.java new file mode 100644 index 0000000..eb0ebde --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageDetail.java @@ -0,0 +1,26 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血液入库明细") +public class XkInstorageDetail { + private String bill_no; + private Integer sid; + private String blood_no; + private BigDecimal price; + private String remark; + private String check_abo; + private String check_rh; + private String check_person; + private Date check_date; + private String product_no; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageMain.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageMain.java new file mode 100644 index 0000000..87d8d11 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkInstorageMain.java @@ -0,0 +1,29 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血液入库主表") +public class XkInstorageMain { + private String bill_no; + private String org; + private String out_no; + private Date out_date; + private Date occur_date; + private String handle_person; + private String stor_mode; + private BigDecimal total_money; + private String remark; + private String input_person; + private Date input_date; + private String book_no; + private String check_sign; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyBloodbreed.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyBloodbreed.java index 0441d5e..28d54ea 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyBloodbreed.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkTransfuseApplyBloodbreed.java @@ -30,6 +30,7 @@ public class XkTransfuseApplyBloodbreed { private String replace_bloodbreed; private String apply_bloodtype; private BigDecimal ops_bleeding; + @ApiModelProperty("实际用血量") private BigDecimal ops_fact_use; @ApiModelProperty("输血目的") private String intent; 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 2ebdc0a..bae2995 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 @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; import com.czblood.bus.cache.DmzdCache; import com.czblood.bus.cache.OptionCache; import com.czblood.bus.mapper.*; +import com.czblood.bus.pojo.XkBloodInfo; import com.czblood.bus.pojo.xtwh.XkBloodBreed; import com.czblood.bus.pojo.xtwh.XkDmzd; import com.czblood.bus.pojo.xtwh.XkParameter; @@ -38,7 +39,7 @@ public class BloodBankUtil { @Resource SysUserMapper sysUserMapper; @Resource - XkBloodApplyTransMapper xkBloodApplyTransMapper; + XkBloodInfoMapper xkBloodInfoMapper; /** @@ -178,4 +179,8 @@ public class BloodBankUtil { return applyNum.divide(applyTransNum,2, RoundingMode.HALF_UP); } + public XkBloodInfo queryBloodInfoOne(String bloodNo,String productNo){ + return xkBloodInfoMapper.queryOne(bloodNo, productNo); + } + } diff --git a/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml b/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml index 97e2381..af011df 100644 --- a/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml @@ -22,6 +22,7 @@ remark, Sub_Blood, bz1, + plt_test, hos_id,bill_no,apply_no,beinhos_id,patient_name,dept_id,check_abo,check_fabo,affirm_abo )values ( #{check_rh}, @@ -42,6 +43,7 @@ #{remark}, #{Sub_Blood}, #{bz1}, + #{plt_test}, #{hos_id},#{bill_no},#{apply_no},#{beinhos_id},#{patient_name},#{dept_id},#{check_abo},#{check_fabo},#{affirm_abo}) diff --git a/blood_bus/src/main/resources/mapper/XkInstorageDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkInstorageDetailMapper.xml new file mode 100644 index 0000000..c1766ab --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkInstorageDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkInstorageMainMapper.xml b/blood_bus/src/main/resources/mapper/XkInstorageMainMapper.xml new file mode 100644 index 0000000..86ac830 --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkInstorageMainMapper.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java index 605e2b9..77a7b08 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/CheckBloodTypeController.java @@ -1,6 +1,7 @@ package com.czblood.busBloodbank.controller; import com.czblood.bus.constants.BloodSysLogConstants; +import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO; import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO; import com.czblood.busBloodbank.service.CheckBloodTypeService; @@ -11,6 +12,7 @@ import com.czblood.common.core.page.TableDataInfo; import com.czblood.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -59,6 +61,18 @@ public class CheckBloodTypeController extends BaseController { return getDataTable(mapList); } + @ApiOperation("检索血型复核记录") + @GetMapping("/queryList") + public Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO){ + return checkBloodTypeService.queryList(checkBloodTypeListQueryVO); + } + + @ApiOperation("查询单个血型复核单据详情") + @GetMapping("/queryOneInfo") + public Result queryOneInfo(@Parameter(description = "血型复核单据编号") String billNo, @Parameter(description = "申请编号") String applyNo){ + return checkBloodTypeService.queryOneInfo(billNo,applyNo); + } + } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java index 2a0fba6..abfddc9 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/MatchBloodController.java @@ -1,5 +1,7 @@ package com.czblood.busBloodbank.controller; +import com.czblood.bus.mapper.XkBloodInfoMapper; +import com.czblood.bus.pojo.XkBloodInfo; import com.czblood.busBloodbank.service.MatchBloodService; import com.czblood.common.core.domain.Result; import io.swagger.annotations.Api; @@ -30,9 +32,16 @@ public class MatchBloodController { return matchBloodService.queryWaitInfo(); } + /** + * 先调用公共血液信息,确定某一条血液信息之后,再调用此接口 + * 前端:录入血液的时候,要判断血液是否已经录入,有若干血液提示需要前端写 + * @param bloodNo + * @param productNo + * @return + */ @ApiOperation("获取血液信息") - @GetMapping("/getBloodInfo") - public Result getBloodInfo(){ - return null; + @GetMapping("/getBloodInfoMatch") + public Result getBloodInfoMatch(String bloodNo,String productNo){ + return matchBloodService.getBloodInfoMatch(bloodNo, productNo); } } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/CheckBloodTypeMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/CheckBloodTypeMapper.java index ce03d7c..d658f1a 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/CheckBloodTypeMapper.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/CheckBloodTypeMapper.java @@ -1,14 +1,18 @@ package com.czblood.busBloodbank.mapper; +import com.czblood.bus.pojo.XkCheckBloodtype; +import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; public interface CheckBloodTypeMapper { - List> queryWaitInfo(String bbjszhxxfh); + List> queryWaitInfo(@Param("bbjszhxxfh") Integer bbjszhxxfh); int checkMatchedBloodNotOut(String billNo); List> queryOne(String billNo); int queryOutMainCount(String billNo); List> queryHistoryInfo(HistoryQueryVO historyQueryVO); + List queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java index baabccc..a1391d1 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/MatchBloodMapper.java @@ -1,5 +1,7 @@ package com.czblood.busBloodbank.mapper; +import org.apache.ibatis.annotations.Param; + import java.util.Date; import java.util.List; import java.util.Map; @@ -10,4 +12,15 @@ public interface MatchBloodMapper { int queryCheckBloodTypeCount(String applyNo); Date querySampleMaxDate(String applyNo); List> queryMatchMainInfo(String applyNo); + int queryOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBloodOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBackOutCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBackOutCount1(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBloodOutHosCount(@Param("billNo") String billNo, @Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryOutCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBloodOutTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBackOutCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryBloodOutHosCountTwo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + String checkBloodNeedMatch(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + int queryOutCountThree(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/CheckBloodTypeDTO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/CheckBloodTypeDTO.java index d3328a5..129dfd0 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/CheckBloodTypeDTO.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/CheckBloodTypeDTO.java @@ -1,5 +1,6 @@ package com.czblood.busBloodbank.pojo.DTO; +import com.czblood.bus.pojo.XkCheckBloodtype; import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed; import lombok.AllArgsConstructor; import lombok.Data; @@ -14,4 +15,5 @@ import java.util.Map; public class CheckBloodTypeDTO { private List> patientInfoList; private List xkTransfuseApplyBloodbreedList; + private XkCheckBloodtype xkCheckBloodtype; } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/CheckBloodTypeListQueryVO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/CheckBloodTypeListQueryVO.java new file mode 100644 index 0000000..3768ea4 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/CheckBloodTypeListQueryVO.java @@ -0,0 +1,21 @@ +package com.czblood.busBloodbank.pojo.VO; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CheckBloodTypeListQueryVO { + private String stime; + private String etime; + @ApiModelProperty("血型复核单号") + private String billNo; + private String dept; + private String beinhos_id; + private String bloodNo; + @ApiModelProperty("申请单号") + private String applyNo; +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/CheckBloodTypeService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/CheckBloodTypeService.java index 832cbc6..a55326d 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/CheckBloodTypeService.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/CheckBloodTypeService.java @@ -1,5 +1,6 @@ package com.czblood.busBloodbank.service; +import com.czblood.busBloodbank.pojo.VO.CheckBloodTypeListQueryVO; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO; import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO; import com.czblood.common.core.domain.Result; @@ -12,8 +13,8 @@ public interface CheckBloodTypeService { Result queryWaitInfo(); Result queryOne(String billNo); Result saveData(XkCheckBloodtypeVO xkCheckBloodtypeVO); - Result delCheckBloodTypeInfo(String billNo); - List> queryHistoryInfo(HistoryQueryVO historyQueryVO); + Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO); + Result queryOneInfo(String billNo,String applyNo); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java index 055ed32..58b3340 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/MatchBloodService.java @@ -5,4 +5,5 @@ import com.czblood.common.core.domain.Result; public interface MatchBloodService { Result queryWaitInfo(); Result queryOne(String billNo); + Result getBloodInfoMatch(String bloodNo, String productNo); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/CheckBloodTypeServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/CheckBloodTypeServiceImpl.java index c6c7f40..39d4a01 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/CheckBloodTypeServiceImpl.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/CheckBloodTypeServiceImpl.java @@ -8,6 +8,7 @@ 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.CheckBloodTypeListQueryVO; import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO; import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO; import com.czblood.busBloodbank.service.CheckBloodTypeService; @@ -40,9 +41,11 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService { @Override public Result queryWaitInfo() { + int xxfh = 0; //只复核标本接收之后的申请单 String bbjszhxxfh = bloodBankUtil.getParameterValue("BBJSZHXXFH"); - List> mapList = checkBloodTypeMapper.queryWaitInfo(bbjszhxxfh); + if(bbjszhxxfh.equals("Y")) xxfh = 1; + List> mapList = checkBloodTypeMapper.queryWaitInfo(xxfh); return new Result("0","获取数据成功!",mapList); } @@ -82,9 +85,9 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService { String billSort = xkTransfuseApply.getBill_sort(); //是否需要配血 if(billSort.equals("B")){ - xkCheckBloodtype.setBill_status("Y"); + xkCheckBloodtype.setNeed_match("Y"); }else{ - xkCheckBloodtype.setBill_status("N"); + xkCheckBloodtype.setNeed_match("N"); } String newBillNo = bloodBankUtil.produceBillNo("XXFH"); xkCheckBloodtype.setBill_no(newBillNo); @@ -154,4 +157,22 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService { public List> queryHistoryInfo(HistoryQueryVO historyQueryVO) { return checkBloodTypeMapper.queryHistoryInfo(historyQueryVO); } + + @Override + public Result queryList(CheckBloodTypeListQueryVO checkBloodTypeListQueryVO) { + List xkCheckBloodtypeList = checkBloodTypeMapper.queryList(checkBloodTypeListQueryVO); + return new Result("0","查询成功!",xkCheckBloodtypeList); + } + + @Override + public Result queryOneInfo(String billNo,String applyNo) { + XkCheckBloodtype xkCheckBloodtype = xkCheckBloodtypeMapper.queryOne(billNo); + List> mainList = checkBloodTypeMapper.queryOne(applyNo); + List xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(applyNo); + CheckBloodTypeDTO checkBloodTypeDTO = new CheckBloodTypeDTO(); + checkBloodTypeDTO.setPatientInfoList(mainList); + checkBloodTypeDTO.setXkTransfuseApplyBloodbreedList(xkTransfuseApplyBloodbreedList); + checkBloodTypeDTO.setXkCheckBloodtype(xkCheckBloodtype); + return new Result("0","查询成功!",checkBloodTypeDTO); + } } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java index 4b76d6b..6833486 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/MatchBloodServiceImpl.java @@ -2,8 +2,10 @@ package com.czblood.busBloodbank.service.impl; import com.czblood.bus.mapper.XkTransfuseApplyBloodbreedMapper; import com.czblood.bus.mapper.XkTransfuseApplyMapper; +import com.czblood.bus.pojo.XkBloodInfo; import com.czblood.bus.pojo.XkTransfuseApply; import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed; +import com.czblood.bus.utils.BloodBankUtil; import com.czblood.busBloodbank.mapper.MatchBloodMapper; import com.czblood.busBloodbank.pojo.DTO.MatchBloodDTO; import com.czblood.busBloodbank.service.MatchBloodService; @@ -12,6 +14,7 @@ import com.czblood.common.core.domain.Result; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Map; @@ -26,6 +29,8 @@ public class MatchBloodServiceImpl implements MatchBloodService { MatchBloodUtil matchBloodUtil; @Resource XkTransfuseApplyBloodbreedMapper xkTransfuseApplyBloodbreedMapper; + @Resource + BloodBankUtil bloodBankUtil; @Override public Result queryWaitInfo() { @@ -71,4 +76,38 @@ public class MatchBloodServiceImpl implements MatchBloodService { return new Result("1",msg,matchBloodDTO); } } + + @Override + public Result getBloodInfoMatch(String bloodNo, String productNo) { + if(bloodNo.length() < 8) return new Result("1","血液流水号长度不能低于8位!"); + XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo); + if(xkBloodInfo == null) return new Result("-1","该血液信息不存在!"); + Result result = matchBloodUtil.checkBloodExistOut("",bloodNo,productNo); + if(!result.getCode().equals("0")) return result; + Date validDate = xkBloodInfo.getValid_date(); + Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); + if(currentTimeDate.compareTo(validDate) > 0) return new Result("-1","该血液已过期!"); + String bloodSort = xkBloodInfo.getBlood_sort(); + if(bloodSort.equals("Z")) return new Result("-1","该血液为自体血,不可在这操作!"); + Result result1 = matchBloodUtil.checkAboCheckAbnor(bloodNo, productNo); + if(!result1.getCode().equals("0")) return result1; + Result result2 = matchBloodUtil.checkBloodNeedMatch(bloodNo, productNo); + if(!result2.getCode().equals("0")) return result2; + String bloodStatus = xkBloodInfo.getBlood_status(); + switch (bloodStatus){ + case "2": + return new Result("-1","该血液已经报废!"); + case "3": + return new Result("-1","该血液正在制备或者配血!"); + case "4": + return new Result("-1","该血液已经出库!"); + } + int i = matchBloodMapper.queryOutCountThree(bloodNo, productNo); + if(i > 0) return new Result("-1","该血液已经登记出库信息,请检查!"); + + //返回数据 TODO + + + return new Result("0","获取数据成功!",xkBloodInfo); + } } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java index b7bc3b7..f6b49e0 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/utils/MatchBloodUtil.java @@ -1,9 +1,10 @@ package com.czblood.busBloodbank.utils; -import cn.hutool.core.date.DateUnit; + import cn.hutool.core.date.DateUtil; -import com.czblood.bus.mapper.XkSampleInfoMapper; -import com.czblood.bus.pojo.XkSampleInfo; +import com.czblood.bus.mapper.XkInstorageDetailMapper; +import com.czblood.bus.pojo.XkBloodInfo; +import com.czblood.bus.pojo.XkInstorageDetail; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.busBloodbank.mapper.MatchBloodMapper; import com.czblood.common.core.domain.Result; @@ -11,6 +12,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.Date; +import java.util.List; @Component public class MatchBloodUtil { @@ -19,6 +21,8 @@ public class MatchBloodUtil { BloodBankUtil bloodBankUtil; @Resource MatchBloodMapper matchBloodMapper; + @Resource + XkInstorageDetailMapper xkInstorageDetailMapper; public Result checkSampleValid(String applyNo){ //xkSampleInfoMapper.queryOne() @@ -37,4 +41,56 @@ public class MatchBloodUtil { } return new Result("0","校验通过!"); } + + /** + * 判断血液是否已经出库 + * @param bloodNo + * @param productNo + * @param billNo + * @return + */ + public Result checkBloodExistOut(String bloodNo,String productNo,String billNo){ + if(billNo != null && !billNo.equals("")){ + int i = matchBloodMapper.queryOutCount(bloodNo, productNo, billNo); + if(i > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在临床发血出库!"); + int i1 = matchBloodMapper.queryBloodOutCount(bloodNo, productNo, billNo); + if(i1 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在调血出库!"); + int i2 = matchBloodMapper.queryBackOutCount(bloodNo, productNo, billNo); + if(i2 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!"); + int i3 = matchBloodMapper.queryBackOutCount1(bloodNo, productNo, billNo); + if(i3 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!"); + int i4 = matchBloodMapper.queryBloodOutHosCount(bloodNo, productNo, billNo); + if(i4 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在协议医院出库!"); + }else{ + int i = matchBloodMapper.queryOutCountTwo(bloodNo, productNo); + if(i > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在临床发血出库!"); + int i1 = matchBloodMapper.queryBloodOutTwo(bloodNo, productNo); + if(i1 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在调血出库!"); + int i2 = matchBloodMapper.queryBackOutCountTwo(bloodNo, productNo); + if(i2 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在血站退血出库!"); + int i3 = matchBloodMapper.queryBloodOutHosCountTwo(bloodNo, productNo); + if(i3 > 0) return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"已在协议医院出库!"); + } + + return new Result("0","校验通过!"); + } + + public Result checkAboCheckAbnor(String bloodNo,String productNo){ + XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo); + List xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(bloodNo, productNo); + if(xkInstorageDetailList.size() > 0){ + String checkAbo = xkInstorageDetailList.get(0).getCheck_abo(); + String checkRh = xkInstorageDetailList.get(0).getCheck_rh(); + if(!checkAbo.equals(xkBloodInfo.getBlood_type()) || !checkRh.equals(xkBloodInfo.getRh_blood_type())){ + return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"的Abo型或Rh型与入库时的不一致!"); + } + } + return new Result("0","校验通过!"); + } + + public Result checkBloodNeedMatch(String bloodNo,String productNo){ + String isMatch = matchBloodMapper.checkBloodNeedMatch(bloodNo, productNo); + if(isMatch.equals("Y")) return new Result("0","校验通过!"); + return new Result("-1","该血液流水号:"+bloodNo+"产品码:"+productNo+"该血液流水号对应的血液不需要进行配血操作!"); + } } diff --git a/blood_bus_bloodbank/src/main/resources/mapper/CheckBloodTypeMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/CheckBloodTypeMapper.xml index 484b2e4..33351ce 100644 --- a/blood_bus_bloodbank/src/main/resources/mapper/CheckBloodTypeMapper.xml +++ b/blood_bus_bloodbank/src/main/resources/mapper/CheckBloodTypeMapper.xml @@ -18,7 +18,7 @@ (((xk_transfuse_apply.check_explain = xk_dmzd.wordbook_code) AND (xk_dmzd.wordbook_sign ='sqdshyj') and (xk_dmzd.exp1 = 'Y')) OR (isnull(xk_transfuse_apply.check_explain,'') = '')) -- 两天前 00:00:00 当天23:59:59 AND xk_transfuse_apply.apply_date between DATEADD(DD, DATEDIFF(DD,0,GETDATE())-2, 0) and DATEADD(SS, -1, DATEADD(DD, DATEDIFF(DD,0,GETDATE())+1, 0)) - '')]]> + '')]]> + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml index ecfd2e8..3d1a67e 100644 --- a/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml +++ b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml @@ -78,4 +78,83 @@ ( xk_transfuse_apply.bill_no = #{applyNo}) + + + + + + + + + + + \ No newline at end of file diff --git a/sql/updatedb_blood.sql b/sql/updatedb_blood.sql index e265c0e..5b4fb68 100644 --- a/sql/updatedb_blood.sql +++ b/sql/updatedb_blood.sql @@ -456,3 +456,10 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_s alter table xk_search_transfuse_bill add hos_id varchar(10) END GO + + +if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_check_bloodtype' AND COLUMN_NAME = 'plt_test') + BEGIN + alter table xk_check_bloodtype add plt_test varchar(5) + END +GO \ No newline at end of file diff --git a/sql/updatedb_blood_pk.sql b/sql/updatedb_blood_pk.sql index 205c2ae..71284cd 100644 --- a/sql/updatedb_blood_pk.sql +++ b/sql/updatedb_blood_pk.sql @@ -112,4 +112,21 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_charge_deta ALTER TABLE xk_charge_detail ADD CONSTRAINT PK_xk_charge_detail PRIMARY KEY CLUSTERED (bill_no,sid); END -GO \ No newline at end of file +GO + + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_instorage_main' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_instorage_main ADD CONSTRAINT PK_xk_instorage_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + +ALTER TABLE xk_instorage_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_instorage_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_instorage_detail ADD CONSTRAINT PK_xk_instorage_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO