Browse Source

验证工具出入库

huangyan 1 day ago
parent
commit
6f274469da
1 changed files with 100 additions and 3 deletions
  1. 100 3
      controllers/Validation.go

+ 100 - 3
controllers/Validation.go

@@ -33,6 +33,68 @@ func (c *ValidationController) Prepare() {
 }
 
 // AddValidation 查询设备是否存在在库存中,如果存在则修改设备状态为待使用,否则直接添加设备
+//
+//	func (c *ValidationController) AddValidation() {
+//		var ValidationList []validationtool.AddValidationTool
+//		err := json.Unmarshal(c.Ctx.Input.RequestBody, &ValidationList)
+//		if err != nil {
+//			c.Data["json"] = lib.JSONS{Code: 1201, Msg: "json 序列化失败!", Data: nil}
+//			c.ServeJSON()
+//			return
+//		}
+//		vali := validationtool.NewValidationTool(orm.NewOrm())
+//		for _, tool := range ValidationList {
+//			if len(tool.T_sn) <= 0 {
+//				c.Data["json"] = lib.JSONS{Code: 1201, Msg: "T_sn不能为空!", Data: nil}
+//				c.ServeJSON()
+//				return
+//			}
+//			r, err := vali.ReadValidationBytSn(tool.T_sn)
+//			if err != nil {
+//				if errors.Is(err, orm.ErrNoRows) {
+//					var validataiontool validationtool.ValidationTool
+//					atoi, _ := strconv.Atoi(tool.T_class)
+//					user := Stock.Read_MqttUser(tool.T_sn)
+//					validataiontool.T_iccid = user.Iccid
+//					validataiontool.T_imei = user.Imei
+//					validataiontool.T_uuid = c.User.T_uuid
+//					validataiontool.Validationnumber = tool.Validationnumber
+//					validataiontool.T_sn = tool.T_sn
+//					validataiontool.T_remark = tool.T_remark
+//					validataiontool.T_state = 2
+//					validataiontool.T_class = atoi
+//					validataiontool.UpdateTime = time.Now()
+//					_, err := vali.ADDValidationTool(validataiontool)
+//					if err != nil {
+//						c.Data["json"] = lib.JSONS{Code: 1201, Msg: "入库失败!", Data: nil}
+//						c.ServeJSON()
+//						return
+//					}
+//				}
+//			} else {
+//				//修改设备
+//				con := make(map[string]string)
+//				if len(tool.Validationnumber) != 0 {
+//					con["validationnumber"] = tool.Validationnumber
+//				}
+//				if r.T_state != 2 {
+//					con["t_state"] = "2" // 待使用
+//				}
+//				con["t_remark"] = tool.T_remark
+//				con["t_project"] = ""
+//				con["lend_user"] = ""
+//				err = vali.UpdateValidationTool(r.T_sn, con)
+//				if err != nil {
+//					c.Data["json"] = lib.JSONS{Code: 1201, Msg: "入库失败!", Data: nil}
+//					c.ServeJSON()
+//					return
+//				}
+//			}
+//		}
+//		c.Data["json"] = lib.JSONS{Code: 200, Msg: "入库成功!", Data: nil}
+//		c.ServeJSON()
+//		return
+//	}
 func (c *ValidationController) AddValidation() {
 	var ValidationList []validationtool.AddValidationTool
 	err := json.Unmarshal(c.Ctx.Input.RequestBody, &ValidationList)
@@ -41,9 +103,14 @@ func (c *ValidationController) AddValidation() {
 		c.ServeJSON()
 		return
 	}
-	vali := validationtool.NewValidationTool(orm.NewOrm())
+
+	o := orm.NewOrm()
+	vali := validationtool.NewValidationTool(o)
+	o.Begin() // 开始事务
+
 	for _, tool := range ValidationList {
 		if len(tool.T_sn) <= 0 {
+			o.Rollback() // 回滚事务
 			c.Data["json"] = lib.JSONS{Code: 1201, Msg: "T_sn不能为空!", Data: nil}
 			c.ServeJSON()
 			return
@@ -62,15 +129,22 @@ func (c *ValidationController) AddValidation() {
 				validataiontool.T_remark = tool.T_remark
 				validataiontool.T_state = 2
 				validataiontool.T_class = atoi
+				validataiontool.UpdateTime = time.Now()
 				_, err := vali.ADDValidationTool(validataiontool)
 				if err != nil {
+					o.Rollback() // 回滚事务
 					c.Data["json"] = lib.JSONS{Code: 1201, Msg: "入库失败!", Data: nil}
 					c.ServeJSON()
 					return
 				}
+			} else {
+				o.Rollback() // 回滚事务
+				c.Data["json"] = lib.JSONS{Code: 1201, Msg: "查询失败!", Data: nil}
+				c.ServeJSON()
+				return
 			}
 		} else {
-			//修改设备
+			// 修改设备
 			con := make(map[string]string)
 			if len(tool.Validationnumber) != 0 {
 				con["validationnumber"] = tool.Validationnumber
@@ -83,12 +157,22 @@ func (c *ValidationController) AddValidation() {
 			con["lend_user"] = ""
 			err = vali.UpdateValidationTool(r.T_sn, con)
 			if err != nil {
+				o.Rollback() // 回滚事务
 				c.Data["json"] = lib.JSONS{Code: 1201, Msg: "入库失败!", Data: nil}
 				c.ServeJSON()
 				return
 			}
 		}
 	}
+
+	err = o.Commit() // 提交事务
+	if err != nil {
+		o.Rollback() // 回滚事务
+		c.Data["json"] = lib.JSONS{Code: 1201, Msg: "提交事务失败!", Data: nil}
+		c.ServeJSON()
+		return
+	}
+
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "入库成功!", Data: nil}
 	c.ServeJSON()
 	return
@@ -107,7 +191,7 @@ func (c *ValidationController) ValidationList() {
 	}
 
 	T_state := c.GetString("T_state")
-	validationnumber := c.GetString("validationnumber")
+	validationnumber := c.GetString("Validationnumber")
 	T_sn := c.GetString("T_sn")
 	t_iccid := c.GetString("t_iccid")
 	t_imei := c.GetString("t_imei")
@@ -154,6 +238,8 @@ func (c *ValidationController) UpdateValidationTool() {
 		return
 	}
 	vali := validationtool.NewValidationTool(orm.NewOrm())
+	o := orm.NewOrm()
+	o.Begin()
 	for _, tool := range lendValidationList {
 		if len(tool.T_sn) <= 0 {
 			c.Data["json"] = lib.JSONS{Code: 1201, Msg: "T_sn不能为空!", Data: nil}
@@ -163,6 +249,7 @@ func (c *ValidationController) UpdateValidationTool() {
 		r, err := vali.ReadValidationBytSn(tool.T_sn)
 		sprintf := fmt.Sprintf("当前sn:%v 未入库", tool.T_sn)
 		if err != nil || r.T_state != 2 {
+			o.Rollback()
 			c.Data["json"] = lib.JSONS{Code: 1201, Msg: sprintf, Data: nil}
 			c.ServeJSON()
 			return
@@ -182,13 +269,22 @@ func (c *ValidationController) UpdateValidationTool() {
 		if len(tool.T_project) != 0 {
 			con["t_project"] = tool.T_project
 		}
+		con["update_time"] = time.Now().Format("2006-01-02 15:04:05")
 		err = vali.UpdateValidationTool(tool.T_sn, con)
 		if err != nil {
+			o.Rollback()
 			c.Data["json"] = lib.JSONS{Code: 1201, Msg: "修改失败!", Data: nil}
 			c.ServeJSON()
 			return
 		}
 	}
+	err = o.Commit() // 提交事务
+	if err != nil {
+		o.Rollback() // 回滚事务
+		c.Data["json"] = lib.JSONS{Code: 1201, Msg: "提交事务失败!", Data: nil}
+		c.ServeJSON()
+		return
+	}
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "修改成功!", Data: nil}
 	c.ServeJSON()
 	return
@@ -244,6 +340,7 @@ func (c *ValidationController) UpdateValidationToolBySn() {
 	if len(T_class) > 0 {
 		con["t_class"] = T_class
 	}
+	con["update_time"] = time.Now().Format("2006-01-02 15:04:05")
 	vali := validationtool.NewValidationTool(orm.NewOrm())
 	r, err := vali.ReadValidationById(Id)
 	if !strings.EqualFold(r.T_sn, sn) {