浏览代码

tmr 检验数据

bsj 3 年之前
父节点
当前提交
bedfdeabe7
共有 4 个文件被更改,包括 207 次插入26 次删除
  1. 二进制
      __debug_bin.exe
  2. 190 25
      routers/api/db.go
  3. 1 1
      routers/api/udsync.go
  4. 16 0
      routers/restful/sql_utils.go

二进制
__debug_bin.exe


+ 190 - 25
routers/api/db.go

@@ -3695,42 +3695,207 @@ func AddFtdry(c *gin.Context) {
 }
 }
 
 
 func CheckDates(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()
+	// 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()
 	tx := restful.Engine.NewSession()
-	reqList := make([]map[string]interface{}, 0)
+	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)
+	// }
 
 
-	for _, fsion2 := range dataList {
-		s_params := make([]interface{}, 0)
+	appG := app.Gin{C: c}
+	dataByte, _ := ioutil.ReadAll(c.Request.Body)
+	tempval_ := make(map[string]interface{})
+	tempCommon := make(map[string]interface{})
+	tempval := make([]map[string]interface{}, 0)
+	err := json.Unmarshal(dataByte, &tempval_)
+	logging.Info("ExecDataByConfig ", c.Keys, c.Request.RemoteAddr, tempval_["common"], tempval_["data"])
+	// fmt.Println("ExecDataByConfig ", c.Keys, c.Request.RemoteAddr, tempval_["common"], tempval_["data"])
+	if err != nil {
+	} else {
+		if v, ok := tempval_["common"].(map[string]interface{}); ok {
+			tempCommon = v
+		}
 
 
-		sqlnamestr := fsion2.Get("sqlname").ValueStr()
-		sql, p := restful.GetSqlByNameDBT(sqlnamestr, tx)
+		if v, ok := tempval_["data"].([]interface{}); ok {
+			for _, Tvalue := range v {
+				if v1, ok := Tvalue.(map[string]interface{}); ok {
+					tempval = append(tempval, v1)
+				}
+			}
+		}
 
 
-		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())
+		if err == nil {
+			if tempv, exists := c.Get("jwt_username"); exists {
+				tempCommon["jwt_username"] = tempv.(string)
+			}
+			for _, paramvalue := range tempval {
+				if _, ok := paramvalue["resultname"]; !ok {
+					paramvalue["resultname"] = paramvalue["name"]
+				}
+				_, err := ExecDataQuery(paramvalue, tempCommon, tempval, nil, nil, tx)
+				if err != nil {
+					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)
+			} else {
+				msg := geterrmsg(err.Error())
+				appG.Response(http.StatusInternalServerError, e.ERROR, msg)
 			}
 			}
 		}
 		}
+	}
+	if err != nil {
+		msg := geterrmsg(err.Error())
+		appG.Response(http.StatusOK, e.ERROR, msg)
+
+	}
+}
+
+func ExecDataQuery(fasion map[string]interface{}, CommonParamMap map[string]interface{}, ParamMap []map[string]interface{}, ParentParamMap map[string]interface{}, sameParamMap []map[string]interface{}, tx *xorm.Session) (interface{}, error) {
+	sqlname := fasion["name"].(string)
+	sqltype := "" //v  校验/s1 查询/sm 查询/e  执行
+	if v, ok := fasion["type"]; ok {
+		sqltype = v.(string)
+	}
+	sql := ""
+	p := ""
+	s_params := make([]interface{}, 0)
+	if sqltype != "" {
+		sql, p = restful.GetSqlByName(sqlname, tx)
+		//sqlApi, _ := models.GetApisqlByName(sqlname)
+		if v, ok := fasion["parammaps"].(map[string]interface{}); ok {
+			paramslist := strings.Split(p, ",")
+			if len(paramslist) > 0 && p != "" {
+				for _, value := range paramslist {
+					ss := ""
+					if strings.ToLower(strings.Trim(value, " ")) == "snowid" {
+						ids, err := setting.SnowIds.NextId()
+						if err != nil {
+							ids = time.Now().UnixNano()
+							logging.Info("create SnowIds err", err)
+						}
+						s_params = append(s_params, ids)
+					} else {
+						if ss == "" && CommonParamMap != nil {
+							if valuestring, ok := v[strings.Trim(value, " ")].(string); ok {
+								ss = valuestring
+								tempstrb := strings.IndexAny(valuestring, "@")
+								tempstre := strings.IndexAny(valuestring, ".")
+								if (tempstre > tempstrb) && (strings.ToLower(valuestring[tempstrb+1:tempstre]) == "common") {
+									if CommonParamMap[valuestring[tempstre+1:]] != nil {
+										ss = CommonParamMap[valuestring[tempstre+1:]].(string)
+									}
+								} else {
+									ss = ""
+								}
+							}
+
+						}
+
+						if ss == "" && ParentParamMap != nil {
+							ss = getParamValue_(v, value, ParentParamMap)
+						}
+						if ss == "" && sameParamMap != nil {
+							ss = getParamValue(v, value, sameParamMap)
+						}
+						if ss == "" && ParamMap != nil {
+							ss = getParamValue(v, value, ParamMap)
+						}
+						s_params = append(s_params, ss)
+					}
 
 
-		queryData, err := tx.SQL(sql, s_params...).QueryString()
+				}
+			}
+
+		}
+	}
+	if sql == "" {
+		sqltype = ""
+	}
+	if sql != "" {
+		tempValParam, err := restful.QueryByMap(sql, 0, 1, s_params)
 		if err != nil {
 		if err != nil {
-			logging.Error("CheckDates  err: ", err)
-			appG.Response(http.StatusInternalServerError, e.ERROR, err)
-			return
+			return nil, err
 		}
 		}
-
-		reqData := make(map[string]interface{}, 0)
-		for _, item := range queryData {
-			reqData["msg"] = item
+		// fmt.Println(tempValParam)
+		return tempValParam, nil
+	} else {
+		if tempValParam, ok := fasion["resultmaps"].(map[string]interface{}); ok {
+			err := ExitsChildrenQuery(fasion, tempValParam, ParamMap, CommonParamMap, tx)
+			if err != nil {
+				return nil, err
+			}
+			return nil, err
 		}
 		}
-		reqData["sqlname"] = sqlnamestr
-		reqList = append(reqList, reqData)
 	}
 	}
