Ver Fonte

点位量程问题

songxiaohang há 1 ano atrás
pai
commit
1aad92ff46
1 ficheiros alterados com 9 adições e 3 exclusões
  1. 9 3
      app/model/dcitemhistorydatamodel.go

+ 9 - 3
app/model/dcitemhistorydatamodel.go

@@ -66,11 +66,17 @@ func (m *defaultDcItemHistoryDataModel) MultiInsert(ctx context.Context, project
 func (m *defaultDcItemHistoryDataModel) QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]ItemHistoryData, error) {
 	resp := make([]ItemHistoryData, 0)
 	var err error
+	ItemNames := strings.Split(in.ItemName, ",")
+	var ItemNameStrs []string
+	for range ItemNames {
+		ItemNameStrs = append(ItemNameStrs, "?")
+	}
+	inClause := strings.Join(ItemNameStrs, ",")
 	query := fmt.Sprintf("SELECT * FROM %s AS hd "+
 		" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
-		" WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name in (?) AND h_time BETWEEN ? AND ?", m.getTableName(in.ProjectId))
+		" WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name in (?) AND h_time BETWEEN ? AND ? AND (ic.item_name IS NOT NULL OR ic.item_name IS NULL)", m.getTableName(in.ProjectId))
 	if strings.Index(in.ItemName, ",") > 0 {
-		err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Split(in.ItemName, ","), in.Stime, in.Etime)
+		err = m.conn.QueryRowsCtx(ctx, &resp, query, inClause, in.Stime, in.Etime)
 	} else {
 		err = m.conn.QueryRowsCtx(ctx, &resp, query, in.ItemName, in.Stime, in.Etime)
 	}
@@ -90,7 +96,7 @@ func (m *defaultDcItemHistoryDataModel) QueryHistoryDataMaxMinByTime(ctx context
 	var err error
 	query := fmt.Sprintf("SELECT max(val) as max_val, min(val) as min_val FROM %s AS hd "+
 		" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
-		" WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name = ? AND h_time BETWEEN ? AND ?", m.getTableName(in.ProjectId))
+		" WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name = ? AND h_time BETWEEN ? AND ? AND (ic.item_name IS NOT NULL OR ic.item_name IS NULL)", m.getTableName(in.ProjectId))
 	err = m.conn.QueryRowCtx(ctx, resp, query, in.ItemName, in.Stime, in.Etime)
 
 	switch err {