bsj преди 3 години
родител
ревизия
b27e8eb8d2
променени са 5 файла, в които са добавени 54 реда и са изтрити 61 реда
  1. 1 1
      models/models.go
  2. 34 44
      routers/api/db.go
  3. 19 16
      routers/api/udsync.go
  4. BIN
      tmrgo
  5. BIN
      tmrgo.zip

+ 1 - 1
models/models.go

@@ -30,7 +30,7 @@ func Setup() {
 		log.Fatalf("models.Setup err: %v", err)
 	}
 	Engine.SetConnMaxLifetime(time.Second * 30)
-	Engine.ShowSQL(true)
+	// Engine.ShowSQL(true)
 	if err = Engine.Ping(); err != nil {
 		logs.Error(err)
 		panic(err)

+ 34 - 44
routers/api/db.go

@@ -3695,43 +3695,9 @@ func AddFtdry(c *gin.Context) {
 }
 
 func CheckDates(c *gin.Context) {
-	// appG := app.Gin{C: c}
-	// dataByte, _ := ioutil.ReadAll(c.Request.Body)
-	// fsion := gofasion.NewFasion(string(dataByte))
-	// dataList := fsion.Get("data").Array()
 
 	tx := restful.Engine.NewSession()
 	defer tx.Close()
-	// reqList := make([]map[string]interface{}, 0)
-
-	// for _, fsion2 := range dataList {
-	// 	s_params := make([]interface{}, 0)
-
-	// 	sqlnamestr := fsion2.Get("sqlname").ValueStr()
-	// 	sql, p := restful.GetSqlByNameDBT(sqlnamestr, tx)
-
-	// 	parammaps := fsion2.Get("parammaps")
-	// 	paramslist := strings.Split(p, ",")
-	// 	if len(paramslist) > 0 && p != "" {
-	// 		for _, value := range paramslist {
-	// 			s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
-	// 		}
-	// 	}
-
-	// 	queryData, err := tx.SQL(sql, s_params...).QueryString()
-	// 	if err != nil {
-	// 		logging.Error("CheckDates  err: ", err)
-	// 		appG.Response(http.StatusInternalServerError, e.ERROR, err)
-	// 		return
-	// 	}
-
-	// 	reqData := make(map[string]interface{}, 0)
-	// 	for _, item := range queryData {
-	// 		reqData["msg"] = item
-	// 	}
-	// 	reqData["sqlname"] = sqlnamestr
-	// 	reqList = append(reqList, reqData)
-	// }
 
 	appG := app.Gin{C: c}
 	dataByte, _ := ioutil.ReadAll(c.Request.Body)
@@ -3768,14 +3734,41 @@ func CheckDates(c *gin.Context) {
 					logging.Error("ExecDataParam error:", err)
 
 				}
-				// reqData := make(map[string]interface{}, 0)
-				// for _, item := range execDataList {
-				// fmt.Println(execDataList)
-				// }
-				// reqList = append(reqList, reqData)
 			}
 			if err == nil {
-				appG.Response(http.StatusOK, e.SUCCESS, tempval)
+				vmsg := ""
+				for _, item := range tempval {
+					for _, list := range item["resultmaps"].(map[string]interface{}) {
+						for _, childrenList := range list.([]interface{}) {
+							for k, children := range childrenList.(map[string]interface{}) {
+								if k != "children" {
+									continue
+								}
+								for _, v := range children.([]map[string]interface{}) {
+									for k1, v1 := range v["resultmaps"].(map[string]interface{}) {
+										if k1 == "list" {
+											for _, v2 := range v1.([]map[string]interface{}) {
+												if v2["vmsg"].(string) != "1" {
+													if len(vmsg) == 0 {
+														vmsg = v2["vmsg"].(string)
+													} else {
+														vmsg = fmt.Sprintf("%s,%s", vmsg, v2["vmsg"])
+													}
+												}
+											}
+
+										}
+									}
+								}
+							}
+						}
+					}
+				}
+				if len(vmsg) > 0 {
+					appG.Response(http.StatusOK, e.SUCCESS, vmsg)
+				} else {
+					appG.Response(http.StatusOK, e.SUCCESS, true)
+				}
 			} else {
 				msg := geterrmsg(err.Error())
 				appG.Response(http.StatusInternalServerError, e.ERROR, msg)
@@ -3856,7 +3849,7 @@ func ExecDataQuery(fasion map[string]interface{}, CommonParamMap map[string]inte
 			return nil, err
 		}
 		// fmt.Println(tempValParam)
-		return tempValParam, nil
+		return tempValParam.(map[string]interface{}), nil
 	} else {
 		if tempValParam, ok := fasion["resultmaps"].(map[string]interface{}); ok {
 			err := ExitsChildrenQuery(fasion, tempValParam, ParamMap, CommonParamMap, tx)
@@ -3866,9 +3859,6 @@ func ExecDataQuery(fasion map[string]interface{}, CommonParamMap map[string]inte
 			return nil, err
 		}
 	}
-	// if tempValParam.(map[string]interface{})["list"].([]map[string]interface{})[0]["vmsg"] != "" {
-	// 	return nil, errors.New(tempValParam.(map[string]interface{})["list"].([]map[string]interface{})[0]["vmsg"].(string))
-	// }
 
 	return nil, nil
 }

+ 19 - 16
routers/api/udsync.go

@@ -385,7 +385,6 @@ func httpGet(farmId, method string) []interface{} {
 	var data map[string][]interface{}
 	json.Unmarshal(robots, &data)
 	return data["msg"]
-
 }
 
 func UDFeedtempletinfo(token, pastureid string) {
@@ -443,31 +442,33 @@ func UDUploadadddata(token, pastureid string) {
 	IFNULL(d.templetName ,((SELECT feedtempletName FROM downloadplandtl2 d2 WHERE d2.pid=d.id LIMIT 1))) recipeName, 
 	ifnull(f.feedcode,"") as ingId,de.Fname as ingName,ifnull(fc.FCNAME,"")  ingType,
 	ifnull(f.dry,"") dmPct,de.SORT mixNo,de.feedallowratio allowableError, de.LWEIGHT expWeight,
-	de.ActualWeightMinus actualWeight,ifnull(date_format(timestamp(de.InTime,CONCAT('-',de.processTime)),'%Y-%m-%d %H:%i:%s'),"") startTime,
+	de.ActualWeightMinus actualWeight,ifnull(date_format(timestamp(de.InTime,CONCAT('-',(select processTime from downloadplandtl1_exec where pid = de.pid and sort = de.sort and pastureid = de.pastureid))),'%Y-%m-%d %H:%i:%s'),"") startTime,
 	date_format(de.InTime,'%Y-%m-%d %H:%i:%s') endTime,ifnull((SELECT dr.driver FROM dutyrecord dr 
 WHERE dr.pastureid = d.pastureid AND dr.eqid = d.tmrid AND dr.times= d.times  AND dr.operatetime <=d.mydate 
 ORDER BY dr.operatetime DESC LIMIT 1),"") tmrName ,d.tmrtname equipmentId 
-	from downloadedplan d LEFT JOIN downloadplandtl1_exec de on d.id=de.PID 
-	left join downloadplandtl1 de1 on de1.pid = d.id
-	LEFT JOIN feed f on de1.Fid=f.id and f.pastureid = de1.pastureid LEFT JOIN feedtemplet ft on d.templetName=ft.TNAME 
+	from downloadedplan d
+		 left join downloadplandtl1 de on de.pid = d.id  and de.type = 0
+	LEFT JOIN feed f on de.Fid=f.id and f.pastureid = de.pastureid LEFT JOIN feedtemplet ft on d.templetName=ft.TNAME 
 	LEFT JOIN feedclass fc on f.FCLASS=fc.id 
-	where d.mydate=date_format(NOW(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType=0  and d.pastureid = ?	
+	where d.mydate=date_format(now(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType=0  and d.pastureid = ?	
+	
 union all
+
 select  date_format(d.mydate,'%Y-%m-%d') loadDate,d.SORT tmrNo,d.Times loadShift,
 	IFNULL(ft.id,((SELECT feedtempletid FROM downloadplandtl2 d2 WHERE d2.flpid=d.id LIMIT 1))) recipeId, 
 	IFNULL(d.templetName ,((SELECT feedtempletName FROM downloadplandtl2 d2 WHERE d2.flpid=d.id LIMIT 1))) recipeName, 
 	ifnull(f.feedcode,"") as ingId,de.Fname as ingName,ifnull(fc.FCNAME,"")  ingType,
 	ifnull(f.dry,"") dmPct,de.SORT mixNo,de.feedallowratio allowableError, de.LWEIGHT expWeight,
-	de.ActualWeightMinus actualWeight,ifnull(date_format(timestamp(de.InTime,CONCAT('-',de.processTime)),'%Y-%m-%d %H:%i:%s'),"") startTime,
+	de.ActualWeightMinus actualWeight,ifnull(date_format(timestamp(de.InTime,CONCAT('-',(select processTime from downloadplandtl1_exec where pid = de.pid and sort = de.sort and pastureid = de.pastureid))),'%Y-%m-%d %H:%i:%s'),"") startTime,
 	date_format(de.InTime,'%Y-%m-%d %H:%i:%s') endTime,ifnull((SELECT dr.driver FROM dutyrecord dr 
 WHERE dr.pastureid = d.pastureid AND dr.eqid = d.tmrid AND dr.times= d.times  AND dr.operatetime <=d.mydate 
 ORDER BY dr.operatetime DESC LIMIT 1),"") tmrName ,d.tmrtname equipmentId 
-	from downloadedplan d LEFT JOIN downloadplandtl1_exec de on d.id=de.PID 
-			 left join downloadplandtl1 de1 on de1.pid = d.id
-	LEFT JOIN feed f on de1.Fid=f.id and f.pastureid = de1.pastureid LEFT JOIN feedtemplet ft on d.templetName=ft.TNAME 
+	from downloadedplan d 
+			 left join downloadplandtl1 de on de.pid = d.id  and de.type = 0
+	LEFT JOIN feed f on de.Fid=f.id and f.pastureid = de.pastureid LEFT JOIN feedtemplet ft on d.templetName=ft.TNAME 
 	LEFT JOIN feedclass fc on f.FCLASS=fc.id 
-	where d.mydate=date_format(NOW(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType=1 and d.pastureid = ?
-ORDER BY mixNo `
+	where d.mydate=date_format(now(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType=1 and d.pastureid = ?
+ORDER BY tmrno`
 
 	data, err := tx.SQL(sqlstr, pastureid, pastureid).Query().List()
 	if err != nil {
@@ -493,20 +494,22 @@ func UDUploaddiliverdata(token, pastureid string) {
 	defer tx.Close()
 
 	sqlstr := `SELECT
-	IFNULL(ft.id,d2.feedtempletid ) recipeId, 
+	d.id,IFNULL(ft.id,d2.feedtempletid ) recipeId, 
 	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, d2.LWEIGHT as expWeight,
 	d2.ActualWeightMinus as actualWeight, ifnull(date_format(timestamp(d2.InTime,CONCAT('-',d2.processTime)),'%Y-%m-%d %H:%i:%s'),"") as startTime,
 	date_format(d2.InTime,'%Y-%m-%d %H:%i:%s') as endTime,ifnull((SELECT dr.driver FROM dutyrecord dr 
 WHERE dr.pastureid = d.pastureid AND dr.eqid = d.tmrid AND dr.times= d.times  AND dr.operatetime <=d.mydate 
-ORDER BY dr.operatetime DESC LIMIT 1),"") as tmrName ,d.tmrtname equipmentId 
-	from  downloadedplan d 
+ORDER BY dr.operatetime DESC LIMIT 1),"") as tmrName ,d.tmrtname equipmentId , dd.fname,ROUND((d2.actualweightminus / ( select sum(actualweightminus) from downloadplandtl2  where pid = d.id ) * (dd.actualweightminus/ (select sum(actualweightminus) from downloadplandtl1 where pid = dd.pid and type = 0) * ( select sum(actualweightminus) from downloadplandtl2  where pid = d.id ))),2) as feedWeight
+	from  downloadedplan d  
 	LEFT JOIN downloadplandtl2 d2 on d.id=d2.PID 
+	LEFT JOIN (select dd.pid as lppid,dd1.* from downloadedplan dd join downloadplandtl1  dd1 on dd1.pid = dd.id and dd1.type = 0  where dd.mydate= date_format(NOW(),'%Y-%m-%d') and dd.IsCompleted=1 and dd.lpplanType =1 ) dd on dd.lppid = d.pid
+	
 	LEFT JOIN feedp fp on d2.FBarID=fp.id 
 	left join bar b on fp.barid = b.id and d.pastureid = b.pastureid
 	left JOIN feedtemplet ft on d.templetName=ft.TNAME 
-	where d.mydate= date_format(NOW(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType!=1 and d.pastureid = ? `
+	where d.mydate= date_format(NOW(),'%Y-%m-%d') and d.IsCompleted=1 and d.lpplanType!=1 and d.pastureid = ?  order by tmrno `
 
 	data, err := tx.SQL(sqlstr, pastureid).Query().List()
 	if err != nil {

BIN
__debug_bin.exe → tmrgo


BIN
tmrgo.zip