Эх сурвалжийг харах

add:物联网卡添加导出

zoie 17 цаг өмнө
parent
commit
f065917327

+ 122 - 0
controllers/IOTNetworkCard.go

@@ -7,12 +7,15 @@ import (
 	"ERP_storage/models/Account"
 	"ERP_storage/models/IOTNetworkCard"
 	"encoding/json"
+	"fmt"
 	"github.com/beego/beego/v2/adapter/orm"
 	beego "github.com/beego/beego/v2/server/web"
 	"github.com/xuri/excelize/v2"
 	userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
 	"gogs.baozhida.cn/zoie/ERP_libs/lib"
 	"math"
+	"net/url"
+	"os"
 	"strconv"
 	"time"
 )
@@ -404,3 +407,122 @@ func (c *IOTNetworkCardController) IOTNetworkCard_Edit_Device_Number() {
 	c.ServeJSON()
 	return
 }
+
+// 导出
+func (c *IOTNetworkCardController) IOTNetworkCard_Export() {
+
+	// 分页参数 初始化
+
+	// 查询
+	T_name := c.GetString("T_name")
+	T_company_name := c.GetString("T_company_name")
+	T_state, _ := c.GetInt("T_state")
+
+	userList, _ := NatsServer.Read_User_List_All()
+	Account.Read_User_All_Map(userList)
+	IOTNetworkCardDao := IOTNetworkCard.NewIOTNetworkCard(orm.NewOrm())
+	R_List, _ := IOTNetworkCardDao.Read_IOTNetworkCard_List(T_name, T_company_name, T_state, 0, 9999)
+	f := excelize.NewFile() //设置单元格值
+	// 这里设置表头ÒÒ
+	Style1, _ := f.NewStyle(
+		&excelize.Style{
+			Font:      &excelize.Font{Size: 20, Family: "宋体"},
+			Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
+		})
+	Style2, _ := f.NewStyle(
+		&excelize.Style{
+			Font:      &excelize.Font{Size: 15, Family: "宋体"},
+			Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
+			Border: []excelize.Border{
+				{Type: "left", Color: "000000", Style: 1},
+				{Type: "top", Color: "000000", Style: 1},
+				{Type: "bottom", Color: "000000", Style: 1},
+				{Type: "right", Color: "000000", Style: 1},
+			},
+			Fill: excelize.Fill{Type: "pattern", Color: []string{"D9D9D9"}, Pattern: 1},
+		})
+	Style3, _ := f.NewStyle(
+		&excelize.Style{
+			Font:      &excelize.Font{Size: 15, Family: "宋体"},
+			Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
+			Border: []excelize.Border{
+				{Type: "left", Color: "000000", Style: 1},
+				{Type: "top", Color: "000000", Style: 1},
+				{Type: "bottom", Color: "000000", Style: 1},
+				{Type: "right", Color: "000000", Style: 1},
+			},
+		})
+
+	f.MergeCell("Sheet1", "A1", "M1")
+	f.SetCellValue("Sheet1", "A1", "物联网卡")
+	f.SetCellStyle("Sheet1", "A1", "M1", Style1)
+
+	// 写入表头
+	headers := []string{"序号", "公司名称", "入库日期", "套餐类型", "套餐", "到期&欠费", "状态", "串码", "移动端设备编号", "MSISDN", "出库日期", "出库项目", "领用人"}
+	for col, header := range headers {
+		cell := fmt.Sprintf("%c%d", rune('A'+col), 2)
+		f.SetCellValue("Sheet1", cell, header)
+	}
+	// 这里设置表头
+	f.SetCellStyle("Sheet1", "A2", "M2", Style2)
+	f.SetRowHeight("Sheet1", 2, 25)
+
+	colsWidth := []float64{6, 40, 15, 12, 12, 25, 12, 30, 17, 17, 15, 30, 15}
+
+	for col, width := range colsWidth {
+		cell := fmt.Sprintf("%c", rune('A'+col))
+		f.SetColWidth("Sheet1", cell, cell, width)
+	}
+	line := 2
+	for i, v := range R_List {
+		// 写入数据
+
+		line++
+		f.SetCellValue("Sheet1", fmt.Sprintf("A%d", line), i+1)
+		f.SetCellValue("Sheet1", fmt.Sprintf("B%d", line), v.T_company_name)
+		f.SetCellValue("Sheet1", fmt.Sprintf("C%d", line), v.T_in_date)
+		f.SetCellValue("Sheet1", fmt.Sprintf("D%d", line), v.T_meal_type)
+		f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), v.T_meal)
+		f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), v.T_expire)
+		var t_state string
+		switch v.T_State {
+		case 1:
+			t_state = "新卡入库"
+		case 2:
+			t_state = "退还入库"
+		case 3:
+			t_state = "已出库"
+		case 4:
+			t_state = "损坏退还"
+		case 5:
+			t_state = "待注销"
+		case 6:
+			t_state = "已注销"
+		}
+
+		f.SetCellValue("Sheet1", fmt.Sprintf("G%d", line), t_state)
+		f.SetCellValue("Sheet1", fmt.Sprintf("H%d", line), v.T_iccid)
+		f.SetCellValue("Sheet1", fmt.Sprintf("I%d", line), v.T_device_number)
+		f.SetCellValue("Sheet1", fmt.Sprintf("J%d", line), v.T_MSISDN)
+		f.SetCellValue("Sheet1", fmt.Sprintf("K%d", line), v.T_out_date)
+		f.SetCellValue("Sheet1", fmt.Sprintf("L%d", line), v.T_out_project)
+		f.SetCellValue("Sheet1", fmt.Sprintf("M%d", line), v.T_receive_name)
+	}
+
+	f.SetCellStyle("Sheet1", "A3", fmt.Sprintf("M%d", line), Style3)
+
+	timeStr := time.Now().Format("20060102150405")
+	fileName := fmt.Sprintf("物联网卡%v.xlsx", timeStr)
+	filePath := "ofile/" + fileName
+	// 保存文件
+	if err := f.SaveAs(filePath); err != nil {
+		logs.Error("保存文件失败:", err)
+	}
+	defer func() {
+		os.Remove(filePath)
+	}()
+	c.Ctx.Output.Header("Content-Type", "application/vnd.ms-excel;charset=utf8")
+	c.Ctx.Output.Header("Content-Disposition", "attachment; filename="+url.PathEscape(fileName))
+	c.Ctx.Output.Header("Content-Transfer-Encoding", "binary")
+	c.Ctx.Output.Download(filePath, fileName)
+}

