| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 | 
							- package api
 
- import (
 
- 	"encoding/json"
 
- 	"io/ioutil"
 
- 	"net/http"
 
- 	"strconv"
 
- 	"tmr-watch/http/handle/restful"
 
- 	"tmr-watch/pkg/app"
 
- 	"tmr-watch/pkg/e"
 
- 	"github.com/Anderson-Lu/gofasion/gofasion"
 
- 	"github.com/astaxie/beego/logs"
 
- 	"github.com/gin-gonic/gin"
 
- )
 
- type downloadedplan struct {
 
- 	Id            int64  `json:"id"`
 
- 	Mydate        string `json:"mydate"`
 
- 	Projname      string `json:"projname"`
 
- 	Datacaptureno string `json:"datacaptureno"`
 
- 	Lweight       string `json:"lweight"`
 
- 	Havebutton    string `json:"havebutton"`
 
- 	Feedpname     string `json:"feedpname"`
 
- 	Iscompleted   string `json:"iscompleted"`
 
- 	Tmrtname      string `json:"tmrtname"`
 
- 	Remark        string `json:"remark"`
 
- 	Lpplantype    string `json:"lpplantype"`
 
- 	Sort          string `json:"sort"`
 
- 	Shifts        string `json:"shifts"`
 
- }
 
- type ReqGetDownloadedplanMaterial struct {
 
- 	Pastureid     int64  `json:"pastureid"`
 
- 	Datacaptureno int64  `json:"datacaptureno"`
 
- 	Date          string `json:"date"`
 
- }
 
- func GetDownloadedplanMaterial1(c *gin.Context) {
 
- 	// var reqInfo ReqGetDownloadedplanMaterial
 
- 	// err := c.Bind(&reqInfo)
 
- 	appG := app.Gin{C: c}
 
- 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
 
- 	fsion := gofasion.NewFasion(string(dataByte))
 
- 	date := fsion.Get("date").ValueStr()
 
- 	pastureid := fsion.Get("pastureid").ValueStr()
 
- 	datacaptureno := fsion.Get("datacaptureno").ValueStr()
 
- 	id := fsion.Get("id").ValueStr()
 
- 	tx := restful.Engine.NewSession()
 
- 	defer tx.Close()
 
- 	tclassid := ""
 
- 	tmrList, err := tx.SQL(` select tclassid from tmr where datacaptureno = ?  `, datacaptureno).QueryString()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	for _, tmr := range tmrList {
 
- 		tclassid = tmr["tclassid"]
 
- 	}
 
- 	downloadedplanInfo := new(downloadedplan)
 
- 	err = tx.SQL(` select  d.id,date_format(d.mydate ,'%Y-%m-%d') as mydate ,d.projname,d.datacaptureno,d.lweight,d.havebutton,d.feedpname,d.iscompleted,d.remark,d.tmrtname from downloadedplan d
 
- 	where d.mydate = ? and d.pastureid = ? and (d.datacaptureno is null or d.datacaptureno = ?) and  d.iscompleted = 0  
 
- 	and ( (? IN(1,2) AND d.lpplanType IN (0,1))  OR (? IN (1,3) AND d.lpplanType IN (0,2))) 
 
- 	and if(d.lpplantype = 2,if((select count(1) from downloadplandtl1 d1 
 
- 	where d1.pid = (select id from downloadedplan dd where dd.mydate = d.mydate 
 
- 		and dd.pastureId = d.pastureid and dd.lpplanType IN (0,1) and dd.pid = d.pid and dd.times = d.times ) 
 
- 		and d1.type = 0 and d1.havebuttom = 0 ) >0 ,1,0 ),0) = 0  and (?= '' or d.id = ? )
 
- 	 order by d.sort  `,
 
- 		date, pastureid, datacaptureno, tclassid, tclassid, id, id).GetFirst(downloadedplanInfo).Error
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	if downloadedplanInfo.Id == 0 {
 
- 		appG.Response(http.StatusOK, e.THROUGHOUt_THE_DAY_TO_END, nil)
 
- 		return
 
- 	}
 
- 	_, err = tx.SQL(` update downloadedplan set havebutton = 1 ,intime = now() where id = ? and havebutton != 1 `, downloadedplanInfo.Id).Execute()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	_, err = tx.SQL(` update tmr set projid = ? ,lastbuttontime =? , nextsort = ifnull((select sort from downloadplandtl1  where pid = ? and intime is  null  order by sort limit 0,1),0 )  where datacaptureno = ?   and pastureid = ? `,
 
- 		downloadedplanInfo.Id, date, downloadedplanInfo.Id, datacaptureno, pastureid).Execute()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	appG.Response(http.StatusOK, e.SUCCESS, downloadedplanInfo)
 
- }
 
