|
@@ -6,6 +6,7 @@ import (
|
|
|
"fmt"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
"tmr-watch/conf/setting"
|
|
|
"tmr-watch/http/handle/restful"
|
|
@@ -17,15 +18,21 @@ import (
|
|
|
|
|
|
// "../../../pkg/setting"
|
|
|
// "../../../routers/restful"
|
|
|
-
|
|
|
+// http://172.16.86.95:8080/copartner_downloads?equipmentId=48ffa4de-7870-4b18-a052-9f8d3a46089a&farmId=ef275fb06fd847d88422517773e5a616&method=downloadpen
|
|
|
func GmUdSync(pastureId, farmId string) {
|
|
|
- UdBarFeedRemainPush(pastureId, farmId)
|
|
|
+ UdBarSync(pastureId, farmId)
|
|
|
+ UdFeedSync(pastureId, farmId)
|
|
|
+
|
|
|
+ UdFeedtempletPush(pastureId, farmId)
|
|
|
+ UdUtirPush(pastureId, farmId, "")
|
|
|
+ UdBarFeedRemainPush(pastureId, farmId, "")
|
|
|
+ UdMaterialIssuePush(pastureId, farmId, "")
|
|
|
}
|
|
|
|
|
|
func UdBarSync(pastureId, farmId string) {
|
|
|
url := fmt.Sprintf("http://172.16.86.95:8080/copartner_downloads?equipmentId=48ffa4de-7870-4b18-a052-9f8d3a46089a&farmId=%s&method=downloadpen", farmId)
|
|
|
barByte := getPull(url)
|
|
|
-
|
|
|
+ fmt.Println(string(barByte))
|
|
|
barMap := make(map[string]interface{})
|
|
|
json.Unmarshal(barByte, &barMap)
|
|
|
|
|
@@ -33,29 +40,34 @@ func UdBarSync(pastureId, farmId string) {
|
|
|
defer tx.Close()
|
|
|
tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
|
values(?,?,?,?,?,now(),?,now(),?)`, pastureId, "", string(barByte), "", "", 3, url)
|
|
|
-
|
|
|
- for _, item := range barMap["msg"].([]interface{}) {
|
|
|
- bar := item.(map[string]interface{})
|
|
|
- barname := bar["barname"].(string) + "_ud"
|
|
|
- barExist, _ := tx.SQL(` select count(1) from bar where bcode = ? `, bar["barcode"]).Exist()
|
|
|
- tx.Exec(`insert into bar(pastureid,bcode,bname)values(?,?,?) ON DUPLICATE KEY UPDATE bname = ? `, pastureId, bar["barcode"], barname, barname)
|
|
|
- _, _ = tx.Exec(`insert into feedp(pastureid,barid,barname,softccount,ccount)values(?,(select id from bar where bcode= ? and pastureId = ? ),?,?,?)
|
|
|
+ if len(barMap) > 0 {
|
|
|
+ if barMap["status"].(string) != "ok" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, item := range barMap["msg"].([]interface{}) {
|
|
|
+ bar := item.(map[string]interface{})
|
|
|
+ barname := bar["barname"].(string) + "_ud"
|
|
|
+ count, _ := tx.Table("bar").Where("pastureId = ? ", pastureId).Count()
|
|
|
+ barExist, _ := tx.SQL(` select count(1) from bar where bcode = ? `, bar["barcode"]).Exist()
|
|
|
+ tx.Exec(`insert into bar(pastureid,bcode,bname,sort)values(?,?,?,?) ON DUPLICATE KEY UPDATE bname = ? `, pastureId, bar["barcode"], barname, count+1, barname)
|
|
|
+ _, _ = tx.Exec(`insert into feedp(pastureid,barid,barname,softccount,ccount)values(?,(select id from bar where bcode= ? and pastureId = ? ),?,?,?)
|
|
|
ON DUPLICATE KEY UPDATE softccount = ? `,
|
|
|
- pastureId, bar["barcode"], pastureId, barname, bar["cowcount"], bar["cowcount"], bar["cowcount"])
|
|
|
- // fmt.Println(err)
|
|
|
- if !barExist {
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 1, barname)
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 2, barname)
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 3, barname)
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 4, barname)
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 5, barname)
|
|
|
- tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
- pastureId, bar["barcode"], 6, barname)
|
|
|
+ pastureId, bar["barcode"], pastureId, barname, bar["cowcount"], bar["cowcount"], bar["cowcount"])
|
|
|
+ fmt.Println(bar["barcode"], barname)
|
|
|
+ if !barExist {
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 1, barname)
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 2, barname)
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 3, barname)
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 4, barname)
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 5, barname)
|
|
|
+ tx.Exec(`insert into fpdetail(pastureId,barid,weight,ptsrate,times,barname) values(?,(select id from bar where bcode= ? and pastureId = ? ),0,0,?,?)`,
|
|
|
+ pastureId, bar["barcode"], 6, barname)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -64,7 +76,7 @@ func UdBarSync(pastureId, farmId string) {
|
|
|
func UdFeedSync(pastureId, farmId string) {
|
|
|
url := fmt.Sprintf("http://172.16.86.95:8080/copartner_downloads?equipmentId=48ffa4de-7870-4b18-a052-9f8d3a46089a&farmId=%s&method=downloadmaterial", farmId)
|
|
|
feedByte := getPull(url)
|
|
|
-
|
|
|
+ fmt.Println(string(feedByte))
|
|
|
tx := restful.Engine.NewSession()
|
|
|
defer tx.Close()
|
|
|
tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
@@ -72,77 +84,100 @@ func UdFeedSync(pastureId, farmId string) {
|
|
|
|
|
|
feedMap := make(map[string]interface{})
|
|
|
json.Unmarshal(feedByte, &feedMap)
|
|
|
-
|
|
|
- for _, item := range feedMap["msg"].([]interface{}) {
|
|
|
- fmt.Println(item)
|
|
|
- feed := item.(map[string]interface{})
|
|
|
- feedname := feed["feedname"].(string) + "_ud"
|
|
|
- feedClassExist, _ := tx.SQL(` select count(1) from feedclass where fccode = ? and pastureId = ? `, feed["feedclass"], pastureId).Exist()
|
|
|
-
|
|
|
- if !feedClassExist {
|
|
|
- tx.Exec(`insert into feedclass(pastureId,fcname,fccode,bigfeedclassname,sort) values(?,?,?,?,(select max(sort) +1 from feedclass where pastureId = ? and fccode = ? ))`,
|
|
|
- pastureId, feed["feedclass"], feed["feedclass"], feed["feedclass"], pastureId, feed["feedclass"])
|
|
|
+ if len(feedMap) > 0 {
|
|
|
+ if feedMap["status"].(string) != "ok" {
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- ids, err := setting.SnowIds.NextId()
|
|
|
- if err != nil {
|
|
|
- ids = time.Now().UnixNano()
|
|
|
- logging.Info("create SnowIds err", err)
|
|
|
+ for _, item := range feedMap["msg"].([]interface{}) {
|
|
|
+ fmt.Println(item)
|
|
|
+ feed := item.(map[string]interface{})
|
|
|
+ feedname := feed["feedname"].(string) + "_ud"
|
|
|
+ feedClassExist, err := tx.Table("feedclass").Where("fccode = ? ", feed["feedclass"]).Where(" pastureId = ? ", pastureId).Exist()
|
|
|
+ fmt.Println(err)
|
|
|
+ if !feedClassExist {
|
|
|
+ count, _ := tx.Table("feedclass").Where("pastureId = ? ", pastureId).Count()
|
|
|
+ ids, err := setting.SnowIds.NextId()
|
|
|
+ if err != nil {
|
|
|
+ ids = time.Now().UnixNano()
|
|
|
+ logging.Info("create SnowIds err", err)
|
|
|
+ }
|
|
|
+ _, err = tx.Exec(`insert into feedclass(id,pastureId,fcname,fccode,bigfeedclassname,sort,bigfeedclassid) values(?,?,?,?,?,?)`, ids,
|
|
|
+ pastureId, feed["feedclass"], feed["feedclass"], feed["feedclass"], count+1, ids)
|
|
|
+ fmt.Println(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ ids, err := setting.SnowIds.NextId()
|
|
|
+ if err != nil {
|
|
|
+ ids = time.Now().UnixNano()
|
|
|
+ logging.Info("create SnowIds err", err)
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = tx.Exec(`insert into feed(id,pastureId,feedcode,udname,fclassid,fclass,fname) values(?,?,?,?,(select id from feedclass where fccode = ? and pastureId = ? ),?,if(char_length(?) > 7, left(?,7),?) )
|
|
|
+ ON DUPLICATE KEY UPDATE udname = ? ,fclassid = (select id from feedclass where fccode = ? and pastureId = ? ) ,fclass = ?`,
|
|
|
+ ids, pastureId, feed["feedcode"], feedname, feed["feedclass"], pastureId, feed["feedclass"], feedname, feedname, feedname, feedname, feed["feedclass"], pastureId, feed["feedclass"])
|
|
|
}
|
|
|
-
|
|
|
- _, err = tx.Exec(`insert into feed(id,pastureId,feedcode,fname,fclassid,fclass) values(?,?,?,?,(select id from feedclass where fccode = ? and pastureId = ? ),?)
|
|
|
- ON DUPLICATE KEY UPDATE fname = ? `,
|
|
|
- ids, pastureId, feed["feedcode"], feedname, feed["feedclass"], pastureId, feed["feedclass"], feedname)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
func getPull(url string) []byte {
|
|
|
- // 创建一个HTTP客户端
|
|
|
- client := &http.Client{}
|
|
|
+ forwardingReq := new(ForwardingReq)
|
|
|
+ forwardingReq.Url = url
|
|
|
+ forwardingReq.Method = "GET"
|
|
|
+ jsonStr, _ := json.Marshal(forwardingReq)
|
|
|
|
|
|
- // 创建一个GET请求
|
|
|
- req, err := http.NewRequest("GET", url, nil)
|
|
|
+ req, err := http.NewRequest("POST", setting.ServerSetting.UDForwardingSvc+":8080/forwarding", bytes.NewBuffer(jsonStr))
|
|
|
if err != nil {
|
|
|
- fmt.Println("创建请求时发生错误:", err)
|
|
|
- return nil
|
|
|
+ logs.Error(err)
|
|
|
+ // return nil
|
|
|
}
|
|
|
|
|
|
- // 发送请求
|
|
|
+ req.Header.Set("Content-Type", "application/json")
|
|
|
+ client := &http.Client{}
|
|
|
resp, err := client.Do(req)
|
|
|
if err != nil {
|
|
|
- fmt.Println("发送请求时发生错误:", err)
|
|
|
+ logs.Error(err)
|
|
|
return nil
|
|
|
}
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
- // 读取响应内容
|
|
|
- body, err := ioutil.ReadAll(resp.Body)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("读取响应时发生错误:", err)
|
|
|
- return nil
|
|
|
+ body, _ := ioutil.ReadAll(resp.Body)
|
|
|
+ if strings.Index(resp.Status, "200") > -1 {
|
|
|
+ bodyData := make(map[string]string)
|
|
|
+ json.Unmarshal(body, &bodyData)
|
|
|
+ if _, ok := bodyData["data"]; ok {
|
|
|
+ return []byte(bodyData["data"])
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- // 打印响应内容
|
|
|
- // fmt.Println(string(body))
|
|
|
-
|
|
|
- return body
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
//搅拌
|
|
|
-func UdUtirPush(pastureId, farmId string) error {
|
|
|
+func UdUtirPush(pastureId, farmId, date string) error {
|
|
|
tx := restful.Engine.NewSession()
|
|
|
defer tx.Close()
|
|
|
- now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
- dataList, err := tx.SQL(`select d1.date loadDate,d.times loadShift,d.datacaptureno tmrNo,ft.id recipeId,ft.ccname,d1.feedcode,d1.fname,f.fclass,
|
|
|
- f.dry * d1.actualweightminus dmPct,d1.sort mixNo,d1.feedallowratio allowableError ,d1.lweight expWeight,d1.actualweightminus actualWeight,d1.begintime startTime,
|
|
|
- d1.intime endTime, d.tmrtname tmrName , d.pid id ,ftd.sort premixFeedSort ,
|
|
|
- (select feedcode from feed where id = ftd.fid) premixFeedId,ftd.fname premixFeedName,
|
|
|
- ftd.fweight / (select sum(fweight) from ftdetaildate where date = d1.date and ftid = d1.fid ) * d1.actualweightminus premixFeedWeight
|
|
|
+ var now string
|
|
|
+ if date != "" {
|
|
|
+ now = date
|
|
|
+ } else {
|
|
|
+ now = time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
+ }
|
|
|
|
|
|
+ dataList, err := tx.SQL(`select date_format(d1.date,'%Y-%m-%d') loadDate,d.times loadShift,d.datacaptureno tmrNo,ft.id recipeId,ft.ccname recipeName,ifnull(f.id,ftd.fid) ingId,d1.fname ingName,ifnull(fc.fcname,(select fcname from feedclass fc1 join feed f1 on f1.fclassid = fc1.id where f1.id =ftd.fid )) ingType,
|
|
|
+ ifnull(f.dry * d1.actualweightminus,0) dmPct,d1.sort mixNo,ifnull(d1.feedallowratio,0) allowableError ,d1.lweight expWeight,d1.actualweightminus actualWeight,
|
|
|
+ DATE_FORMAT(IFNULL((SELECT MAX(intime) FROM downloadplandtl1 d2
|
|
|
+WHERE d1.pid=d2.pid AND d1.pastureid = d2.pastureid AND d2.intime<d1.intime)
|
|
|
+, (SELECT MAX(intime) FROM downloadedplan d2
|
|
|
+WHERE d1.date=d2.mydate AND d1.pastureid = d2.pastureid AND d2.id=d1.pid)
|
|
|
+), '%Y-%m-%d %H:%i:%s')
|
|
|
+ startTime ,
|
|
|
+ date_format(d1.intime,'%Y-%m-%d %H:%i:%s') endTime, d.tmrtname tmrName , d.pid id ,ifnull(ftd.sort,"") premixFeedSort ,
|
|
|
+ ifnull( (select id from feed where id = ftd.fid),"") premixFeedId,ifnull(ftd.fname,"") premixFeedName,
|
|
|
+ ifnull(ftd.fweight / (select sum(fweight) from ftdetaildate where date = d1.date and ftid = d1.fid ) * d1.actualweightminus,"") premixFeedWeight
|
|
|
from downloadplandtl1 d1 join downloadedplan d on d.id = d1.pid
|
|
|
left join feedtempletdate ft on ft.id = d.tempid and ft.date = d1.date
|
|
|
left join feed f on f.feedcode = d1.feedcode
|
|
|
+ left join feedclass fc on fc.id = f.fclassid
|
|
|
left join ftdetaildate ftd on ftd.date = d1.date and ftd.ftid = d1.fid
|
|
|
where d1.date = ?`, now).Query().List()
|
|
|
if err != nil {
|
|
@@ -173,15 +208,22 @@ func UdUtirPush(pastureId, farmId string) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func UdMaterialIssuePush(pastureId, farmId string) error {
|
|
|
+func UdMaterialIssuePush(pastureId, farmId, date string) error {
|
|
|
tx := restful.Engine.NewSession()
|
|
|
defer tx.Close()
|
|
|
- now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
- dataList, err := tx.SQL(`SELECT dd.feedsort feedSort, dd.feedcode feedId,dd.fname feedName,
|
|
|
- d.id,IFNULL(ft.id,d2.feedtempletid ) recipeId,
|
|
|
+
|
|
|
+ var now string
|
|
|
+ if date != "" {
|
|
|
+ now = date
|
|
|
+ } else {
|
|
|
+ now = time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
+ }
|
|
|
+
|
|
|
+ dataList, err := tx.SQL(`SELECT dd.sort feedSort, ifnull((select id from feed where feedcode = dd.feedcode ),"") feedId,dd.fname feedName,
|
|
|
+ d.id,IFNULL(ft.id,d2.feedtempletid ) recipeId,IFNULL(ft.id,d2.feedtempletid ) feedtempletId,ft.tname feedtempletName ,
|
|
|
IFNULL(d.templetName,d2.feedtempletName ) recipeName,
|
|
|
date_format(d.mydate,'%Y-%m-%d') as dropDate,ifnull((select sort from downloadedplan where pid=d.pid and lpplanType !=d.lpplanType and mydate=d.mydate),d.sort) as tmrNo,
|
|
|
- d.Times as dropShift,b.bcode as penId,d2.Fname as penName,fp.CCOUNT as cowCount, d2.SORT as feedingNo,
|
|
|
+ d.Times as dropShift,b.id as penId,d2.Fname as penName,fp.CCOUNT as cowCount, d2.SORT as feedingNo,
|
|
|
ifnull(ROUND(d2.lweight * (dd.actualweightminus/ (select sum(actualweightminus) from downloadplandtl1 where pid = dd.pid and type = 0) ),2) ,0)as expWeight,
|
|
|
ifnull(d2.ActualWeightMinus,0) as actualWeight, ifnull(date_format(timestamp(d2.InTime,CONCAT('-',d2.processTime)),'%Y-%m-%d %H:%i:%s'),d.mydate) as startTime,
|
|
|
ifnull(date_format(d2.InTime,'%Y-%m-%d %H:%i:%s'),d.mydate) as endTime,ifnull((SELECT dr.driver FROM dutyrecord dr
|
|
@@ -190,9 +232,9 @@ ORDER BY dr.operatetime DESC LIMIT 1),"") as tmrName ,d.tmrtname equipmentId ,
|
|
|
dd.fname,
|
|
|
ifnull(TRIM(if(( select sum(dd2.actualweightminus) from downloadplandtl2 dd2 where dd2.pid = d2.pid) >0 , ROUND( d2.actualweightminus/( select sum(dd2.actualweightminus) from downloadplandtl2 dd2 where dd2.pid = d2.pid) * (dd.actualweightminus ),2), ROUND( d2.lweight/( select sum(dd2.lweight) from downloadplandtl2 dd2 where dd2.pid = d2.pid) * (dd.actualweightminus ),2))),0) feedWeight
|
|
|
|
|
|
- ,ftd.sort premixFeedSort ,
|
|
|
- (select feedcode from feed where id = ftd.fid) premixFeedId,ftd.fname premixFeedName,
|
|
|
- ftd.fweight / (select sum(fweight) from ftdetaildate where date = dd.date and ftid = dd.fid ) * dd.actualweightminus premixFeedWeight
|
|
|
+ ,ifnull(ftd.sort,"") premixFeedSort ,
|
|
|
+ ifnull((select id from feed where id = ftd.fid),"") premixFeedId,ifnull(ftd.fname,"") premixFeedName,
|
|
|
+ ifnull(ftd.fweight / (select sum(fweight) from ftdetaildate where date = dd.date and ftid = dd.fid ) * dd.actualweightminus,"") premixFeedWeight
|
|
|
|
|
|
from downloadedplan d
|
|
|
LEFT JOIN downloadplandtl2 d2 on d.id=d2.PID
|
|
@@ -229,19 +271,26 @@ dd.fname,
|
|
|
reqJson = fmt.Sprintf(reqJson, string(dataByte), farmId, len(dataList))
|
|
|
// '0饲喂 1剩料 2原料 3栏舍 4配方 5栏舍牛头数 6库存',
|
|
|
postPush(reqJson, 0, tx, pastureId)
|
|
|
+ fmt.Println(reqJson)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func UdBarFeedRemainPush(pastureId, farmId string) error {
|
|
|
-
|
|
|
+func UdBarFeedRemainPush(pastureId, farmId, date string) error {
|
|
|
tx := restful.Engine.NewSession()
|
|
|
defer tx.Close()
|
|
|
- now := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
+
|
|
|
+ var now string
|
|
|
+ if date != "" {
|
|
|
+ now = date
|
|
|
+ } else {
|
|
|
+ now = time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
|
|
+ }
|
|
|
+
|
|
|
dataList, err := tx.SQL(`SELECT
|
|
|
'' startTime,
|
|
|
'' endTime,
|
|
|
br.RemainDate AS overplusDate,
|
|
|
- b.bcode AS penId,
|
|
|
+ b.id AS penId,
|
|
|
b.BNAME AS penName,
|
|
|
br.Remain AS actualWeight
|
|
|
FROM
|
|
@@ -291,19 +340,19 @@ func UdFeedtempletPush(pastureId, farmId string) error {
|
|
|
dataList, err := tx.SQL(`SELECT
|
|
|
ft.ID AS recipeId,
|
|
|
ft.TNAME AS recipeName,
|
|
|
- ifnull( f.feedcode, f.id ) AS ingId,
|
|
|
+ f.id AS ingId,
|
|
|
f.FNAME AS ingName,
|
|
|
round( f.dry * ftd.FWEIGHT, 2 ) AS dmQty,
|
|
|
ftd.FWEIGHT AS afQty,
|
|
|
ftd.SORT AS mixNo,
|
|
|
round( f.Uprice * ftd.FWEIGHT, 2 ) AS recipeCost,
|
|
|
- fc.FCNAME AS ingType,
|
|
|
- f.AllowRatio AS allowableError
|
|
|
+ fc.fcname AS ingType,
|
|
|
+ f.AllowRatio AS allowableError ,fc.fcname ingType
|
|
|
FROM
|
|
|
feedtemplet ft
|
|
|
- LEFT JOIN ftdetail ftd ON ft.id = ftd.FTID
|
|
|
- LEFT JOIN feed f ON ftd.FID = f.id
|
|
|
- LEFT JOIN feedclass fc ON f.FCLASS = fc.id
|
|
|
+ JOIN ftdetail ftd ON ft.id = ftd.FTID
|
|
|
+ JOIN feed f ON ftd.FID = f.id
|
|
|
+ JOIN feedclass fc ON f.fclassid = fc.id
|
|
|
WHERE
|
|
|
ft.ENABLE = 1
|
|
|
AND ft.isDelete != 1 `).Query().List()
|
|
@@ -329,22 +378,37 @@ WHERE
|
|
|
"apiId": "getCptData"
|
|
|
}`
|
|
|
reqJson = fmt.Sprintf(reqJson, string(dataByte), farmId, len(dataList))
|
|
|
-
|
|
|
+ fmt.Println(reqJson)
|
|
|
postPush(reqJson, 4, tx, pastureId)
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+type ForwardingReq struct {
|
|
|
+ Body string `json:"body"`
|
|
|
+ Headers []*Headers `json:"headers"`
|
|
|
+ Url string `json:"url"`
|
|
|
+ Method string `json:"method"`
|
|
|
+}
|
|
|
+
|
|
|
+type Headers struct {
|
|
|
+ Key string `json:"key"`
|
|
|
+ Value string `json:"value"`
|
|
|
+}
|
|
|
+
|
|
|
func postPush(data string, msgtype int, tx *xorm.Session, pastureId string) {
|
|
|
- url := "http://dev.unidairy.cn:8011/copartner_uploads/"
|
|
|
- var jsonStr = []byte(data)
|
|
|
- req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
|
|
|
+
|
|
|
+ forwardingReq := new(ForwardingReq)
|
|
|
+ forwardingReq.Url = "http://172.16.86.95:8080/copartner_uploads/"
|
|
|
+ forwardingReq.Method = "POST"
|
|
|
+ forwardingReq.Body = data
|
|
|
+ jsonStr, _ := json.Marshal(forwardingReq)
|
|
|
+ fmt.Println(setting.ServerSetting.UDForwardingSvc)
|
|
|
+ req, err := http.NewRequest("POST", setting.ServerSetting.UDForwardingSvc+":8080/forwarding", bytes.NewBuffer(jsonStr))
|
|
|
if err != nil {
|
|
|
logs.Error(err)
|
|
|
// return nil
|
|
|
}
|
|
|
|
|
|
- // req.SetBasicAuth("zinf_TMR", "zinf_TMR@1234") 测试线密码
|
|
|
- // req.SetBasicAuth("zinf_TMR", "$C2Cj$\\Uv#")
|
|
|
req.Header.Set("Content-Type", "application/json")
|
|
|
client := &http.Client{}
|
|
|
resp, err := client.Do(req)
|
|
@@ -352,11 +416,24 @@ func postPush(data string, msgtype int, tx *xorm.Session, pastureId string) {
|
|
|
logs.Error(err)
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
defer resp.Body.Close()
|
|
|
+
|
|
|
body, _ := ioutil.ReadAll(resp.Body)
|
|
|
fmt.Println(string(body))
|
|
|
- tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
|
- values(?,?,?,?,?,now(),?,now(),?)`, pastureId, data, string(body), "", "", msgtype, url)
|
|
|
+
|
|
|
+ if strings.Index(resp.Status, "200") > -1 {
|
|
|
+ bodyData := make(map[string]string)
|
|
|
+ json.Unmarshal(body, &bodyData)
|
|
|
+ if _, ok := bodyData["data"]; ok {
|
|
|
+ tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
|
+ values(?,?,?,?,?,now(),?,now(),?)`, pastureId, data, bodyData["data"], "", "", msgtype, forwardingReq.Url)
|
|
|
+ } else {
|
|
|
+ tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
|
+ values(?,?,?,?,?,now(),?,now(),?)`, pastureId, data, string(body), "", "", msgtype, forwardingReq.Url)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tx.Exec(` insert into saplog(pastureId,request,response,status,msgtext,createTime,msgtype,dataDate,url)
|
|
|
+ values(?,?,?,?,?,now(),?,now(),?)`, pastureId, data, string(body), "", "", msgtype, forwardingReq.Url)
|
|
|
+ }
|
|
|
|
|
|
}
|