Kaynağa Gözat

一般手术记录ez

chengyao 4 yıl önce
ebeveyn
işleme
c3abe5ec8b

+ 40 - 9
structure-center/src/main/java/com/lantone/structure/facade/tran/OperationRecordDocTran.java

@@ -13,10 +13,7 @@ import com.lantone.structure.util.MapUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -155,11 +152,14 @@ public class OperationRecordDocTran extends TargetTran {
 //                            if (operationRecordLabel.getDrainageMaterialsAmounts().size() > 1) {
 //                                drainageMaterialsAmountString.append((placePositionCount++) + ".");
 //                            }
-                            addAmount(drainageMaterialsAmountString, drainageMaterialsAmounts.getName());
+
                             drainageMaterialsAmountString.append(drainageMaterialsAmounts.getName() + "、");
                         }
                     }
-                    retMap.put("引流材料数目", drainageMaterialsAmountString.toString());
+                    Integer integer = addAmount(drainageMaterialsAmountString);
+                    if(null != integer){
+                        retMap.put("引流材料数目",integer+"根");
+                    }
                 }
 //                if (operationRecordLabel.getDrainageMaterialsAmount() != null && StringUtils.isNotEmpty(operationRecordLabel.getDrainageMaterialsAmount().getName())) {
 //                    retMap.put("引流材料数目", operationRecordLabel.getDrainageMaterialsAmount().getName());
@@ -170,10 +170,37 @@ public class OperationRecordDocTran extends TargetTran {
         });
     }
 
-    private String addAmount(StringBuffer drainageMaterialsAmountString ,String str) {
-
+        private Integer addAmount(StringBuffer sb) {
+            if(StringUtil.isNotEmpty(sb.toString())){
+            List<Integer> list = new ArrayList<>();
+            String str = sb.toString();
+            if(str.contains("、")){
+                String[] split = str.split("、");
+                for (int i = 0; i < split.length; i++) {
+                    String sc = parseStr(split[i]);
+                    try {
+                        Integer integer = Integer.valueOf(sc);
+                        list.add(integer);
+                    } catch (NumberFormatException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            return list.stream().reduce(Integer::sum).get();
+        }
+            return null;
+    }
 
-        return "";
+    private String parseStr(String sb) {
+       sb = sb.replace("根", "");
+       if(sb.equals("十")){
+           sb = "10";
+       }
+        if(sb.equals("二十")){
+            sb = "20";
+        }
+        sb =  sb.replace("二十", "2").replace("十", "1").replace("一", "1").replace("二", "2").replace("三", "3").replace("四", "4").replace("五", "5").replace("六", "6").replace("七", "7").replace("八", "8").replace("九", "9");
+        return sb;
     }
 
     private Map<String, String> cutWord(String text) {
@@ -194,6 +221,10 @@ public class OperationRecordDocTran extends TargetTran {
                 if (StringUtil.isNotBlank(date)) {
                     sourceMap.put("主刀医生", dataStr.replace(date, ""));
                     sourceMap.put("签名日期时间", date);
+                }else{
+                    if(dataStr.contains("年 月 日 时 分")){
+                        sourceMap.put("主刀医生", dataStr.replace("年 月 日 时 分", ""));
+                    }
                 }
             } else if (sourceMap.containsKey("医生签名")) {
                 String dataStr = sourceMap.get("医生签名");