package cmd import ( "cu-helper/cus-eng-con-sys/config" "cu-helper/cus-eng-con-sys/model" "cu-helper/cus-eng-con-sys/service" "github.com/go-resty/resty/v2" "github.com/mizuki1412/go-core-kit/init/initkit" "github.com/mizuki1412/go-core-kit/library/commonkit" "github.com/mizuki1412/go-core-kit/library/filekit" "github.com/mizuki1412/go-core-kit/service/logkit" "github.com/spf13/cobra" "github.com/tidwall/gjson" "time" ) func init() { rootCmd.AddCommand(engSysCmd) defFlagsEng(engSysCmd) } var engSysCmd = &cobra.Command{ Use: "eng", Short: "Batch processing operations of the cus-eng-con-sys", Run: func(cmd *cobra.Command, args []string) { initkit.BindFlags(cmd) config.Init() run() }, } func run() { j, _ := filekit.ReadString("kr.json") data := gjson.Get(j, "data").Array() client := resty.New().SetRetryCount(5).SetRetryWaitTime(15 * time.Second) ctx := new(model.Ctx) ctx.RestyClient = client for _, v := range data { ctx.Data = &v logkit.Info("***现在开始处理***:" + v.Get("tasktitle").String()) _ = commonkit.RecoverFuncWrapper(func() { var handlers = map[config.Status]func(){ //小区新建、扩容 {Step: "设计委托", Process: config.ProcessHouse}: func() { service.ReqPdmEntrust(ctx) }, {Step: "方案确认", Process: config.ProcessHouse}: func() { service.ReqDesignScheme(ctx) }, {Step: "工程开工", Process: config.ProcessHouse}: func() { service.ReqStartAct(ctx) }, //{Step: "完工确认", Process: config.ProcessHouse}: func() {}, {Step: "验收确认", Process: config.ProcessHouse}: func() { service.ReqAccConfirm(ctx) }, {Step: "验收交付申请", Process: config.ProcessYSJF}: func() { service.ReqAccDelivery(ctx) }, //零星 //{Step: "项目方案制作", Process: config.ProcessLX}: func() {}, {Step: "方案确认", Process: config.ProcessLX}: func() { service.ReqDesignScheme(ctx) }, //{Step: "完工确认", Process: config.ProcessLX}: func() {}, //{Step: "验收确认", Process: config.ProcessLX}: func() {}, //{Step: "验收交付申请", Process: config.ProcessYSJF}: func() {}, //楼宇 //{Step: "设计委托", Process: config.ProcessBuilding}: func() {}, //{Step: "方案确认", Process: config.ProcessBuilding}: func() {}, //{Step: "完工确认", Process: config.ProcessBuilding}: func() {}, //{Step: "验收确认", Process: config.ProcessBuilding}: func() {}, //{Step: "验收交付申请", Process: config.ProcessYSJF}: func() {}, //todo 工程评价 } status := config.Status{ Step: v.Get("name").String(), Process: v.Get("processDefinitionKey").String(), } if h, ok := handlers[status]; ok { h() } }) time.Sleep(1 * time.Second) } } func defFlagsEng(cmd *cobra.Command) { cmd.Flags().String(config.EngSysSid, "", "Specify the sid") }