package controllers import ( "ERP_storage/Nats/NatsServer" "ERP_storage/conf" "ERP_storage/models/Account" "ERP_storage/models/Purchase" "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" ) type PurchaseController struct { beego.Controller User userlibs.User } func (c *PurchaseController) Prepare() { c.User = *Account.User_r } // 部门负责人查看的权限列表 func (c *PurchaseController) Purchase_List() { // 分页参数 初始化 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_uuid := c.GetString("T_uuid") T_start_date := c.GetString("T_start_date") // 开始时间 T_end_date := c.GetString("T_end_date") // 结束时间 T_state, _ := c.GetInt("T_state") userList, _ := NatsServer.Read_User_List_All() Account.Read_User_All_Map(userList) PurchaseDao := Purchase.NewPurchase(orm.NewOrm()) R_List, R_cnt := PurchaseDao.Read_Purchase_List(T_uuid, "", T_state, T_start_date, T_end_date, 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 *PurchaseController) Purchase_User_List() { // 分页参数 初始化 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_start_date := c.GetString("T_start_date") // 开始时间 T_end_date := c.GetString("T_end_date") // 结束时间 T_state, _ := c.GetInt("T_state") userList, _ := NatsServer.Read_User_List_All() Account.Read_User_All_Map(userList) PurchaseDao := Purchase.NewPurchase(orm.NewOrm()) R_List, R_cnt := PurchaseDao.Read_Purchase_List(c.User.T_uuid, "", T_state, T_start_date, T_end_date, 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 *PurchaseController) Purchase_Get() { // 查询 T_id, _ := c.GetInt("T_id") o := orm.NewOrm() PurchaseDao := Purchase.NewPurchase(o) purchase, err := PurchaseDao.Read_Purchase_ById(T_id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"} c.ServeJSON() return } userList, _ := NatsServer.Read_User_List_All() Account.Read_User_All_Map(userList) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Purchase.PurchaseToPurchase_Detail(purchase)} c.ServeJSON() return } func (c *PurchaseController) Purchase_Add() { T_uuid := c.GetString("T_uuid") T_date := c.GetString("T_date") T_remark := c.GetString("T_remark") T_detail := c.GetString("T_detail") T_approver := c.GetString("T_approver") var_ := Purchase.Purchase{ T_uuid: T_uuid, T_submit: c.User.T_uuid, T_date: T_date, T_remark: T_remark, T_detail: T_detail, T_approver: T_approver, T_State: Purchase.WaitPurchase, } o := orm.NewOrm() PurchaseDao := Purchase.NewPurchase(o) id, err := PurchaseDao.Add_Purchase(var_) if err != nil { //o.Rollback() c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"} c.ServeJSON() return } NatsServer.AddNews(T_approver, fmt.Sprintf("【采购申请】您有一条%s的采购申请待审批", c.User.T_name), conf.PurchaseAuditUrl) NatsServer.AddUserLogs(c.User.T_uuid, "采购", "添加", var_) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id} c.ServeJSON() return } func (c *PurchaseController) Purchase_Approval() { T_id, _ := c.GetInt("T_id") T_State, _ := c.GetInt("T_State") o := orm.NewOrm() PurchaseDao := Purchase.NewPurchase(o) purchase, err := PurchaseDao.Read_Purchase_ById(T_id) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"} c.ServeJSON() return } if purchase.T_State == T_State { c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id} c.ServeJSON() return } // 1 待采购 2 已采购 purchase.T_State = T_State _, err = PurchaseDao.Update_Purchase(purchase, "T_State") if err != nil { c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"} c.ServeJSON() return } if T_State == Purchase.PurchaseCompleted { NatsServer.AddNews(purchase.T_uuid, "【采购审核】您提交的采购申请已采购", conf.MyPurchaseNewsUrl) } NatsServer.AddUserLogs(c.User.T_uuid, "采购申请", "采购", purchase) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id} c.ServeJSON() return } func (c *PurchaseController) Purchase_Edit() { T_id, _ := c.GetInt("T_id") T_uuid := c.GetString("T_uuid") T_date := c.GetString("T_date") T_remark := c.GetString("T_remark") T_State, _ := c.GetInt("T_State") T_detail := c.GetString("T_detail") T_approver := c.GetString("T_approver") o := orm.NewOrm() PurchaseDao := Purchase.NewPurchase(o) purchase, err := PurchaseDao.Read_Purchase_ById(T_id) if err != nil { //o.Rollback() c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"} c.ServeJSON() return } clos := []string{} if len(T_uuid) > 0 { purchase.T_uuid = T_uuid clos = append(clos, "T_uuid") } if len(T_date) > 0 { purchase.T_date = T_date clos = append(clos, "T_date") } if len(T_remark) > 0 { purchase.T_remark = T_remark clos = append(clos, "T_remark") } if len(T_detail) > 0 { purchase.T_detail = T_detail clos = append(clos, "T_detail") } if len(T_approver) > 0 { purchase.T_approver = T_approver clos = append(clos, "T_approver") } if T_State > 0 { purchase.T_State = T_State clos = append(clos, "T_State") } _, err = PurchaseDao.Update_Purchase(purchase, clos...) if err != nil { c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"} c.ServeJSON() return } NatsServer.AddUserLogs(c.User.T_uuid, "采购", "修改", purchase) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id} c.ServeJSON() return } func (c *PurchaseController) Purchase_Del() { T_id, _ := c.GetInt("T_id") o := orm.NewOrm() PurchaseDao := Purchase.NewPurchase(o) purchase, err := PurchaseDao.Read_Purchase_ById(T_id) if err != nil { //o.Rollback() c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"} c.ServeJSON() return } if purchase.T_State == 2 { c.Data["json"] = lib.JSONS{Code: 202, Msg: "已采购,禁止删除!"} c.ServeJSON() return } _, err = PurchaseDao.Delete_Purchase(purchase) if err != nil { c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} c.ServeJSON() return } NatsServer.AddUserLogs(c.User.T_uuid, "采购", "删除", purchase.Id) c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id} c.ServeJSON() return }