| 
					
				 | 
			
			
				@@ -489,27 +489,26 @@ public class YiZhuLuRuServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param param 参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public ResultVo<List<BigDecimal>> insertTemplateOrder(XinZhenYiZhu param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public ResultVo<List<String>> insertTemplateOrder(XinZhenYiZhu param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtil.isBlank(param.getInpatientNo())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return ResultVoUtil.fail(ExceptionEnum.ERROR_MESSAGE, "请先选择患者."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> returnOrderList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        XinZhenYiZhu patInfo = dao.queryPatientInfo(param.getInpatientNo(), param.getAdmissTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<XinZhenYzActOrder> list = param.getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<BigDecimal> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        XinZhenYiZhu huanZheXinXi = dao.queryPatientInfo(param.getInpatientNo(), param.getAdmissTimes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 把模板的数据插入到医嘱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        getThis().templateInsertToOrder(treemapTransformation(param.getList(), list), huanZheXinXi); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "插入模板数据成功。", list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private List<XinZhenYzActOrder> treemapTransformation(List<XinZhenYzActOrder> list, List<BigDecimal> returnList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<XinZhenYzActOrder> resList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<BigDecimal, XinZhenYzActOrder> map = new HashMap<>(list.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String userCode = TokenUtil.getTokenUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Queue<BigDecimal> queue = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (XinZhenYzActOrder item : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (item.getParentNo() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 resList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             map.put(item.getActOrderNo(), item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            queue.offer(publicServer.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         list.forEach(item -> { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -523,30 +522,39 @@ public class YiZhuLuRuServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<XinZhenYzActOrder> data = new LinkedList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getThis().templateInsertToOrder(resList, patInfo, userCode, returnOrderList, queue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "插入模板数据成功。", returnOrderList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 把模板数据插入到医嘱中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param resList         医嘱数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param patInfo         患者信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param userCode        用户编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param returnOrderList 返回的医嘱号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void templateInsertToOrder(List<XinZhenYzActOrder> resList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      XinZhenYiZhu patInfo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      String userCode, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      List<String> returnOrderList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      Queue<BigDecimal> queue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resList.forEach(item -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setActOrderNo(publicServer.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            returnList.add(item.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setActOrderNo(queue.poll()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            returnOrderList.add(item.getActOrderNo().stripTrailingZeros().toPlainString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dao.insertEntryOrder(patInfo, item, userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (ListUtil.notBlank(item.getChildren())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.getChildren().forEach(children -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    children.setActOrderNo(publicServer.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    children.setActOrderNo(queue.poll()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     children.setParentNo(item.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    returnList.add(children.getActOrderNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dao.insertEntryOrder(patInfo, children, userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                data.addAll(item.getChildren()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void templateInsertToOrder(List<XinZhenYzActOrder> list, XinZhenYiZhu huanZheXinXi) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String userCode = TokenUtil.getTokenUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        list.forEach(item -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dao.insertEntryOrder(huanZheXinXi, item, userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |