123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038 |
- package controllers
- import (
- "Cold_Api/Nats/NatsServer"
- "Cold_Api/conf"
- "Cold_Api/controllers/lib"
- "Cold_Api/models/Device"
- "Cold_Api/models/Function"
- "fmt"
- beego "github.com/beego/beego/v2/server/web"
- "github.com/signintech/gopdf"
- "math"
- "os"
- "strconv"
- "time"
- )
- //Handle
- type GoodsOrderController struct {
- beego.Controller
- }
- func (c *GoodsOrderController) GoodsOrder_List() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- type R_JSONS struct {
- //必须的大写开头
- Data []Function.GoodsOrder
- Num int64
- Page int
- Page_size int
- }
- var r_jsons R_JSONS
- page, _ := c.GetInt("page")
- println(page)
- if page < 1 {
- page = 1
- }
- page_z, _ := c.GetInt("page_z")
- if page_z < 1 {
- page_z = conf.Page_size
- }
- Name := c.GetString("T_name")
- c.Data["Name"] = Name
- r_jsons.Data, r_jsons.Num = Function.Read_GoodsOrder_List(admin_r.Admin_uuid, page, page_z, Name)
- r_jsons.Page = page
- r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) GoodsOrder_Get() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Ctx.Redirect(302, "Login")
- return
- }
- id, _ := c.GetInt("T_id")
- r := Function.Read_GoodsOrder_ById(id)
- if r.Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id !"}
- c.ServeJSON()
- return
- }
- if admin_r.Admin_uuid != r.T_uuid {
- c.Data["json"] = lib.JSONS{Code: 205, Msg: "你没有权限 !"}
- c.ServeJSON()
- return
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Function.GoodsOrderToGoodsOrderR(r)}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) GoodsOrder_html() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Ctx.Redirect(302, "Login")
- return
- }
- c.Data["Device_lite"] = Device.Read_Device_ALL_bind(admin_r)
- //c.Data["Admin_Power"], _ = Admin.Read_AdminPower_ById(admin_r.Admin_power)
- Name := c.GetString("Name")
- c.Data["Name"] = Name
- page, _ := c.GetInt("page")
- println(page)
- if page < 1 {
- page = 1
- }
- page_z, _ := c.GetInt("Page_size")
- if page_z == 0 {
- page_z = conf.Page_size
- }
- List, cnt := Function.Read_GoodsOrder_List(admin_r.Admin_uuid, page, page_z, Name)
- page_size := math.Ceil(float64(cnt) / float64(conf.Page_size))
- c.Data["List"] = List
- c.Data["Page"] = page
- c.Data["Page_size"] = page_size
- c.Data["Pages"] = lib.Func_page(int64(page), int64(page_size))
- c.Data["cnt"] = cnt
- c.TplName = "GoodsOrder/GoodsOrder.html"
- }
- func (c *GoodsOrderController) GoodsOrder__html() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Ctx.Redirect(302, "Login")
- return
- }
- c.Data["Device_lite"] = Device.Read_Device_ALL_bind(admin_r)
- //c.Data["Admin_Power"], _ = Admin.Read_AdminPower_ById(admin_r.Admin_power)
- id, _ := c.GetInt("id")
- c.Data["id"] = id
- if id > 0 {
- c.Data["Date"] = Function.Read_GoodsOrder_ById(id)
- }
- c.TplName = "GoodsOrder/GoodsOrder-.html"
- }
- //
- //func (c *GoodsOrderController) GoodsOrder_List() {
- // // 验证登录
- // b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- // if !b_ {
- // c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- // c.ServeJSON()
- // return
- // }
- //
- // type R_JSONS struct {
- // //必须的大写开头
- // DeviceSensor_lite []Device.DeviceSensor_R
- // Num int
- // Page int
- // Page_size int
- // Pages []lib.Page_T
- // }
- // var r_jsons R_JSONS
- // page, _ := c.GetInt("page")
- //
- // println(page)
- // if page < 1 {
- // page = 1
- // }
- //
- // page_z, _ := c.GetInt("page_z")
- // if page_z == 0 {
- // page_z = conf.Page_size
- // }
- //
- // T_sn := c.GetString("Sn")
- //
- // Device_r, err := Device.Read_Device_ByT_sn(T_sn)
- // if err != nil {
- // c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_sn Err!"}
- // c.ServeJSON()
- // return
- // }
- // if admin_r.Admin_master > 1 {
- // if !strings.Contains(Device_r.T_Bind, "U"+strconv.Itoa(admin_r.Id)+"|") && admin_r.Admin_master != 0 {
- // c.Data["json"] = lib.JSONS{Code: 202, Msg: "! U" + strconv.Itoa(admin_r.Id)}
- // c.ServeJSON()
- // return
- // }
- // }
- //
- // //c.Data["Class_List"] = Device.Read_Class_All_1()
- //
- // var cnt int64
- // r_jsons.DeviceSensor_lite, cnt = Device.Read_DeviceSensor_ALL_T_sn(T_sn, page, page_z)
- //
- // page_size := math.Ceil(float64(cnt) / float64(page_z))
- // r_jsons.Page = int(page)
- // r_jsons.Page_size = int(page_size)
- // r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
- // r_jsons.Num = int(cnt)
- //
- // c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
- // c.ServeJSON()
- // return
- //
- //}
- //
- func (c *GoodsOrderController) List_Post() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Ctx.Redirect(302, "Login")
- return
- }
- var id int64
- var err error
- id, _ = c.GetInt64("id")
- T_orderid := c.GetString("T_orderid")
- T_outorderid := c.GetString("T_outorderid")
- T_sn := c.GetString("T_sn")
- T_receiving := c.GetString("T_receiving")
- T_start_Ut := c.GetString("T_start_Ut")
- T_end_Ut := c.GetString("T_end_Ut")
- T_start_Ut_T, _ := c.GetFloat("T_start_Ut_T")
- T_end_Ut_T, _ := c.GetFloat("T_end_Ut_T")
- T_text := c.GetString("T_text")
- T_start_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_start_Ut, time.Local)
- T_end_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_end_Ut, time.Local)
- var_ := Function.GoodsOrder{
- T_uuid: admin_r.Admin_uuid,
- T_orderid: T_orderid,
- T_outorderid: T_outorderid,
- T_sn: T_sn,
- T_receiving: T_receiving,
- T_start_Ut: T_start_Ut_,
- T_end_Ut: T_end_Ut_,
- T_start_Ut_T: float32(T_start_Ut_T),
- T_end_Ut_T: float32(T_end_Ut_T),
- T_text: T_text,
- T_State: 1,
- }
- if id > 0 {
- var_.Id = int(id)
- is := Function.Update_TGoodsOrder(var_, "T_orderid", "T_outorderid", "T_sn", "T_receiving", "T_start_Ut", "T_end_Ut", "T_start_Ut_T", "T_end_Ut_T", "T_text")
- if !is {
- c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"}
- c.ServeJSON()
- return
- }
- } else {
- id, err = Function.Add_GoodsOrder(var_)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
- c.ServeJSON()
- return
- }
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) GoodsOrder_Add() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- var id int64
- var err error
- id, _ = c.GetInt64("T_id")
- T_orderid := c.GetString("T_orderid")
- T_outorderid := c.GetString("T_outorderid")
- T_sn := c.GetString("T_sn")
- T_receiving := c.GetString("T_receiving")
- T_start_Ut := c.GetString("T_start_Ut")
- T_end_Ut := c.GetString("T_end_Ut")
- T_start_Ut_T, _ := c.GetFloat("T_start_Ut_T")
- T_end_Ut_T, _ := c.GetFloat("T_end_Ut_T")
- T_text := c.GetString("T_text")
- T_start_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_start_Ut, time.Local)
- T_end_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_end_Ut, time.Local)
- var_ := Function.GoodsOrder{
- T_uuid: admin_r.Admin_uuid,
- T_orderid: T_orderid,
- T_outorderid: T_outorderid,
- T_sn: T_sn,
- T_receiving: T_receiving,
- T_start_Ut: T_start_Ut_,
- T_end_Ut: T_end_Ut_,
- T_start_Ut_T: float32(T_start_Ut_T),
- T_end_Ut_T: float32(T_end_Ut_T),
- T_text: T_text,
- T_State: 1,
- }
- if id > 0 {
- var_.Id = int(id)
- is := Function.Update_TGoodsOrder(var_, "T_orderid", "T_outorderid", "T_sn", "T_receiving", "T_start_Ut", "T_end_Ut", "T_start_Ut_T", "T_end_Ut_T", "T_text")
- if !is {
- c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"}
- c.ServeJSON()
- return
- }
- } else {
- id, err = Function.Add_GoodsOrder(var_)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
- c.ServeJSON()
- return
- }
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) GoodsOrder_Edit() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- var id int64
- var err error
- id, _ = c.GetInt64("T_id")
- T_orderid := c.GetString("T_orderid")
- T_outorderid := c.GetString("T_outorderid")
- T_sn := c.GetString("T_sn")
- T_receiving := c.GetString("T_receiving")
- T_start_Ut := c.GetString("T_start_Ut")
- T_end_Ut := c.GetString("T_end_Ut")
- T_start_Ut_T, _ := c.GetFloat("T_start_Ut_T")
- T_end_Ut_T, _ := c.GetFloat("T_end_Ut_T")
- T_text := c.GetString("T_text")
- T_start_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_start_Ut, time.Local)
- T_end_Ut_, err := time.ParseInLocation("2006-01-02 15:04:05", T_end_Ut, time.Local)
- var_ := Function.GoodsOrder{
- T_uuid: admin_r.Admin_uuid,
- T_orderid: T_orderid,
- T_outorderid: T_outorderid,
- T_sn: T_sn,
- T_receiving: T_receiving,
- T_start_Ut: T_start_Ut_,
- T_end_Ut: T_end_Ut_,
- T_start_Ut_T: float32(T_start_Ut_T),
- T_end_Ut_T: float32(T_end_Ut_T),
- T_text: T_text,
- T_State: 1,
- }
- if id > 0 {
- var_.Id = int(id)
- is := Function.Update_TGoodsOrder(var_, "T_orderid", "T_outorderid", "T_sn", "T_receiving", "T_start_Ut", "T_end_Ut", "T_start_Ut_T", "T_end_Ut_T", "T_text")
- if !is {
- c.Data["json"] = lib.JSONS{Code: 302, Msg: "修改失败!"}
- c.ServeJSON()
- return
- }
- } else {
- id, err = Function.Add_GoodsOrder(var_)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
- c.ServeJSON()
- return
- }
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) GoodsOrder_Del() {
- // 验证登录
- b_, admin_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- Id, _ := c.GetInt("T_id")
- r := Function.Read_GoodsOrder_ById(Id)
- if r.Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id !"}
- c.ServeJSON()
- return
- }
- if admin_r.Admin_uuid != r.T_uuid {
- c.Data["json"] = lib.JSONS{Code: 205, Msg: "你没有权限 !"}
- c.ServeJSON()
- return
- }
- r.T_State = 0
- Function.Update_TGoodsOrder(r, "T_State")
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
- c.ServeJSON()
- return
- }
- func (c *GoodsOrderController) List_Del() {
- Id, _ := c.GetInt("Id")
- if Id > 0 {
- GoodsOrder_r := Function.Read_GoodsOrder_ById(Id)
- Function.Delete_GoodsOrder_ById(GoodsOrder_r)
- } else {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "e!"}
- c.ServeJSON()
- return
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
- c.ServeJSON()
- return
- }
- // 列表 - 接口
- func (c *GoodsOrderController) Data_PDF() {
- var err error
- // 验证登录
- b_, user_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- Id, _ := c.GetInt("Id")
- if Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id e!"}
- c.ServeJSON()
- return
- }
- GoodsOrder_r := Function.Read_GoodsOrder_ById(Id)
- if GoodsOrder_r.Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "Id e!"}
- c.ServeJSON()
- return
- }
- Device_r, err := Device.Read_Device_ByT_sn(GoodsOrder_r.T_sn)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_sn Err!"}
- c.ServeJSON()
- return
- }
- DeviceSensor_r := Device.Read_DeviceSensor_ALL_List_T_sn(GoodsOrder_r.T_sn)
- if len(DeviceSensor_r) == 0 {
- c.Data["json"] = lib.JSONS{Code: 202, Msg: GoodsOrder_r.T_sn + "设备没有数据!"}
- c.ServeJSON()
- return
- }
- var DeviceSensor_data []Device.DeviceData_
- DeviceSensor_data, _ = Device.Read_DeviceSensorData_By_T_snid_List(GoodsOrder_r.T_sn+","+strconv.Itoa(DeviceSensor_r[0].T_id), GoodsOrder_r.T_start_Ut.Format("2006-01-02 15:04:05"), GoodsOrder_r.T_end_Ut.Format("2006-01-02 15:04:05"), 0, 9999)
- pdf := &gopdf.GoPdf{}
- pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4
- //err = GetFont(pdf, "LiberationSerif-Regular.ttf")
- //if err != nil {
- // log.Fatalln(err)
- //}
- //err = pdf.SetFont("Ubuntu-L", "", 14)
- //if err != nil {
- // log.Fatalln(err)
- //}
- err = pdf.AddTTFFont("simsun", "static/fonts/三极行楷简体-粗.ttf")
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- err = pdf.SetFont("simsun", "", 24)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 205, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- pdf.SetGrayFill(0.5)
- pdf.SetMargins(0, 20, 0, 20)
- pdf.AddPage()
- //use path
- //pdf.Image("logo.png", 100, 50, &gopdf.Rect{W: 50, H: 50})
- textw, _ := pdf.MeasureTextWidth(user_r.Admin_name)
- pdf.SetX((595 / 2) - (textw / 2))
- pdf.SetY(40)
- pdf.Text(user_r.Admin_name)
- // 线
- pdf.SetLineWidth(2)
- pdf.SetLineType("dashed")
- pdf.Line(10, 60, 585, 60)
- err = pdf.AddTTFFont("wts", "static/fonts/MiSans-Medium.ttf")
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 206, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- err = pdf.SetFont("wts", "", 10)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- //fmt.Sprintf(" %.1f ", v.T_t)
- //lib.RectFillColor(pdf, "历史数据["+Time_start+" / "+Time_end+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- // -------------
- x := 22.0
- w1 := 80.0
- w2 := 195.0
- lib.RectFillColor(pdf, "订单号:", 12, x, 80, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, GoodsOrder_r.T_orderid, 12, x, 80, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "出库订单号:", 12, x, 80, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, GoodsOrder_r.T_outorderid, 12, x, 80, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 195.0
- lib.RectFillColor(pdf, "设备名称:", 12, x, 100, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, Device_r.T_devName, 12, x, 100, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "设备编号:", 12, x, 100, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, Device_r.T_sn, 12, x, 100, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 240.0
- T_time := fmt.Sprintf("%s", GoodsOrder_r.T_start_Ut.Format("2006-01-02 15:04:05")+" - "+GoodsOrder_r.T_end_Ut.Format("2006-01-02 15:04:05"))
- lib.RectFillColor(pdf, "送货时间:", 12, x, 120, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_time, 12, x, 120, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_time = fmt.Sprintf("%s", GoodsOrder_r.CreateTime.Format("2006-01-02 15:04:05"))
- lib.RectFillColor(pdf, "订单时间:", 12, x, 120, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_time, 12, x, 120, 150, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 195.0*2 + 80
- T_text := fmt.Sprintf("%s", GoodsOrder_r.T_receiving)
- lib.RectFillColor(pdf, "收货单位:", 12, x, 140, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_text, 12, x, 140, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -----------
- textw, _ = pdf.MeasureTextWidth("历史数据")
- pdf.SetX(20)
- pdf.SetY(210)
- pdf.Text("历史数据:")
- // 数据展示--------------------------------
- var y float64 = 220
- x = 22.0
- w1 = 94.0
- w2 = 43.0
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // 数据展示--------------------------------
- y = 240
- err = pdf.SetFont("wts", "", 8)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- nln := 0
- x = 22.0
- var T_t_l float32 = 100.0
- var T_t_u float32 = 0.0
- var T_t_v float32 = 0.0
- for n := 0; len(DeviceSensor_data) > n; n++ {
- // -计算温度
- if DeviceSensor_data[n].T_t < T_t_l {
- T_t_l = DeviceSensor_data[n].T_t
- }
- if DeviceSensor_data[n].T_t > T_t_u {
- T_t_u = DeviceSensor_data[n].T_t
- }
- T_t_v += DeviceSensor_data[n].T_t
- //text := fmt.Sprintf(" %d ", i+1)
- var textH float64 = 25 // if text height is 25px.
- pdf.SetNewY(y, textH)
- y = pdf.GetY()
- nln++
- if nln > 4 {
- nln = 1
- x = 22.0
- y += 18
- }
- // ------------------
- T_t := fmt.Sprintf(" %.1f ", DeviceSensor_data[n].T_t)
- T_time = fmt.Sprintf("%s", DeviceSensor_data[n].T_time)
- lib.RectFillColor(pdf, T_time, 10, x, y, w1, 18, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 18, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- }
- err = pdf.SetFont("wts", "", 10)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- // 数据汇总--------------------------------
- y = 160
- x = 22.0
- w1 = 60.0
- w2 = 50.0
- T_t := fmt.Sprintf(" %.1f℃ ", DeviceSensor_data[len(DeviceSensor_data)-1].T_t)
- lib.RectFillColor(pdf, "起送温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", DeviceSensor_data[0].T_t)
- lib.RectFillColor(pdf, "送达温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", T_t_l)
- lib.RectFillColor(pdf, "最低温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", float32(T_t_v/float32(len(DeviceSensor_data)-1)))
- lib.RectFillColor(pdf, "平均温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", T_t_u)
- lib.RectFillColor(pdf, "最高温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- //----------------
- timeStr := "ofile/" + time.Now().Format("20060102150405") + ".pdf"
- err = pdf.WritePdf(timeStr)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- // 上传 OSS
- url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/"+timeStr, timeStr)
- if !is {
- c.Data["json"] = lib.JSONS{Code: 203, Msg: "oss!"}
- c.ServeJSON()
- return
- }
- //删除目录
- err = os.Remove(timeStr)
- if err != nil {
- fmt.Println(err)
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url}
- c.ServeJSON()
- return
- }
- // 列表 - 接口
- func (c *GoodsOrderController) GoodsOrder_PDF() {
- var err error
- // 验证登录
- b_, user_r := lib.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
- if !b_ {
- c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"}
- c.ServeJSON()
- return
- }
- Id, _ := c.GetInt("T_id")
- if Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id e!"}
- c.ServeJSON()
- return
- }
- GoodsOrder_r := Function.Read_GoodsOrder_ById(Id)
- if GoodsOrder_r.Id == 0 {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "Id e!"}
- c.ServeJSON()
- return
- }
- Device_r, err := Device.Read_Device_ByT_sn(GoodsOrder_r.T_sn)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_sn Err!"}
- c.ServeJSON()
- return
- }
- DeviceSensor_r := Device.Read_DeviceSensor_ALL_List_T_sn(GoodsOrder_r.T_sn)
- if len(DeviceSensor_r) == 0 {
- c.Data["json"] = lib.JSONS{Code: 202, Msg: GoodsOrder_r.T_sn + "设备没有数据!"}
- c.ServeJSON()
- return
- }
- var DeviceSensor_data []Device.DeviceData_
- DeviceSensor_data, _ = Device.Read_DeviceSensorData_By_T_snid_List(GoodsOrder_r.T_sn+","+strconv.Itoa(DeviceSensor_r[0].T_id), GoodsOrder_r.T_start_Ut.Format("2006-01-02 15:04:05"), GoodsOrder_r.T_end_Ut.Format("2006-01-02 15:04:05"), 0, 9999)
- pdf := &gopdf.GoPdf{}
- pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4
- //err = GetFont(pdf, "LiberationSerif-Regular.ttf")
- //if err != nil {
- // log.Fatalln(err)
- //}
- //err = pdf.SetFont("Ubuntu-L", "", 14)
- //if err != nil {
- // log.Fatalln(err)
- //}
- err = pdf.AddTTFFont("simsun", "static/fonts/三极行楷简体-粗.ttf")
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 204, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- err = pdf.SetFont("simsun", "", 24)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 205, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- pdf.SetGrayFill(0.5)
- pdf.SetMargins(0, 20, 0, 20)
- pdf.AddPage()
- //use path
- //pdf.Image("logo.png", 100, 50, &gopdf.Rect{W: 50, H: 50})
- textw, _ := pdf.MeasureTextWidth(user_r.Admin_name)
- pdf.SetX((595 / 2) - (textw / 2))
- pdf.SetY(40)
- pdf.Text(user_r.Admin_name)
- // 线
- pdf.SetLineWidth(2)
- pdf.SetLineType("dashed")
- pdf.Line(10, 60, 585, 60)
- err = pdf.AddTTFFont("wts", "static/fonts/MiSans-Medium.ttf")
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 206, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- err = pdf.SetFont("wts", "", 10)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- //fmt.Sprintf(" %.1f ", v.T_t)
- //lib.RectFillColor(pdf, "历史数据["+Time_start+" / "+Time_end+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- // -------------
- x := 22.0
- w1 := 80.0
- w2 := 195.0
- lib.RectFillColor(pdf, "订单号:", 12, x, 80, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, GoodsOrder_r.T_orderid, 12, x, 80, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "出库订单号:", 12, x, 80, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, GoodsOrder_r.T_outorderid, 12, x, 80, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 195.0
- lib.RectFillColor(pdf, "设备名称:", 12, x, 100, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, Device_r.T_devName, 12, x, 100, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "设备编号:", 12, x, 100, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, Device_r.T_sn, 12, x, 100, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 240.0
- T_time := fmt.Sprintf("%s", GoodsOrder_r.T_start_Ut.Format("2006-01-02 15:04:05")+" - "+GoodsOrder_r.T_end_Ut.Format("2006-01-02 15:04:05"))
- lib.RectFillColor(pdf, "送货时间:", 12, x, 120, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_time, 12, x, 120, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_time = fmt.Sprintf("%s", GoodsOrder_r.CreateTime.Format("2006-01-02 15:04:05"))
- lib.RectFillColor(pdf, "订单时间:", 12, x, 120, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_time, 12, x, 120, 150, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- // -------------
- x = 22.0
- w1 = 80.0
- w2 = 195.0*2 + 80
- T_text := fmt.Sprintf("%s", GoodsOrder_r.T_receiving)
- lib.RectFillColor(pdf, "收货单位:", 12, x, 140, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_text, 12, x, 140, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // -----------
- textw, _ = pdf.MeasureTextWidth("历史数据")
- pdf.SetX(20)
- pdf.SetY(210)
- pdf.Text("历史数据:")
- // 数据展示--------------------------------
- var y float64 = 220
- x = 22.0
- w1 = 94.0
- w2 = 43.0
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- lib.RectFillColor(pdf, "记录时间", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, "温度℃", 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- // 数据展示--------------------------------
- y = 240
- err = pdf.SetFont("wts", "", 8)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- nln := 0
- x = 22.0
- var T_t_l float32 = 100.0
- var T_t_u float32 = 0.0
- var T_t_v float32 = 0.0
- for n := 0; len(DeviceSensor_data) > n; n++ {
- // -计算温度
- if DeviceSensor_data[n].T_t < T_t_l {
- T_t_l = DeviceSensor_data[n].T_t
- }
- if DeviceSensor_data[n].T_t > T_t_u {
- T_t_u = DeviceSensor_data[n].T_t
- }
- T_t_v += DeviceSensor_data[n].T_t
- //text := fmt.Sprintf(" %d ", i+1)
- var textH float64 = 25 // if text height is 25px.
- pdf.SetNewY(y, textH)
- y = pdf.GetY()
- nln++
- if nln > 4 {
- nln = 1
- x = 22.0
- y += 18
- }
- // ------------------
- T_t := fmt.Sprintf(" %.1f ", DeviceSensor_data[n].T_t)
- T_time = fmt.Sprintf("%s", DeviceSensor_data[n].T_time)
- lib.RectFillColor(pdf, T_time, 10, x, y, w1, 18, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 18, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- }
- err = pdf.SetFont("wts", "", 10)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- // 数据汇总--------------------------------
- y = 160
- x = 22.0
- w1 = 60.0
- w2 = 50.0
- T_t := fmt.Sprintf(" %.1f℃ ", DeviceSensor_data[len(DeviceSensor_data)-1].T_t)
- lib.RectFillColor(pdf, "起送温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", DeviceSensor_data[0].T_t)
- lib.RectFillColor(pdf, "送达温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", T_t_l)
- lib.RectFillColor(pdf, "最低温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", float32(T_t_v/float32(len(DeviceSensor_data)-1)))
- lib.RectFillColor(pdf, "平均温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- T_t = fmt.Sprintf(" %.1f℃ ", T_t_u)
- lib.RectFillColor(pdf, "最高温度", 10, x, y, w1, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w1
- lib.RectFillColor(pdf, T_t, 10, x, y, w2, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
- x += w2
- //----------------
- timeStr := "ofile/" + time.Now().Format("20060102150405") + ".pdf"
- err = pdf.WritePdf(timeStr)
- if err != nil {
- c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err}
- c.ServeJSON()
- return
- }
- // 上传 OSS
- url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/"+timeStr, timeStr)
- if !is {
- c.Data["json"] = lib.JSONS{Code: 203, Msg: "oss!"}
- c.ServeJSON()
- return
- }
- //删除目录
- err = os.Remove(timeStr)
- if err != nil {
- fmt.Println(err)
- }
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url}
- c.ServeJSON()
- return
- }
|