|  | @@ -44,6 +44,8 @@ public class ZkManageService {
 | 
	
		
			
				|  |  |      private AdjustBedDao adjustBedDao;
 | 
	
		
			
				|  |  |      @Resource
 | 
	
		
			
				|  |  |      private RedisLikeService redisLikeService;
 | 
	
		
			
				|  |  | +    //手术病室编码
 | 
	
		
			
				|  |  | +    private static final String SJ_DEPT_CODE = "8000130";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public List<ZyActpatient> queryZkPatient(Map<String, String> query) {
 | 
	
	
		
			
				|  | @@ -66,22 +68,23 @@ public class ZkManageService {
 | 
	
		
			
				|  |  |          AssertUtil.isnotBlank(param.getWardCode(), "病室不能为空");
 | 
	
		
			
				|  |  |          AssertUtil.isnotBlank(param.getDeptCode(), "转科病室不能为空");
 | 
	
		
			
				|  |  |          AssertUtil.isnotBlank(param.getZkDept(), "小科室不能为空");
 | 
	
		
			
				|  |  | -        Map<String, Object> map = dao.selectZkYz(param);
 | 
	
		
			
				|  |  | -        if (CollUtil.isEmpty(map) || Convert.toInt(map.get("zk_count"), 0) == 0) {
 | 
	
		
			
				|  |  | -            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人没有转科医嘱,不可做转科处理!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        ZyOrderZk zyOrderZk = dao.selectZkOrder(Convert.toBigDecimal(map.get("act_order_no")));
 | 
	
		
			
				|  |  | -        if(zyOrderZk == null){
 | 
	
		
			
				|  |  | -            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人没有转科医嘱详情,请确认!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +        if(!passZk(param)){
 | 
	
		
			
				|  |  | +            Map<String, Object> map = dao.selectZkYz(param);
 | 
	
		
			
				|  |  | +            if (CollUtil.isEmpty(map) || Convert.toInt(map.get("zk_count"), 0) == 0) {
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人没有转科医嘱,不可做转科处理!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            ZyOrderZk zyOrderZk = dao.selectZkOrder(Convert.toBigDecimal(map.get("act_order_no")));
 | 
	
		
			
				|  |  | +            if(zyOrderZk == null){
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人没有转科医嘱详情,请确认!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if(!param.getDeptCode().equals(zyOrderZk.getNewWard()) || !param.getZkDept().equals(zyOrderZk.getNewDept())){
 | 
	
		
			
				|  |  | -            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人选择的转科病区或小科室不对,正确的转科医嘱为病区:[{}],小科室:[{}]!", param.getInpatientNo(),redisLikeService.getDeptName(zyOrderZk.getNewWard()),redisLikeService.getDeptName(zyOrderZk.getNewDept())));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        Integer countZk = dao.selectZyZkList(param.getInpatientNo(), param.getAdmissTimes(), Convert.toBigDecimal(map.get("act_order_no")));
 | 
	
		
			
				|  |  | -        if (countZk > 0) {
 | 
	
		
			
				|  |  | -            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人已经转科,请不要重复操作!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | +            if(!param.getDeptCode().equals(zyOrderZk.getNewWard()) || !param.getZkDept().equals(zyOrderZk.getNewDept())){
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人选择的转科病区或小科室不对,正确的转科医嘱为病区:[{}],小科室:[{}]!", param.getInpatientNo(),redisLikeService.getDeptName(zyOrderZk.getNewWard()),redisLikeService.getDeptName(zyOrderZk.getNewDept())));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            Integer countZk = dao.selectZyZkList(param.getInpatientNo(), param.getAdmissTimes(), Convert.toBigDecimal(map.get("act_order_no")));
 | 
	
		
			
				|  |  | +            if (countZk > 0) {
 | 
	
		
			
				|  |  | +                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, StrUtil.format("{}病人已经转科,请不要重复操作!", param.getInpatientNo()));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          Integer count = dao.countYd(param);
 | 
	
		
			
				|  |  |          Integer countTy = dao.sumTy(param);
 | 
	
	
		
			
				|  | @@ -102,6 +105,14 @@ public class ZkManageService {
 | 
	
		
			
				|  |  |          patientDao.zyReceiveOne(param.getInpatientNo(), param.getAdmissTimes(), infant);
 | 
	
		
			
				|  |  |          return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE,"药品和医嘱接收成功!");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private boolean passZk(ZkBedVo param){
 | 
	
		
			
				|  |  | +        if(SJ_DEPT_CODE.equals(param.getDeptCode()) || SJ_DEPT_CODE.equals(param.getWardCode())){
 | 
	
		
			
				|  |  | +            return true;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return false;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public ResultVo<String> saveZkData(List<ZkBedVo> param) {
 | 
	
		
			
				|  |  |          List<ZkBedVo> data = param.stream().filter(item -> StrUtil.isNotBlank(item.getInpatientNo())).collect(Collectors.toList());
 | 
	
	
		
			
				|  | @@ -142,7 +153,11 @@ public class ZkManageService {
 | 
	
		
			
				|  |  |              dao.updateZkZyActpatien(item);
 | 
	
		
			
				|  |  |              dao.insertZyAdt(item);
 | 
	
		
			
				|  |  |              item.setOpId(userId);
 | 
	
		
			
				|  |  | -            dao.insertZyZkList(item);
 | 
	
		
			
				|  |  | +            if(SJ_DEPT_CODE.equals(item.getOrigDept()) || SJ_DEPT_CODE.equals(item.getWardCode())){
 | 
	
		
			
				|  |  | +                dao.insertZyZkListNoActOrderNo(item);
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +                dao.insertZyZkList(item);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE,"保存成功");
 | 
	
		
			
				|  |  |      }
 |