| 
					
				 | 
			
			
				@@ -7,8 +7,10 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"ColdVerify_server/models/Certificate" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"ColdVerify_server/models/Device" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"ColdVerify_server/models/System" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"fmt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	beego "github.com/beego/beego/v2/server/web" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"math" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"strings" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 type DeviceClassController struct { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -248,8 +250,10 @@ func (c *DeviceClassController) List_Add() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	T_class, _ := c.GetInt("T_class") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	T_id := c.GetString("T_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	T_sn := c.GetString("T_sn") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//方式1:001,002,003,004,005,008 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//方式2:001~005,008 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_layout_no_list := c.GetString("T_layout_no_list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//T_sn := c.GetString("T_sn") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	T_remark := c.GetString("T_remark") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	_, is := Device.Read_DeviceClass_ById(T_class) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -259,47 +263,78 @@ func (c *DeviceClassController) List_Add() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if _, is = Device.Read_Device(T_sn); !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn 不存在!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	list := strings.Split(strings.TrimRight(T_layout_no_list, ","), ",") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	snMap := make(map[string]string) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for _, v := range list { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 001~005 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if strings.Contains(v, "~") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			vlist := strings.Split(v, "~") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if len(vlist) != 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				c.Data["json"] = lib.JSONS{Code: 202, Msg: "布局编号格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			vstart, vend := lib.To_int(strings.TrimLeft(vlist[0], "0")), lib.To_int(strings.TrimLeft(vlist[1], "0")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for i := vstart; i < vend+1; i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				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.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				snMap[T_id] = cert.T_sn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 001,002 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			cert, is := Certificate.Read_Certificate_ByT_layout_no(v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				c.Data["json"] = lib.JSONS{Code: 202, Msg: "布局编号不存在!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			snMap[v] = cert.T_sn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if dc, is := Device.Read_DeviceClassList_T_class_T_sn(T_class, T_sn); is && dc.Id > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 202, Msg: "重复添加"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if _, is = Certificate.Read_Certificate(T_sn); !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 202, Msg: "证书不存在!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var pdf Certificate.CertificatePdf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	pdfList, _ := Certificate.Read_CertificatePdf_Newest(T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if len(pdfList) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		pdf = pdfList[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for T_id, T_sn := range snMap { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if _, is = Device.Read_Device(T_sn); !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn 不存在!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var_ := Device.DeviceClassList{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_class:        T_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_id:           T_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_sn:           T_sn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_failure_time: pdf.T_failure_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_pdf:          pdf.T_pdf, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_remark:       T_remark, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_State:        1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if dc, is := Device.Read_DeviceClassList_T_class_T_sn(T_class, T_sn); is && dc.Id > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Id, is := Device.Add_DeviceClassList(var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var pdf Certificate.CertificatePdf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pdfList, _ := Certificate.Read_CertificatePdf_Newest(T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if len(pdfList) > 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			pdf = pdfList[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var_ := Device.DeviceClassList{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_class:        T_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_id:           T_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_sn:           T_sn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_failure_time: pdf.T_failure_time, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_pdf:          pdf.T_pdf, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_remark:       T_remark, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_State:        1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_, is = Device.Add_DeviceClassList(var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		System.Add_UserLogs_T(User_r.T_uuid, "分类设备管理", "添加", var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(User_r.T_uuid, "分类设备管理", "添加", var_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |