changeset 44:b50f2a581cf8

bug fix.
author pyon@macmini
date Tue, 17 Mar 2020 18:29:20 +0900
parents 77dd877929f5
children 20b42e2deae1
files src/kaigo/Perori/perori.go
diffstat 1 files changed, 22 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/kaigo/Perori/perori.go	Fri Mar 13 18:21:08 2020 +0900
+++ b/src/kaigo/Perori/perori.go	Tue Mar 17 18:29:20 2020 +0900
@@ -20,7 +20,7 @@
 var debug_log bool
 
 // Constants
-const version =  "0.3a"
+const version =  "0.3b"
 const default_dbfile =  "ikenshoirai.db"
 const default_csvfile = "ikenshoirai.csv"
 
@@ -197,17 +197,31 @@
 		if dbdata[i].Ymd != dbdata[j].Ymd {
 			return dbdata[i].Ymd > dbdata[j].Ymd
 		}
+		if dbdata[i].IraiYmd != dbdata[j].IraiYmd {
+			return dbdata[i].IraiYmd > dbdata[j].IraiYmd
+		}
 		return false
 	})
 
-	var recentdata []Sinsei
+	var dbdata2 []Sinsei	// delete same Ymd (for changing Dr.)
+	var lasthhsno, lastymd string
+	for _, ss := range dbdata {
+		if ss.Hhsno == lasthhsno && lastymd == ss.Ymd {
+			continue
+		}
+		dbdata2 = append(dbdata2, ss)
+		lasthhsno = ss.Hhsno
+		lastymd = ss.Ymd
+	}
+
+	var lastdata []Sinsei
 	prevhash := make(map[string]PrevSinsei)
 	hhscnt := make(map[string]int)
-	for _, ss := range dbdata {
+	for _, ss := range dbdata2 {
 		ss.Humanize()
 		switch hhscnt[ss.Hhsno] {
 		case 0:
-			recentdata = append(recentdata, ss)
+			lastdata = append(lastdata, ss)
 		case 1:
 			prevhash[ss.Hhsno] = PrevSinsei{
 				Biko: ss.Biko,
@@ -220,12 +234,12 @@
 		}
 		hhscnt[ss.Hhsno]++;
 	}
-	print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata)))	//
+	print_debug_log(fmt.Sprintf("lastdata: n=%d", len(lastdata)))	//
 
 	doctorhash := make(map[string]Doctor)
 	hpcnt := make(map[string]int)
 	var hpcntsum int
-	for _, ss := range recentdata {
+	for _, ss := range lastdata {
 		ss.SetPrev(prevhash[ss.Hhsno])
 		if d, ok := doctorhash[ss.DrId]; !ok {
 			doctorhash[ss.DrId] = Doctor{
@@ -261,7 +275,7 @@
 	irai := struct {
 		Ymd string
 		NHhs int
-		NSinsei int
+		//NSinsei int
 		NDr int
 		Doctors []Doctor
 		Hp map[string]int
@@ -269,7 +283,7 @@
 	}{
 		Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."),
 		NHhs: len(hhshash),
-		NSinsei: len(dbdata),
+		//NSinsei: len(dbdata),
 		NDr: len(doctors),
 		Doctors: doctors,
 		Hp: hpcnt,