+	// 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))
+	// }
 
 
-	appG.Response(http.StatusOK, e.SUCCESS, reqList)
+	return nil, nil
+}
+
+func ExitsChildrenQuery(fasion map[string]interface{}, tempValParam interface{}, ParamMap []map[string]interface{}, commonParam map[string]interface{}, tx *xorm.Session) error {
+	var err error
+	subarray, ok := fasion["children"]
+
+	if ok {
+		for _, v := range tempValParam.(map[string]interface{})["list"].([]interface{}) { //遍历父集有多少行数据
+			tempVal_arrary := make([]map[string]interface{}, 0)
+			for _, subarrayvalue := range subarray.([]interface{}) { //遍历所有执行命令
+				tempVal_ := make(map[string]interface{})
+				if _, ok := subarrayvalue.(map[string]interface{})["resultname"]; !ok {
+					tempVal_["resultname"] = subarrayvalue.(map[string]interface{})["name"]
+				} else {
+					tempVal_["resultname"] = subarrayvalue.(map[string]interface{})["resultname"]
+				}
+				tempVal_["resultmaps"], err = ExecDataQuery(subarrayvalue.(map[string]interface{}), commonParam, ParamMap, v.(map[string]interface{}), tempVal_arrary, tx) //递归调用执行
+
+				if err != nil {
+					return err
+				}
+				tempVal_arrary = append(tempVal_arrary, tempVal_)
+			}
+			v.(map[string]interface{})["children"] = tempVal_arrary
+		}
+	}
+	return nil
 }
 }

+ 1 - 1
routers/api/udsync.go

@@ -495,7 +495,7 @@ func UDUploaddiliverdata(token, pastureid string) {
 	sqlstr := `SELECT
 	sqlstr := `SELECT
 	IFNULL(ft.id,d2.feedtempletid ) recipeId, 
 	IFNULL(ft.id,d2.feedtempletid ) recipeId, 
 	IFNULL(d.templetName,d2.feedtempletName ) recipeName, 
 	IFNULL(d.templetName,d2.feedtempletName ) recipeName, 
-	date_format(d.mydate,'%Y-%m-%d') as dropDate,d.SORT as tmrNo,
+	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,
 	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,
 	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 
 	date_format(d2.InTime,'%Y-%m-%d %H:%i:%s') as endTime,ifnull((SELECT dr.driver FROM dutyrecord dr 

+ 16 - 0
routers/restful/sql_utils.go

@@ -983,3 +983,19 @@ func getValue(value interface{}, CT string) interface{} {
 	}
 	}
 	return v
 	return v
 }
 }
+
+func ExecQueryList(sqlstr string, params []interface{}) (interface{}, error) {
+	if err := sqlCheckParam(sqlstr); err != nil {
+		return 0, err
+	}
+
+	rows, err := Engine.SQL(sqlstr, params...).QueryString()
+	if err != nil {
+		return nil, err
+	}
+	data := make(map[string]interface{})
+	for _, item := range rows {
+		data["result"] = item
+	}
+	return data, nil
+}