diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java index e9822eb..7758d76 100644 --- a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java +++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java @@ -9,4 +9,6 @@ public class BloodSysLogConstants { public static final String LOG_TYPE_DMZD = "代码字典"; public static final String LOG_TYPE_TRANSFUSE_APPLY = "输血申请"; public static final String LOG_TYPE_TRANSFUSE_APPLY_APPROVAL = "输血审批"; + public static final String LOG_TYPE_SAMPLE_INFO = "样本信息"; + public static final String LOG_TYPE_SEARCH_TRANSFUSEBILL_INFO = "申请单扫描登记"; } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkCheckBloodtypeMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkCheckBloodtypeMapper.java index 6c16bb5..057d582 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkCheckBloodtypeMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkCheckBloodtypeMapper.java @@ -7,4 +7,5 @@ import java.util.List; public interface XkCheckBloodtypeMapper { List queryList(XkCheckBloodtype xkCheckBloodtype); void insert(XkCheckBloodtype xkCheckBloodtype); + } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkSearchTransfuseBillMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkSearchTransfuseBillMapper.java new file mode 100644 index 0000000..c9d56ac --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkSearchTransfuseBillMapper.java @@ -0,0 +1,12 @@ +package com.czblood.bus.mapper; + +import com.czblood.bus.pojo.XkSearchTransfuseBill; + +import java.util.List; + +public interface XkSearchTransfuseBillMapper { + List queryList(XkSearchTransfuseBill xkSearchTransfuseBill); + XkSearchTransfuseBill queryOne(String billNo); + void insert(XkSearchTransfuseBill xkSearchTransfuseBill); + void delete(String billNo); +} 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 dd2f0af..ee915f1 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 @@ -1,6 +1,7 @@ package com.czblood.bus.pojo; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -10,6 +11,7 @@ import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor +@ApiOperation("血型复核") public class XkCheckBloodtype { @ApiModelProperty("单据编号") private String bill_no; diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkSampleInfo.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkSampleInfo.java index 15b6efb..515baaf 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkSampleInfo.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkSampleInfo.java @@ -15,7 +15,7 @@ import java.util.Date; public class XkSampleInfo { @ApiModelProperty("样本号") private String Sample_No; - @ApiModelProperty("标本用途") + @ApiModelProperty("标本用途,A输血,B血型鉴定,S治疗") private String Purpose; @ApiModelProperty("申请科室") private String Dept; @@ -46,7 +46,7 @@ public class XkSampleInfo { private String Overdue_Flag; private String Exp1; private String Exp2; - @ApiModelProperty("样本状态") + @ApiModelProperty("样本状态,1打印条码,2已采样,3已送检,4已签收,5复核血型") private String sample_status; @ApiModelProperty("作废人") private String discard_person; diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkSearchTransfuseBill.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkSearchTransfuseBill.java new file mode 100644 index 0000000..b5c8d59 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkSearchTransfuseBill.java @@ -0,0 +1,28 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiOperation("申请单扫描登记") +public class XkSearchTransfuseBill { + private String bill_no; + private Integer sid; + private String input_person; + private Date input_date; + @ApiModelProperty("合格标志,1:合格,0:不合格") + private String hgbz; + @ApiModelProperty("不合格原因") + private String hgyy; + private String hos_id; + + private String stime; + private String etime; +} diff --git a/blood_bus/src/main/resources/mapper/XkSearchTransfuseBillMapper.xml b/blood_bus/src/main/resources/mapper/XkSearchTransfuseBillMapper.xml new file mode 100644 index 0000000..26210b8 --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkSearchTransfuseBillMapper.xml @@ -0,0 +1,24 @@ + + + + + insert into xk_search_transfuse_bill (sid, bill_no, input_person, input_date,hgbz,hgyy,hos_id) + values (#{sid}, #{bill_no}, #{input_person}, #{input_date},#{hgbz},#{hgyy},#{hos_id}) + + + delete from xk_search_transfuse_bill where bill_no = #{billNo} + + + + + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/SearchTransfuseBillController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/SearchTransfuseBillController.java new file mode 100644 index 0000000..0fe62e5 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/SearchTransfuseBillController.java @@ -0,0 +1,56 @@ +package com.czblood.busBloodbank.controller; + +import com.czblood.bus.constants.BloodSysLogConstants; +import com.czblood.bus.pojo.XkSearchTransfuseBill; +import com.czblood.busBloodbank.pojo.VO.XkSearchTransfuseBillVO; +import com.czblood.busBloodbank.service.SearchTransfuseBillService; +import com.czblood.common.annotation.Log; +import com.czblood.common.core.controller.BaseController; +import com.czblood.common.core.domain.Result; +import com.czblood.common.core.page.TableDataInfo; +import com.czblood.common.enums.BusinessType; +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; +import java.util.List; + +@Api(tags = "申请单扫描登记") +@RestController +@RequestMapping("/bus/bloodbank/searchTransfuseBill") +public class SearchTransfuseBillController extends BaseController { + + @Resource + private SearchTransfuseBillService searchTransfuseBillService; + + @ApiOperation("查询登记列表") + @GetMapping("/queryList") + public TableDataInfo queryList(XkSearchTransfuseBillVO xkSearchTransfuseBillVO) { + List xkSearchTransfuseBillList = searchTransfuseBillService.queryList(xkSearchTransfuseBillVO); + return getDataTable(xkSearchTransfuseBillList); + } + + @Log(title = BloodSysLogConstants.LOG_TYPE_SEARCH_TRANSFUSEBILL_INFO, businessType = BusinessType.INSERT) + @ApiOperation("申请单扫描登记") + @GetMapping("/saveBillNo") + public Result saveBillNo(XkSearchTransfuseBill xkSearchTransfuseBill){ + return searchTransfuseBillService.saveBillNo(xkSearchTransfuseBill); + } + + @ApiOperation("查询某个申请单") + @GetMapping("/queryOne") + public Result queryOne(String billNo){ + return searchTransfuseBillService.queryOne(billNo); + } + + @ApiOperation("取消扫描登记") + @GetMapping("/delete") + @Log(title = BloodSysLogConstants.LOG_TYPE_SEARCH_TRANSFUSEBILL_INFO, businessType = BusinessType.DELETE) + public Result delete(String billNo){ + return searchTransfuseBillService.delete(billNo); + } + +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/SearchTransfuseBillMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/SearchTransfuseBillMapper.java new file mode 100644 index 0000000..95453eb --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/SearchTransfuseBillMapper.java @@ -0,0 +1,11 @@ +package com.czblood.busBloodbank.mapper; + +import com.czblood.bus.pojo.XkSearchTransfuseBill; +import com.czblood.busBloodbank.pojo.VO.XkSearchTransfuseBillVO; + +import java.util.List; + +public interface SearchTransfuseBillMapper { + List queryList(XkSearchTransfuseBillVO xkSearchTransfuseBillVO); + Integer getMaxSid(); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/XkSearchTransfuseBillVO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/XkSearchTransfuseBillVO.java new file mode 100644 index 0000000..1cc0feb --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/XkSearchTransfuseBillVO.java @@ -0,0 +1,18 @@ +package com.czblood.busBloodbank.pojo.VO; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class XkSearchTransfuseBillVO { + private String stime; + private String etime; + private String dept; + private String billNo; + private String hgbz; + private String status; +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/SearchTransfuseBillService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/SearchTransfuseBillService.java new file mode 100644 index 0000000..80f092d --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/SearchTransfuseBillService.java @@ -0,0 +1,17 @@ +package com.czblood.busBloodbank.service; + +import com.czblood.bus.pojo.XkSearchTransfuseBill; +import com.czblood.busBloodbank.pojo.VO.XkSearchTransfuseBillVO; +import com.czblood.common.core.domain.Result; + +import java.util.List; + +public interface SearchTransfuseBillService { + List queryList(XkSearchTransfuseBillVO xkSearchTransfuseBillVO); + + Result saveBillNo(XkSearchTransfuseBill xkSearchTransfuseBill); + + Result queryOne(String billNo); + + Result delete(String billNo); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/SearchTransfuseBillServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/SearchTransfuseBillServiceImpl.java new file mode 100644 index 0000000..89b0d56 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/SearchTransfuseBillServiceImpl.java @@ -0,0 +1,65 @@ +package com.czblood.busBloodbank.service.impl; + +import com.czblood.bus.mapper.XkSearchTransfuseBillMapper; +import com.czblood.bus.pojo.XkSearchTransfuseBill; +import com.czblood.busBloodbank.mapper.SearchTransfuseBillMapper; +import com.czblood.busBloodbank.pojo.VO.XkSearchTransfuseBillVO; +import com.czblood.busBloodbank.service.SearchTransfuseBillService; +import com.czblood.common.core.domain.Result; +import com.czblood.common.utils.spring.SpringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SearchTransfuseBillServiceImpl implements SearchTransfuseBillService { + + @Resource + private SearchTransfuseBillMapper searchTransfuseBillMapper; + @Resource + XkSearchTransfuseBillMapper xkSearchTransfuseBillMapper; + + @Override + public List queryList(XkSearchTransfuseBillVO xkSearchTransfuseBillVO) { + return searchTransfuseBillMapper.queryList(xkSearchTransfuseBillVO); + } + + /** + * 申请单登记 + * @param xkSearchTransfuseBill + * @return + */ + @Override + public Result saveBillNo(XkSearchTransfuseBill xkSearchTransfuseBill) { + XkSearchTransfuseBill xkSearchTransfuseBill1 = xkSearchTransfuseBillMapper.queryOne(xkSearchTransfuseBill.getBill_no()); + if(xkSearchTransfuseBill1 != null) return new Result("-1","申请单已扫描登记!"); + SpringUtils.getBean(SearchTransfuseBillServiceImpl.class).saveData(xkSearchTransfuseBill); + return new Result("0","登记成功!"); + } + + @Override + public Result queryOne(String billNo) { + XkSearchTransfuseBill xkSearchTransfuseBill = xkSearchTransfuseBillMapper.queryOne(billNo); + return new Result("0","查询成功",xkSearchTransfuseBill); + } + + /** + * 删除某个申请单 + * @param billNo + * @return + */ + @Override + public Result delete(String billNo) { + xkSearchTransfuseBillMapper.delete(billNo); + return new Result("0","删除成功!"); + } + + @Transactional(rollbackFor = Exception.class) + public synchronized void saveData(XkSearchTransfuseBill xkSearchTransfuseBill){ + Integer maxSid = searchTransfuseBillMapper.getMaxSid(); + xkSearchTransfuseBill.setSid(maxSid+1); + xkSearchTransfuseBillMapper.insert(xkSearchTransfuseBill); + } +} diff --git a/blood_bus_bloodbank/src/main/resources/mapper/SearchTransfuseBillMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/SearchTransfuseBillMapper.xml new file mode 100644 index 0000000..6576532 --- /dev/null +++ b/blood_bus_bloodbank/src/main/resources/mapper/SearchTransfuseBillMapper.xml @@ -0,0 +1,42 @@ + + + + + + + \ No newline at end of file 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 index a179d81..cd35bc9 100644 --- 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 @@ -1,8 +1,12 @@ package com.czblood.busNurse.controller; +import com.czblood.bus.constants.BloodSysLogConstants; import com.czblood.busNurse.pojo.VO.SampleInfoVO; import com.czblood.busNurse.service.SampleInfoService; +import com.czblood.common.annotation.Log; +import com.czblood.common.core.controller.BaseController; import com.czblood.common.core.domain.Result; +import com.czblood.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -13,18 +17,28 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -@Api(tags = "打印条码") +@Api(tags = "护士打印条码") @RestController @RequestMapping("/bus/nurse/sampleInfo") @Slf4j -public class SampleInfoController { +public class SampleInfoController extends BaseController { @Resource private SampleInfoService sampleInfoService; + @Log(title = BloodSysLogConstants.LOG_TYPE_SAMPLE_INFO, businessType = BusinessType.INSERT) @ApiOperation("查询样本信息列表") @GetMapping("/queryList") public Result queryList(SampleInfoVO sampleInfoVO){ + sampleInfoVO.setUserId(getUsername()); return sampleInfoService.queryList(sampleInfoVO); } + + @ApiOperation("打印条码") + @GetMapping("/printBarCode") + public Result printBarCode(String sampleNo){ + return sampleInfoService.printBarCode(sampleNo); + } + + } 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 index 8b1737a..2540abe 100644 --- 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 @@ -1,5 +1,6 @@ package com.czblood.busNurse.mapper; +import com.czblood.bus.pojo.XkCheckBloodtype; import com.czblood.busNurse.pojo.VO.SampleInfoVO; import java.util.List; @@ -7,4 +8,6 @@ import java.util.Map; public interface SampleInfoMapper { List> queryList(SampleInfoVO sampleInfoVO); + List> querySampleInfoData(String dept); + XkCheckBloodtype queryMaxTestDateInfo(String beinhos_id); } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/SampleInfoVO.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/SampleInfoVO.java index 3f5fef4..748644b 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/SampleInfoVO.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/SampleInfoVO.java @@ -20,4 +20,5 @@ public class SampleInfoVO { private String patname; private String reqid; private String reqzt; + private String userId; } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/SampleInfoService.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/SampleInfoService.java index e1ad1a9..51aad5a 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/SampleInfoService.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/SampleInfoService.java @@ -5,4 +5,6 @@ import com.czblood.common.core.domain.Result; public interface SampleInfoService { Result queryList(SampleInfoVO sampleInfoVO); + + Result printBarCode(String sampleNo); } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/SampleInfoServiceImpl.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/SampleInfoServiceImpl.java index 9327dd8..8180fd5 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/SampleInfoServiceImpl.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/SampleInfoServiceImpl.java @@ -1,13 +1,24 @@ package com.czblood.busNurse.service.impl; +import cn.hutool.core.date.DateUtil; +import com.czblood.bus.mapper.XkBloodBreedMapper; +import com.czblood.bus.mapper.XkSampleInfoMapper; +import com.czblood.bus.mapper.XkTransfuseApplyMapper; +import com.czblood.bus.pojo.XkSampleInfo; +import com.czblood.bus.pojo.XkTransfuseApply; +import com.czblood.bus.pojo.xtwh.XkBloodBreed; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.busNurse.mapper.SampleInfoMapper; import com.czblood.busNurse.pojo.VO.SampleInfoVO; import com.czblood.busNurse.service.SampleInfoService; +import com.czblood.busNurse.utils.SampleInfoUtil; import com.czblood.common.core.domain.Result; +import com.czblood.common.utils.spring.SpringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Map; @@ -18,21 +29,133 @@ public class SampleInfoServiceImpl implements SampleInfoService { private SampleInfoMapper sampleInfoMapper; @Resource BloodBankUtil bloodBankUtil; + @Resource + XkSampleInfoMapper xkSampleInfoMapper; + @Resource + XkTransfuseApplyMapper xkTransfuseApplyMapper; + @Resource + XkBloodBreedMapper xkBloodBreedMapper; + @Resource + SampleInfoUtil sampleInfoUtil; @Override public Result queryList(SampleInfoVO sampleInfoVO) { + //生成条码 + Result result = createSampleInfo(sampleInfoVO.getDept(), sampleInfoVO.getUserId()); + String msg = ""; + if(!result.getCode().equals("0")) msg = result.getMsg(); List> mapList = sampleInfoMapper.queryList(sampleInfoVO); - return new Result("0", "操作成功", mapList); + if(!msg.equals("")){ + return new Result("1", msg, mapList); + }else{ + return new Result("0", "操作成功", mapList); + } + + } + + /** + * 打印条码 + * @param sampleNo + * @return + */ + @Override + public Result printBarCode(String sampleNo) { + XkSampleInfo xkSampleInfo = xkSampleInfoMapper.queryOne(sampleNo); + if(xkSampleInfo == null) return new Result("0","没有找到该样本信息!"); + return new Result("0","打印成功!"); } - public Result createSampleInfo(){ + /** + * 生成条码 + * @param dept + * @param userId + * @return + */ + public Result createSampleInfo(String dept,String userId){ //条码是否在输血审核的时候生成","N","(Y,N)Y在输血审核的时候生成,N在标本录入的时候生成。 String tmsfzsxshsc = bloodBankUtil.getParameterValue("TMSFZSXSHSC"); if(tmsfzsxshsc.equals("Y")) return new Result("0","不在这里产生条码!"); //标本录入时条码生成方式(A-按照血型复核三天生成判断,B-全量生成) String createsampletype = bloodBankUtil.getParameterValue("CREATESAMPLETYPE"); - return null; + Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); + List> sampleInfoList = sampleInfoMapper.querySampleInfoData(dept); + boolean match = false; + boolean isMatch = false; + String sort = ""; + String xxfh = ""; + for (Map stringObjectMap : sampleInfoList) { + //String billNo = BloodBankUtil.isBank(stringObjectMap.get("bill_no")); + String bloodBreed = BloodBankUtil.isBank(stringObjectMap.get("blood_breed")); + String beinhos_id = BloodBankUtil.isBank(stringObjectMap.get("beinhos_id")); + String billStatus = BloodBankUtil.isBank(stringObjectMap.get("bill_stasus")); + if(!createsampletype.equals("B")){ + //不是全量生成条码,按照血型复核三天生成判断 + XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed); + if(xkBloodBreed.getIs_match().equals("Y")) match = true; + if(match){ + sort = "B"; + }else{ + sort = "A"; + } + isMatch = sampleInfoUtil.bloodCheckIsMatch(beinhos_id, sort); + if(isMatch){ + xxfh = "1"; + }else{ + xxfh = "0"; + } + //已经做过血型复核的单据,但是没有生成标本数据,则再生成一遍 + if(billStatus.equals("F") || billStatus.equals("D") || billStatus.equals("C") || billStatus.equals("S")){ + xxfh = "1"; + isMatch = true; + } + }else{ + //全量生成条码 + xxfh = "1"; + isMatch = true; + } + XkSampleInfo xkSampleInfo = null; + XkTransfuseApply xkTransfuseApply = null; + if(isMatch){ + xkSampleInfo = new XkSampleInfo(); + String sample_No = bloodBankUtil.produceBillNo(""); + xkSampleInfo.setSample_No(sample_No); + xkSampleInfo.setPick_Nurse(userId); + xkSampleInfo.setPick_Date(currentTimeDate); + xkSampleInfo.setPurpose("A"); + xkSampleInfo.setDept(BloodBankUtil.isBank(stringObjectMap.get("dept_id"))); + xkSampleInfo.setBlood_Type(BloodBankUtil.isBank(stringObjectMap.get("abo"))); + xkSampleInfo.setRh_Blood_Type(BloodBankUtil.isBank(stringObjectMap.get("rh"))); + xkSampleInfo.setSample_Name(BloodBankUtil.isBank(stringObjectMap.get("patient_name"))); + xkSampleInfo.setSex(BloodBankUtil.isBank(stringObjectMap.get("patient_sex"))); + xkSampleInfo.setAge(BloodBankUtil.isBank(stringObjectMap.get("age"))); + xkSampleInfo.setBirthday(DateUtil.parse(BloodBankUtil.isBank(stringObjectMap.get("patient_birthday")),"yyyy-MM-dd HH:mm:ss")); + xkSampleInfo.setRelate_ApplyNo(BloodBankUtil.isBank(stringObjectMap.get("bill_no"))); + xkSampleInfo.setExp1("Y"); + + xkTransfuseApply = new XkTransfuseApply(); + xkTransfuseApply.setBill_no(BloodBankUtil.isBank(stringObjectMap.get("bill_no"))); + xkTransfuseApply.setSample_id(sample_No); + xkTransfuseApply.setGather_date(currentTimeDate); + xkTransfuseApply.setIsxxfh(xxfh); + }else{ + xkTransfuseApply = new XkTransfuseApply(); + xkTransfuseApply.setBill_no(BloodBankUtil.isBank(stringObjectMap.get("bill_no"))); + xkTransfuseApply.setIsxxfh(xxfh); + } + SpringUtils.getBean(SampleInfoServiceImpl.class).saveSampleInfo(xkTransfuseApply, xkSampleInfo); + } + + return new Result("0","生成成功!"); + } + + + @Transactional(rollbackFor = Exception.class) + public void saveSampleInfo(XkTransfuseApply xkTransfuseApply, XkSampleInfo xkSampleInfo){ + if(xkSampleInfo != null){ + xkSampleInfoMapper.insert(xkSampleInfo); + } + xkTransfuseApplyMapper.update(xkTransfuseApply); } } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/utils/SampleInfoUtil.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/utils/SampleInfoUtil.java new file mode 100644 index 0000000..0d7a337 --- /dev/null +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/utils/SampleInfoUtil.java @@ -0,0 +1,67 @@ +package com.czblood.busNurse.utils; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.czblood.bus.pojo.XkCheckBloodtype; +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busNurse.mapper.SampleInfoMapper; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Component +public class SampleInfoUtil { + + @Resource + SampleInfoMapper sampleInfoMapper; + @Resource + BloodBankUtil bloodBankUtil; + + + /** + * 判断病人是否要进行血型复核 + * @param beinhos_id + * @param need_check + * @return + */ + public Boolean bloodCheckIsMatch(String beinhos_id,String need_check){ + DateTime validDate = null; + XkCheckBloodtype xkCheckBloodtype = sampleInfoMapper.queryMaxTestDateInfo(beinhos_id); + if(xkCheckBloodtype != null){ + Date testDate = xkCheckBloodtype.getTest_date(); + //只要过了零点就代表是三天之内的判断 + String formatDate = DateUtil.format(testDate, "yyyy-MM-dd"); + validDate = DateUtil.offsetDay(DateUtil.parse(formatDate, "yyyy-MM-dd"), 3); + } + Boolean isMatch = false; + Date now = bloodBankUtil.getCurrentTimeDate(); + //申请的血液品种不需要进行交叉配血 + if(need_check.equals("A")){ + if(xkCheckBloodtype == null){ + //无输血记录 + isMatch = true; + }else{ + isMatch = false; + } + } + + //申请的血液品种需要进行交叉配血 + if(need_check.equals("B")){ + if(xkCheckBloodtype == null) { + //无输血记录 + isMatch = true; + }else if(validDate.compareTo(now) < 0){ + isMatch = true; + }else{ + isMatch = false; + } + } + if(!need_check.equals("A") && !need_check.equals("B")){ + isMatch = true; + } + + return isMatch; + } +} diff --git a/blood_bus_nurse/src/main/resources/mapper/SampleInfoMapper.xml b/blood_bus_nurse/src/main/resources/mapper/SampleInfoMapper.xml index 73a6fd0..b6a3332 100644 --- a/blood_bus_nurse/src/main/resources/mapper/SampleInfoMapper.xml +++ b/blood_bus_nurse/src/main/resources/mapper/SampleInfoMapper.xml @@ -70,4 +70,35 @@ AND (xk_transfuse_apply.dept_id = #{dept}) and (xk_transfuse_apply.bill_no = #{sample_no)} + + \ No newline at end of file