diff src/kaigo/Perori/perori.go @ 42:c58172a59534

bug fix.
author pyon@macmini
date Tue, 10 Mar 2020 21:12:29 +0900
parents 34a474fb83c3
children 77dd877929f5
line wrap: on
line diff
--- a/src/kaigo/Perori/perori.go	Wed Mar 04 23:46:59 2020 +0900
+++ b/src/kaigo/Perori/perori.go	Tue Mar 10 21:12:29 2020 +0900
@@ -20,7 +20,7 @@
 var debug_log bool
 
 // Constants
-const version =  "0.2"
+const version =  "0.3"
 const default_dbfile =  "ikenshoirai.db"
 const default_csvfile = "ikenshoirai.csv"
 
@@ -205,7 +205,11 @@
 	hhscnt := make(map[string]int)
 	for _, ss := range dbdata {
 		ss.Humanize()
-		if n := hhscnt[ss.Hhsno]; n == 1 {
+		switch hhscnt[ss.Hhsno] {
+		case 0:
+			recentdata = append(recentdata, ss)
+			hhscnt[ss.Hhsno]++;
+		case 1:
 			prevhash[ss.Hhsno] = PrevSinsei{
 				Biko: ss.Biko,
 				DrId: ss.DrId,
@@ -214,9 +218,6 @@
 				Ymd: ss.Ymd,
 				Kubun: ss.Kubun,
 			}
-		} else {
-			recentdata = append(recentdata, ss)
-			hhscnt[ss.Hhsno]++;
 		}
 	}
 	print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata)))	//
@@ -248,7 +249,13 @@
 		doctors = append(doctors, dr)
 	}
 	sort.Slice(doctors, func(i, j int) bool {
-		return doctors[i].Kana < doctors[j].Kana
+		if doctors[i].Kana != doctors[j].Kana {
+			return doctors[i].Kana < doctors[j].Kana
+		}
+		if doctors[i].Id != doctors[j].Id {
+			return doctors[i].Id < doctors[j].Id
+		}
+		return false
 	})
 
 	irai := struct {
@@ -319,11 +326,16 @@
 
 	for _, record := range records {
 		ss := csv2sinsei(record)
-		if ss.IraiYmd != date {
-			continue
+		if ss.IraiYmd == date {
+			hhshash[ss.Hhsno] = true
 		}
-		hhshash[ss.Hhsno] = true
-		sinsei = append(sinsei, ss)
+	}
+
+	for _, record := range records {
+		ss := csv2sinsei(record)
+		if _, ok := hhshash[ss.Hhsno]; ok {
+			sinsei = append(sinsei, ss)
+		}
 	}
 
 	return sinsei, hhshash, nil