+ 1 - 1
controllers/Purchase.go

@@ -540,7 +540,7 @@ func (c *PurchaseController) Purchase_Stat_Excel() {
 
 	f.MergeCell("Sheet1", "A1", "M1")
 	f.SetCellValue("Sheet1", "A1", "资金一览表")
-	f.SetCellStyle("Sheet1", "A1", "I1", Style1)
+	f.SetCellStyle("Sheet1", "A1", "M1", Style1)
 
 	// 写入表头
 	headers := []string{"序号", "采购物品", "规格", "单价", "数量", "实际金额", "合计金额", "用途", "采购申请人", "采购申请时间", "是否已有发票", "报销上报时间", "备注"}

+ 3 - 0
controllers/Validation.go

@@ -214,6 +214,9 @@ func (c *ValidationController) UpdateValidationTool() {
 			c.ServeJSON()
 			return
 		}
+		if validation.T_state == validationtool.ValidationToolStateStockOut {
+			continue
+		}
 		//修改设备状态
 		validation.T_state = validationtool.ValidationToolStateStockOut
 		cols := []string{"t_state"}

+ 7 - 1
models/IOTNetworkCard/IOTNetworkCard.go

@@ -246,7 +246,13 @@ func (dao *IOTNetworkCardDaoImpl) Read_IOTNetworkCard_List(T_name, T_company_nam
 
 	// 查询
 	var r []IOTNetworkCard
-	_, err := qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
+
+	var err error
+	if page_z == 9999 {
+		_, err = qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
+	} else {
+		_, err = qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r)
+	}
 
 	if err != nil {
 		logs.Error(lib.FuncName(), err)

+ 1 - 0
routers/IOTNetworkCard.go

@@ -14,6 +14,7 @@ func init() {
 		beego.NSRouter("/Edit", &controllers.IOTNetworkCardController{}, "*:IOTNetworkCard_Edit"),                             // 编辑物联网卡号
 		beego.NSRouter("/Del", &controllers.IOTNetworkCardController{}, "*:IOTNetworkCard_Del"),                               // 删除物联网卡号
 		beego.NSRouter("/Import", &controllers.IOTNetworkCardController{}, "*:IOTNetworkCard_Import"),                         // 导入物联网卡号
+		beego.NSRouter("/Export", &controllers.IOTNetworkCardController{}, "*:IOTNetworkCard_Export"),                         // 导入物联网卡号
 		beego.NSRouter("/Edit_Device_Number", &controllers.IOTNetworkCardController{}, "*:IOTNetworkCard_Edit_Device_Number"), // 修改移动端设备编号
 	)
 	beego.AddNamespace(iotNetworkCard)