Browse Source

Merge branch 'feature/new-scheduled' of baishaojie/tmrgo into master

baishaojie 1 year ago
parent
commit
74bb6165e4

+ 7 - 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
@@ -109,3 +109,6 @@ MinimumReadSize = 0
 
 
 
+
+
+

+ 167 - 24
http/handle/api/ops.go

@@ -3151,11 +3151,11 @@ func UpdateFTdetail(c *gin.Context) {
 				WHERE fp.pastureid = ? AND fp.ptsfid =?`, parammaps["pastureid"], parammaps["ftid"]).Execute()
 		}
 
-		fpdDataList, err = tx.SQL(`select * from (SELECT TRIM(id) id,times,tratio,ifnull(ROUND(ptsrate*weight,2)-ptsuse,0) weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM(ptid) ptid,TRIM(ptsid ) ptsid ,
+		fpdDataList, err = tx.SQL(`select * from (SELECT TRIM(id) id,times,tratio,ifnull(ROUND(ptsrate*weight,2)-ptsuse,0) weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM((select ftid from feedp where barid =fpdetail.barid)) ptid,TRIM(ptsid ) ptsid ,
 		(select bname  from bar where pastureid =fpdetail.pastureid and id = fpdetail.barid ) barname,0 AS fttype,cowcount,ccountradio,1 isfill  FROM fpdetail
 		WHERE fpdetail.pastureid = ?    and (ptid = ? or ptsid = ?)
 		UNION
-		SELECT TRIM(id) id,times,tratio,ifnull(ROUND((1-ptsrate)*weight,2)-ptuse,0) weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM(ptid) ptid,TRIM(ptsid ) ptsid ,
+		SELECT TRIM(id) id,times,tratio,ifnull(ROUND((1-ptsrate)*weight,2)-ptuse,0) weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM((select ftid from feedp where barid =fpdetail.barid)) ptid,TRIM(ptsid ) ptsid ,
 		(select bname  from bar where pastureid =fpdetail.pastureid and id = fpdetail.barid ) barname,1 AS fttype,cowcount,ccountradio,0 isfill  FROM fpdetail
 		WHERE fpdetail.pastureid = ?  and (ptid = ? or ptsid = ?)) t
 		order by t.barname,t.times`, parammaps["pastureid"], parammaps["ftid"], parammaps["ftid"], parammaps["pastureid"], parammaps["ftid"], parammaps["ftid"]).Query().List()
@@ -3513,20 +3513,21 @@ func UpdateFpdetailBar(c *gin.Context) {
 		}
 	}
 
-	for _, list := range fsion.Get("data").Array() {
+	fsionData := fsion.Get("data").Array()
+	for _, list := range fsionData {
 		ftmap := make(map[string]interface{})
-		ftmap["old"] = list.Get("old").ValueFloat64()
-		ftmap["new"] = list.Get("new").ValueFloat64()
+		ftmap["old"] = list.Get("old").ValueDefaultFloat64(0.0)
+		ftmap["new"] = list.Get("new").ValueDefaultFloat64(0.0)
 		ftmap["times"] = list.Get("times").ValueInt64()
 		ftmap["ptid"] = list.Get("ptid").ValueStr()
 		ftmap["ptsid"] = list.Get("ptsid").ValueStr()
 		// fmt.Println(ftmap)
 
-		fpdDataList, err := tx.SQL(`select * from (SELECT TRIM(id) id,times,tratio,ifnull(ROUND(ptsrate*weight,2)-ptsuse,"") weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM(ptid) ptid,TRIM(-1 ) ptsid ,
+		fpdDataList, err := tx.SQL(`select * from (SELECT TRIM(id) id,times,tratio,ifnull(ROUND(ptsrate*weight,2)-ptsuse,"") weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM((select ftid from feedp where barid =fpdetail.barid)) ptid,TRIM(-1 ) ptsid ,
 			(select bname  from bar where pastureid =fpdetail.pastureid and id = fpdetail.barid ) barname,0 AS fttype,cowcount,ccountradio,1 isfill  FROM fpdetail
 			WHERE fpdetail.pastureid = ?   and barid =(select barid from feedp where id = ? )  and  times = ?
 			UNION
-			SELECT TRIM(id) id,times,tratio,ifnull(ROUND((1-ptsrate)*weight,2)-ptuse,"") weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM(ptid) ptid,TRIM(ptsid ) ptsid ,
+			SELECT TRIM(id) id,times,tratio,ifnull(ROUND((1-ptsrate)*weight,2)-ptuse,"") weight,TRIM(barid) barid,TRIM(pastureid) pastureid,TRIM((select ftid from feedp where barid =fpdetail.barid)) ptid,TRIM(ifnull(ptsid,-1) ) ptsid ,
 			(select bname  from bar where pastureid =fpdetail.pastureid and id = fpdetail.barid ) barname,1 AS fttype,cowcount,ccountradio,0 isfill  FROM fpdetail
 			WHERE fpdetail.pastureid = ?  and barid = (select barid from feedp where id = ? )  and  times = ? ) t
 			order by t.barname,t.times`, pastureid, id, ftmap["times"], pastureid, id, ftmap["times"]).Query().List()
@@ -3537,8 +3538,7 @@ func UpdateFpdetailBar(c *gin.Context) {
 		}
 
 		for _, fpd := range fpdDataList {
-
-			if fpd["times"].(int64) == ftmap["times"].(int64) && (fpd["ptid"].(string) == ftmap["ptid"].(string) || fpd["ptsid"].(string) == ftmap["ptsid"].(string)) {
+			if fpd["times"].(int64) == ftmap["times"].(int64) && (fpd["ptid"].(string) == ftmap["ptid"].(string)) {
 				fttype := -1
 				if ftmap["ptid"].(string) != "-1" {
 					fttype = 1
@@ -3641,7 +3641,6 @@ func UpdateFpdetailBar(c *gin.Context) {
 
 		}
 	}
-
 	tx.Commit()
 
 	now := time.Now()
@@ -3652,20 +3651,6 @@ func UpdateFpdetailBar(c *gin.Context) {
 		return
 	}
 
-	// newFpdDataList, err := tx.SQL(` select *  from fpdetail where barid = ? and pastureid = ? `, id, pastureid).Query().List()
-	// if err != nil {
-	// 	logs.Error(err)
-	// 	appG.Response(http.StatusOK, e.ERROR, false)
-	// 	return
-	// }
-
-	// newFeedpList, err := tx.SQL(` select *  from feedp    where barid = ? and pastureid = ?`, id, pastureid).Query().List()
-	// if err != nil {
-	// 	logs.Error(err)
-	// 	appG.Response(http.StatusOK, e.ERROR, false)
-	// 	return
-	// }
-
 	for _, newLpplandtl1 := range newLpplandtl1List {
 		_, err := tx.SQL(` insert into lpplandtl1history(pastureid,lppid,barid,barname,fpdid,fttype,lweight,sort,tmrid,tmrname,
 						background,cowcount,ccountradio,lweighthis,createdate,userId)
@@ -7774,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")
+}

+ 63 - 58
http/handle/api/scheduled.go

@@ -36,7 +36,7 @@ func CronScheduled(ctx context.Context) {
 	defer tx.Close()
 
 	pastureinfo := new(udPastureInfo)
-	err := tx.SQL(`select column_default  as pastureid   from    information_schema.COLUMNS
+	err := tx.SQL(`select column_default  as pastureid,(select werks from pasture where pastureid = column_default)  werks  from    information_schema.COLUMNS
 	WHERE table_name = 'recweight' AND table_schema = ? AND column_name = 'pastureid'`, setting.DatabaseSetting.Name).GetFirst(pastureinfo).Error
 	if err != nil {
 		logs.Error(err)
@@ -104,7 +104,6 @@ func CronScheduled(ctx context.Context) {
 					plansToComplete(openIdList, pastureinfo.Pastureid, data["id"].(int64))
 				}
 			}
-
 		}
 	})
 	downloadplandtl1.Start()
@@ -137,14 +136,12 @@ func CronScheduled(ctx context.Context) {
 
 	//现代牧业sap同步
 	// xdmy := cron.New()
-	// dayCron.AddFunc("50 04 * * *", func() {
+	// xdmy.AddFunc("50 04 * * *", func() {
 	// 	sap.SyncMaterialOutbound()
 	// })
 	// xdmy.Start()
 
 	//光明ud同步
-	// gm.UdFeedSync(pastureinfo.Pastureid)
-
 	// gm.GmUdSync(pastureinfo.Pastureid, pastureinfo.Werks)
 
 }
@@ -755,7 +752,7 @@ func (h *ScheduledDown) SyncFeedp(pastureid string, feedpList []interface{}) err
 		// ON DUPLICATE KEY UPDATE softccount = ?  `
 		// _, err = tx.SQL(insertSql, pastureid, barName, barId, cowCount, cowCount).Execute()
 		fmt.Println(barCode)
-		_, err = tx.SQL(`update feedp fp set fp.softccount = ? where  (select bcode from bar where id = fp.id ) = ? `, cowCount, barName).Execute()
+		_, err = tx.SQL(`update feedp fp set fp.softccount = ? where  (select bcode from bar where id = fp.barid ) = ? `, cowCount, barName).Execute()
 		if err != nil {
 			tx.Rollback()
 			logs.Error("syncFeedp-error-7:", err)
@@ -1048,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 - 1
http/handle/api/spillage.go

@@ -1393,7 +1393,7 @@ GROUP BY fpd.ptsid`
 		sqlstr := `SELECT
 		lpplan.date,
 		-- ifnull((select eqcode from tmr where pastureid =lpplan.pastureid and id = lpplan.tmrid ),lpplan.tmrname) 
-		lpplan.tmrname tmrname,trim(lpplan.tmrid) tmrid,lpplan.sort,lpplan.sel,times timesInt,
+		lpplan.tmrname tmrname,trim(lpplan.tmrid) tmrid,lpplan.sort,lpplan.sel,lpplan.times timesInt,
 		CASE lpplan.times
 		WHEN 1 THEN
 		'第一班'

+ 7 - 7
http/handle/gm/udservice.go

@@ -19,7 +19,7 @@ import (
 // "../../../routers/restful"
 
 func GmUdSync(pastureId, farmId string) {
-	fmt.Println(111)
+	UdBarFeedRemainPush(pastureId, farmId)
 }
 
 func UdBarSync(pastureId, farmId string) {
@@ -158,7 +158,7 @@ func UdUtirPush(pastureId, farmId string) error {
         "code": "1",
         "method": "uploadadddata",
         "resultData": %s,
-        "farmId": %s,
+        "farmId": "%s",
         "rowCount": %d,
         "errMessage": ""
     },
@@ -218,7 +218,7 @@ dd.fname,
         "code": "1",
         "method": "uploaddiliverdata",
         "resultData": %s,
-        "farmId": %s,
+        "farmId": "%s",
         "rowCount": %d,
         "errMessage": ""
     },
@@ -236,7 +236,7 @@ func UdBarFeedRemainPush(pastureId, farmId string) error {
 
 	tx := restful.Engine.NewSession()
 	defer tx.Close()
-	now := time.Now().AddDate(0, 0, 0).Format("2006-01-02")
+	now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
 	dataList, err := tx.SQL(`SELECT
 	'' startTime,
 	'' endTime,
@@ -263,7 +263,7 @@ WHERE
         "code": "1",
         "method": "uploadoverplusdata",
         "resultData": %s,
-        "farmId": %s,
+        "farmId":"%s",
         "rowCount": %d,
         "errMessage": ""
     },
@@ -273,6 +273,7 @@ WHERE
 }`
 	reqJson = fmt.Sprintf(reqJson, string(dataByte), farmId, len(dataList))
 	//  '0饲喂  1剩料  2原料  3栏舍  4配方 5栏舍牛头数 6库存',
+	fmt.Println(reqJson)
 	postPush(reqJson, 1, tx, pastureId)
 	return nil
 }
@@ -319,7 +320,7 @@ WHERE
         "code": "1",
         "method": "getfeedtempletinfo",
         "resultData": %s,
-        "farmId": %s,
+        "farmId": "%s",
         "rowCount": %d,
         "errMessage": ""
     },
@@ -355,7 +356,6 @@ func postPush(data string, msgtype int, tx *xorm.Session, pastureId string) {
 	defer resp.Body.Close()
 	body, _ := ioutil.ReadAll(resp.Body)
 	fmt.Println(string(body))
-	fmt.Println("11111111111111", time.Now())
 	tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
 	values(?,?,?,?,?,now(),?,now(),?)`, pastureId, data, string(body), "", "", msgtype, url)
 

+ 3 - 0
http/routers/app_api.go

@@ -218,6 +218,9 @@ func AppAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		{
 			apiV3.POST("/GetDataByName", api.GetDataByName)
 			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 是 表名字