main
Leo 1 year ago
parent 58c910367d
commit b5b3e36b47

@ -28,7 +28,7 @@ var engSysCmd = &cobra.Command{
}
func run(c *config.Config) {
j, _ := filekit.ReadString("test1.json")
j, _ := filekit.ReadString("s.json")
data := gjson.Get(j, "data").Array()
for _, v := range data {
name := v.Get("name").String()
@ -36,8 +36,8 @@ func run(c *config.Config) {
if name == c.Step && process == c.Process {
logkit.Info("***现在开始处理***:" + gjson.Get(v.String(), "tasktitle").String())
_ = commonkit.RecoverFuncWrapper(func() {
service.ReqAccConfirm(v.Get("processInstanceId").String(), v.Get("id").String())
//service.ReqWithdrawAssign(v.Get("processInstanceId").String())
//service.ReqAccConfirm(v.Get("processInstanceId").String(), v.Get("id").String())
service.ReqWithdrawAssign(v.Get("processInstanceId").String())
//service.ReqAccDelivery(v.Get("processInstanceId").String(), v.Get("id").String())
})
time.Sleep(1 * time.Second)

@ -145,7 +145,7 @@ func runIOM2(s1, s2 string) {
//对于每个室进行处理
for _, shi := range treeShi {
if gjson.Get(shi.String(), "standardAddrId").String() != s2 {
logkit.Info("@@@" + gjson.Get(shi.String(), "standardAddrId").String() + "修改失败,地址未找到..." + "@@@")
//logkit.Info("@@@" + gjson.Get(shi.String(), "standardAddrId").String() + "修改失败,地址未找到..." + "@@@")
continue
}
m := shi.Map()

@ -0,0 +1,107 @@
package cmd
import (
"github.com/go-resty/resty/v2"
"github.com/mizuki1412/go-core-kit/class/exception"
"github.com/mizuki1412/go-core-kit/init/initkit"
"github.com/mizuki1412/go-core-kit/service/configkit"
"github.com/mizuki1412/go-core-kit/service/logkit"
"github.com/spf13/cast"
"github.com/spf13/cobra"
"github.com/tidwall/gjson"
"net/url"
"strings"
"time"
)
//法治在沃
func init() {
rootCmd.AddCommand(lawCmd)
defFlagsLaw(lawCmd)
}
var lawCmd = &cobra.Command{
Use: "law",
Short: "Batch processing operations of the law platform",
Run: func(cmd *cobra.Command, args []string) {
initkit.BindFlags(cmd)
handle()
},
}
func defFlagsLaw(cmd *cobra.Command) {
cmd.Flags().String("cookie", "", "*Specify the cookie")
}
var lawClient = resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second)
func handle() {
resp, err := lawClient.R().
SetHeaders(map[string]string{
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetFormData(map[string]string{
"pid": "0",
}).Post("http://lawplatform.unicom.local/law/tpubTreeMenu/getMenuByRole.do")
if err != nil || resp.IsError() || gjson.Get(resp.String(), "ok").Bool() != true {
panic(exception.New("获取菜单失败"))
}
data := gjson.Get(resp.String(), "data.menuList").Array()
for _, v := range data {
for _, vv := range gjson.Get(v.String(), "chirlds").Array() {
for _, vvv := range gjson.Get(vv.String(), "chirlds").Array() {
rawURL := gjson.Get(vvv.String(), "tpubTreeMenuUrl").String()
resp, err = lawClient.R().
SetHeaders(map[string]string{
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetFormData(map[string]string{
"page": "1",
"pageSize": "1000",
}).Post(getUrl(rawURL))
if err != nil || resp.IsError() || resp.StatusCode() != 200 {
panic(exception.New("获取文章列表失败"))
}
articleData := gjson.Get(resp.String(), "data").Array()
for _, a := range articleData {
infoId := gjson.Get(a.String(), "infoId").String()
creatorTime := gjson.Get(a.String(), "creatorTime").String()
//TODO 以后每年修改这个
if !strings.Contains(creatorTime, "2024") {
logkit.Info("非2024文章跳过...")
continue
}
resp, err = lawClient.R().
SetHeaders(map[string]string{
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetFormData(map[string]string{
"infoId": infoId,
}).Post("http://lawplatform.unicom.local/law/tpfLike/toLike.do")
if err != nil || resp.IsError() || resp.StatusCode() != 200 {
panic(exception.New("点赞失败"))
} else {
time.Sleep(1 * time.Second)
logkit.Info("点赞成功~")
}
}
}
}
}
}
func getUrl(rawURL string) string {
// 解析 URL
u, err := url.Parse(rawURL)
if err != nil {
panic(exception.New("解析URL失败"))
}
// 提取查询参数
queryParams := u.Query()
// 获取 pftype 的值
pfType := queryParams.Get("pftype")
uri := "http://lawplatform.unicom.local/law/tpfInfoQuery/findPfInfoList.do?pftype=" + pfType + "&pfsortLevel=3&cache_id=" + cast.ToString(time.Now().UnixMilli())
return uri
}

@ -0,0 +1,195 @@
package cmd
import (
"github.com/go-resty/resty/v2"
"github.com/mizuki1412/go-core-kit/class/exception"
"github.com/mizuki1412/go-core-kit/init/initkit"
"github.com/mizuki1412/go-core-kit/service/configkit"
"github.com/mizuki1412/go-core-kit/service/logkit"
"github.com/spf13/cast"
"github.com/spf13/cobra"
"github.com/tidwall/gjson"
"github.com/xuri/excelize/v2"
"strconv"
"strings"
"time"
)
func init() {
rootCmd.AddCommand(supplyCmd)
defFlagsSupply(supplyCmd)
}
var supplyCmd = &cobra.Command{
Use: "supply",
Short: "Batch processing operations of the supply",
Run: func(cmd *cobra.Command, args []string) {
initkit.BindFlags(cmd)
handleList()
genExcelFile()
},
}
func defFlagsSupply(cmd *cobra.Command) {
cmd.Flags().String("authorization", "", "*Specify the authorization")
cmd.Flags().String("cookie", "", "*Specify the cookie")
}
var supplyClient = resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second)
var exchangeArr []*exchange
type exchange struct {
changeNo string
inProject string
outProject string
goodsName string
unit string
productsNums int
realPrice float64
remainderRealAmount float64
inOut string
note string
}
// 获取调拨列表信息
func handleList() {
//supplyClient := resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second)
resp, err := supplyClient.R().
SetHeaders(map[string]string{
"Authorization": "Bearer " + cast.ToString(configkit.Get("authorization", "")),
"Content-Type": "application/json;charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetBody(map[string]string{
"beginTime": "2024-01-01 0:00:00",
"endTime": "2024-10-10 00:00:00",
"pageNum": "1",
"pageSize": "1000",
"type": "out",
}).Post("https://inneruscm.chinaunicom.cn:10003/api/biz-service-order/outer/v1.0/bizChange/findChangeOrderForPage")
if err != nil || resp.IsError() || gjson.Get(resp.String(), "success").Bool() != true {
panic(exception.New("获取调拨(调出)列表失败"))
}
data := gjson.Get(resp.String(), "data.records").Array()
for _, v := range data {
outProject := v.Get("outProject").String()
inProject := v.Get("inProject").String()
if strings.Contains(outProject, "西湖宽带") || strings.Contains(outProject, "西湖公众") || strings.Contains(outProject, "西湖区公众") || strings.Contains(outProject, "西湖商务") {
if strings.Contains(inProject, "西湖宽带") || strings.Contains(inProject, "西湖公众") || strings.Contains(inProject, "西湖区公众") || strings.Contains(inProject, "西湖商务") {
continue
}
}
if strings.Contains(outProject, "西湖零星") || strings.Contains(inProject, "西湖零星") {
continue
}
id := v.Get("id").String()
changeNo := v.Get("changeNo").String()
note := v.Get("note").String()
getDetail(id, "out", changeNo, inProject, outProject, note)
}
resp, err = supplyClient.R().
SetHeaders(map[string]string{
"Authorization": "Bearer " + cast.ToString(configkit.Get("authorization", "")),
"Content-Type": "application/json;charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetBody(map[string]string{
"beginTime": "2024-01-01 0:00:00",
"endTime": "2024-10-10 00:00:00",
"pageNum": "1",
"pageSize": "1000",
"type": "in",
}).Post("https://inneruscm.chinaunicom.cn:10003/api/biz-service-order/outer/v1.0/bizChange/findChangeOrderForPage")
if err != nil || resp.IsError() || gjson.Get(resp.String(), "success").Bool() != true {
panic(exception.New("获取调拨(调入)列表失败"))
}
data = gjson.Get(resp.String(), "data.records").Array()
for _, v := range data {
outProject := v.Get("outProject").String()
inProject := v.Get("inProject").String()
if strings.Contains(outProject, "西湖宽带") || strings.Contains(outProject, "西湖公众") || strings.Contains(outProject, "西湖区公众") || strings.Contains(outProject, "西湖商务") {
if strings.Contains(inProject, "西湖宽带") || strings.Contains(inProject, "西湖公众") || strings.Contains(inProject, "西湖区公众") || strings.Contains(inProject, "西湖商务") {
continue
}
}
if strings.Contains(outProject, "西湖零星") || strings.Contains(inProject, "西湖零星") {
continue
}
id := v.Get("id").String()
changeNo := v.Get("changeNo").String()
note := v.Get("note").String()
getDetail(id, "in", changeNo, inProject, outProject, note)
}
}
func getDetail(id, inOut, changeNo, inProject, outProject, note string) {
resp, err := supplyClient.R().
SetHeaders(map[string]string{
"Authorization": "Bearer " + cast.ToString(configkit.Get("authorization", "")),
"Content-Type": "application/json;charset=UTF-8",
"Cookie": cast.ToString(configkit.Get("cookie", "")),
}).SetBody(map[string]string{
"id": id,
"type": inOut,
}).Post("https://inneruscm.chinaunicom.cn:10003/api/biz-service-order/outer/v1.0/bizChange/findChangeOrderDetailed")
if err != nil || resp.IsError() || gjson.Get(resp.String(), "success").Bool() != true {
panic(exception.New("获取详情失败"))
}
detailList := gjson.Get(resp.String(), "data.changeOrderProduct").Array()
for _, v := range detailList {
goodsName := v.Get("goodsName").String()
unit := v.Get("unit").String()
productsNums := v.Get("productsNums").String()
realPrice := v.Get("realPrice").String()
remainderRealAmount := v.Get("remainderRealAmount").String()
ex := new(exchange)
ex.changeNo = changeNo
ex.inProject = inProject
ex.outProject = outProject
ex.goodsName = goodsName
ex.unit = unit
ex.productsNums = cast.ToInt(productsNums)
ex.realPrice = cast.ToFloat64(realPrice)
ex.remainderRealAmount = cast.ToFloat64(remainderRealAmount)
ex.note = note
if inOut == "in" {
ex.inOut = "调入"
} else if inOut == "out" {
ex.inOut = "调出"
} else {
ex.inOut = "null"
}
exchangeArr = append(exchangeArr, ex)
}
logkit.Info("获取数据...")
}
func genExcelFile() {
f := excelize.NewFile()
// 设置表头
headers := []string{"序号", "调拨单号", "物资名称", "单位", "数量", "单价", "总价", "调出项目", "调入项目", "调入调出"}
for i, header := range headers {
cell, _ := excelize.CoordinatesToCellName(i+1, 1)
f.SetCellValue("Sheet1", cell, header)
}
// 填充数据
for i, ex := range exchangeArr {
row := i + 2 // 数据从第2行开始
f.SetCellValue("Sheet1", "A"+strconv.Itoa(row), i+1) // 序号
f.SetCellValue("Sheet1", "B"+strconv.Itoa(row), ex.changeNo) // 调拨单号
f.SetCellValue("Sheet1", "C"+strconv.Itoa(row), ex.goodsName) // 物资名称
f.SetCellValue("Sheet1", "D"+strconv.Itoa(row), ex.unit) // 单位
f.SetCellValue("Sheet1", "E"+strconv.Itoa(row), ex.productsNums) // 数量
f.SetCellValue("Sheet1", "F"+strconv.Itoa(row), ex.realPrice) // 单价
f.SetCellValue("Sheet1", "G"+strconv.Itoa(row), ex.remainderRealAmount) // 总价
f.SetCellValue("Sheet1", "H"+strconv.Itoa(row), ex.outProject) // 调出项目
f.SetCellValue("Sheet1", "I"+strconv.Itoa(row), ex.inProject) // 调入项目
f.SetCellValue("Sheet1", "J"+strconv.Itoa(row), ex.inOut)
f.SetCellValue("Sheet1", "K"+strconv.Itoa(row), ex.note) // 调入调出
}
// 保存文件
if err := f.SaveAs("/Users/leo/Documents/erp调拨.xlsx"); err != nil {
panic(exception.New("保存文件失败..."))
}
}

@ -5,7 +5,10 @@
"eng": {
"step": "YSQR",
"pro": "XQXJ",
"sid": "6c167917-915b-41e6-bb9f-5b943449a0b8"
"sid": "d6bacfb8-4d1f-45aa-ae29-56ecc43dc9af"
},
"wms": {
"token": "D6228DF68B10DC7B9FD89F30948785EA"
},
"wechat": {
"api": "",

@ -59,7 +59,7 @@ func searchAccSendList(parenProcInsId string) []RemovalInfo {
decrypt := cryptokit.Decrypt(data)
ok := gjson.Get(decrypt, "data").Array()
var removalList []RemovalInfo
seen := make(map[string]gjson.Result)
//seen := make(map[string]gjson.Result)
for _, v := range ok {
splitName := gjson.Get(v.String(), "splitName").String()
deliveryId := gjson.Get(v.String(), "deliveryId").String()
@ -67,26 +67,31 @@ func searchAccSendList(parenProcInsId string) []RemovalInfo {
if deliveryStatus == "ABANDON" {
continue
}
if existing, exists := seen[splitName]; exists {
existingStatus := gjson.Get(existing.String(), "deliveryStatus").String()
if existingStatus == "SUBMIT" && deliveryStatus == "COMPLETE" {
removalList = append(removalList, RemovalInfo{
Name: splitName,
DeliveryId: existing.Get("deliveryId").String(),
DeliveryStatus: existingStatus,
})
seen[splitName] = v
} else {
removalList = append(removalList, RemovalInfo{
Name: splitName,
DeliveryId: deliveryId,
DeliveryStatus: deliveryStatus,
})
}
} else {
seen[splitName] = v
}
//if existing, exists := seen[splitName]; exists {
// existingStatus := gjson.Get(existing.String(), "deliveryStatus").String()
//
// if existingStatus == "SUBMIT" && deliveryStatus == "COMPLETE" {
// removalList = append(removalList, RemovalInfo{
// Name: splitName,
// DeliveryId: existing.Get("deliveryId").String(),
// DeliveryStatus: existingStatus,
// })
// seen[splitName] = v
// } else {
// removalList = append(removalList, RemovalInfo{
// Name: splitName,
// DeliveryId: deliveryId,
// DeliveryStatus: deliveryStatus,
// })
// }
//} else {
// seen[splitName] = v
//}
removalList = append(removalList, RemovalInfo{
Name: splitName,
DeliveryId: deliveryId,
DeliveryStatus: deliveryStatus,
})
}
return removalList

Loading…
Cancel
Save