Mercurial > mercurial > hgweb_golang.cgi
comparison src/kaigo/Perori/perori.go @ 44:b50f2a581cf8
bug fix.
author | pyon@macmini |
---|---|
date | Tue, 17 Mar 2020 18:29:20 +0900 |
parents | 77dd877929f5 |
children |
comparison
equal
deleted
inserted
replaced
43:77dd877929f5 | 44:b50f2a581cf8 |
---|---|
18 ) | 18 ) |
19 | 19 |
20 var debug_log bool | 20 var debug_log bool |
21 | 21 |
22 // Constants | 22 // Constants |
23 const version = "0.3a" | 23 const version = "0.3b" |
24 const default_dbfile = "ikenshoirai.db" | 24 const default_dbfile = "ikenshoirai.db" |
25 const default_csvfile = "ikenshoirai.csv" | 25 const default_csvfile = "ikenshoirai.csv" |
26 | 26 |
27 const tpl = ` | 27 const tpl = ` |
28 <!DOCTYPE html> <html> | 28 <!DOCTYPE html> <html> |
195 return dbdata[i].Hhsno < dbdata[j].Hhsno | 195 return dbdata[i].Hhsno < dbdata[j].Hhsno |
196 } | 196 } |
197 if dbdata[i].Ymd != dbdata[j].Ymd { | 197 if dbdata[i].Ymd != dbdata[j].Ymd { |
198 return dbdata[i].Ymd > dbdata[j].Ymd | 198 return dbdata[i].Ymd > dbdata[j].Ymd |
199 } | 199 } |
200 if dbdata[i].IraiYmd != dbdata[j].IraiYmd { | |
201 return dbdata[i].IraiYmd > dbdata[j].IraiYmd | |
202 } | |
200 return false | 203 return false |
201 }) | 204 }) |
202 | 205 |
203 var recentdata []Sinsei | 206 var dbdata2 []Sinsei // delete same Ymd (for changing Dr.) |
207 var lasthhsno, lastymd string | |
208 for _, ss := range dbdata { | |
209 if ss.Hhsno == lasthhsno && lastymd == ss.Ymd { | |
210 continue | |
211 } | |
212 dbdata2 = append(dbdata2, ss) | |
213 lasthhsno = ss.Hhsno | |
214 lastymd = ss.Ymd | |
215 } | |
216 | |
217 var lastdata []Sinsei | |
204 prevhash := make(map[string]PrevSinsei) | 218 prevhash := make(map[string]PrevSinsei) |
205 hhscnt := make(map[string]int) | 219 hhscnt := make(map[string]int) |
206 for _, ss := range dbdata { | 220 for _, ss := range dbdata2 { |
207 ss.Humanize() | 221 ss.Humanize() |
208 switch hhscnt[ss.Hhsno] { | 222 switch hhscnt[ss.Hhsno] { |
209 case 0: | 223 case 0: |
210 recentdata = append(recentdata, ss) | 224 lastdata = append(lastdata, ss) |
211 case 1: | 225 case 1: |
212 prevhash[ss.Hhsno] = PrevSinsei{ | 226 prevhash[ss.Hhsno] = PrevSinsei{ |
213 Biko: ss.Biko, | 227 Biko: ss.Biko, |
214 DrId: ss.DrId, | 228 DrId: ss.DrId, |
215 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", | 229 Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", |
218 Kubun: ss.Kubun, | 232 Kubun: ss.Kubun, |
219 } | 233 } |
220 } | 234 } |
221 hhscnt[ss.Hhsno]++; | 235 hhscnt[ss.Hhsno]++; |
222 } | 236 } |
223 print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // | 237 print_debug_log(fmt.Sprintf("lastdata: n=%d", len(lastdata))) // |
224 | 238 |
225 doctorhash := make(map[string]Doctor) | 239 doctorhash := make(map[string]Doctor) |
226 hpcnt := make(map[string]int) | 240 hpcnt := make(map[string]int) |
227 var hpcntsum int | 241 var hpcntsum int |
228 for _, ss := range recentdata { | 242 for _, ss := range lastdata { |
229 ss.SetPrev(prevhash[ss.Hhsno]) | 243 ss.SetPrev(prevhash[ss.Hhsno]) |
230 if d, ok := doctorhash[ss.DrId]; !ok { | 244 if d, ok := doctorhash[ss.DrId]; !ok { |
231 doctorhash[ss.DrId] = Doctor{ | 245 doctorhash[ss.DrId] = Doctor{ |
232 Id: ss.DrId, | 246 Id: ss.DrId, |
233 Name: ss.Dr, | 247 Name: ss.Dr, |
259 }) | 273 }) |
260 | 274 |
261 irai := struct { | 275 irai := struct { |
262 Ymd string | 276 Ymd string |
263 NHhs int | 277 NHhs int |
264 NSinsei int | 278 //NSinsei int |
265 NDr int | 279 NDr int |
266 Doctors []Doctor | 280 Doctors []Doctor |
267 Hp map[string]int | 281 Hp map[string]int |
268 HpSum int | 282 HpSum int |
269 }{ | 283 }{ |
270 Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."), | 284 Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."), |
271 NHhs: len(hhshash), | 285 NHhs: len(hhshash), |
272 NSinsei: len(dbdata), | 286 //NSinsei: len(dbdata), |
273 NDr: len(doctors), | 287 NDr: len(doctors), |
274 Doctors: doctors, | 288 Doctors: doctors, |
275 Hp: hpcnt, | 289 Hp: hpcnt, |
276 HpSum: hpcntsum, | 290 HpSum: hpcntsum, |
277 } | 291 } |