- func GetSubPlan(c *gin.Context) {
 
- 	appG := app.Gin{C: c}
 
- 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
 
- 	parammaps := gofasion.NewFasion(string(dataByte))
 
- 	pid := parammaps.Get("pid").ValueStr()
 
- 	pastureid := parammaps.Get("pastureid").ValueStr()
 
- 	tx := restful.Engine.NewSession()
 
- 	defer tx.Close()
 
- 	downloadplandtl1List, err := tx.SQL(` select DATE_FORMAT(d1.begintime, '%Y-%m-%d %H:%i:%S') as begintime,
 
- 	 DATE_FORMAT(d1.intime, '%Y-%m-%d %H:%i:%S') as intime ,f.id as feedid,d1.fname,d1.feedcode,f.autosecond,
 
- 	f.autozone,d1.lweight,d1.sort,d1.buttontype,d1.actualweightminus,f.confirmstart,f.jmp from  downloadplandtl1 d1
 
- 	 left join feed f 
 
- 	on f.feedcode = d1.feedcode and f.pastureid = d1.pastureid  where d1.pid = ? and d1.pastureid = ? `, pid, pastureid).Query().List()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	downloadplandtl2List, err := tx.SQL(` select  d2.sort,DATE_FORMAT(d2.begintime, '%Y-%m-%d %H:%i:%S') as begintime ,DATE_FORMAT(d2.intime, '%Y-%m-%d %H:%i:%S')  as intime 
 
- 	 ,d2.id,d2.pid,d2.fbarid,d2.fname as fbarname,d2.lweight,d.lpplantype,d2.actualweightminus ,ifnull(b.autozone,0) as autozone,ifnull(b.autosecond,"") as  autosecond,ifnull(b.isstart,1) as isstart ,ifnull(b.jmp,0) as jmp
 
- 	 from  downloadplandtl2 d2
 
- 	  join downloadedplan d  on d.id = d2.pid  
 
- 	   left join  bar b on d2.fbarid = b.id where d2.pid = ? and d2.pastureid = ? `, pid, pastureid).Query().List()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	d1List := make([]map[string]interface{}, 0)
 
- 	d2List := make([]map[string]interface{}, 0)
 
- 	for _, d2item := range downloadplandtl2List {
 
- 		data := make(map[string]interface{}, 0)
 
- 		data["fbarid"] = d2item["fbarid"]
 
- 		data["fbarname"] = d2item["fbarname"]
 
- 		data["lweight"] = d2item["lweight"]
 
- 		data["lpplantype"] = d2item["lpplantype"]
 
- 		data["id"] = d2item["id"]
 
- 		data["actualweightminus"] = d2item["actualweightminus"]
 
- 		data["intime"] = d2item["intime"]
 
- 		data["begintime"] = d2item["begintime"]
 
- 		data["sort"] = d2item["sort"]
 
- 		data["autozone"] = d2item["autozone"]
 
- 		data["autosecond"] = d2item["autosecond"]
 
- 		data["isstart"] = d2item["isstart"]
 
- 		data["jmp"] = d2item["jmp"]
 
- 		d2List = append(d2List, data)
 
- 	}
 
- 	for _, d1item := range downloadplandtl1List {
 
- 		d1 := make(map[string]interface{}, 0)
 
- 		// lweight, _ := strconv.ParseFloat(d1item["lweight"].(string), 64)
 
- 		d1["fname"] = d1item["fname"]
 
- 		d1["feedcode"] = d1item["feedcode"]
 
- 		d1["autosecond"] = d1item["autosecond"]
 
- 		d1["autozone"] = d1item["autozone"]
 
- 		d1["sort"] = d1item["sort"]
 
- 		d1["buttontype"] = d1item["buttontype"]
 
- 		d1["feedid"] = d1item["feedid"]
 
- 		d1["lweight"] = d1item["lweight"]
 
- 		d1["intime"] = d1item["intime"]
 
- 		d1["begintime"] = d1item["begintime"]
 
- 		d1["actualweightminus"] = d1item["actualweightminus"]
 
- 		d1["confirmstart"] = d1item["confirmstart"]
 
- 		d1["jmp"] = d1item["jmp"]
 
- 		d1List = append(d1List, d1)
 
- 	}
 
- 	resData := make(map[string]interface{}, 0)
 
- 	resData["mixing"] = d1List
 
- 	resData["spillage"] = d2List
 
- 	// data["plan"] = d1List
 
- 	// dataList = append(dataList, data)
 
- 	appG.Response(http.StatusOK, e.SUCCESS, resData)
 
- }
 
