63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package cmd
|
||
|
||
import (
|
||
"excel_export/biz/config"
|
||
"github.com/spf13/cobra"
|
||
"log"
|
||
"strconv"
|
||
"time"
|
||
)
|
||
|
||
func init() {
|
||
exportCmd.Flags().IntP("query", "q", 10000, "单次查询数")
|
||
|
||
exportCmd.Flags().StringP("system", "s", "", "需要导出的系统")
|
||
exportCmd.Flags().StringP("job", "j", "", "需要导出的任务")
|
||
exportCmd.Flags().StringP("begin", "b", "", "开始时间,如:2006-01-02 15:04:05")
|
||
exportCmd.Flags().StringP("end", "e", "", "结束时间,如:2006-01-02 15:04:05")
|
||
|
||
rootCmd.AddCommand(exportCmd)
|
||
}
|
||
|
||
var exportCmd = &cobra.Command{
|
||
Use: "export",
|
||
Short: "导出数据",
|
||
SilenceUsage: true,
|
||
SilenceErrors: true,
|
||
Run: exportRun,
|
||
}
|
||
|
||
func exportRun(cmd *cobra.Command, args []string) {
|
||
c := config.DefaultConfig
|
||
|
||
sName := cmd.Flag("system").Value.String()
|
||
sys, err := c.GetSystem(sName)
|
||
if err != nil {
|
||
CmdError(cmd, "%s", err.Error())
|
||
}
|
||
|
||
jName := cmd.Flag("job").Value.String()
|
||
|
||
_, err = sys.GetJob(jName)
|
||
if err != nil {
|
||
CmdError(cmd, "%s", err.Error())
|
||
}
|
||
|
||
log.Printf("执行【%s】【%s】导出\n", sName, jName)
|
||
|
||
begin := MustFlagsDateTime(cmd, "begin")
|
||
end := MustFlagsDateTime(cmd, "end")
|
||
|
||
query := cmd.Flag("query").Value.String()
|
||
batch, err := strconv.Atoi(query)
|
||
if err != nil {
|
||
CmdError(cmd, "无效的参数:%s", err.Error())
|
||
}
|
||
b := time.Now()
|
||
ee := NewCsv(config.DefaultConfig)
|
||
if err := ee.Export(sName, jName, begin, end, batch); err != nil {
|
||
CmdError(cmd, "【%s】【%s】导出错误:%s", sName, jName, err.Error())
|
||
}
|
||
log.Println("耗时:" + time.Now().Sub(b).String())
|
||
}
|