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 60429e2..e9822eb 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 @@ -8,4 +8,5 @@ public class BloodSysLogConstants { public static final String LOG_TYPE_YLJG = "医疗机构"; public static final String LOG_TYPE_DMZD = "代码字典"; public static final String LOG_TYPE_TRANSFUSE_APPLY = "输血申请"; + public static final String LOG_TYPE_TRANSFUSE_APPLY_APPROVAL = "输血审批"; } 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 6c53ef3..d0373cb 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 @@ -9,7 +9,9 @@ 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.ApiModelProperty; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -69,7 +71,7 @@ public class TransfuseApplyBeforeController extends BaseController { @ApiOperation("打印单据") @GetMapping("/print") - public Result print(String billNo,String templateName){ + public Result print(@ApiParam(value = "单据编号", required = true) String billNo,@ApiParam(value = "模板名称:ASSESS_BEFORE(输血前评估单),INFORMED_CONSENT(知情同意书),LARGE_APPLY(大量用血审批单)", required = true) String templateName){ return transfuseApplyBeforeService.print(billNo,templateName); } } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyHistoryController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyHistoryController.java index 6952719..d822c95 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyHistoryController.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApplyHistoryController.java @@ -2,10 +2,12 @@ package com.czblood.busDoctor.controller; import com.czblood.busDoctor.mapper.TransfuseApplyHistoryMapper; import com.czblood.busDoctor.pojo.VO.TransfuseApplyHistoryVO; -import com.czblood.common.core.domain.Result; +import com.czblood.common.core.controller.BaseController; +import com.czblood.common.core.page.TableDataInfo; 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.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,16 +19,17 @@ import java.util.Map; @RestController @RequestMapping("/bus/doctor/history") @Slf4j -public class TransfuseApplyHistoryController { +public class TransfuseApplyHistoryController extends BaseController { @Resource private TransfuseApplyHistoryMapper transfuseApplyHistoryMapper; @ApiOperation("查询输血申请历史列表") - @RequestMapping("/queryList") - public Result queryList(TransfuseApplyHistoryVO transfuseApplyHistoryVO){ + @GetMapping("/queryList") + public TableDataInfo queryList(TransfuseApplyHistoryVO transfuseApplyHistoryVO){ + startPage(); List> list = transfuseApplyHistoryMapper.queryList(transfuseApplyHistoryVO); - return new Result("0","查询成功!",list); + return getDataTable(list); } } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApprovalController.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApprovalController.java new file mode 100644 index 0000000..12481a4 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/controller/TransfuseApprovalController.java @@ -0,0 +1,48 @@ +package com.czblood.busDoctor.controller; + +import com.czblood.bus.constants.BloodSysLogConstants; +import com.czblood.busDoctor.pojo.VO.TransfuseApprovalVO; +import com.czblood.busDoctor.service.TransfuseApprovalService; +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; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags = "大量用血审批") +@RestController +@RequestMapping("/bus/doctor/approval") +@Slf4j +public class TransfuseApprovalController extends BaseController { + + @Resource + private TransfuseApprovalService transfuseApprovalService; + + @ApiOperation("查询大量用血审批列表") + @PostMapping("/queryList") + public Result queryList(@RequestBody TransfuseApprovalVO transfuseApprovalVO){ + return transfuseApprovalService.queryList(transfuseApprovalVO); + } + + @Log(title = BloodSysLogConstants.LOG_TYPE_TRANSFUSE_APPLY_APPROVAL, businessType = BusinessType.CHECK) + @ApiOperation("科主任审批") + @GetMapping("/auditArchiater") + public Result auditArchiater(String billNo){ + String username = getUsername(); + return transfuseApprovalService.auditArchiater(billNo,username); + } + + @Log(title = BloodSysLogConstants.LOG_TYPE_TRANSFUSE_APPLY_APPROVAL, businessType = BusinessType.CHECK_MEDIC) + @ApiOperation("医务部审批") + @GetMapping("/auditMedical") + public Result auditMedical(String billNo){ + String username = getUsername(); + return transfuseApprovalService.auditMedical(billNo,username); + } + +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApprovalMapper.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApprovalMapper.java new file mode 100644 index 0000000..508847f --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/mapper/TransfuseApprovalMapper.java @@ -0,0 +1,11 @@ +package com.czblood.busDoctor.mapper; + + +import com.czblood.busDoctor.pojo.VO.TransfuseApprovalVO; + +import java.util.List; +import java.util.Map; + +public interface TransfuseApprovalMapper { + List> queryList(TransfuseApprovalVO transfuseApprovalVO); +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/TransfuseApprovalVO.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/TransfuseApprovalVO.java new file mode 100644 index 0000000..e1c85f3 --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/pojo/VO/TransfuseApprovalVO.java @@ -0,0 +1,17 @@ +package com.czblood.busDoctor.pojo.VO; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TransfuseApprovalVO { + private String stime; + private String etime; + private String billNo; + private String beinhos_id; + private String dept; + private String flag; +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApprovalService.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApprovalService.java new file mode 100644 index 0000000..0ec7e5c --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/TransfuseApprovalService.java @@ -0,0 +1,12 @@ +package com.czblood.busDoctor.service; + +import com.czblood.busDoctor.pojo.VO.TransfuseApprovalVO; +import com.czblood.common.core.domain.Result; + +public interface TransfuseApprovalService { + Result queryList(TransfuseApprovalVO transfuseApprovalVO); + + Result auditArchiater(String billNo,String username); + + Result auditMedical(String billNo, String username); +} 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 ded2a7f..50ae8d2 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 @@ -215,11 +215,11 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { //开启职称校验 if(sfsyzckz.equals("Y")){ //申请单的申请医生 - Result result = checkZC(xkTransfuseApply.getApply_medic()); + Result result = transfuseApplyUtil.checkZC(xkTransfuseApply.getApply_medic()); if(!result.getCode().equals("0")) return result; if(Integer.parseInt(result.getData().toString()) < 2) return new Result("-1","申请医师必须具备中级或以上职称,录入的申请医师不具备该职称。"); //申请单的上级医师 - Result result1 = checkZC(xkTransfuseApply.getTreat_medic()); + Result result1 = transfuseApplyUtil.checkZC(xkTransfuseApply.getTreat_medic()); if(!result1.getCode().equals("0")) return result1; if(Integer.parseInt(result1.getData().toString()) < 3) return new Result("-1","上级医师必须具备高级职称,录入的上级医师不具备该职称。"); XkProTransfuseProject xkProTransfuseProject = new XkProTransfuseProject(); @@ -237,8 +237,10 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { String agreementInk = BloodBankUtil.isBank(xkTransfuseApply.getAgreement_ink()); if(!agreementInk.equals("Y")) return new Result("-1","请先签署输血知情同意书!"); - String intent = BloodBankUtil.isBank(xkTransfuseApply.getIntent()); - if(intent.equals("")) return new Result("-1","请填写输血目的!"); + for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) { + String intent = BloodBankUtil.isBank(xkTransfuseApplyBloodbreed.getIntent()); + if(intent.equals("")) return new Result("-1","请填写输血目的!"); + } for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) { String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed(); @@ -645,16 +647,4 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService { return BloodInterfaceUtil.invokeBloodInterface(invokeHisEmrRequest); } - - /** - * 校验医生职称是否符合要求 - * @return - */ - public Result checkZC(String userId){ - SysUser userInfo = bloodBankUtil.getUserInfo(userId); - if(userInfo == null) return new Result("-1","用户不存在!"); - String postname = BloodBankUtil.isBank(userInfo.getPostname()); - if(postname.equals("")) postname = "0"; - return new Result("0","",postname); - } } 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 new file mode 100644 index 0000000..73f227b --- /dev/null +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/service/impl/TransfuseApprovalServiceImpl.java @@ -0,0 +1,117 @@ +package com.czblood.busDoctor.service.impl; + +import com.czblood.bus.mapper.XkTransfuseApplyApprovalMapper; +import com.czblood.bus.mapper.XkTransfuseApplyMapper; +import com.czblood.bus.pojo.XkTransfuseApply; +import com.czblood.bus.pojo.XkTransfuseApplyApproval; +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busDoctor.mapper.TransfuseApprovalMapper; +import com.czblood.busDoctor.pojo.VO.TransfuseApprovalVO; +import com.czblood.busDoctor.service.TransfuseApprovalService; +import com.czblood.busDoctor.utils.TransfuseApplyUtil; +import com.czblood.common.core.domain.Result; +import com.czblood.common.core.domain.entity.SysUser; +import com.czblood.common.utils.spring.SpringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +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; + +@Service +@Slf4j +public class TransfuseApprovalServiceImpl implements TransfuseApprovalService { + + @Resource + private TransfuseApprovalMapper transfuseApprovalMapper; + @Resource + TransfuseApplyUtil transfuseApplyUtil; + @Resource + XkTransfuseApplyApprovalMapper xkTransfuseApplyApprovalMapper; + @Autowired + private BloodBankUtil bloodBankUtil; + @Resource + XkTransfuseApplyMapper xkTransfuseApplyMapper; + + + @Override + public Result queryList(TransfuseApprovalVO transfuseApprovalVO) { + List> xkTransfuseApplyApprovalList = transfuseApprovalMapper.queryList(transfuseApprovalVO); + return new Result("0","查询成功",xkTransfuseApplyApprovalList); + } + + /** + * 科主任审核 + * @param billNo + * @param username + * @return + */ + @Override + public Result auditArchiater(String billNo,String username) { + if(billNo == null || billNo.equals("")) return new Result("-1","申请单号不能为空"); + Result result = transfuseApplyUtil.checkZC(username); + if(!result.getCode().equals("0")) return result; + if(Integer.parseInt(result.getData().toString()) < 3) return new Result("-1","上级医师必须具备高级职称,录入的上级医师不具备该职称。"); + XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); + if(xkTransfuseApplyApproval == null) return new Result("-1","选择的申请单不存在!"); + String applyLevel = xkTransfuseApplyApproval.getApplyLevel(); + String flag = xkTransfuseApplyApproval.getFlag(); + if(applyLevel.equals("2") && flag.equals("Y")) return new Result("1","该申请单已进行科主任核准!"); + Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); + XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval(); + xkTransfuseApplyApprovalTemp.setBill_No(billNo); + xkTransfuseApplyApprovalTemp.setArchiater( username); + xkTransfuseApplyApprovalTemp.setArchiater_CheckTime(currentTimeDate); + xkTransfuseApplyApprovalTemp.setFlag("Y"); + + XkTransfuseApply xkTransfuseApplyTemp = new XkTransfuseApply(); + xkTransfuseApplyTemp.setBill_no(billNo); + xkTransfuseApplyTemp.setBank_director( username); + SpringUtils.getBean(TransfuseApprovalServiceImpl.class).updateAudit(xkTransfuseApplyApprovalTemp,xkTransfuseApplyTemp); + return new Result("0","审核成功!"); + } + + /** + * 医务部审核 + * @param billNo + * @param username + * @return + */ + @Override + public Result auditMedical(String billNo, String username) { + if(billNo == null || billNo.equals("")) return new Result("-1","申请单号不能为空"); + //使用该控制进行输血审核时, 设置医务科科室ID + String sfsywb = bloodBankUtil.getParameterValue("SFSYWB"); + XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo); + SysUser userInfo = bloodBankUtil.getUserInfo(username); + String deptCode = userInfo.getDept().getDeptCode(); + if(!deptCode.equals(sfsywb)) return new Result("-1","当前用户非医务科人员,不能进行输血审核!"); + String medicalDept = BloodBankUtil.isBank(xkTransfuseApplyApproval.getMedical_Dept()); + String archiater = xkTransfuseApplyApproval.getArchiater(); + if(archiater == null || archiater.equals("")) return new Result("-1","该申请单没有进行科主任审核,请先进行科主任审核!!"); + if(!medicalDept.equals("")) return new Result("-1","该申请单已进行医务部审核,无需重复审核!"); + Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); + XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval(); + xkTransfuseApplyApprovalTemp.setBill_No(billNo); + xkTransfuseApplyApprovalTemp.setMedical_Dept(username); + xkTransfuseApplyApprovalTemp.setMedical_CheckTime(currentTimeDate); + xkTransfuseApplyApprovalTemp.setFlag("Y"); + + XkTransfuseApply xkTransfuseApplyTemp = new XkTransfuseApply(); + xkTransfuseApplyTemp.setBill_no(billNo); + xkTransfuseApplyTemp.setMedical_affairs(username); + SpringUtils.getBean(TransfuseApprovalServiceImpl.class).updateAudit(xkTransfuseApplyApprovalTemp,xkTransfuseApplyTemp); + return new Result("0","审核成功!"); + } + + + @Transactional(rollbackFor = Exception.class) + public void updateAudit(XkTransfuseApplyApproval xkTransfuseApplyApproval, XkTransfuseApply xkTransfuseApply){ + xkTransfuseApplyApprovalMapper.update(xkTransfuseApplyApproval); + xkTransfuseApplyMapper.update(xkTransfuseApply); + } +} diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyBeforeUtil.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyBeforeUtil.java index e0b59a6..2b22dc9 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyBeforeUtil.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseApplyBeforeUtil.java @@ -23,7 +23,7 @@ public class TransfuseApplyBeforeUtil { @Resource XkTransfuseApplyTestitemMapper xkTransfuseApplyTestitemMapper; - @Transactional + @Transactional(rollbackFor = Exception.class) public void saveTransfuseApplyBeforeDTO(TransfuseApplyBeforeDTO transfuseApplyBeforeDTO){ XkPatientInfo xkPatientInfo = transfuseApplyBeforeDTO.getXkPatientInfo(); String beinhosId = xkPatientInfo.getBeinhos_id(); @@ -43,7 +43,7 @@ public class TransfuseApplyBeforeUtil { } - @Transactional + @Transactional(rollbackFor = Exception.class) public void updateTransfuseApplyBeforeDTO(TransfuseApplyBeforeDTO transfuseApplyBeforeDTO){ XkPatientInfo xkPatientInfo = transfuseApplyBeforeDTO.getXkPatientInfo(); xkPatientInfoMapper.updateXkPatientInfo(xkPatientInfo); 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 75a903a..145c3d4 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 @@ -15,6 +15,7 @@ import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne; import com.czblood.busDoctor.pojo.DTO.XkTransfuseApplyCausalisDTO; import com.czblood.busDoctor.pojo.VO.ExplainVO; import com.czblood.common.core.domain.Result; +import com.czblood.common.core.domain.entity.SysUser; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -255,7 +256,7 @@ public class TransfuseApplyUtil { return null; } - @Transactional + @Transactional(rollbackFor = Exception.class) public void saveTransfuseApply(TransfuseApplyDTO transfuseApplyDTO,boolean isNew){ TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne(); XkTransfuseApply xkTransfuseApply = transfuseApplyInfoOne.getXkTransfuseApply(); @@ -332,10 +333,22 @@ public class TransfuseApplyUtil { return sort; } - @Transactional + @Transactional(rollbackFor = Exception.class) public void saveCancelApply(XkTransfuseApply xkTransfuseApply){ String billNo = xkTransfuseApply.getBill_no(); xkTransfuseApplyMapper.update(xkTransfuseApply); xkTransfuseApplyCausalisMapper.deleteByBillNo(billNo); } + + /** + * 校验医生职称是否符合要求 + * @return + */ + public Result checkZC(String userId){ + SysUser userInfo = bloodBankUtil.getUserInfo(userId); + if(userInfo == null) return new Result("-1","用户不存在!"); + String postname = BloodBankUtil.isBank(userInfo.getPostname()); + if(postname.equals("")) postname = "0"; + return new Result("0","",postname); + } } diff --git a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseCheckExplainUtil.java b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseCheckExplainUtil.java index 1d8128b..cd6e885 100644 --- a/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseCheckExplainUtil.java +++ b/blood_bus_doctor/src/main/java/com/czblood/busDoctor/utils/TransfuseCheckExplainUtil.java @@ -40,7 +40,7 @@ public class TransfuseCheckExplainUtil { @Resource XkSampleInfoMapper xkSampleInfoMapper; - @Transactional + @Transactional(rollbackFor = Exception.class) public void updateApplyStatus(XkTransfuseApply xkTransfuseApply,XkCheckBloodtype xkCheckBloodtype){ xkTransfuseApplyMapper.update(xkTransfuseApply); if(xkCheckBloodtype != null){ @@ -124,7 +124,7 @@ public class TransfuseCheckExplainUtil { } - @Transactional + @Transactional(rollbackFor = Exception.class) public void saveSampleData(XkSampleInfo xkSampleInfo, XkTransfuseApply xkTransfuseApply){ xkSampleInfoMapper.insert(xkSampleInfo); xkTransfuseApplyMapper.update(xkTransfuseApply); diff --git a/blood_bus_doctor/src/main/resources/mapper/TransfuseApprovalMapper.xml b/blood_bus_doctor/src/main/resources/mapper/TransfuseApprovalMapper.xml new file mode 100644 index 0000000..aacef81 --- /dev/null +++ b/blood_bus_doctor/src/main/resources/mapper/TransfuseApprovalMapper.xml @@ -0,0 +1,42 @@ + + + + + + \ No newline at end of file