Browse Source

ud同步方式调整

baishaojie 1 year ago
parent
commit
c73fc63de2
5 changed files with 226 additions and 59 deletions
  1. BIN
      __debug_bin.exe
  2. 6 4
      conf/app.ini
  3. 158 0
      http/handle/api/ops.go
  4. 61 55
      http/handle/api/scheduled.go
  5. 1 0
      http/routers/app_api.go

BIN
__debug_bin.exe


+ 6 - 4
conf/app.ini

@@ -21,7 +21,7 @@ TimeFormat = 20060102-150405
 #debug or release
 #RunMode = debug
 RunMode = release
-HttpPort = 8081
+HttpPort = 8082
 ReadTimeout = 60
 WriteTimeout = 60
 NoAuth = 1
@@ -47,8 +47,8 @@ Type = mysql
 User = root
 Password = root
 #Host = 8.130.17.8:3306
-Host = 192.168.1.93:3326
-#Host = 127.0.0.1:3316
+#Host = 192.168.1.93:3326
+Host = 127.0.0.1:3316
 #Name = haiyuan
 #Password = root
 #Password = root
@@ -72,7 +72,7 @@ Host = 192.168.1.93:3326
 #Name = tmrgo
 #Password = kepaiteng!QAZ
 #Host = 222.73.129.15:31306
-Name = tmrwatch5
+Name = tmrwatch2
 TablePrefix =
 
 ShowXormlog = false
@@ -110,3 +110,5 @@ MinimumReadSize = 0
 
 
 
+
+

+ 158 - 0
http/handle/api/ops.go

@@ -7759,3 +7759,161 @@ func updateLpplandtlInfo(tx *xorm.Session, data map[string]interface{}) error {
 	}
 	return nil
 }
