Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev-1.2' into dev-1.2

wangyu 5 rokov pred
rodič
commit
4e32c3453b

+ 15 - 17
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

@@ -1,10 +1,12 @@
 package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
 import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -25,32 +27,28 @@ import java.util.regex.Pattern;
  */
 @Component
 public class CLI0305 extends QCCatalogue {
-    public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm"; //输注时间
-    public static String FORMAT_LONG_CN_MI = "yyyy年MM月dd日HH时mm分"; //记录时间
-    DateUtil dateUtil = new DateUtil();
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                String infusion_begin= cliBStructureMap.get("输注开始");
-                String infusion_end = cliBStructureMap.get("输注结束");
-               if(StringUtils.isNotEmpty(infusion_begin) && StringUtils.isNotEmpty(infusion_end)){
-                    try {
-                        Date date_in = new SimpleDateFormat(DATE_TIME_FORMAT).parse(infusion_begin);
-                        Date date_out = new SimpleDateFormat(DATE_TIME_FORMAT).parse(infusion_end);
-                        double distanceHour = dateUtil.getDistanceTime2(date_in, date_out);
-                        if(distanceHour > 24.0){
+                String infusionEnd = cliBStructureMap.get("输注结束");
+                String recordDateStr = cliBStructureMap.get("记录时间");
+                if (StringUtils.isNotEmpty(infusionEnd) && StringUtils.isNotEmpty(recordDateStr)) {
+                    Date infusionEndDate = StringUtil.parseDateTime(infusionEnd);
+                    Date recordDate = StringUtil.parseDateTime(recordDateStr);
+                    if (infusionEndDate != null && recordDate != null) {
+                        if (infusionEndDate.after(recordDate)) {
+                            continue;
+                        }
+                        if (CatalogueUtil.compareTime(infusionEndDate, recordDate, 24 * 60L)) {
                             status.set("-1");
+                            return;
                         }
-                    } catch (ParseException e) {
-                        e.printStackTrace();
                     }
-
                 }
             }
         }
-
     }
 }