From c30f372cd4ba1232345ef54404041643c4d473e7 Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Mon, 22 May 2023 15:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20staffUID=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/approval/approval.pb.go | 48 ++++++++++++++++++------------------- api/approval/approval.proto | 12 +++++----- pkg/model/approval.go | 22 +++++++++++++++++ pkg/model/approval_oa.go | 26 ++++++++++++++------ pkg/service/approval.go | 6 +++++ 5 files changed, 77 insertions(+), 37 deletions(-) diff --git a/api/approval/approval.pb.go b/api/approval/approval.pb.go index fddcebc..94ec6a6 100644 --- a/api/approval/approval.pb.go +++ b/api/approval/approval.pb.go @@ -4141,7 +4141,7 @@ type OutWorkApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4197,11 +4197,11 @@ func (x *OutWorkApply) GetUUID() string { return "" } -func (x *OutWorkApply) GetStaffUID() string { +func (x *OutWorkApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *OutWorkApply) GetStaffNum() string { @@ -4308,7 +4308,7 @@ type MakeUpApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4361,11 +4361,11 @@ func (x *MakeUpApply) GetUUID() string { return "" } -func (x *MakeUpApply) GetStaffUID() string { +func (x *MakeUpApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *MakeUpApply) GetStaffNum() string { @@ -4451,7 +4451,7 @@ type TurnoverApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4459,7 +4459,7 @@ type TurnoverApply struct { ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` - HandoverUID string `protobuf:"bytes,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` + HandoverUID uint64 `protobuf:"varint,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` @@ -4506,11 +4506,11 @@ func (x *TurnoverApply) GetUUID() string { return "" } -func (x *TurnoverApply) GetStaffUID() string { +func (x *TurnoverApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *TurnoverApply) GetStaffNum() string { @@ -4562,11 +4562,11 @@ func (x *TurnoverApply) GetStatus() int32 { return 0 } -func (x *TurnoverApply) GetHandoverUID() string { +func (x *TurnoverApply) GetHandoverUID() uint64 { if x != nil { return x.HandoverUID } - return "" + return 0 } func (x *TurnoverApply) GetHandoverName() string { @@ -4610,7 +4610,7 @@ type OverTimeApply struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4664,11 +4664,11 @@ func (x *OverTimeApply) GetUUID() string { return "" } -func (x *OverTimeApply) GetStaffUID() string { +func (x *OverTimeApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *OverTimeApply) GetStaffNum() string { @@ -4761,7 +4761,7 @@ type Leave struct { unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - StaffUID string `protobuf:"bytes,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` + StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` @@ -4816,11 +4816,11 @@ func (x *Leave) GetUUID() string { return "" } -func (x *Leave) GetStaffUID() string { +func (x *Leave) GetStaffUID() uint64 { if x != nil { return x.StaffUID } - return "" + return 0 } func (x *Leave) GetStaffNum() string { @@ -6046,7 +6046,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, @@ -6080,7 +6080,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, @@ -6110,7 +6110,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, + 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, @@ -6125,7 +6125,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, @@ -6143,7 +6143,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, @@ -6173,7 +6173,7 @@ var file_api_approval_approval_proto_rawDesc = []byte{ 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, diff --git a/api/approval/approval.proto b/api/approval/approval.proto index 51160b9..c0242dd 100644 --- a/api/approval/approval.proto +++ b/api/approval/approval.proto @@ -468,7 +468,7 @@ message LeaveApply { message OutWorkApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -487,7 +487,7 @@ message OutWorkApply { message MakeUpApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -503,7 +503,7 @@ message MakeUpApply { message TurnoverApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -511,7 +511,7 @@ message TurnoverApply { string ActionTime = 7 [json_name = "actionTime"]; string ApprovalID = 8 [json_name = "approvalID"]; int32 Status = 9 [json_name = "status"]; - string HandoverUID = 10 [json_name = "handoverUID"]; + uint64 HandoverUID = 10 [json_name = "handoverUID"]; string HandoverName = 11 [json_name = "handoverName"]; repeated ApplyTime ApplyTimes = 12 [json_name = "applyTimes"]; string Reason = 13 [json_name = "reason"]; @@ -521,7 +521,7 @@ message TurnoverApply { message OverTimeApply { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; @@ -538,7 +538,7 @@ message OverTimeApply { message Leave { string UUID = 1 [json_name = "UUID"]; - string StaffUID = 2 [json_name = "staffUID"]; + uint64 StaffUID = 2 [json_name = "staffUID"]; string StaffNum = 3 [json_name = "staffNum"]; string StaffName = 4 [json_name = "staffName"]; string DepartmentUID = 5 [json_name = "departmentUID"]; diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 74c9db8..441a970 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -77,6 +77,8 @@ const ( TypeOa = "oa" // oa 父类 + TypeMakeUp = "makeUp" + TypeFinancialForm = "financialFormApply" ) const ( @@ -208,6 +210,26 @@ func ExistLeaveApplyApproval(in *approval.CreateRequest) bool { return false } +func CheckMakeUpApplyApproval(in *approval.CreateRequest) bool { + var count int64 + + // 校验 规则 + // 一年一次 多次 一次 + subQuery1 := DB.Model(&Approval{}).Where(&Approval{SubmitterID: in.SubmitterID, Type: in.Type}). + Where("status in (?)", []uint64{StatusDoing, StatusOk}) + + subQuery1.Where(" `type` = ? ", in.Type) + + subQuery1.Select("id") + + DB.Model(&ApprovalOA{}).Where("approval_id in (?)", subQuery1).Count(&count) + + if count >= 2 { + return true + } + return false +} + func StoreApproval(in *approval.CreateRequest) (*Approval, error) { var entity *Approval diff --git a/pkg/model/approval_oa.go b/pkg/model/approval_oa.go index 9bae1ca..3b3ad2d 100644 --- a/pkg/model/approval_oa.go +++ b/pkg/model/approval_oa.go @@ -31,7 +31,7 @@ type ApprovalOA struct { // 假期额度申请 type LeaveApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -61,7 +61,7 @@ func (la LeaveApply) Value() (driver.Value, error) { // 外勤申请 type OutWorkApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -93,7 +93,7 @@ func (owa OutWorkApply) Value() (driver.Value, error) { // 补卡申请 type MakeUpApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -122,14 +122,14 @@ func (mua MakeUpApply) Value() (driver.Value, error) { // 离职申请 type TurnoverApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID ApplyType string `json:"applyType" gorm:"column:apply_type;type:varchar(255);comment:审批|请假类型"` ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"` Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"` - HandoverUID string `json:"handoverUID" gorm:"column:handover_uid;type:varchar(255);comment:交接人"` + HandoverUID uint64 `json:"handoverUID" gorm:"column:handover_uid;type:int;comment:交接人"` HandoverName string `json:"handoverName" gorm:"column:handover_name;type:varchar(255);comment:交接人姓名"` ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"` ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"` @@ -153,7 +153,7 @@ func (ta TurnoverApply) Value() (driver.Value, error) { // 加班申请 type OverTimeApply struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -183,7 +183,7 @@ func (ota OverTimeApply) Value() (driver.Value, error) { // 请假 type Leave struct { UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"` - StaffUID string `json:"staffUID" gorm:"column:staff_uid;type:varchar(255);comment:员工UID"` // 员工UID + StaffUID uint64 `json:"staffUID" gorm:"column:staff_uid;type:int;comment:员工UID"` // 员工UID StaffNum string `json:"staffNum" gorm:"column:staff_num;type:varchar(255);comment:员工编号"` // 员工编号 StaffName string `json:"staffName" gorm:"column:staff_name;type:varchar(255);comment:员工姓名"` // 员工姓名 DepartmentUID string `json:"departmentUID" gorm:"column:department_uid;type:text;comment:部门UID"` // 部门UID @@ -353,6 +353,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { } approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Leave.Status = int32(a.Status) + approvalOA.Leave.StaffUID = a.SubmitterID + approvalOA.Leave.StaffName = a.SubmitterName case "makeUp": copier.CopyWithOption(&approvalOA.MakeUp.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -361,6 +363,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.MakeUp.ApplyType = a.Type approvalOA.MakeUp.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.MakeUp.Status = int32(a.Status) + approvalOA.MakeUp.StaffUID = a.SubmitterID + approvalOA.MakeUp.StaffName = a.SubmitterName case "overTime": copier.CopyWithOption(&approvalOA.OverTime.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -369,6 +373,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OverTime.ApplyType = a.Type approvalOA.OverTime.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OverTime.Status = int32(a.Status) + approvalOA.OverTime.StaffUID = a.SubmitterID + approvalOA.OverTime.StaffName = a.SubmitterName case "outWork": copier.CopyWithOption(&approvalOA.OutWork.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -377,6 +383,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.OutWork.ApplyType = a.Type approvalOA.OutWork.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.OutWork.Status = int32(a.Status) + approvalOA.OutWork.StaffUID = a.SubmitterID + approvalOA.OutWork.StaffName = a.SubmitterName case "turnover": copier.CopyWithOption(&approvalOA.Turnover.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -385,6 +393,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.Turnover.ApplyType = a.Type approvalOA.Turnover.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.Turnover.Status = int32(a.Status) + approvalOA.Turnover.StaffUID = a.SubmitterID + approvalOA.Turnover.StaffName = a.SubmitterName case "leaveApply": copier.CopyWithOption(&approvalOA.LeaveApply.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true}) @@ -393,6 +403,8 @@ func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error { approvalOA.LeaveApply.ApplyType = a.Type approvalOA.LeaveApply.ApprovalID = strconv.FormatUint(a.ID, 10) approvalOA.LeaveApply.Status = int32(a.Status) + approvalOA.LeaveApply.StaffUID = a.SubmitterID + approvalOA.LeaveApply.StaffName = a.SubmitterName default: return errors.New("未找到相关审批类型") diff --git a/pkg/service/approval.go b/pkg/service/approval.go index b4074c7..ff8cdda 100644 --- a/pkg/service/approval.go +++ b/pkg/service/approval.go @@ -36,6 +36,12 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateReques } } + if in.Type == model.TypeMakeUp { + if model.CheckMakeUpApplyApproval(in) == true { + return response, errors.New(m.ErrorOnce) + } + } + entity, err := model.StoreApproval(in) if err != nil { return response, err