package wm import ( "LAPP_ACURA_MOM_BACKEND/grmi" "encoding/json" "fmt" "time" ) var WM_AUTH_CHECK = WM_AUTH_CHECK_ON // 权限开关 const ( // work area 关联类型 WORK_AREA_TYPE_WARE_HOUSE = "WARE_HOUSE" WORK_AREA_TYPE_STORAGE_AREA = "STORAGE_AREA" WORK_AREA_TYPE_STORAGE_BIN = "STORAGE_BIN" WORK_AREA_TYPE_STORAGE_RACK = "STORAGE_RACK" // 盘点单status CHECK_STATUS_ON = 0 CHECK_STATUS_Accomplish = 1 // 库位状态 BIN_STAUTS_CHECK = "CK" // 盘点中 BIN_STATUS_LOCK = "LK" // 锁定中 BIN_STATUS_ON = "ON" // 开启中 // 盘点结果 CHECK_RESULT_MORE = "MORE" CHECK_RESULT_EQUAL = "EQUAL" CHECK_RESULT_LESS = "LESS" // 补库单状态 REPLENISH_ORDER_STATUS_ON = 0 REPLENISH_ORDER_STATUS_ACCOMPLISH = 1 WM_AUTH_CHECK_ON = 0 //开启 WM_AUTH_CHECK_OFF = 1 //关闭 ) type WorkAreaCheck struct { StorageBinIdList []string WarehouseIdList []string StorageAreaIdList []string StorageRackIdList []string } func init() { //GoodsReceiptHead_StructToJson() //Article_StructToJson() //GoodsIssueHead_StructToJson() //StockTransferHead_StructToJson() } //wm用户权限检测 func WM_Check(workAreaCheck WorkAreaCheck, workAreaList []*WorkArea) error { fmt.Println(workAreaCheck) fmt.Println(workAreaList) isPass := false for _, entity := range workAreaList { switch entity.WorkAreaType { case WORK_AREA_TYPE_WARE_HOUSE: fmt.Println("WORK_AREA_TYPE_WARE_HOUSE") for _, houseId := range workAreaCheck.WarehouseIdList { if entity.RelevanceId == houseId { isPass = true } } case WORK_AREA_TYPE_STORAGE_AREA: fmt.Println("WORK_AREA_TYPE_STORAGE_AREA") isPass1, isPass2 := false, false for _, houseId := range workAreaCheck.WarehouseIdList { if entity.RelevanceId == houseId { isPass1 = true } } for _, areaId := range workAreaCheck.StorageAreaIdList { if entity.WACtrlPara3 == areaId { isPass2 = true } } if isPass2 && isPass1 { isPass = true } case WORK_AREA_TYPE_STORAGE_RACK: fmt.Println("WORK_AREA_TYPE_STORAGE_RACK") isPass1, isPass2 := false, false for _, houseId := range workAreaCheck.WarehouseIdList { if entity.RelevanceId == houseId { isPass1 = true } } for _, areaId := range workAreaCheck.StorageRackIdList { if entity.WACtrlPara3 == areaId { isPass2 = true } } if isPass2 && isPass1 { isPass = true } default: return grmi.NewBusinessError("不支持的类型") } } if !isPass { return grmi.NewBusinessError("用户权限不足!") } return nil } func Article_StructToJson() { Article := Article{ ArtId: "1", Descr1: "1", Descr2: "1", ArtType: "1", ProjectId: "1", Uom: "1", Weight: 1, WeightUom: "1", Length: 1, Width: 1, Height: 1, SizeUom: "1", Fragile: false, Icon: "1", DisplayColor: "1", Document: "1", LotSize: 1, ABCClass: "1", } ToJson(Article) } func GoodsReceiptHead_StructToJson() { date := grmi.Date((time.Now())) datetime := grmi.DateTime((time.Now())) grh := GoodsReceiptHead{ RefOrderId: "1", GRWarehouseId: "1", Remark: "1", DemandDate: date, RegisterDate: date, Status: "0", SupplierId: "1", SupplierName: "1", GRType: "1", GRType1: "1", GRType2: "1", GRReason: "1", OrderedQty: 2, DeliveredQty: 2, Applicant: "1", Department: "1", ApplyTime: datetime, } var grd []GoodsReceiptDetail grd1 := GoodsReceiptDetail{ ArtId: "1", ArtName: "1", ArtType: "1", Remark: "1", Auditor: "1", AuditTime: datetime, AuditStatus: "1", BatchId: "1", OrderedQty: 1, OrderType: "1", DeliveredQty: 1, QtyUom: "1", UnitPrice: 1, TotalPrice: 1, Currency: "1", InspectToggle: true, InspectPlanId: "1", InspectStatus: "1", } grd2 := GoodsReceiptDetail{ ArtId: "1", ArtName: "1", ArtType: "1", Remark: "1", Auditor: "1", AuditTime: datetime, AuditStatus: "1", BatchId: "1", OrderedQty: 1, OrderType: "1", DeliveredQty: 1, QtyUom: "1", UnitPrice: 1, TotalPrice: 1, Currency: "1", InspectToggle: true, InspectPlanId: "1", InspectStatus: "1", } var grl []GoodsReceiptLst grl1 := GoodsReceiptLst{ WarehouseId: "1", StorageAreaId: "1", StorageBinId: "1", StorageRackId: "1", Qty: 1, } grl2 := GoodsReceiptLst{ WarehouseId: "1", StorageAreaId: "1", StorageBinId: "1", StorageRackId: "1", Qty: 1, } grl = append(grl, grl1) grl = append(grl, grl2) grd1.GoodsReceiptLst = grl grd = append(grd, grd1) grd = append(grd, grd2) grh.GoodsReceiptDetail = grd ToJson(grh) } func StockTransferHead_StructToJson() { date := grmi.Date((time.Now())) datetime := grmi.DateTime((time.Now())) grh := StockTransferHead{ RefOrderId: "1", WarehouseId: "1", TargetWarehouseId: "1", Remark: "1", DemandDate: date, RegisterDate: date, Status: "1", STType: "1", STType1: "1", STType2: "1", STReason: "1", OrderedQty: 1, DeliveredQty: 1, Applicant: "1", Department: "1", ApplyTime: datetime, } var grd []StockTransferDetail grd1 := StockTransferDetail{ ArtId: "1", ArtName: "1", ArtType: "1", Remark: "1", Auditor: "1", AuditTime: datetime, AuditStatus: "1", BatchId: "1", OrderedQty: 1, OrderType: "1", DeliveredQty: 1, QtyUom: "1", UnitPrice: 1, TotalPrice: 1, Currency: "1", InspectToggle: true, InspectPlanId: "1", InspectStatus: "1", StorageBinId: "1", StorageAreaId: "1", WarehouseId: "1", TargetStorageBinId: "2", TargetStorageAreaId: "2", TargetWarehouseId: "2", StorageRackId: "1", TargetStorageRackId: "2", } //grd2 := StockTransferDetail{ // ArtId :"1", // ArtName :"1", // ArtType :"1", // Remark :"1", // Auditor :"1", // AuditTime :datetime, // AuditStatus :"1", // BatchId :"1", // OrderedQty : 1, // OrderType :"1", // DeliveredQty : 1, // QtyUom :"1", // UnitPrice : 1, // TotalPrice : 1, // Currency :"1", // InspectToggle :true, // InspectPlanId :"1", // InspectStatus :"1", // StorageBinId :"1", // StorageAreaId :"1", // WarehouseId :"1", // TargetStorageBinId :"2", // TargetStorageAreaId :"2", // TargetWarehouseId : "2", // StorageRackId : "1", // TargetStorageRackId : "2", //} grd = append(grd, grd1) //grd = append(grd, grd2) grh.StockTransferDetail = grd ToJson(grh) } func GoodsIssueHead_StructToJson() { date := grmi.Date((time.Now())) datetime := grmi.DateTime((time.Now())) grh := GoodsIssueHead{ GoodsIssueId: "1", RefOrderId: "1", CustOrderId: "1", Destination: "1", Remark: "1", DeliveryDate: date, Status: "1", GIType: "1", GIType1: "1", GIType2: "1", GIReason: "1", Priority: 1, CostCenterId: "1", BookingKey: "1", } var grd []GoodsIssueDetail grd1 := GoodsIssueDetail{ GoodsIssueId: "1", GIPos: 1, Remark: "1", ArtId: "1", ArtName: "1", ArtType: "1", RequiredQty: 1, RequestType: "1", ReservedQty: 1, ActualQty: 1, OrderQty: 1, DeliveryDate: date, InspectToggle: true, InspectPlanId: "1", InspectStatus: "1", Auditor: "1", AuditTime: datetime, AuditStatus: "1", BatchId: "1", } grd2 := GoodsIssueDetail{ GoodsIssueId: "1", GIPos: 1, Remark: "1", ArtId: "1", ArtName: "1", ArtType: "1", RequiredQty: 1, RequestType: "1", ReservedQty: 1, ActualQty: 1, OrderQty: 1, DeliveryDate: date, InspectToggle: true, InspectPlanId: "1", InspectStatus: "1", Auditor: "1", AuditTime: datetime, AuditStatus: "1", BatchId: "1", } var grl []GoodsIssueLst grl1 := GoodsIssueLst{ WarehouseId: "1", StorageAreaId: "1", StorageBinId: "1", StorageRackId: "1", Qty: 1, } grl2 := GoodsIssueLst{ WarehouseId: "1", StorageAreaId: "1", StorageBinId: "1", StorageRackId: "1", Qty: 1, } grl = append(grl, grl1) grl = append(grl, grl2) grd1.GoodsIssueLst = grl grd = append(grd, grd1) grd = append(grd, grd2) grh.GoodsIssueDetail = grd ToJson(grh) } func ToJson(j interface{}) { jsonBytes, err := json.Marshal(j) if err != nil { fmt.Println(err) } fmt.Println(string(jsonBytes)) }