Compare commits

..

2 Commits

@ -18,9 +18,12 @@ var highOpticalLossCmd = &cobra.Command{
Short: "Generate a High Optical Loss Report", Short: "Generate a High Optical Loss Report",
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
initkit.BindFlags(cmd) initkit.BindFlags(cmd)
m := service.ReqGetHighOptLossList("2") m1 := service.ReqGetHighOptLossList("2")
logkit.Info("拿到大光衰数据,开始生成...") logkit.Info("拿到大光衰数据,开始生成...")
common.GenExcelFile(m) m2 := service.ReqGetHighOptLossSmallList("2")
logkit.Info("拿到小光衰数据,开始生成...")
common.GenExcelFile(m1)
common.GenExcelFileSmall(m2)
}, },
} }

@ -24,13 +24,13 @@ var testCmd = &cobra.Command{
func extractColumns() { func extractColumns() {
// 打开 Excel 文件 // 打开 Excel 文件
f, err := excelize.OpenFile("/Users/leo/Documents/副本电子围栏.xlsx") f, err := excelize.OpenFile("/Users/leo/Documents/副本电子围栏---林斌1.16.xlsx")
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
// 获取表格的所有行 // 获取表格的所有行
rows, err := f.GetRows("") // 假设表格在"Sheet1"中 rows, err := f.GetRows("李强") // 假设表格在"Sheet1"中
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
@ -53,8 +53,8 @@ func extractColumns() {
if len(row) > 2 { if len(row) > 2 {
rowData = append(rowData, row[2]) // C列 rowData = append(rowData, row[2]) // C列
} }
if len(row) > 59 { if len(row) > 28 {
rowData = append(rowData, row[59]) // BH rowData = append(rowData, row[28]) // AC
} }
// 将这一行数据添加到二维数组中 // 将这一行数据添加到二维数组中
@ -65,12 +65,12 @@ func extractColumns() {
// 输出提取的数据 // 输出提取的数据
for _, row := range data { for _, row := range data {
//fmt.Println(row) fmt.Println(row)
resp, err := lawClient.R(). resp, err := lawClient.R().
SetHeaders(map[string]string{ SetHeaders(map[string]string{
"Authorization": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNTY1NzE3NjI2OSIsInVzZXJJZCI6IjEwMTUiLCJuYW1lIjoi6a2P5beN5beNIiwiZXhwIjoxNzM0MDEwOTI4LCJuYmYiOjE3MzM5OTI5Mjh9.QZxUoHdl1Qd_js32eKvrJrs3jOTPRJQxmrws9YD3Fw6Ok5SvRR9H02lOb1O7_oHJq4CylUJsXVAlhxerNLl5pVKzwStBVFqb6WPVY8RAGF-F94IlEMgkz8wJbDRHGkidtsk0vlp-kLID1ZXd5v3vLhzcDWLSxpGjPkCD7r3Q4gk", "Authorization": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNTY1NzE3NjI2OSIsInVzZXJJZCI6IjEwMTUiLCJuYW1lIjoi6a2P5beN5beNIiwiZXhwIjoxNzM3MDI1MDc1LCJuYmYiOjE3MzcwMDcwNzV9.TG-Bk0CbwzavOl1RKszTDVYrBEZUoyY8EhXAS_Q8HRkJj_CyzPj_SfAc2sJnejarxh4hfVK0FkIU6GiVPMm67OhKUQCN1FnBWspXNFihIdnsaS9WDB4o_BCI16gV5dUxEQ3TjL3Ok4vMBnzk0rPdQJmU-3DphCmo7f_AS6BM46s",
"Content-type": "application/json;charset=UTF-8", "Content-type": "application/json;charset=UTF-8",
"Cookie": "Admin-Token=eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNTY1NzE3NjI2OSIsInVzZXJJZCI6IjEwMTUiLCJuYW1lIjoi6a2P5beN5beNIiwiZXhwIjoxNzM0MDEwOTI4LCJuYmYiOjE3MzM5OTI5Mjh9.QZxUoHdl1Qd_js32eKvrJrs3jOTPRJQxmrws9YD3Fw6Ok5SvRR9H02lOb1O7_oHJq4CylUJsXVAlhxerNLl5pVKzwStBVFqb6WPVY8RAGF-F94IlEMgkz8wJbDRHGkidtsk0vlp-kLID1ZXd5v3vLhzcDWLSxpGjPkCD7r3Q4gk; sysName=%E9%AD%8F%E5%B7%8D%E5%B7%8D", "Cookie": "Admin-Token=eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNTY1NzE3NjI2OSIsInVzZXJJZCI6IjEwMTUiLCJuYW1lIjoi6a2P5beN5beNIiwiZXhwIjoxNzM3MDI1MDc1LCJuYmYiOjE3MzcwMDcwNzV9.TG-Bk0CbwzavOl1RKszTDVYrBEZUoyY8EhXAS_Q8HRkJj_CyzPj_SfAc2sJnejarxh4hfVK0FkIU6GiVPMm67OhKUQCN1FnBWspXNFihIdnsaS9WDB4o_BCI16gV5dUxEQ3TjL3Ok4vMBnzk0rPdQJmU-3DphCmo7f_AS6BM46s; sysName=%E9%AD%8F%E5%B7%8D%E5%B7%8D",
}).SetBody(map[string]interface{}{ }).SetBody(map[string]interface{}{
"dzwlCode": row[2], "dzwlCode": row[2],
"dzwlId": cast.ToInt64(row[0]), "dzwlId": cast.ToInt64(row[0]),

@ -11,7 +11,7 @@ import (
func GenExcelFile(m map[string]*service.HighOptLoss) { func GenExcelFile(m map[string]*service.HighOptLoss) {
// Open the Excel file // Open the Excel file
f, err := excelize.OpenFile("/Users/leo/Documents/大光衰通报模板.xlsx") f, err := excelize.OpenFile("/Users/leo/Documents/光衰通报/大光衰/2025/大光衰通报(1月10日).xlsx")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
return return
@ -73,7 +73,77 @@ func GenExcelFile(m map[string]*service.HighOptLoss) {
} }
// Save the file // Save the file
if err := f.SaveAs("/Users/leo/Documents/大光衰通报模板.xlsx"); err != nil { if err := f.SaveAs("/Users/leo/Documents/光衰通报/大光衰/2025/大光衰通报(1月17日).xlsx"); err != nil {
fmt.Println(err)
}
logkit.Info("生成结束...")
}
func GenExcelFileSmall(m map[string]*service.HighOptLoss) {
// Open the Excel file
f, err := excelize.OpenFile("/Users/leo/Documents/光衰通报/小光衰/2025/光衰质差通报(1月10日).xlsx")
if err != nil {
fmt.Println(err)
return
}
// Cut and paste data from E4:E22 to C4:C22
for i := 4; i <= 22; i++ {
eCell := "E" + strconv.Itoa(i)
cCell := "C" + strconv.Itoa(i)
value, _ := f.GetCellValue("汇总", eCell)
f.SetCellValue("汇总", cCell, cast.ToInt(value))
f.SetCellValue("汇总", eCell, "")
}
// Populate E4:H22 with data from the map
for i := 4; i <= 22; i++ {
bCell := "B" + strconv.Itoa(i)
key, _ := f.GetCellValue("汇总", bCell)
if data, ok := m[key]; ok {
f.SetCellValue("汇总", "E"+strconv.Itoa(i), data.Count)
f.SetCellValue("汇总", "F"+strconv.Itoa(i), data.DurationOverSeven)
f.SetCellValue("汇总", "G"+strconv.Itoa(i), data.DurationOverFifteen)
f.SetCellValue("汇总", "H"+strconv.Itoa(i), data.Book)
} else {
f.SetCellValue("汇总", "E"+strconv.Itoa(i), 0)
f.SetCellValue("汇总", "F"+strconv.Itoa(i), 0)
f.SetCellValue("汇总", "G"+strconv.Itoa(i), 0)
f.SetCellValue("汇总", "H"+strconv.Itoa(i), 0)
}
}
// Calculate D4:D22 as C-E
for i := 4; i <= 22; i++ {
cCell := "C" + strconv.Itoa(i)
eCell := "E" + strconv.Itoa(i)
dCell := "D" + strconv.Itoa(i)
cValue, _ := f.GetCellValue("汇总", cCell)
eValue, _ := f.GetCellValue("汇总", eCell)
cInt, _ := strconv.Atoi(cValue)
eInt, _ := strconv.Atoi(eValue)
f.SetCellValue("汇总", dCell, cInt-eInt)
}
// Sum columns C:H and place the results in row 23
for col := 'C'; col <= 'H'; col++ {
sumCell := string(col) + "23"
sumFormula := fmt.Sprintf("SUM(%s4:%s22)", string(col), string(col))
f.SetCellFormula("汇总", sumCell, sumFormula)
}
// Recalculate the sum for each cell to ensure it appears without manual intervention
for col := 'C'; col <= 'H'; col++ {
sumCell := string(col) + "23"
value, err := f.CalcCellValue("汇总", sumCell)
if err != nil {
fmt.Println(err)
} else {
f.SetCellValue("汇总", sumCell, cast.ToInt(value))
}
}
// Save the file
if err := f.SaveAs("/Users/leo/Documents/光衰通报/小光衰/2025/光衰质差通报(1月17日).xlsx"); err != nil {
fmt.Println(err) fmt.Println(err)
} }
logkit.Info("生成结束...") logkit.Info("生成结束...")

@ -36,6 +36,47 @@ func ReqGetHighOptLossList(receiveFlag string) map[string]*HighOptLoss {
data := gjson.Get(resp.String(), "list").Array() data := gjson.Get(resp.String(), "list").Array()
m := make(map[string]*HighOptLoss) m := make(map[string]*HighOptLoss)
for _, v := range data { for _, v := range data {
if v.Get("onuGreatLightDecline").String() == "否" {
//小光衰不处理
continue
}
if m[v.Get("DEAL_MAN").String()] == nil {
m[v.Get("DEAL_MAN").String()] = &HighOptLoss{}
}
m[v.Get("DEAL_MAN").String()].Count++
duration := v.Get("TIMELONGS").Int()
if duration >= 604800 {
m[v.Get("DEAL_MAN").String()].DurationOverSeven++
}
if duration >= 1296000 {
m[v.Get("DEAL_MAN").String()].DurationOverFifteen++
}
if v.Get("BOOK_TIME").String() != "" {
m[v.Get("DEAL_MAN").String()].Book++
}
}
return m
}
func ReqGetHighOptLossSmallList(receiveFlag string) map[string]*HighOptLoss {
h := model.NewHeader()
header := h.GenReqParam()
f := model.NewGetHighOptLossList(receiveFlag)
form := f.GenReqParam()
client := resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second)
resp, err := client.R().
SetHeaders(header).SetFormData(form).Post("http://132.151.160.87:10010/wms-zj/gShuaiReply/gshuaiOrderReplyListAjax.do")
if err != nil {
panic(exception.New(err.Error()))
}
//handle光衰数据
data := gjson.Get(resp.String(), "list").Array()
m := make(map[string]*HighOptLoss)
for _, v := range data {
if v.Get("onuGreatLightDecline").String() == "是" {
//大光衰不处理
continue
}
if m[v.Get("DEAL_MAN").String()] == nil { if m[v.Get("DEAL_MAN").String()] == nil {
m[v.Get("DEAL_MAN").String()] = &HighOptLoss{} m[v.Get("DEAL_MAN").String()] = &HighOptLoss{}
} }

Loading…
Cancel
Save