annotate src/kaigo/qtuti/95_tmpl.go @ 63:17e042fc8a33

fix nk.go
author pyon@macmini
date Fri, 16 Oct 2020 20:35:44 +0900
parents 49656dc40069
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
1 /*
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
2 95.go: Qfuhi Tsuchi
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
3
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
4 Last Change: 2020-09-11 金 10:42:16.
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
5 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
6
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
7 package main
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
8
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
9 /*
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
10 #cgo LDFLAGS: -L. -lxdwapi -static
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
11 ##### C_SOURCE #####
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
12 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
13 import "C"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
14
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
15 import (
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
16 "bufio"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
17 "regexp"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
18 "encoding/json"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
19 "flag"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
20 "fmt"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
21 "io/ioutil"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
22 "log"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
23 "os"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
24 "path/filepath"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
25 "sort"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
26 "strings"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
27
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
28 "golang.org/x/text/encoding/japanese"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
29 "golang.org/x/text/transform"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
30 )
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
31
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
32 type Hhs struct {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
33 No string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
34 Name string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
35 Page int // sinsei page
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
36 Tsuchi bool
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
37 Kaigo string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
38 Xdw []string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
39 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
40
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
41 func(h *Hhs) AppendXdw(xdw string) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
42 h.Xdw = append(h.Xdw, xdw)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
43 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
44
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
45 func(h *Hhs) CsvString() string {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
46 q := ""
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
47 if h.Tsuchi {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
48 q = "○"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
49 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
50 k := strings.Split(h.Kaigo, "")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
51 return strings.Join([]string{h.No, h.Name, q, k[1] + k[3]}, ",")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
52 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
53
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
54 func(h *Hhs) Dump() string {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
55 q := "false"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
56 if h.Tsuchi {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
57 q = "true"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
58 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
59 p := fmt.Sprintf("%05d", h.Page)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
60 x := strings.Join(h.Xdw, ",")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
61 return strings.Join([]string{h.No, h.Name, q, h.Kaigo, p, x}, ",")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
62 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
63
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
64 type Config struct {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
65 Indir string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
66 Outdir string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
67 Workdir string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
68 Hhsdb string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
69 Atnfile[] string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
70 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
71
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
72 var (
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
73 ver = "0.1"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
74 conf Config
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
75 confjson = "95.json"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
76 logfile = "95.log"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
77 osirase = "KBPA316G.xdw"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
78 sinsei = "KBPA406G.xdw"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
79 rule_s = "rules.ann"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
80
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
81 out_o = "o.xdw"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
82 out_s = "s.xdw"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
83 out_q = "q.xdw"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
84 out_l = "l.csv"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
85
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
86 re_hhsno, re_name, re_kaigo *regexp.Regexp
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
87
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
88 // option parameters
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
89 version bool
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
90 )
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
91
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
92 func init() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
93 /* コンフィグファイルは JSON */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
94 content, err := ioutil.ReadFile(confjson)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
95 if err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
96 log.Fatal(err)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
97 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
98 if err := json.Unmarshal(content, &conf); err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
99 log.Fatal(err)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
100 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
101
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
102 osirase = filepath.Join(conf.Indir, osirase)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
103 sinsei = filepath.Join(conf.Indir, sinsei)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
104
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
105 out_o = filepath.Join(conf.Outdir, out_o)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
106 out_s = filepath.Join(conf.Outdir, out_s)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
107 out_q = filepath.Join(conf.Outdir, out_q)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
108 out_l = filepath.Join(conf.Outdir, out_l)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
109
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
110 logfile = filepath.Join(conf.Workdir, logfile)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
111
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
112 /* 一時ファイル消去 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
113 os.RemoveAll(conf.Outdir)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
114 os.RemoveAll(conf.Workdir)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
115 os.Mkdir(conf.Outdir, 0755)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
116 os.Mkdir(conf.Workdir, 0755)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
117
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
118 /* 変数初期化 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
119 re_hhsno = regexp.MustCompile(`0[1238]00\d{6}`)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
120 re_name = regexp.MustCompile(`日.{30}`)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
121 re_kaigo = regexp.MustCompile(`要((介護)|(支援)).`)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
122
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
123 flag.BoolVar(&version, "v", false, "print version")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
124 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
125
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
126 func main() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
127 flag.Parse()
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
128
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
129 if version {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
130 fmt.Println("95 - version", ver)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
131 os.Exit(0)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
132 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
133
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
134 hash_Hhs := make(map[string]Hhs)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
135
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
136 /* 申請書を漁り,構造体を初期化 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
137 for p, t := range xdw2txt(sinsei) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
138 hno := re_hhsno.FindString(t)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
139 name := re_name.FindString(t)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
140 name = strings.Replace(name, "日", "", 1)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
141 kaigo := re_kaigo.FindString(t)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
142 o := fmt.Sprintf("o_%05d.xdw", p + 1)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
143 s := fmt.Sprintf("s_%05d.xdw", p + 1)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
144 h := Hhs{No: hno, Name: name, Kaigo: kaigo, Page:p + 1, Xdw: []string{o, s}}
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
145 hash_Hhs[hno] = h
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
146 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
147
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
148 /* バックグラウンドで給付費通知から勧奨対象者を抽出 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
149 ch := make(chan int)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
150 go func() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
151 files, err := ioutil.ReadDir(conf.Indir)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
152 if err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
153 log.Fatal(err)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
154 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
155
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
156 qn := 1
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
157 for _, file := range files {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
158 if !strings.HasSuffix(file.Name(), ".xdw") {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
159 continue
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
160 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
161 if strings.HasPrefix(file.Name(), "KDPK016G") || strings.HasPrefix(file.Name(), "KDPK126G") {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
162 qtsuchi := filepath.Join(conf.Indir, file.Name())
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
163 tmptxt := filepath.Join(conf.Workdir, "tmp95.txt")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
164 for p, t := range xdw2txtb(qtsuchi, tmptxt) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
165 hno := re_hhsno.FindString(t)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
166 if h, ok := hash_Hhs[hno]; ok {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
167 h.Tsuchi = true
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
168 q := fmt.Sprintf("q_%05d.xdw", qn)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
169 h.AppendXdw(q)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
170 hash_Hhs[hno] = h
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
171 q = filepath.Join(conf.Workdir, q)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
172 C.xdwextpage(C.CString(qtsuchi), C.int(p + 1), C.CString(q))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
173 qn++
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
174 //fmt.Println(qtsuchi, p, hno, h.Kaigo, h.Xdw)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
175 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
176 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
177 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
178 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
179
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
180 ch <- 1
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
181 }()
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
182
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
183 /* そのあいだにバラす */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
184 C.xdwsplit1(C.CString(osirase), C.CString(conf.Workdir), C.CString("o_"))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
185 C.xdwsplit1(C.CString(sinsei), C.CString(conf.Workdir), C.CString("s_"))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
186 <-ch
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
187
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
188 /* ソート & マージ */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
189 var slice_Hhs []Hhs
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
190 for _, h := range hash_Hhs {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
191 slice_Hhs = append(slice_Hhs, h)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
192 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
193 sort.Slice(slice_Hhs, func(i, j int) bool {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
194 if slice_Hhs[i].Tsuchi != slice_Hhs[j].Tsuchi {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
195 return slice_Hhs[i].Tsuchi
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
196 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
197 if slice_Hhs[i].Kaigo != slice_Hhs[j].Kaigo {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
198 return slice_Hhs[i].Kaigo < slice_Hhs[j].Kaigo
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
199 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
200 if slice_Hhs[i].Page != slice_Hhs[j].Page {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
201 return slice_Hhs[i].Page < slice_Hhs[j].Page
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
202 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
203 return false
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
204 })
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
205
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
206 var list_o, list_s, list_q []string
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
207 for _, h := range slice_Hhs {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
208 list_o = append(list_o, filepath.Join(conf.Workdir, h.Xdw[0]))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
209 list_s = append(list_s, filepath.Join(conf.Workdir, h.Xdw[1]))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
210 if h.Tsuchi {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
211 for i, x := range h.Xdw {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
212 if i > 1 {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
213 buf := filepath.Join(conf.Workdir, x)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
214 list_q = append(list_q, buf)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
215 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
216 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
217 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
218 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
219 xdwmerge(list_o, out_o)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
220 xdwmerge(list_s, out_s)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
221 xdwmerge(list_q, out_q)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
222
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
223 /* リスト出力 & ログダンプ */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
224 csvtxt := ""
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
225 logtxt := ""
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
226 for _, h := range slice_Hhs {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
227 csvtxt += h.CsvString() + "\n"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
228 logtxt += h.Dump() + "\n"
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
229 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
230 csvtxt, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), csvtxt)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
231 if err := ioutil.WriteFile(out_l, []byte(csvtxt), 0644); err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
232 log.Fatal(err)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
233 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
234 if err := ioutil.WriteFile(logfile, []byte(logtxt), 0644); err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
235 log.Fatal(err)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
236 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
237
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
238 /* バックグラウンドで給付費通知を校正 */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
239 ch2 := make(chan int)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
240 go func() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
241 for _, a := range conf.Atnfile {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
242 xdwaddatn(out_q, a)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
243 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
244 ch2 <- 1
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
245 } ()
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
246
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
247 /* そのあいだに申請書に枠付け */
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
248 xdwaddatntool(out_s, rule_s, 2, 1497, 803)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
249 <-ch2
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
250 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
251
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
252 func xdw2txt(file string) (txt []string) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
253 s := C.GoString(C.xdw2txt(C.CString(file)))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
254 r := strings.NewReader(s)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
255 tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
256 buf := bufio.NewScanner(tr)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
257 for buf.Scan() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
258 txt = append(txt, buf.Text())
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
259 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
260 return
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
261 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
262
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
263 func xdw2txtb(xdwfile, txtfile string) (txt []string) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
264 if _, err := os.Stat(txtfile); os.IsExist(err) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
265 os.Remove(txtfile)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
266 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
267
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
268 C.xdw2txtb(C.CString(xdwfile), C.CString(txtfile))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
269 content, err := ioutil.ReadFile(txtfile)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
270 if err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
271 return nil
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
272 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
273
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
274 r := strings.NewReader(string(content))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
275 tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder())
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
276 buf := bufio.NewScanner(tr)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
277 for buf.Scan() {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
278 txt = append(txt, buf.Text())
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
279 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
280 return
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
281 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
282
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
283 func xdwmerge(list []string, outfile string) (err error) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
284 order := strings.Join(list, "\n")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
285 order, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), order)
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
286 orderfile := filepath.Join(conf.Workdir, "order95.txt")
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
287 if err := ioutil.WriteFile(orderfile, []byte(order), 0644); err != nil {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
288 return err
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
289 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
290 C.xdwmerge(C.CString(orderfile), C.CString(outfile))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
291 return nil
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
292 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
293
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
294 func xdwaddatn(xdwfile, atnfile string) (err error) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
295 C.xdwaddatn(C.CString(xdwfile), C.CString(atnfile))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
296 return nil
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
297 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
298
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
299 func xdwaddatntool(xdwfile, toolfile string, n, x, y int) (err error) {
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
300 C.xdwaddatntool(C.CString(xdwfile), C.CString(toolfile), C.int(n), C.int(x), C.int(y))
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
301 return nil
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
302 }
49656dc40069 add qtuti.
pyon@macmini
parents:
diff changeset
303