zoie 2 éve
szülő
commit
30b2543aec

+ 4 - 4
controllers/Certificate.go

@@ -38,9 +38,9 @@ func (c *CertificateController) List() {
 	T_layout_no := c.GetString("T_layout_no")
 	Time_start := c.GetString("Time_start")
 	Time_end := c.GetString("Time_end")
-	T_release_time_sort,_ := c.GetInt("T_release_time_sort") // 1 升序 2 降序
-	T_failure_time_sort,_  := c.GetInt("T_failure_time_sort")// 1 升序 2 降序
-
+	T_layout_no_sort, _ := c.GetInt("T_layout_no_sort")       // 1 升序 2 降序
+	T_release_time_sort, _ := c.GetInt("T_release_time_sort") // 1 升序 2 降序
+	T_failure_time_sort, _ := c.GetInt("T_failure_time_sort") // 1 升序 2 降序
 
 	if len(Time_start) > 0 && !lib.IsDateStr(Time_start) {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
@@ -55,7 +55,7 @@ func (c *CertificateController) List() {
 	}
 
 	var cnt int
-	List, cnt := Certificate.Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end, T_release_time_sort,T_failure_time_sort,page, page_z)
+	List, cnt := Certificate.Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end, T_layout_no_sort, T_release_time_sort, T_failure_time_sort, page, page_z)
 	page_size := math.Ceil(float64(cnt) / float64(page_z))
 	r_jsons.List = List
 	r_jsons.Page = page

+ 11 - 2
controllers/DeviceClass.go

