From e1ec7e077a10938ce795c766915c5c5673dcf282 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 20 三月 2024 19:08:10 +0800
Subject: [PATCH] crm发货申请补充发货单号
---
service/code.go | 56 ++++++++++++++++++++++++++++
service/operation.go | 10 ++++
2 files changed, 65 insertions(+), 1 deletions(-)
diff --git a/service/code.go b/service/code.go
new file mode 100644
index 0000000..bb17a77
--- /dev/null
+++ b/service/code.go
@@ -0,0 +1,56 @@
+package service
+
+import (
+ "context"
+ "errors"
+ "wms/constvar"
+ "wms/models"
+ "wms/pkg/logx"
+ "wms/proto/code"
+ "wms/proto/init_client"
+)
+
+func GetAutoCode(codeType constvar.CodeStandardType) (autoCode string, codeStandard *code.CodeStandard, maxAutoIncr int, err error) {
+ client := code.NewCodeServiceClient(init_client.ApsConn)
+ list, err := client.GetCodeList(context.Background(), &code.GetCodeListRequest{
+ Page: 1,
+ PageSize: 1,
+ Type: string(codeType),
+ })
+ if err != nil {
+ logx.Errorf("rpc GetCodeList err: %v", err.Error())
+ return
+ }
+
+ if len(list.List) == 0 {
+ logx.Errorf("rpc GetCodeList err: %v", err.Error())
+ err = errors.New("娌℃湁鎵惧埌缂栫爜瑙勮寖")
+ return
+ }
+
+ codeStandard = list.List[0]
+ switch codeType {
+ case constvar.CodeStandardType_Material:
+ maxAutoIncr, err = models.NewMaterialSearch().MaxAutoIncr()
+ case constvar.CodeStandardType_Incoming:
+ maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeIncoming).MaxAutoIncr()
+ case constvar.CodeStandardType_Outgoing:
+ maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeOutgoing).MaxAutoIncr()
+ case constvar.CodeStandardType_Internal:
+ maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeInternal).MaxAutoIncr()
+ case constvar.CodeStandardType_Disuse:
+ maxAutoIncr, err = models.NewOperationSearch().SetBaseOperationType(constvar.BaseOperationTypeDisuse).MaxAutoIncr()
+ default:
+ err = errors.New("缂栫爜瑙勫垯涓嶅瓨鍦�")
+ return
+ }
+
+ if err != nil {
+ err = errors.New("缂栫爜瑙勫垯涓嶅瓨鍦�")
+ return
+ }
+
+ autoCode = models.GetAutoCode(maxAutoIncr, codeStandard)
+ maxAutoIncr = maxAutoIncr + 1
+ return
+}
diff --git a/service/operation.go b/service/operation.go
index e0456d4..dd5a9ea 100644
--- a/service/operation.go
+++ b/service/operation.go
@@ -30,6 +30,12 @@
if err != nil {
return err
}
+
+ autoCode, codeStandard, maxAutoIncr, err := GetAutoCode(constvar.CodeStandardType_Outgoing)
+ if err != nil {
+ return err
+ }
+
opTypeMap := make(map[int]*models.OperationType, len(opTypes))
for _, opType := range opTypes {
opTypeMap[opType.WarehouseId] = opType
@@ -50,7 +56,7 @@
}
operation := &models.Operation{
Id: 0,
- Number: "",
+ Number: autoCode,
SourceNumber: output.SourceNumber,
OperationTypeId: opTypeMap[output.WarehouseID].Id,
OperationTypeName: opTypeMap[output.WarehouseID].Name,
@@ -72,6 +78,8 @@
LocationID: output.LocationID,
}
operations = append(operations, operation)
+ autoCode = models.GetAutoCode(maxAutoIncr, codeStandard)
+ maxAutoIncr++
}
return models.NewOperationSearch().CreateBatch(operations)
--
Gitblit v1.8.0