|
@@ -0,0 +1,249 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "ERP_storage/conf"
|
|
|
+ "ERP_storage/models/Account"
|
|
|
+ "ERP_storage/models/Stock"
|
|
|
+ "ERP_storage/models/validationtool"
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "github.com/beego/beego/v2/adapter/orm"
|
|
|
+ beego "github.com/beego/beego/v2/server/web"
|
|
|
+ userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
|
|
|
+ "gogs.baozhida.cn/zoie/ERP_libs/lib"
|
|
|
+ "math"
|
|
|
+ "strings"
|
|
|
+)
|
|
|
+
|
|
|
+type ValidationController struct {
|
|
|
+ beego.Controller
|
|
|
+ User userlibs.User
|
|
|
+}
|
|
|
+
|
|
|
+func (c *ValidationController) Prepare() {
|
|
|
+ c.User = *Account.User_r
|
|
|
+}
|
|
|
+
|
|
|
+// 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: 201, 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: 201, 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
|
|
|
+ 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
|
|
|
+ _, err := vali.ADDValidationTool(validataiontool)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, 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: 201, Msg: "入库失败!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "入库成功!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (c *ValidationController) ValidationList() {
|
|
|
+
|
|
|
+ // 分页参数 初始化
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
+ if page < 1 {
|
|
|
+ page = 1
|
|
|
+ }
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
+ if page_z < 1 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+
|
|
|
+ T_state := c.GetString("T_state")
|
|
|
+ validationnumber := c.GetString("validationnumber")
|
|
|
+ T_sn := c.GetString("T_sn")
|
|
|
+ t_iccid := c.GetString("t_iccid")
|
|
|
+ t_imei := c.GetString("t_imei")
|
|
|
+ LendUser := c.GetString("LendUser")
|
|
|
+ T_project := c.GetString("T_project")
|
|
|
+ vali := validationtool.NewValidationTool(orm.NewOrm())
|
|
|
+
|
|
|
+ R_List, R_cnt := vali.Read_Validation_List(validationnumber, T_sn, t_iccid, t_imei, T_state, LendUser, T_project, page, page_z)
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ r_jsons.Num = R_cnt
|
|
|
+ r_jsons.Data = R_List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+func (c *ValidationController) DeleteValidationTool() {
|
|
|
+ id := c.GetString("t_sn")
|
|
|
+ if len(id) <= 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "t_sn不能为空!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ vali := validationtool.NewValidationTool(orm.NewOrm())
|
|
|
+ err := vali.DeleteValidationTool(id)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "删除失败!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "删除成功!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+}
|
|
|
+func (c *ValidationController) UpdateValidationTool() {
|
|
|
+ var lendValidationList []validationtool.LendValidationTool
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &lendValidationList)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "json 序列化失败!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ vali := validationtool.NewValidationTool(orm.NewOrm())
|
|
|
+ for _, tool := range lendValidationList {
|
|
|
+ if len(tool.T_sn) <= 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "T_sn不能为空!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ r, err := vali.ReadValidationBytSn(tool.T_sn)
|
|
|
+ sprintf := fmt.Sprintf("当前sn:%v 未入库", tool.T_sn)
|
|
|
+ if err != nil || r.T_state != 2 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: sprintf, Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //修改设备状态
|
|
|
+ con := make(map[string]string)
|
|
|
+ if len(tool.T_remark) != 0 {
|
|
|
+ con["t_remark"] = tool.T_remark
|
|
|
+ }
|
|
|
+ if len(tool.Validationnumber) != 0 {
|
|
|
+ con["validationnumber"] = tool.Validationnumber
|
|
|
+ }
|
|
|
+ con["t_state"] = "1"
|
|
|
+ if len(tool.LendUser) != 0 {
|
|
|
+ con["lend_user"] = tool.LendUser
|
|
|
+ }
|
|
|
+ if len(tool.T_project) != 0 {
|
|
|
+ con["t_project"] = tool.T_project
|
|
|
+ }
|
|
|
+ err = vali.UpdateValidationTool(tool.T_sn, con)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "修改失败!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "修改成功!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// GetValidationToolBySn 根据sn获取设备信息
|
|
|
+func (c *ValidationController) GetValidationToolBySn() {
|
|
|
+ sn := c.GetString("sn")
|
|
|
+ if len(sn) <= 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "sn不能为空!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ vali := validationtool.NewValidationTool(orm.NewOrm())
|
|
|
+ r, err := vali.ReadValidationBytSn(sn)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "当前设备不存在!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功!", Data: r}
|
|
|
+ c.ServeJSON()
|
|
|
+}
|
|
|
+
|
|
|
+// UpdateValidationToolBySn 根据sn修改设备信息
|
|
|
+func (c *ValidationController) UpdateValidationToolBySn() {
|
|
|
+ sn := c.GetString("T_sn")
|
|
|
+ Id := c.GetString("Id")
|
|
|
+ Validationnumber := c.GetString("Validationnumber")
|
|
|
+ T_remark := c.GetString("T_remark")
|
|
|
+ T_state := c.GetString("T_state")
|
|
|
+ if len(sn) <= 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "sn不能为空!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(Id) <= 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "Id不能为空!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ con := make(map[string]string)
|
|
|
+ if len(Validationnumber) > 0 {
|
|
|
+ con["validationnumber"] = Validationnumber
|
|
|
+ }
|
|
|
+ if len(T_remark) > 0 {
|
|
|
+ con["t_remark"] = T_remark
|
|
|
+ }
|
|
|
+ if len(T_state) > 0 {
|
|
|
+ con["t_state"] = T_state
|
|
|
+ }
|
|
|
+ vali := validationtool.NewValidationTool(orm.NewOrm())
|
|
|
+ r, err := vali.ReadValidationById(Id)
|
|
|
+ if !strings.EqualFold(r.T_sn, sn) {
|
|
|
+ con["t_sn"] = sn
|
|
|
+ user := Stock.Read_MqttUser(sn)
|
|
|
+ con["t_iccid"] = user.Iccid
|
|
|
+ con["t_imei"] = user.Imei
|
|
|
+ }
|
|
|
+ err = vali.UpdateValidationToolById(Id, con)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 201, Msg: "当前设备不存在!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功!", Data: nil}
|
|
|
+ c.ServeJSON()
|
|
|
+}
|