+
+func PostPlanDatas(c *gin.Context) {
+	appG := app.Gin{C: c}
+	dataByte, _ := ioutil.ReadAll(c.Request.Body)
+	fsions := gofasion.NewFasion(string(dataByte))
+	logging.Info("PostRJSBDatas  err: ", string(dataByte))
+
+	tx := restful.Engine.NewSession()
+	err := tx.Begin()
+	defer func() {
+		switch {
+		case err != nil:
+			if tx != nil {
+				tx.Rollback()
+			}
+		default:
+			if tx != nil {
+				err = tx.Commit()
+			}
+		}
+		if tx != nil {
+			tx.Close()
+		}
+	}()
+
+	pastureId := fsions.Get("pastureid").ValueStr()
+	// sql, p := restful.GetSqlByNameDBT("updatedownloadedplanYJ", tx)
+	// sql1, p1 := restful.GetSqlByNameDBT("updated1YJ", tx)
+	// sql2, p2 := restful.GetSqlByNameDBT("updated1execYJ", tx)
+	// sql3, p3 := restful.GetSqlByNameDBT("updated2YJ", tx)
+
+	sql, p := restful.GetSqlByNameDBT("updatedownloadedplanYJ", tx)
+	sql1, p1 := restful.GetSqlByNameDBT("updated1YJ", tx)
+	sql2, p2 := restful.GetSqlByNameDBT("updated1execYJ", tx)
+	sql3, p3 := restful.GetSqlByNameDBT("updated2YJ", tx)
+
+	for _, parammaps := range fsions.Get("arrList").Array() {
+		// if !fsion.HasKey("arrList") {
+		// 	appG.Response(http.StatusOK, e.ERROR, "参数解析失败")
+		// 	return
+		// }
+		// parammaps := fsion.Get("arrList")
+		s_params := make([]interface{}, 0)
+		paramslist := strings.Split(p, ",")
+		if len(paramslist) > 0 && p != "" {
+			for _, value := range paramslist {
+				if value == "pastureid" {
+					s_params = append(s_params, pastureId)
+				} else {
+					s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+				}
+			}
+		}
+		_, err = tx.SQL(sql, s_params...).Execute()
+
+		if err != nil {
+			logging.Error("PostRJSBData  err: ", err)
+			msg := geterrmsg(err.Error())
+			appG.Response(http.StatusOK, e.ERROR, msg)
+			return
+		}
+
+		s_params = make([]interface{}, 0)
+		paramslist = strings.Split(p1, ",")
+		if len(paramslist) > 0 && p1 != "" {
+			for _, value := range paramslist {
+				// if value == "ID" {
+				// 	id := parammaps.Get("ID").ValueStr()
+				// 	pastureid := parammaps.Get("pastureid").ValueStr()
+				// 	datalist, err := tx.SQL(`select d2.id as id from downloadplandtl1 d1 join downloadplandtl1_exec  d2 on d1.id = d2.id  where d1.pid =  (select pid  from downloadplandtl1 where id =  ? and pastureid = ? )  and
+				// 	d1.sort = (select sort  from downloadplandtl1 where id =  ? and pastureid = ? )`, id, pastureid, id, pastureid).QueryString()
+				// 	if err != nil {
+				// 		logging.Error("PostRJSBData  err: ", err)
+				// 		msg := geterrmsg(err.Error())
+				// 		appG.Response(http.StatusOK, e.ERROR, msg)
+				// 		return
+				// 	}
+
+				// 	for _, item := range datalist {
+				// 		id = item["id"]
+				// 	}
+				// 	s_params = append(s_params, id)
+				// } else {
+				// 	s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+				// }
+				if value == "pastureid" {
+					s_params = append(s_params, pastureId)
+				} else {
+					s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+				}
+			}
+		}
+		_, err = tx.SQL(sql1, s_params...).Execute()
+		if err != nil {
+			logging.Error("PostRJSBData1  err: ", err)
+			msg := geterrmsg(err.Error())
+			appG.Response(http.StatusOK, e.ERROR, msg)
+			return
+		}
+		s_params = make([]interface{}, 0)
+
+		paramslist = strings.Split(p2, ",")
+		if len(paramslist) > 0 && p2 != "" {
+			for _, value := range paramslist {
+				if value == "ID" {
+					id := parammaps.Get("ID").ValueStr()
+					pastureid := parammaps.Get("pastureid").ValueStr()
+					datalist, err := tx.SQL(`select d2.id as id from downloadplandtl1 d1 join downloadplandtl1_exec  d2 on d1.id = d2.id  where d1.pid =  (select pid  from downloadplandtl1 where id =  ? and pastureid = ? )  and 
+					d1.sort = (select sort  from downloadplandtl1 where id =  ? and pastureid = ? )`, id, pastureid, id, pastureid).QueryString()
+					if err != nil {
+						logging.Error("PostRJSBData  err: ", err)
+						msg := geterrmsg(err.Error())
+						appG.Response(http.StatusOK, e.ERROR, msg)
+						return
+					}
+
+					for _, item := range datalist {
+						id = item["id"]
+					}
+					s_params = append(s_params, id)
+				} else if value == "pastureid" {
+					s_params = append(s_params, pastureId)
+				} else {
+					s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+				}
+				// s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+			}
+		}
+		_, err = tx.SQL(sql2, s_params...).Execute()
+		if err != nil {
+			logging.Error("PostRJSBData2  err: ", err)
+			msg := geterrmsg(err.Error())
+			appG.Response(http.StatusOK, e.ERROR, msg)
+			return
+		}
+		s_params = make([]interface{}, 0)
+
+		paramslist = strings.Split(p3, ",")
+		if len(paramslist) > 0 && p3 != "" {
+			for _, value := range paramslist {
+				if value == "pastureid" {
+					s_params = append(s_params, pastureId)
+				} else {
+					s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
+				}
+
+			}
+		}
+		_, err = tx.SQL(sql3, s_params...).Execute()
+		if err != nil {
+			logging.Error("PostRJSBData3  err: ", err)
+			msg := geterrmsg(err.Error())
+			appG.Response(http.StatusOK, e.ERROR, msg)
+			return
+		}
+	}
+	appG.Response(http.StatusOK, e.SUCCESS, "ok")
+}

+ 61 - 55
http/handle/api/scheduled.go

@@ -136,7 +136,7 @@ func CronScheduled(ctx context.Context) {
 
 	//现代牧业sap同步
 	// xdmy := cron.New()
-	// dayCron.AddFunc("50 04 * * *", func() {
+	// xdmy.AddFunc("50 04 * * *", func() {
 	// 	sap.SyncMaterialOutbound()
 	// })
 	// xdmy.Start()
@@ -144,8 +144,6 @@ func CronScheduled(ctx context.Context) {
 	//光明ud同步
 	// gm.GmUdSync(pastureinfo.Pastureid, pastureinfo.Werks)
 
-	// gm.GmUdSync(pastureinfo.Pastureid, pastureinfo.Werks)
-
 }
 
 type ScheduledInfo struct {
@@ -1047,68 +1045,76 @@ func processAnalysisEarlyWarning(target []string, pastureId string, serviceId in
 }
 
 func manualUdData(pastureinfo *udPastureInfo) {
-	c := cron.New()
-	c.AddFunc("10 06 * * *", func() {
-		tx := restful.Engine.NewSession()
-		defer tx.Close()
-		now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
-		// now := "2023-02-22"
-		dataList, err := tx.SQL(" select id  from downloadedplan where mydate = ? ", now).QueryString()
-		if err != nil {
-			logging.Error("manualUdData-error-1:", err)
-			return
-		}
-		var idList []string
-		for _, data := range dataList {
-			idList = append(idList, data["id"])
-		}
+	// c := cron.New()
+	// c.AddFunc("10 06 * * *", func() {
+	tx := restful.Engine.NewSession()
+	defer tx.Close()
+	now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
+	// now := "2023-02-22"
+	dataList, err := tx.SQL(" select id  from downloadedplan where mydate = ? ", now).QueryString()
+	if err != nil {
+		logging.Error("manualUdData-error-1:", err)
+		return
+	}
+	var idList []string
+	for _, data := range dataList {
+		idList = append(idList, data["id"])
+	}
 
-		upList := make([]*ScheduledUpInfo, 0)
-		up := tx.Table("scheduled_up")
+	upList := make([]*ScheduledUpInfo, 0)
+	up := tx.Table("scheduled_up")
 
-		up.Where("company = ? ", "ud")
-		up.Where("datatype in (3,4)")
-		up.Where("automatic = 1")
-		err = up.Find(&upList)
-		if err != nil {
-			logging.Error("manualUdData-error-2: ", err)
-			return
-		}
+	up.Where("company = ? ", "ud")
+	up.Where("datatype in (3,4)")
+	up.Where("automatic = 1")
+	err = up.Find(&upList)
+	if err != nil {
+		logging.Error("manualUdData-error-2: ", err)
+		return
+	}
 
-		for _, item := range upList {
-			if item.Datasql != "" {
-				// if item.Datatype == 4 {
-				targetdataList := strings.Split(item.Targetdata, ",")
-				var args []interface{}
-				for _, targetdata := range targetdataList {
-					if targetdata == "pastureid" {
-						args = append(args, pastureinfo.Pastureid)
-					} else if targetdata == "idlist" {
-						item.Datasql = strings.ReplaceAll(item.Datasql, "idlist", strings.Join(idList, ","))
-					} else if targetdata == "date" {
-						args = append(args, now)
-					}
+	for _, item := range upList {
+		if item.Datasql != "" {
+			// if item.Datatype == 4 {
+			targetdataList := strings.Split(item.Targetdata, ",")
+			var args []interface{}
+			for _, targetdata := range targetdataList {
+				if targetdata == "pastureid" {
+					args = append(args, pastureinfo.Pastureid)
+				} else if targetdata == "idlist" {
+					item.Datasql = strings.ReplaceAll(item.Datasql, "idlist", strings.Join(idList, ","))
+				} else if targetdata == "date" {
+					args = append(args, now)
 				}
-				data, err := tx.SQL(item.Datasql, args...).Query().List()
+			}
+			data, err := tx.SQL(item.Datasql, args...).Query().List()
+			if err != nil {
+				logging.Error("manualUdData-error-3: ", err)
+				continue
+			}
+			if len(data) > 0 {
+				databyte, err := json.Marshal(data)
 				if err != nil {
-					logging.Error("manualUdData-error-3: ", err)
+					logging.Error("manualUdData-error-4: ", err)
 					continue
 				}
-				if len(data) > 0 {
-					databyte, err := json.Marshal(data)
-					if err != nil {
-						logging.Error("manualUdData-error-4: ", err)
-						continue
-					}
-
-					var method string
-					UDPostPush1(fmt.Sprintf(item.Package, string(databyte), len(data)), method)
+				exist, err := tx.SQL(`select * from saplog where pastureId = ? and msgtype = ? and date_format(dataDate ,'%Y-%m-%d') = ?  `,
+					pastureinfo.Pastureid, item.Datatype, now).Exist()
+				if exist {
+					continue
 				}
-				// }
+
+				tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
+					values(?,?,?,?,?,now(),?,?,?)`, pastureinfo.Pastureid, string(databyte), "", "", "", item.Datatype, now, "https://wdc.unidairy.cn/copartner_uploads/")
+
+				var method string
+				UDPostPush1(fmt.Sprintf(item.Package, string(databyte), len(data)), method)
 			}
+			// }
 		}
-	})
-	c.Start()
+	}
+	// })
+	// c.Start()
 
 	c1 := cron.New()
 	c1.AddFunc("01 18 * * *", func() {

+ 1 - 0
http/routers/app_api.go

@@ -220,6 +220,7 @@ func AppAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 			apiV3.POST("/PostDataByName", api.PostDataByName)
 			apiV3.POST("/plandata", api.GetPlanData)
 			apiV3.POST("/plandata/edit", api.PostPlanData)
+			apiV3.POST("/plandata/batch/edit", api.PostPlanDatas)
 		}
 
 		apiV4 := s.Group("/customreport") // restful  接口 tablename 是 表名字