|  | @@ -1186,11 +1186,13 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
 | 
	
		
			
				|  |  |              mzYjReqMapper.deleteNotPayYjReByPatientId(mzPrescriptionVo.getPatientId(), dbClinic.getTimes());
 | 
	
		
			
				|  |  |              mzBlRecordMapper.deleteNotPayBlRecordByPatientId(mzPrescriptionVo.getPatientId(), dbClinic.getTimes());
 | 
	
		
			
				|  |  |              clinicMapper.deleteById(dbClinic.getId());
 | 
	
		
			
				|  |  | -            List<MzZyReq> zyReqList= mzZyReqMapper.selectMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),dbClinic.getDoctorCode());
 | 
	
		
			
				|  |  | -            if(zyReqList!=null && zyReqList.size()>0){
 | 
	
		
			
				|  |  | -                mzZyReqMapper.deleteMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),dbClinic.getDoctorCode());
 | 
	
		
			
				|  |  | -                for(MzZyReq mzZyReq:zyReqList){
 | 
	
		
			
				|  |  | -                    zyBedPreMsgMappper.deleteMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),mzZyReq.getVisitDate());
 | 
	
		
			
				|  |  | +            if(mzPrescriptionVo.getMzZyReq() != null && StrUtil.isNotBlank(mzPrescriptionVo.getMzZyReq().getReqDept())){
 | 
	
		
			
				|  |  | +                List<MzZyReq> zyReqList= mzZyReqMapper.selectMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),dbClinic.getDoctorCode());
 | 
	
		
			
				|  |  | +                if(zyReqList!=null && zyReqList.size()>0){
 | 
	
		
			
				|  |  | +                    mzZyReqMapper.deleteMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),dbClinic.getDoctorCode());
 | 
	
		
			
				|  |  | +                    for(MzZyReq mzZyReq:zyReqList){
 | 
	
		
			
				|  |  | +                        zyBedPreMsgMappper.deleteMzZyReqByDoctorCode(mzPrescriptionVo.getPatientId(),mzZyReq.getVisitDate());
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              List<OpRecord> opRecordList= opRecordMapper.selectOpRecordByPatientIdAndTimes(mzPrescriptionVo.getPatientId(), dbClinic.getTimes());
 | 
	
	
		
			
				|  | @@ -6349,13 +6351,13 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
 | 
	
		
			
				|  |  |      @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, timeout = 36000, rollbackFor = {Exception.class,BizException.class,MzException.class})
 | 
	
		
			
				|  |  |      public Clinic savePrescriptionAndCharge(MzPrescriptionVo mzPrescriptionVo, Clinic dbClinic) throws MzException{
 | 
	
		
			
				|  |  |         if(zyActpatientService.checkZaiYuan(mzPrescriptionVo.getPatientId())){
 | 
	
		
			
				|  |  | -           throw new BizException("病人已经在住院,不能再开门诊处方");
 | 
	
		
			
				|  |  | +           throw new MzException("病人已经在住院,不能再开门诊处方");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |          //计算处方总金额是否为0
 | 
	
		
			
				|  |  |          Map<String, Object> tempPrescription = getMzChargeDetailService().getAmountForTempPrescription(mzPrescriptionVo);
 | 
	
		
			
				|  |  |          BigDecimal totalFee = (BigDecimal) tempPrescription.get("amount");
 | 
	
		
			
				|  |  |          Clinic insertClinic;
 | 
	
		
			
				|  |  | -        if(totalFee.compareTo(BigDecimal.ZERO) == 0){
 | 
	
		
			
				|  |  | +        if(totalFee.compareTo(BigDecimal.ZERO) == 0 && (CollUtil.isNotEmpty(mzPrescriptionVo.getMzYjReqList()) || CollUtil.isNotEmpty(mzPrescriptionVo.getMzChargeDetailList()))){
 | 
	
		
			
				|  |  |              insertClinic = getMzChargeDetailService().savePrescription(mzPrescriptionVo, dbClinic, false);
 | 
	
		
			
				|  |  |              if(insertClinic !=null && insertClinic.getId() != null){
 | 
	
		
			
				|  |  |                  MzDepositFileVo mzDepositFileVo = new MzDepositFileVo();
 |