@@ -265,7 +265,12 @@ func (c *DeviceClassController) List_Add() {
 
 	list := strings.Split(strings.TrimRight(T_layout_no_list, ","), ",")
 	snMap := make(map[string]string)
+	excludeId := make(map[string]struct{})
 	for _, v := range list {
+		if strings.Contains(v, "!") {
+			excludeId[fmt.Sprintf("%03d", lib.To_int(strings.TrimLeft(strings.Trim(v, "!"), "0")))] = struct{}{}
+			continue
+		}
 		// 001~005
 		if strings.Contains(v, "~") {
 			vlist := strings.Split(v, "~")
@@ -279,7 +284,7 @@ func (c *DeviceClassController) List_Add() {
 				T_id := fmt.Sprintf("%03d", i)
 				cert, is := Certificate.Read_Certificate_ByT_layout_no(T_id)
 				if !is {
-					c.Data["json"] = lib.JSONS{Code: 202, Msg: "布局编号不存在!"}
+					c.Data["json"] = lib.JSONS{Code: 202, Msg: fmt.Sprintf("%s布局编号不存在!", T_id)}
 					c.ServeJSON()
 					return
 				}
@@ -289,7 +294,7 @@ func (c *DeviceClassController) List_Add() {
 			// 001,002
 			cert, is := Certificate.Read_Certificate_ByT_layout_no(v)
 			if !is {
-				c.Data["json"] = lib.JSONS{Code: 202, Msg: "布局编号不存在!"}
+				c.Data["json"] = lib.JSONS{Code: 202, Msg: fmt.Sprintf("%s布局编号不存在!", v)}
 				c.ServeJSON()
 				return
 			}
@@ -299,6 +304,10 @@ func (c *DeviceClassController) List_Add() {
 	}
 
 	for T_id, T_sn := range snMap {
+		if _, ok := excludeId[T_id]; ok {
+			continue
+		}
+
 		if _, is = Device.Read_Device(T_sn); !is {
 			c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn 不存在!"}
 			c.ServeJSON()

+ 16 - 7
controllers/Task.go

@@ -193,6 +193,22 @@ func (c *TaskController) AddData_Tool() {
 
 	T_name := c.GetString("T_name")
 	T_task_id := c.GetString("T_task_id")
+
+	r, _ := Task.Read_Task(T_task_id)
+	if r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 200, Msg: "数据采集中..."}
+		c.ServeJSON()
+		return
+	}
+	if r.Id > 0 {
+		// 同步1.0数据
+		NatsServer.Sync1_TaskData(T_task_id)
+
+		c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_task_id}
+		c.ServeJSON()
+		return
+	}
+
 	dc := Device.DeviceClass{
 		T_uuid:  T_uuid,
 		T_State: 1,
@@ -213,13 +229,6 @@ func (c *TaskController) AddData_Tool() {
 		T_collection_state: 2,
 	}
 
-	r, _ := Task.Read_Task(T_task_id)
-	if r.Id > 0 {
-		c.Data["json"] = lib.JSONS{Code: 202, Msg: "任务id已存在!"}
-		c.ServeJSON()
-		return
-	}
-
 	_, is = Task.Add_Task_Tool(var_)
 	if !is {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}

+ 17 - 6
models/Certificate/Certificate.go

@@ -8,6 +8,7 @@ import (
 	orm2 "github.com/beego/beego/v2/client/orm"
 	_ "github.com/go-sql-driver/mysql"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -136,7 +137,7 @@ type Certificate_ struct {
 }
 
 // 获取列表
-func Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end string, T_release_time_sort, T_failure_time_sort, page int, page_z int) ([]Certificate_, int) {
+func Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end string, T_layout_no_sort, T_release_time_sort, T_failure_time_sort, page int, page_z int) ([]Certificate_, int) {
 
 	o := orm.NewOrm()
 	var offset int
@@ -154,7 +155,7 @@ func Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end string, T_rel
 		sqlWhere += " AND t_sn like \"%" + T_sn + "%\""
 	}
 	if len(T_layout_no) > 0 {
-		sqlWhere += " AND T_layout_no like \"%" + T_layout_no + "%\""
+		sqlWhere += " AND t_layout_no like \"%" + T_layout_no + "%\""
 	}
 	if len(Time_start) > 0 {
 		sqlWhere += " AND t_failure_time >= \"" + Time_start + "\""
@@ -178,16 +179,26 @@ func Read_Certificate_List(T_sn, T_layout_no, Time_start, Time_end string, T_rel
 	sql = "SELECT * FROM certificate AS c LEFT JOIN (SELECT t_release_time,t_failure_time,t_pdf,t__certificate_sn FROM (SELECT DISTINCT * FROM `certificate_pdf` WHERE t__state=1 ORDER BY id DESC) f GROUP BY t__certificate_sn) AS pdf ON pdf.t__certificate_sn=c.t_sn WHERE t__state=1"
 
 	sql = sql + sqlWhere
+	sqlOrder := make([]string, 0)
+	if T_layout_no_sort == 1 {
+		sqlOrder = append(sqlOrder, "c.t_layout_no ASC")
+	} else if T_layout_no_sort == 2 {
+		sqlOrder = append(sqlOrder, "c.t_layout_no DESC")
+	}
+
 	if T_release_time_sort == 1 {
-		sql += " ORDER BY pdf.t_release_time ASC"
+		sqlOrder = append(sqlOrder, "pdf.t_release_time ASC")
 	} else if T_release_time_sort == 2 {
-		sql += " ORDER BY pdf.t_release_time DESC"
+		sqlOrder = append(sqlOrder, "pdf.t_release_time DESC")
 	}
 
 	if T_failure_time_sort == 1 {
-		sql += " ORDER BY pdf.t_failure_time ASC"
+		sqlOrder = append(sqlOrder, "pdf.t_failure_time ASC")
 	} else if T_failure_time_sort == 2 {
-		sql += " ORDER BY pdf.t_failure_time DESC"
+		sqlOrder = append(sqlOrder, "pdf.t_failure_time DESC")
+	}
+	if len(sqlOrder) > 0 {
+		sql += " ORDER BY " + strings.Join(sqlOrder, ", ")
 	}
 	sql += " LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)