Mercurial > mercurial > hgweb_kaigo.hg.cgi
diff Porori/src2/porori.go @ 2:65b8529196d5 draft
Porori: add comment.
author | pyon <pyon@macmini> |
---|---|
date | Sat, 29 May 2021 10:07:57 +0900 |
parents | aaaa401818a1 |
children | bbeb834023e3 |
line wrap: on
line diff
--- a/Porori/src2/porori.go Thu May 27 22:01:27 2021 +0900 +++ b/Porori/src2/porori.go Sat May 29 10:07:57 2021 +0900 @@ -1,6 +1,11 @@ +/* + Last Change: 2021-05-29 Sat 10:07:37. +*/ package main import ( + _ "embed" + "encoding/csv" "encoding/json" "fmt" @@ -15,6 +20,9 @@ "golang.org/x/text/transform" ) +//go:embed porori.go +var go_source string + const jsonfile = "porori.json" type Sinsei struct { @@ -26,10 +34,11 @@ Bgn string End string Term string + Kaigo string } func (s Sinsei) String() string { - return strings.Join([]string{s.No, s.Name, s.Ymd, s.Kbn, s.Bgn, s.End, s.Term, s.Ccn}, ",") + return strings.Join([]string{s.No, s.Name, s.Ymd, s.Kbn, s.Kaigo, s.Bgn, s.End, s.Term, s.Ccn}, ",") } func (s Sinsei) TransDate (ymd string) (time.Time, string) { @@ -79,12 +88,34 @@ end, s.End = s.TransDate(s.End) s.Term = fmt.Sprintf("%d", s.CountMonth(bgn, end)) + + s.Kaigo = strings.TrimSpace(s.Kaigo) + switch s.Kaigo { + case "21": + s.Kaigo = "介1" + case "22": + s.Kaigo = "介2" + case "23": + s.Kaigo = "介3" + case "24": + s.Kaigo = "介4" + case "25": + s.Kaigo = "介5" + case "12": + s.Kaigo = "支1" + case "13": + s.Kaigo = "支2" + case "01": + s.Kaigo = "" + } + s.Kaigo, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), s.Kaigo) } func main() { if len(os.Args) != 2 { - fmt.Fprint(os.Stderr, "bat input.") + //fmt.Fprint(os.Stderr, "bat input.") + fmt.Fprint(os.Stderr, go_source) os.Exit(1) } @@ -111,13 +142,14 @@ r := csv.NewReader(strings.NewReader(string(content))) - records, err := r.ReadAll() + records, err := r.ReadAll() // sorted by Ymd (on MS-Access Query) if err != nil { log.Fatal(err) } // Main Proccess var sinsei []Sinsei + var seen = make(map[string]bool) for _, record := range records { if record[4] < yf.From || record[4] > yf.To { @@ -132,10 +164,31 @@ Ccn: record[4], Bgn: record[5], End: record[6], + Kaigo: record[7], } - ss.ChangeExpression() + sinsei = append(sinsei, ss) + + if record[3] == "02" { + seen[record[0]] = true + } + } + + var prev_sinsei []Sinsei + for _, record := range records { + if record[4] < yf.From && seen[record[0]] { - sinsei = append(sinsei, ss) + ss := Sinsei{ + No: record[0], + Name: record[1], + Ymd: record[2], + Kbn: record[3], + Ccn: record[4], + Bgn: record[5], + End: record[6], + Kaigo: record[7], + } + prev_sinsei = append(prev_sinsei, ss) + } } sort.Slice(sinsei, func(i, j int) bool { @@ -143,12 +196,20 @@ }) // Output - header := strings.Join([]string{"被保番", "氏名", "申請日", "区分", "開始日", "終了日", "期間", "審査会"}, ",") + header := strings.Join([]string{"被保番", "氏名", "申請日", "区分", "要介護度", "開始日", "終了日", "期間", "審査会"}, ",") header, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), header) fmt.Println(header) for _, s := range sinsei { - fmt.Println(s) + var renew string + for _, p := range prev_sinsei { + if s.No == p.No { + p.ChangeExpression() + renew = strings.Join(strings.Split(p.String(), ",")[3:], ",") + } + } + s.ChangeExpression() + fmt.Println(s, ",", renew) } }