- func CompletePlan(c *gin.Context) {
 
- 	appG := app.Gin{C: c}
 
- 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
 
- 	parammaps := gofasion.NewFasion(string(dataByte))
 
- 	pid := parammaps.Get("pid").ValueStr()
 
- 	feedid := parammaps.Get("feedid").ValueStr()
 
- 	lastactualweight := parammaps.Get("lastactualweight").ValueDefaultFloat64(0)
 
- 	actualweightminus := parammaps.Get("actualweightminus").ValueDefaultFloat64(0)
 
- 	actualweight := parammaps.Get("actualweight").ValueDefaultFloat64(0)
 
- 	datacaptureno := parammaps.Get("datacaptureno").ValueStr()
 
- 	begintime := parammaps.Get("begintime").ValueStr()
 
- 	intime := parammaps.Get("intime").ValueStr()
 
- 	sort := parammaps.Get("sort").ValueStr()
 
- 	buttontype := parammaps.Get("buttontype").ValueStr()
 
- 	lpplantype := parammaps.Get("lpplantype").ValueDefaultInt64(0)
 
- 	d2id := parammaps.Get("d2id").ValueStr()
 
- 	pastureid := parammaps.Get("pastureid").ValueStr()
 
- 	tx := restful.Engine.NewSession()
 
- 	defer tx.Close()
 
- 	_, err := tx.SQL(` update downloadedplan set  tmrid = ( select id from tmr where  datacaptureno = ? and pastureid = ?) , 
 
- 	tmrtname = ( select eqcode from tmr where  datacaptureno = ? and pastureid = ?) where id = ? and tmrid != ( select id from tmr where  datacaptureno = ? and pastureid = ?)`,
 
- 		datacaptureno, pastureid, datacaptureno, pastureid, pid, datacaptureno, pastureid).Execute()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	if lpplantype == 0 {
 
- 		_, err := tx.SQL(` update downloadplandtl1 set  begintime = ? , actualweightminus = ifnull(actualweightminus,0) +? ,
 
- 		intime = ? ,actualweight = ? ,optdevice = ( select id from tmr where datacaptureno = ? and pastureid = ?),buttontype = ?,
 
- 		havebuttom = 1,lastactualweight = ?  where pid = ?
 
- 		and sort = ? and feedcode = (select feedcode from feed where id = ? ) and  (intime is null )`,
 
- 			begintime, actualweightminus, intime, actualweight, datacaptureno, pastureid, buttontype, lastactualweight, pid, sort, feedid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		_, err = tx.SQL(` update downloadplandtl1_exec set begintime = ? ,actualweightminus = ifnull(actualweightminus,0)+ ? ,
 
- 		intime = ? ,actualweight = ? ,optdevice = ( select id from tmr where datacaptureno = ? and pastureid = ?),buttontype = ?,havebuttom = 1,lastactualweight = ?  where pid = ?
 
- 		and sort = ?  and  (intime is null ) `,
 
- 			begintime, actualweightminus, intime, actualweight, datacaptureno, pastureid, buttontype, lastactualweight, pid, sort).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		d2List, err := tx.SQL(` select * from downloadplandtl2 where pid = ?  order by sort `, pid).Query().List()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		var sumlweight float64
 
- 		for _, d2 := range d2List {
 
- 			lweight, _ := strconv.ParseFloat(d2["lweight"].(string), 64)
 
- 			sumlweight += lweight
 
- 		}
 
- 		for _, d2 := range d2List {
 
- 			if actualweightminus <= 0 {
 
- 				break
 
- 			}
 
- 			lweight, _ := strconv.ParseFloat(d2["lweight"].(string), 64)
 
- 			actualweight := lweight / sumlweight * actualweightminus
 
- 			last := lweight / sumlweight * lastactualweight
 
- 			_, err := tx.SQL(` update downloadplandtl2 set actualweightminus = ifnull(actualweightminus,0)+?, actualweight = ?,
 
- 			lastactualweight = ? , intime = ?,begintime = ? ,havebuttom = 1,buttontype = ? where id = ?   and  (intime is null ) `, actualweight,
 
- 				actualweight, last, intime, begintime, buttontype, d2["id"]).Execute()
 
- 			if err != nil {
 
- 				logs.Error(err)
 
- 				appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 				return
 
- 			}
 
- 		}
 
- 		execExist, err := tx.SQL(` select id from downloadplandtl2 where pid = ? and  (intime is null )  `, pid).Exist()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		if !execExist {
 
- 			_, err := tx.SQL(` update downloadedplan set iscompleted = 1, completedtime = ? where id = ?  `, intime, pid).Execute()
 
- 			if err != nil {
 
- 				logs.Error(err)
 
- 				appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 				return
 
- 			}
 
- 		}
 
- 		_, err = tx.SQL(` update tmr set projid = ? ,lastbuttontime =? , nextsort = 
 
- 		(select sort from downloadplandtl1  where pid = ? and intime is  null  order by sort limit 0,1 )  where datacaptureno = ?  and pastureid = ?    `,
 
- 			pid, intime, pid, datacaptureno, pastureid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 	} else if lpplantype == 1 {
 
- 		_, err := tx.SQL(` update downloadplandtl2 set actualweightminus =ifnull(actualweightminus,0)+?, actualweight = ?,
 
- 		lastactualweight = ? , intime = ? ,begintime = ?,havebuttom = 1,buttontype = ? where id = ?    and  (intime is null  ) `,
 
- 			actualweightminus, actualweight, lastactualweight, intime, begintime, buttontype, d2id).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		_, err = tx.SQL(` update downloadplandtl1_exec set  actualweightminus =ifnull(actualweightminus,0)+?, actualweight = ?,
 
- 		lastactualweight = ? , intime = ?,begintime= ? ,havebuttom = 1,buttontype= ?  where pid = ?     and  (intime is null )  `,
 
- 			actualweightminus, actualweight, lastactualweight, intime, begintime, buttontype, pid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		_, err = tx.SQL(` update downloadplandtl1 set  actualweightminus =ifnull(actualweightminus,0)+?, actualweight = ?,
 
- 		lastactualweight = ? , intime = ?,begintime=? ,havebuttom = 1,buttontype = ?  where pid = ?     and  (intime is null  )  `,
 
- 			actualweightminus, actualweight, lastactualweight, intime, begintime, buttontype, pid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		exist, err := tx.SQL(` select id from downloadplandtl2 where pid = ?  and intime is null `, pid).Exist()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		if !exist {
 
- 			_, err := tx.SQL(` update downloadedplan set iscompleted = 1, completedtime = ? where id = ?   `, intime, pid).Execute()
 
- 			if err != nil {
 
- 				logs.Error(err)
 
- 				appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 				return
 
- 			}
 
- 		}
 
- 		_, err = tx.SQL(` update tmr set projid = ? ,lastbuttontime =? , nextsort = (select sort from downloadplandtl2  
 
- 			where pid = ? and intime is  null  order by sort limit 0,1 )  where datacaptureno = ?  and pastureid = ?    `,
 
- 			pid, intime, pid, datacaptureno, pastureid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 	} else if lpplantype == 2 {
 
- 		_, err := tx.SQL(` update downloadplandtl1 set  begintime = ? , actualweightminus =ifnull(actualweightminus,0)+ ? ,
 
- 		intime = ? ,actualweight = ? ,optdevice = ( select id from tmr where datacaptureno = ? and pastureid = ?),buttontype = ?,havebuttom = 1,lastactualweight = ?,begintime = ?  where pid = ?
 
- 		and sort = ? and feedcode = (select feedcode from feed where id = ? )   and  (intime is null  )`,
 
- 			begintime, actualweightminus, intime, actualweight, datacaptureno, pastureid, buttontype, lastactualweight, begintime, pid, sort, feedid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		_, err = tx.SQL(` update downloadplandtl1_exec set begintime = ? ,actualweightminus =ifnull(actualweightminus,0)+ ? ,
 
- 		intime = ? ,actualweight = ? ,optdevice = ( select id from tmr where datacaptureno = ? and pastureid = ?),buttontype = ?,havebuttom = 1,lastactualweight = ?,begintime = ?  where pid = ?
 
- 		and sort = ?   and  (intime is null )  `,
 
- 			begintime, actualweightminus, intime, actualweight, datacaptureno, pastureid, buttontype, lastactualweight, begintime, pid, sort).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		_, err = tx.SQL(` update tmr set projid = ? ,lastbuttontime =? , nextsort = 
 
- 		(select sort from downloadplandtl1  where pid = ? and intime is  null  order by sort limit 0,1 )  where datacaptureno = ?  and pastureid = ?    `,
 
- 			pid, intime, pid, datacaptureno, pastureid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 	} else {
 
- 		_, err := tx.SQL(` update downloadplandtl2 set actualweightminus =ifnull(actualweightminus,0)+?, actualweight = ?,
 
- 		lastactualweight = ? , intime = ? ,havebuttom = 1,buttontype = ?,begintime = ? where id = ?     and  (intime is null )  `,
 
- 			actualweightminus, actualweight, lastactualweight, intime, buttontype, begintime, d2id).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		exist, err := tx.SQL(` select id from downloadplandtl2 where pid = ? and intime is null`, pid).Exist()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		if !exist {
 
- 			_, err := tx.SQL(` update downloadedplan set iscompleted = 1, completedtime = ? where id = ?   `, intime, pid).Execute()
 
- 			if err != nil {
 
- 				logs.Error(err)
 
- 				appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 				return
 
- 			}
 
- 		}
 
- 		_, err = tx.SQL(` update tmr set projid = ? ,lastbuttontime =? , nextsort =
 
- 		 (select sort from downloadplandtl2  where pid = ? and intime is  null  order by sort limit 0,1 )  where datacaptureno = ?  and pastureid = ?  `,
 
- 			pid, intime, pid, datacaptureno, pastureid).Execute()
 
- 		if err != nil {
 
- 			logs.Error(err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 	}
 
- 	appG.Response(http.StatusOK, e.SUCCESS, true)
 
- }
 
- func AddRealTimeWeight(c *gin.Context) {
 
- 	appG := app.Gin{C: c}
 
- 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
 
- 	fsion := gofasion.NewFasion(string(dataByte))
 
- 	pid := fsion.Get("pid").ValueStr()
 
- 	pastureid := fsion.Get("pastureid").ValueStr()
 
- 	weightjson := fsion.Get("weightjson").ValueStr()
 
- 	// weightjson
 
- 	tx := restful.Engine.NewSession()
 
- 	defer tx.Close()
 
- 	dataList, err := tx.SQL(` select weightjson from recweightmuster where pid = ? and pastureid = ? `, pid, pastureid).QueryString()
 
- 	if err != nil {
 
- 		logs.Error("AddRealTimeWeight-error1: ", err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	weightList := make([]map[string]interface{}, 0)
 
- 	if len(dataList) > 0 {
 
- 		weight := ""
 
- 		for _, item := range dataList {
 
- 			weight = item["weightjson"]
 
- 		}
 
- 		list := make([]map[string]interface{}, 0)
 
- 		err = json.Unmarshal([]byte(weight), &weightList)
 
- 		if err != nil {
 
- 			logs.Error("AddRealTimeWeight-error2: ", err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		err = json.Unmarshal([]byte(weightjson), &list)
 
- 		if err != nil {
 
- 			logs.Error("AddRealTimeWeight-error3: ", err)
 
- 			appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 			return
 
- 		}
 
- 		weightList = append(weightList, list...)
 
- 	} else {
 
- 		json.Unmarshal([]byte(weightjson), &weightList)
 
- 	}
 
- 	weightbyte, err := json.Marshal(weightList)
 
- 	if err != nil {
 
- 		logs.Error("AddRealTimeWeight-error4: ", err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	_, err = tx.SQL(`REPLACE INTO recweightmuster (pid, pastureid, weightjson)values (?,?,?)`, pid, pastureid, string(weightbyte)).Execute()
 
- 	if err != nil {
 
- 		logs.Error("AddRealTimeWeight-error5: ", err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	appG.Response(http.StatusOK, e.SUCCESS, true)
 
- }
 
- func GetDownloadedplanMaterialList(c *gin.Context) {
 
- 	appG := app.Gin{C: c}
 
- 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
 
- 	fsion := gofasion.NewFasion(string(dataByte))
 
- 	pastureid := fsion.Get("pastureid").ValueStr()
 
- 	date := fsion.Get("date").ValueStr()
 
- 	datacaptureno := fsion.Get("datacaptureno").ValueStr()
 
- 	// date := reqInfo.Date
 
- 	// datacaptureno := reqInfo.Datacaptureno
 
- 	tx := restful.Engine.NewSession()
 
- 	defer tx.Close()
 
- 	tclassid := ""
 
- 	tmrList, err := tx.SQL(` select tclassid from tmr where datacaptureno = ?  `, datacaptureno).QueryString()
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	for _, tmr := range tmrList {
 
- 		tclassid = tmr["tclassid"]
 
- 	}
 
- 	downloadedplanInfo := make([]*downloadedplan, 0)
 
- 	err = tx.SQL(` select  d.lpplantype,d.times,d.sort,d.times shifts,d.id,date_format(d.mydate ,'%Y-%m-%d') as mydate ,d.projname,d.datacaptureno,d.lweight,d.havebutton,d.feedpname,d.iscompleted,d.remark,d.tmrtname from downloadedplan d
 
- 	where d.mydate = ? and d.pastureid = ? and (d.datacaptureno is null or d.datacaptureno = ?) 
 
- 	and ( (? IN(1,2) AND d.lpplanType IN (0,1))  OR (? IN (1,3) AND d.lpplanType IN (0,2))) 
 
- 	and if(d.lpplantype = 2,if((select count(1) from downloadplandtl1 d1 
 
- 	where d1.pid = (select id from downloadedplan dd where dd.mydate = d.mydate 
 
- 		and dd.pastureId = d.pastureid and dd.lpplanType IN (0,1) and dd.pid = d.pid and dd.times = d.times ) 
 
- 		and d1.type = 0 and d1.havebuttom = 0 ) >0 ,1,0 ),0) = 0
 
- 	 order by d.sort  `,
 
- 		date, pastureid, datacaptureno, tclassid, tclassid).Find(&downloadedplanInfo)
 
- 	if err != nil {
 
- 		logs.Error(err)
 
- 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
 
- 		return
 
- 	}
 
- 	appG.Response(http.StatusOK, e.SUCCESS, downloadedplanInfo)
 
- }
 
 
  |