瀏覽代碼

优化代码

DESKTOP-0GD05B0\Administrator 2 年之前
父節點
當前提交
645a4c1efd

+ 1 - 1
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/YizhuLuRuController.java

@@ -153,7 +153,7 @@ public class YizhuLuRuController {
     }
 
     @PostMapping("/insertTemplateOrder")
-    public ResultVo<List<BigDecimal>> insertTemplateOrder(@RequestBody XinZhenYiZhu param) {
+    public ResultVo<List<String>> insertTemplateOrder(@RequestBody XinZhenYiZhu param) {
         return server.insertTemplateOrder(param);
     }
 

+ 34 - 26
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -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);
-        });
     }
 
     /**