修改冲突
This commit is contained in:
commit
044b1bf0eb
File diff suppressed because it is too large
Load Diff
@ -34,6 +34,9 @@ service Approval {
|
|||||||
|
|
||||||
// 财务报表审批
|
// 财务报表审批
|
||||||
rpc GetName(GetNameRequest) returns (GetNameResponse) {};
|
rpc GetName(GetNameRequest) returns (GetNameResponse) {};
|
||||||
|
|
||||||
|
// OA审批 更新 OA系统的 UUID
|
||||||
|
rpc UpdateApprovalOAUUID(UpdateApprovalOAUUIDReq) returns (UpdateApprovalOAUUIDResponse) {};
|
||||||
}
|
}
|
||||||
|
|
||||||
message CommonResponse {
|
message CommonResponse {
|
||||||
@ -145,6 +148,7 @@ message StatusRequest {
|
|||||||
uint64 Level = 6 [json_name = "level"];
|
uint64 Level = 6 [json_name = "level"];
|
||||||
string Title = 7 [json_name = "title"];
|
string Title = 7 [json_name = "title"];
|
||||||
uint64 UserId = 8 [json_name = "userId"];
|
uint64 UserId = 8 [json_name = "userId"];
|
||||||
|
string LeaveBalance = 9 [json_name = "leaveBalance"];
|
||||||
}
|
}
|
||||||
|
|
||||||
message StatusResponse {
|
message StatusResponse {
|
||||||
@ -300,6 +304,7 @@ message BundlePayPrice {
|
|||||||
uint64 Status = 11 [json_name = "status"];
|
uint64 Status = 11 [json_name = "status"];
|
||||||
string ArtistName = 12 [json_name = "artistName"];
|
string ArtistName = 12 [json_name = "artistName"];
|
||||||
int32 Rollback = 13 [json_name = "rollback"];
|
int32 Rollback = 13 [json_name = "rollback"];
|
||||||
|
int32 OperationTimes = 14 [json_name = "operationTimes"];
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateRequest {
|
message CreateRequest {
|
||||||
@ -331,7 +336,8 @@ message CreateRequest {
|
|||||||
string TypeName = 28 [json_name = "typeName"];
|
string TypeName = 28 [json_name = "typeName"];
|
||||||
string GroupName = 29 [json_name = "groupName"];
|
string GroupName = 29 [json_name = "groupName"];
|
||||||
BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"];
|
BundlePayPrice BundlePayPrice = 30 [json_name = "bundlePayPrice"];
|
||||||
FinancialForm FinancialForm = 31 [json_name = "financialForm"];
|
ApprovalOA ApprovalOA = 31 [json_name = "approvalOA"];
|
||||||
|
FinancialForm FinancialForm = 32 [json_name = "financialForm"];
|
||||||
}
|
}
|
||||||
|
|
||||||
message WorkFlow {
|
message WorkFlow {
|
||||||
@ -423,6 +429,142 @@ message SettingResponse {
|
|||||||
bool Success=2 [json_name = "success"];
|
bool Success=2 [json_name = "success"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// oa审批
|
||||||
|
|
||||||
|
message ApplyTime {
|
||||||
|
string Date = 1 [json_name = "date"];
|
||||||
|
string Hour = 2 [json_name = "hour"];
|
||||||
|
string M = 3 [json_name = "m"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message ApprovalOA {
|
||||||
|
uint64 ID=1 [json_name = "ID"];
|
||||||
|
uint64 DeletedAt=2 [json_name = "deletedAt"];
|
||||||
|
string CreatedAt=3 [json_name = "createdAt"];
|
||||||
|
string UpdatedAt=4 [json_name = "updatedAt"];
|
||||||
|
uint64 ApprovalID=5 [json_name = "approvalID"];
|
||||||
|
LeaveApply LeaveApply = 6 [json_name = "leaveApply"];
|
||||||
|
OutWorkApply OutWork = 7 [json_name = "outWork"];
|
||||||
|
MakeUpApply MakeUp = 8 [json_name = "makeUp"];
|
||||||
|
TurnoverApply Turnover = 9 [json_name = "turnover"];
|
||||||
|
OverTimeApply OverTime = 10 [json_name = "overTime"];
|
||||||
|
Leave Leave = 11 [json_name = "leave"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message LeaveApply {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
string Reason = 10 [json_name = "reason"];
|
||||||
|
repeated string VerifyFile = 11 [json_name = "verifyFile"];
|
||||||
|
repeated CopyUser CopyUsers = 12 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 13 [json_name = "approvalUsers"];
|
||||||
|
float LeaveBalance = 14 [json_name = "leaveBalance"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message OutWorkApply {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"];
|
||||||
|
string Reason = 12 [json_name = "reason"];
|
||||||
|
float Hours = 13 [json_name = "hours"];
|
||||||
|
string OutWorkAddress = 14 [json_name = "outWorkAddress"];
|
||||||
|
string Vehicle = 15 [json_name = "vehicle"];
|
||||||
|
repeated CopyUser CopyUsers = 16 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 17 [json_name = "approvalUsers"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message MakeUpApply {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"];
|
||||||
|
string Reason = 12 [json_name = "reason"];
|
||||||
|
repeated CopyUser CopyUsers = 13 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 14 [json_name = "approvalUsers"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message TurnoverApply {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
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"];
|
||||||
|
repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message OverTimeApply {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"];
|
||||||
|
string Reason = 12 [json_name = "reason"];
|
||||||
|
float Hours = 13 [json_name = "hours"];
|
||||||
|
repeated CopyUser CopyUsers = 14 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 15 [json_name = "approvalUsers"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message Leave {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
uint64 StaffUID = 2 [json_name = "staffUID"];
|
||||||
|
string StaffNum = 3 [json_name = "staffNum"];
|
||||||
|
string StaffName = 4 [json_name = "staffName"];
|
||||||
|
string DepartmentUID = 5 [json_name = "departmentUID"];
|
||||||
|
string ApplyType = 6 [json_name = "applyType"];
|
||||||
|
string ActionTime = 7 [json_name = "actionTime"];
|
||||||
|
string ApprovalID = 8 [json_name = "approvalID"];
|
||||||
|
int32 Status = 9 [json_name = "status"];
|
||||||
|
repeated ApplyTime ApplyTimes = 10 [json_name = "applyTimes"];
|
||||||
|
string Reason = 12 [json_name = "reason"];
|
||||||
|
float Hours = 13 [json_name = "hours"];
|
||||||
|
float Days = 14 [json_name = "days"];
|
||||||
|
repeated CopyUser CopyUsers = 15 [json_name = "copyUsers"];
|
||||||
|
repeated ApprovalUser ApprovalUsers = 16 [json_name = "approvalUsers"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message UpdateApprovalOAUUIDReq {
|
||||||
|
string UUID = 1 [json_name = "UUID"];
|
||||||
|
string ApplyType = 2 [json_name = "applyType"];
|
||||||
|
uint64 ApprovalID = 3 [json_name = "approvalID"];
|
||||||
|
}
|
||||||
|
|
||||||
|
message UpdateApprovalOAUUIDResponse {
|
||||||
|
string Msg = 1 [json_name = "msg"];
|
||||||
|
}
|
||||||
|
|
||||||
// 财务报表审批
|
// 财务报表审批
|
||||||
message GetNameRequest {
|
message GetNameRequest {
|
||||||
@ -449,6 +591,7 @@ message FinancialForm {
|
|||||||
repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"];
|
repeated InvoiceInfo InvoiceInfo = 13 [json_name = "invoiceInfo"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
message CostInfo {
|
message CostInfo {
|
||||||
string Description = 1 [json_name = "description"];
|
string Description = 1 [json_name = "description"];
|
||||||
string UnitPrice = 2 [json_name = "unitPrice"];
|
string UnitPrice = 2 [json_name = "unitPrice"];
|
||||||
|
@ -263,6 +263,11 @@ func (this *CreateRequest) Validate() error {
|
|||||||
return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err)
|
return github_com_mwitkow_go_proto_validators.FieldError("BundlePayPrice", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if this.ApprovalOA != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ApprovalOA); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalOA", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
if this.FinancialForm != nil {
|
if this.FinancialForm != nil {
|
||||||
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.FinancialForm); err != nil {
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.FinancialForm); err != nil {
|
||||||
return github_com_mwitkow_go_proto_validators.FieldError("FinancialForm", err)
|
return github_com_mwitkow_go_proto_validators.FieldError("FinancialForm", err)
|
||||||
@ -330,6 +335,185 @@ func (this *DetailSettingRequest) Validate() error {
|
|||||||
func (this *SettingResponse) Validate() error {
|
func (this *SettingResponse) Validate() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
func (this *ApplyTime) Validate() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *ApprovalOA) Validate() error {
|
||||||
|
if this.LeaveApply != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.LeaveApply); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("LeaveApply", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if this.OutWork != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OutWork); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("OutWork", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if this.MakeUp != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.MakeUp); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("MakeUp", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if this.Turnover != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Turnover); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("Turnover", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if this.OverTime != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.OverTime); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("OverTime", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if this.Leave != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Leave); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("Leave", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *LeaveApply) Validate() error {
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *OutWorkApply) Validate() error {
|
||||||
|
for _, item := range this.ApplyTimes {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *MakeUpApply) Validate() error {
|
||||||
|
for _, item := range this.ApplyTimes {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *TurnoverApply) Validate() error {
|
||||||
|
for _, item := range this.ApplyTimes {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *OverTimeApply) Validate() error {
|
||||||
|
for _, item := range this.ApplyTimes {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *Leave) Validate() error {
|
||||||
|
for _, item := range this.ApplyTimes {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApplyTimes", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.CopyUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("CopyUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, item := range this.ApprovalUsers {
|
||||||
|
if item != nil {
|
||||||
|
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
|
||||||
|
return github_com_mwitkow_go_proto_validators.FieldError("ApprovalUsers", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *UpdateApprovalOAUUIDReq) Validate() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func (this *UpdateApprovalOAUUIDResponse) Validate() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func (this *GetNameRequest) Validate() error {
|
func (this *GetNameRequest) Validate() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,8 @@ type ApprovalClient interface {
|
|||||||
AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment)
|
AllGroup(ctx context.Context, in *CommonRequest, opts ...grpc_go.CallOption) (*AllGroupResponse, common.ErrorWithAttachment)
|
||||||
// 财务报表审批
|
// 财务报表审批
|
||||||
GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment)
|
GetName(ctx context.Context, in *GetNameRequest, opts ...grpc_go.CallOption) (*GetNameResponse, common.ErrorWithAttachment)
|
||||||
|
// OA审批 更新 OA系统的 UUID
|
||||||
|
UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment)
|
||||||
}
|
}
|
||||||
|
|
||||||
type approvalClient struct {
|
type approvalClient struct {
|
||||||
@ -82,6 +84,7 @@ type ApprovalClientImpl struct {
|
|||||||
RemoveType func(ctx context.Context, in *RemoveRequest) (*StatusResponse, error)
|
RemoveType func(ctx context.Context, in *RemoveRequest) (*StatusResponse, error)
|
||||||
AllGroup func(ctx context.Context, in *CommonRequest) (*AllGroupResponse, error)
|
AllGroup func(ctx context.Context, in *CommonRequest) (*AllGroupResponse, error)
|
||||||
GetName func(ctx context.Context, in *GetNameRequest) (*GetNameResponse, error)
|
GetName func(ctx context.Context, in *GetNameRequest) (*GetNameResponse, error)
|
||||||
|
UpdateApprovalOAUUID func(ctx context.Context, in *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApprovalClientImpl) GetDubboStub(cc *triple.TripleConn) ApprovalClient {
|
func (c *ApprovalClientImpl) GetDubboStub(cc *triple.TripleConn) ApprovalClient {
|
||||||
@ -234,6 +237,12 @@ func (c *approvalClient) GetName(ctx context.Context, in *GetNameRequest, opts .
|
|||||||
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetName", in, out)
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetName", in, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *approvalClient) UpdateApprovalOAUUID(ctx context.Context, in *UpdateApprovalOAUUIDReq, opts ...grpc_go.CallOption) (*UpdateApprovalOAUUIDResponse, common.ErrorWithAttachment) {
|
||||||
|
out := new(UpdateApprovalOAUUIDResponse)
|
||||||
|
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
|
||||||
|
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateApprovalOAUUID", in, out)
|
||||||
|
}
|
||||||
|
|
||||||
// ApprovalServer is the server API for Approval service.
|
// ApprovalServer is the server API for Approval service.
|
||||||
// All implementations must embed UnimplementedApprovalServer
|
// All implementations must embed UnimplementedApprovalServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
@ -262,6 +271,8 @@ type ApprovalServer interface {
|
|||||||
AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error)
|
AllGroup(context.Context, *CommonRequest) (*AllGroupResponse, error)
|
||||||
// 财务报表审批
|
// 财务报表审批
|
||||||
GetName(context.Context, *GetNameRequest) (*GetNameResponse, error)
|
GetName(context.Context, *GetNameRequest) (*GetNameResponse, error)
|
||||||
|
// OA审批 更新 OA系统的 UUID
|
||||||
|
UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error)
|
||||||
mustEmbedUnimplementedApprovalServer()
|
mustEmbedUnimplementedApprovalServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,6 +350,9 @@ func (UnimplementedApprovalServer) AllGroup(context.Context, *CommonRequest) (*A
|
|||||||
func (UnimplementedApprovalServer) GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) {
|
func (UnimplementedApprovalServer) GetName(context.Context, *GetNameRequest) (*GetNameResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetName not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetName not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedApprovalServer) UpdateApprovalOAUUID(context.Context, *UpdateApprovalOAUUIDReq) (*UpdateApprovalOAUUIDResponse, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method UpdateApprovalOAUUID not implemented")
|
||||||
|
}
|
||||||
func (s *UnimplementedApprovalServer) XXX_SetProxyImpl(impl protocol.Invoker) {
|
func (s *UnimplementedApprovalServer) XXX_SetProxyImpl(impl protocol.Invoker) {
|
||||||
s.proxyImpl = impl
|
s.proxyImpl = impl
|
||||||
}
|
}
|
||||||
@ -1034,6 +1048,35 @@ func _Approval_GetName_Handler(srv interface{}, ctx context.Context, dec func(in
|
|||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _Approval_UpdateApprovalOAUUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(UpdateApprovalOAUUIDReq)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
base := srv.(dubbo3.Dubbo3GrpcService)
|
||||||
|
args := []interface{}{}
|
||||||
|
args = append(args, in)
|
||||||
|
md, _ := metadata.FromIncomingContext(ctx)
|
||||||
|
invAttachment := make(map[string]interface{}, len(md))
|
||||||
|
for k, v := range md {
|
||||||
|
invAttachment[k] = v
|
||||||
|
}
|
||||||
|
invo := invocation.NewRPCInvocation("UpdateApprovalOAUUID", args, invAttachment)
|
||||||
|
if interceptor == nil {
|
||||||
|
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
|
||||||
|
return result, result.Error()
|
||||||
|
}
|
||||||
|
info := &grpc_go.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
|
||||||
|
return result, result.Error()
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
// Approval_ServiceDesc is the grpc_go.ServiceDesc for Approval service.
|
// Approval_ServiceDesc is the grpc_go.ServiceDesc for Approval service.
|
||||||
// It's only intended for direct use with grpc_go.RegisterService,
|
// It's only intended for direct use with grpc_go.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
@ -1133,6 +1176,10 @@ var Approval_ServiceDesc = grpc_go.ServiceDesc{
|
|||||||
MethodName: "GetName",
|
MethodName: "GetName",
|
||||||
Handler: _Approval_GetName_Handler,
|
Handler: _Approval_GetName_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "UpdateApprovalOAUUID",
|
||||||
|
Handler: _Approval_UpdateApprovalOAUUID_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc_go.StreamDesc{},
|
Streams: []grpc_go.StreamDesc{},
|
||||||
Metadata: "api/approval/approval.proto",
|
Metadata: "api/approval/approval.proto",
|
||||||
|
@ -84,4 +84,7 @@ const (
|
|||||||
ErrNoTitle = 70013
|
ErrNoTitle = 70013
|
||||||
ErrNoUrl = 70014
|
ErrNoUrl = 70014
|
||||||
ErrNoMethod = 70015
|
ErrNoMethod = 70015
|
||||||
|
|
||||||
|
// oa
|
||||||
|
ApprovalIsNotExist = 80001
|
||||||
)
|
)
|
||||||
|
@ -63,6 +63,9 @@ var MsgFlags = map[int]string{
|
|||||||
ErrNoTitle: "缺少标题",
|
ErrNoTitle: "缺少标题",
|
||||||
ErrNoUrl: "缺少url",
|
ErrNoUrl: "缺少url",
|
||||||
ErrNoMethod: "缺少method",
|
ErrNoMethod: "缺少method",
|
||||||
|
|
||||||
|
// oa
|
||||||
|
ApprovalIsNotExist: "该审批不存在",
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMsg 获取状态码对应信息
|
// GetMsg 获取状态码对应信息
|
||||||
|
@ -23,8 +23,17 @@ const (
|
|||||||
ErrorAlreadySettingView = "已经设置过已读"
|
ErrorAlreadySettingView = "已经设置过已读"
|
||||||
ErrorWrongNum = "数量设置错误"
|
ErrorWrongNum = "数量设置错误"
|
||||||
ErrorAlreadyExist = "已经存在"
|
ErrorAlreadyExist = "已经存在"
|
||||||
|
|
||||||
|
// 更新 leaveBalance 提示信息
|
||||||
|
ErrorUpdateLeaveBalance = "更新余额错误"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ErrorOperate = "操作顺序错误"
|
ErrorOperate = "操作顺序错误"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// oa
|
||||||
|
const (
|
||||||
|
ErrorOnceAYear = "此审批类型无法在同一年重复申请"
|
||||||
|
ErrorOnce = "此审批类型已存在,无法再次申请"
|
||||||
|
)
|
||||||
|
@ -8,9 +8,11 @@ import (
|
|||||||
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
||||||
"github.com/fonchain_enterprise/fonchain-approval/pkg/common/page"
|
"github.com/fonchain_enterprise/fonchain-approval/pkg/common/page"
|
||||||
msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
|
msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
|
||||||
|
"github.com/jinzhu/copier"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
"gorm.io/plugin/soft_delete"
|
"gorm.io/plugin/soft_delete"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ type Approval struct {
|
|||||||
BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type
|
BundlePayPrice *BundlePayPrice `gorm:"foreignKey:ApprovalID" json:"BundlePayPrice"` //关联的type
|
||||||
ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type
|
ExhibitionReward *ExhibitionReward `gorm:"foreignKey:ApprovalID" json:"ExhibitionReward"` //关联的type
|
||||||
ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"`
|
ApprovalWorkFlows []*ApprovalWorkFlow `gorm:"foreignKey:ApprovalID" json:"ApprovalWorkFlows"`
|
||||||
|
ApprovalOA *ApprovalOA `gorm:"foreignKey:ApprovalID" json:"oa"`
|
||||||
FinancialForm *FinancialForm `gorm:"foreignKey:ApprovalID" json:"financialForm"`
|
FinancialForm *FinancialForm `gorm:"foreignKey:ApprovalID" json:"financialForm"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +76,12 @@ const (
|
|||||||
TypeBundle = "bundle"
|
TypeBundle = "bundle"
|
||||||
TypeBundlePayPrice = "bundlePayPrice"
|
TypeBundlePayPrice = "bundlePayPrice"
|
||||||
TypeArtExhibitionReward = "artExhibitionReward"
|
TypeArtExhibitionReward = "artExhibitionReward"
|
||||||
TypeFinancialForm = "financialFormApply"
|
|
||||||
|
TypeOa = "oa" // oa 父类
|
||||||
|
|
||||||
|
TypeMakeUp = "makeUp"
|
||||||
|
|
||||||
|
TypeFinancialForm = "financialFormApply"
|
||||||
)
|
)
|
||||||
const (
|
const (
|
||||||
StatusDoing = 1
|
StatusDoing = 1
|
||||||
@ -181,6 +189,49 @@ func ExistPayApproval(in *approval.CreateRequest) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 余额申请 校验
|
||||||
|
func ExistLeaveApplyApproval(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})
|
||||||
|
|
||||||
|
if LeaveBalanceUsefulTime[in.Type] == OnceAYear {
|
||||||
|
subQuery1.Where(" date_format(created_at,'%Y') = ?", time.Now().Format("2006"))
|
||||||
|
}
|
||||||
|
|
||||||
|
subQuery1.Select("id")
|
||||||
|
|
||||||
|
DB.Model(&ApprovalOA{}).Where("approval_id in (?)", subQuery1).Count(&count)
|
||||||
|
|
||||||
|
if count >= 1 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
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) {
|
func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
|
||||||
var entity *Approval
|
var entity *Approval
|
||||||
|
|
||||||
@ -574,7 +625,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|||||||
Preload("ApprovalType.ApprovalTypeGroup").
|
Preload("ApprovalType.ApprovalTypeGroup").
|
||||||
Preload("ApprovalWorkFlows").
|
Preload("ApprovalWorkFlows").
|
||||||
Preload("Exhibition.ApprovalExhibitions").
|
Preload("Exhibition.ApprovalExhibitions").
|
||||||
Preload("FinancialForm")
|
Preload("FinancialForm").
|
||||||
|
Preload("ApprovalOA")
|
||||||
|
|
||||||
if in.Type != "" {
|
if in.Type != "" {
|
||||||
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
||||||
@ -632,7 +684,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|||||||
Preload("ExhibitionReward.ApprovalExhibitions").
|
Preload("ExhibitionReward.ApprovalExhibitions").
|
||||||
Preload("ApprovalWorkFlows").
|
Preload("ApprovalWorkFlows").
|
||||||
Preload("Exhibition.ApprovalExhibitions").
|
Preload("Exhibition.ApprovalExhibitions").
|
||||||
Preload("FinancialForm")
|
Preload("FinancialForm").
|
||||||
|
Preload("ApprovalOA")
|
||||||
|
|
||||||
if in.Type != "" {
|
if in.Type != "" {
|
||||||
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
||||||
@ -685,13 +738,12 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|||||||
Preload("Work.ApprovalWorks").
|
Preload("Work.ApprovalWorks").
|
||||||
Preload("Bundle").
|
Preload("Bundle").
|
||||||
Preload("BundlePayPrice").
|
Preload("BundlePayPrice").
|
||||||
Preload("ApprovalWorkFlows", func(db *gorm.DB) *gorm.DB {
|
Preload("ApprovalWorkFlows").
|
||||||
return db.Order("level asc")
|
|
||||||
}).
|
|
||||||
Preload("ExhibitionReward.ApprovalExhibitions").
|
Preload("ExhibitionReward.ApprovalExhibitions").
|
||||||
Preload("ApprovalType.ApprovalTypeGroup").
|
Preload("ApprovalType.ApprovalTypeGroup").
|
||||||
Preload("Exhibition.ApprovalExhibitions").
|
Preload("Exhibition.ApprovalExhibitions").
|
||||||
Preload("FinancialForm")
|
Preload("FinancialForm").
|
||||||
|
Preload("ApprovalOA")
|
||||||
|
|
||||||
if in.Status != 0 {
|
if in.Status != 0 {
|
||||||
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
|
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
|
||||||
@ -724,7 +776,8 @@ func MyReadApprovals(in *approval.ListRequest) ([]*Approval, int64) {
|
|||||||
Preload("ExhibitionReward.ApprovalExhibitions").
|
Preload("ExhibitionReward.ApprovalExhibitions").
|
||||||
Preload("ApprovalType.ApprovalTypeGroup").
|
Preload("ApprovalType.ApprovalTypeGroup").
|
||||||
Preload("Exhibition.ApprovalExhibitions").
|
Preload("Exhibition.ApprovalExhibitions").
|
||||||
Preload("FinancialForm")
|
Preload("FinancialForm").
|
||||||
|
Preload("ApprovalOA")
|
||||||
|
|
||||||
if in.Type != "" {
|
if in.Type != "" {
|
||||||
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
modelObj = modelObj.Where(&Approval{Type: in.Type})
|
||||||
@ -796,6 +849,33 @@ func (m *Approval) operateStatus(status uint8, reply string, workFlowId uint64)
|
|||||||
return workFlow.Pass(reply)
|
return workFlow.Pass(reply)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateLeaveBalance(p *Approval, leaveBalance string) error {
|
||||||
|
if leaveBalance == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
approvalOA := new(ApprovalOA)
|
||||||
|
|
||||||
|
err := DB.Model(&ApprovalOA{}).Where("approval_id = ?", p.ID).Find(&approvalOA).Error
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
copier.CopyWithOption(&approvalOA, p.ApprovalOA, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
balance, _ := strconv.ParseFloat(leaveBalance, 10)
|
||||||
|
|
||||||
|
approvalOA.LeaveApply.LeaveBalance = float32(balance)
|
||||||
|
|
||||||
|
fmt.Println("============== 更新 余额申请 余额 ========== 开始 =========")
|
||||||
|
fmt.Printf("approval info is : %+v\n", p)
|
||||||
|
fmt.Printf("approval_oa info is : %+v\n", approvalOA)
|
||||||
|
fmt.Println("============== 更新 余额申请 余额 ========== 结束 =========")
|
||||||
|
|
||||||
|
//return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(map[string]interface{}{"leave_apply": approvalOA.LeaveApply}).Error
|
||||||
|
return DB.Model(&ApprovalOA{}).Where("id = ?", approvalOA.ID).Updates(approvalOA).Error
|
||||||
|
}
|
||||||
|
|
||||||
func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, error) {
|
func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, error) {
|
||||||
switch typeFiled {
|
switch typeFiled {
|
||||||
case TypeContent:
|
case TypeContent:
|
||||||
@ -815,6 +895,10 @@ func getApprovalContentFactory(typeFiled string) (ApprovalContentInterface, erro
|
|||||||
case TypeFinancialForm:
|
case TypeFinancialForm:
|
||||||
return &FinancialForm{}, nil
|
return &FinancialForm{}, nil
|
||||||
default:
|
default:
|
||||||
return &Approval{}, nil
|
if TypeMap[typeFiled] == TypeOa {
|
||||||
|
return &ApprovalOA{}, nil
|
||||||
|
} else {
|
||||||
|
return &Approval{}, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
493
pkg/model/approval_oa.go
Normal file
493
pkg/model/approval_oa.go
Normal file
@ -0,0 +1,493 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql/driver"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
||||||
|
m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
|
||||||
|
"github.com/jinzhu/copier"
|
||||||
|
"gorm.io/plugin/soft_delete"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ApprovalOA struct {
|
||||||
|
ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID
|
||||||
|
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
|
||||||
|
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间
|
||||||
|
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间
|
||||||
|
ApprovalID uint64 `gorm:"column:approval_id" json:"approvalID"` // 申请的id
|
||||||
|
LeaveApply *LeaveApply `json:"leaveApply" gorm:"column:leave_apply;type:json;comment:假期余额申请"`
|
||||||
|
OutWork *OutWorkApply `json:"outWork" gorm:"column:out_work;type:json;comment:外勤"`
|
||||||
|
MakeUp *MakeUpApply `json:"makeUp" gorm:"column:make_up;type:json;comment:加班"`
|
||||||
|
Turnover *TurnoverApply `json:"turnover" gorm:"column:turnover;type:json;comment:离职"`
|
||||||
|
OverTime *OverTimeApply `json:"overTime" gorm:"column:over_time;type:json;comment:加班"`
|
||||||
|
Leave *Leave `json:"leave" gorm:"column:leave;type:json;comment:请假"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LeaveApply
|
||||||
|
// 假期额度申请
|
||||||
|
type LeaveApply struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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:操作|申请时间"`
|
||||||
|
ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"`
|
||||||
|
Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"`
|
||||||
|
LeaveBalance float32 `json:"leaveBalance" gorm:"column:leave_balance;type:int;comment:假期余额"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
VerifyFile VerifyFiles `json:"verifyFile" gorm:"column:verify_file;type:json;comment:证明文件(图片|pdf)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (la *LeaveApply) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), la)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (la LeaveApply) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(la)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// OutWorkApply
|
||||||
|
// 外勤申请
|
||||||
|
type OutWorkApply struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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:操作|申请时间"`
|
||||||
|
ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"`
|
||||||
|
Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"`
|
||||||
|
OutWorkAddress string `json:"outWorkAddress" gorm:"column:out_work_address;type:varchar(255);comment:外勤地址"`
|
||||||
|
Vehicle string `json:"vehicle" gorm:"column:vehicle;type:varchar(255);comment:交通工具"`
|
||||||
|
Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"`
|
||||||
|
ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (owa *OutWorkApply) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), owa)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (owa OutWorkApply) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(owa)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// MakeUpApply
|
||||||
|
// 补卡申请
|
||||||
|
type MakeUpApply struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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:操作|申请时间"`
|
||||||
|
ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"`
|
||||||
|
Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"`
|
||||||
|
ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mua *MakeUpApply) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), mua)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (mua MakeUpApply) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(mua)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// TurnoverApply
|
||||||
|
// 离职申请
|
||||||
|
type TurnoverApply struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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 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"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ta *TurnoverApply) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), ta)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ta TurnoverApply) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(ta)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// OverTimeApply
|
||||||
|
// 加班申请
|
||||||
|
type OverTimeApply struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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:审批|请假类型"`
|
||||||
|
ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"`
|
||||||
|
ActionTime string `json:"actionTime" gorm:"column:action_time;type:varchar(255);comment:操作|申请时间"`
|
||||||
|
ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"`
|
||||||
|
Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"`
|
||||||
|
Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ota *OverTimeApply) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), ota)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ota OverTimeApply) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(ota)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Leave
|
||||||
|
// 请假
|
||||||
|
type Leave struct {
|
||||||
|
UUID string `json:"UUID" gorm:"column:uuid,type:varchar(255),primaryKey"`
|
||||||
|
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:操作|申请时间"`
|
||||||
|
ApprovalID string `json:"approvalID" gorm:"column:approval_id;type:varchar(255);comment:审批系统中的approvalID"`
|
||||||
|
ApplyTimes ApplyTimes `json:"applyTimes" gorm:"column:apply_times;type:json;comment:时间"`
|
||||||
|
Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:理由"`
|
||||||
|
Hours float32 `json:"hours" gorm:"column:hours;type:decimal(10,2);comment:时长(小时)"`
|
||||||
|
Days float32 `json:"days" gorm:"column:days;type:decimal(10,2);comment:时长(天)"`
|
||||||
|
Status int32 `json:"status" gorm:"column:status;type:int;comment:状态(目前和审批系统状态同步)"`
|
||||||
|
ApprovalUsers ApprovalUsers `json:"approvalUsers" gorm:"column:approval_users;type:json;comment:审批人"`
|
||||||
|
CopyUsers CopyUsers `json:"copyUsers" gorm:"column:copy_users;type:json;comment:抄送人"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *Leave) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), l)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l Leave) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(l)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
type VerifyFiles []string
|
||||||
|
|
||||||
|
//type ApplyTime struct {
|
||||||
|
// Date string `json:"date"` // 日期 2023-05-08
|
||||||
|
// Hour string `json:"hour"` // 时间 09:00
|
||||||
|
// M string `json:"m"` // 上午|下午
|
||||||
|
//}
|
||||||
|
|
||||||
|
type ApplyTime struct {
|
||||||
|
Date string // 日期 2023-05-08
|
||||||
|
Hour string // 时间 09:00
|
||||||
|
M string // 上午|下午
|
||||||
|
}
|
||||||
|
|
||||||
|
type ApplyTimes []ApplyTime
|
||||||
|
|
||||||
|
func (at *ApplyTimes) Scan(src interface{}) error {
|
||||||
|
return json.Unmarshal(src.([]byte), at)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (at ApplyTimes) Value() (driver.Value, error) {
|
||||||
|
|
||||||
|
v, err := json.Marshal(at)
|
||||||
|
|
||||||
|
return string(v), err
|
||||||
|
}
|
||||||
|
|
||||||
|
var sonMap = map[string]string{
|
||||||
|
"leave": "leave", // 事假
|
||||||
|
"sick": "leave", // 病假
|
||||||
|
"annualLeave": "leave", // 年假
|
||||||
|
"dayOff": "leave", // 调休
|
||||||
|
"maritalLeave": "leave", // 婚假
|
||||||
|
"matingCheckLeave": "leave", // 孕检假
|
||||||
|
"maternityLeave": "leave", // 产假
|
||||||
|
"paternityLeave": "leave", // 陪产假
|
||||||
|
"parentalLeave": "leave", // 育儿假
|
||||||
|
"nursingLeave": "leave", // 独生子女护理假
|
||||||
|
"funeralLeave": "leave", // 丧假
|
||||||
|
|
||||||
|
"makeUp": "makeUp", // 补卡
|
||||||
|
"overTime": "overTime", // 加班
|
||||||
|
"outWork": "outWork", // 外勤
|
||||||
|
"turnover": "turnover", // 离职
|
||||||
|
|
||||||
|
"annualLeaveApply": "leaveApply", // 年假申请
|
||||||
|
"maritalLeaveApply": "leaveApply", // 婚假申请
|
||||||
|
"matingCheckLeaveApply": "leaveApply", // 孕检假申请
|
||||||
|
"maternityLeaveApply": "leaveApply", // 产假申请
|
||||||
|
"paternityLeaveApply": "leaveApply", // 陪产假申请
|
||||||
|
"parentalLeaveApply": "leaveApply", // 育儿假申请
|
||||||
|
"nursingLeaveApply": "leaveApply", // 独生子女护理假申请
|
||||||
|
}
|
||||||
|
|
||||||
|
var OnceAYear = "onceAYear"
|
||||||
|
var Once = "once"
|
||||||
|
var More = "more"
|
||||||
|
|
||||||
|
var LeaveBalanceUsefulTime = map[string]string{
|
||||||
|
"annualLeaveApply": "onceAYear", // 年假申请
|
||||||
|
"parentalLeaveApply": "onceAYear", // 育儿假申请
|
||||||
|
"nursingLeaveApply": "onceAYear", // 独生子女护理假申请
|
||||||
|
|
||||||
|
"matingCheckLeaveApply": "more", // 孕检假申请
|
||||||
|
"maternityLeaveApply": "more", // 产假申请
|
||||||
|
"paternityLeaveApply": "more", // 陪产假申请
|
||||||
|
"funeralLeaveApply": "more", // 丧假申请
|
||||||
|
|
||||||
|
"maritalLeaveApply": "once", // 婚假申请
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetSonMapValue(k string) string {
|
||||||
|
return sonMap[k]
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName get sql table name.获取数据库表名
|
||||||
|
func (oa *ApprovalOA) TableName() string {
|
||||||
|
return "approval_oa"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oa *ApprovalOA) GetApproval(id uint64) (*Approval, error) {
|
||||||
|
|
||||||
|
var entity *Approval
|
||||||
|
if err := DB.
|
||||||
|
Preload("ApprovalWorkFlows").
|
||||||
|
Preload("ApprovalType").
|
||||||
|
Preload("ApprovalOA").
|
||||||
|
First(&entity, id).Error; err != nil {
|
||||||
|
return entity, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return entity, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oa *ApprovalOA) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error {
|
||||||
|
fmt.Println("保存 approval_oa 信息 ")
|
||||||
|
|
||||||
|
fmt.Println("approval info :", a.CopyUsers)
|
||||||
|
fmt.Println("approval info :", a.ApprovalUsers)
|
||||||
|
|
||||||
|
approvalOA, err := copyOAToModel(in, a)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("存入 数据库 approval_oa 信息 ")
|
||||||
|
|
||||||
|
return DB.Create(&approvalOA).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
func copyOAToModel(in *approval.CreateRequest, a *Approval) (approvalOA *ApprovalOA, err error) {
|
||||||
|
approvalOA = new(ApprovalOA)
|
||||||
|
copier.CopyWithOption(&approvalOA, in.ApprovalOA, copier.Option{DeepCopy: true})
|
||||||
|
approvalOA.ApprovalID = a.ID
|
||||||
|
|
||||||
|
fmt.Println("============== 打印 审批内容 1.0 ========== 开始 =========")
|
||||||
|
fmt.Printf("approval_oa info is : %+v\n", approvalOA)
|
||||||
|
fmt.Printf("approval_oa info is : %+v\n", approvalOA.Leave)
|
||||||
|
fmt.Printf("a info is : %+v\n", a)
|
||||||
|
fmt.Println("a CopyUsers info is : ", a.CopyUsers)
|
||||||
|
fmt.Println("a ApprovalUsers info is : ", a.ApprovalUsers)
|
||||||
|
fmt.Println("============== 打印 审批内容 ========== 结束 =========")
|
||||||
|
|
||||||
|
if err := addOtherInfoToModel(a, approvalOA); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return approvalOA, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func addOtherInfoToModel(a *Approval, approvalOA *ApprovalOA) error {
|
||||||
|
|
||||||
|
v := GetSonMapValue(a.Type)
|
||||||
|
switch v {
|
||||||
|
case "leave":
|
||||||
|
copier.CopyWithOption(&approvalOA.Leave.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.Leave.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
approvalOA.Leave.ApplyType = a.Type
|
||||||
|
approvalOA.Leave.ApprovalID = strconv.FormatUint(a.ID, 10)
|
||||||
|
approvalOA.Leave.Status = int32(a.Status)
|
||||||
|
approvalOA.Leave.StaffUID = a.SubmitterID
|
||||||
|
approvalOA.Leave.StaffName = a.SubmitterName
|
||||||
|
approvalOA.Leave.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
case "makeUp":
|
||||||
|
copier.CopyWithOption(&approvalOA.MakeUp.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.MakeUp.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
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
|
||||||
|
approvalOA.MakeUp.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
case "overTime":
|
||||||
|
copier.CopyWithOption(&approvalOA.OverTime.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.OverTime.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
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
|
||||||
|
approvalOA.OverTime.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
case "outWork":
|
||||||
|
copier.CopyWithOption(&approvalOA.OutWork.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.OutWork.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
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
|
||||||
|
approvalOA.OutWork.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
case "turnover":
|
||||||
|
copier.CopyWithOption(&approvalOA.Turnover.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.Turnover.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
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
|
||||||
|
approvalOA.Turnover.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
case "leaveApply":
|
||||||
|
copier.CopyWithOption(&approvalOA.LeaveApply.ApprovalUsers, a.ApprovalUsers, copier.Option{DeepCopy: true})
|
||||||
|
copier.CopyWithOption(&approvalOA.LeaveApply.CopyUsers, a.CopyUsers, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
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
|
||||||
|
approvalOA.LeaveApply.ActionTime = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
default:
|
||||||
|
return errors.New("未找到相关审批类型")
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oa *ApprovalOA) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error {
|
||||||
|
|
||||||
|
var entity *ApprovalOA
|
||||||
|
|
||||||
|
if err := DB.Where(&ApprovalOA{ApprovalID: a.ID}).First(&entity).Error; err != nil {
|
||||||
|
return errors.New(m2.ErrorNotFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
oa.ID = entity.ID
|
||||||
|
copier.CopyWithOption(&oa, in.ApprovalOA, copier.Option{DeepCopy: true})
|
||||||
|
|
||||||
|
err := addOtherInfoToModel(a, oa)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("============== 更新 审批内容 1.0 ========== 开始 =========")
|
||||||
|
fmt.Printf("in.approvalOA info is : %+v\n", in.ApprovalOA)
|
||||||
|
fmt.Printf("a info is : %+v\n", a)
|
||||||
|
fmt.Printf("oa info is : %+v\n", oa)
|
||||||
|
fmt.Println("oa CopyUsers info is : ", a.CopyUsers)
|
||||||
|
fmt.Println("oa ApprovalUsers info is : ", a.ApprovalUsers)
|
||||||
|
fmt.Println("============== 更新 审批内容 ========== 结束 =========")
|
||||||
|
|
||||||
|
return DB.Model(&oa).Updates(oa).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oa *ApprovalOA) BuildResContent(a *Approval, request *approval.CreateRequest) {
|
||||||
|
if err := oa.copyOAToRpc(a, request); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oa *ApprovalOA) copyOAToRpc(a *Approval, request *approval.CreateRequest) error {
|
||||||
|
approvalOA := new(approval.ApprovalOA)
|
||||||
|
copier.CopyWithOption(&approvalOA, a.ApprovalOA, copier.Option{DeepCopy: true})
|
||||||
|
request.ApprovalOA = approvalOA
|
||||||
|
fmt.Println("============== 查询 审批内容 1.0 ========== 开始 =========")
|
||||||
|
fmt.Printf("approval_oa info is : %+v\n", a)
|
||||||
|
fmt.Printf("approvalOA info is : %+v\n", approvalOA)
|
||||||
|
fmt.Printf("request.ApprovalOA info is : %+v\n", request.ApprovalOA)
|
||||||
|
fmt.Println("============== 查询 审批内容 ========== 结束 =========")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
/*func (oa *ApprovalOA) addOtherInfoToRpc(a *Approval, in *approval.CreateRequest) error {
|
||||||
|
if oa.Leave != nil {
|
||||||
|
copier.CopyWithOption(&a.ApprovalOA.Leave.ApplyTimes, in.ApprovalOA.Leave.ApplyTimes, copier.Option{DeepCopy: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
if oa.MakeUp != nil {
|
||||||
|
copier.CopyWithOption(&a.ApprovalOA.MakeUp.ApplyTimes, in.ApprovalOA.MakeUp.ApplyTimes, copier.Option{DeepCopy: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
if oa.Turnover != nil {
|
||||||
|
copier.CopyWithOption(&a.ApprovalOA.Turnover.ApplyTimes, in.ApprovalOA.Turnover.ApplyTimes, copier.Option{DeepCopy: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
if oa.OverTime != nil {
|
||||||
|
copier.CopyWithOption(&a.ApprovalOA.OverTime.ApplyTimes, in.ApprovalOA.OverTime.ApplyTimes, copier.Option{DeepCopy: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
if oa.OutWork != nil {
|
||||||
|
copier.CopyWithOption(&a.ApprovalOA.OutWork.ApplyTimes, in.ApprovalOA.OutWork.ApplyTimes, copier.Option{DeepCopy: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
func (oa *ApprovalOA) DeleteApproval(p *Approval) error {
|
||||||
|
return DB.Where(&ApprovalOA{ApprovalID: p.ID}).Delete(&ApprovalOA{}).Error
|
||||||
|
}
|
555
pkg/model/approval_oa_test.go
Normal file
555
pkg/model/approval_oa_test.go
Normal file
@ -0,0 +1,555 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
||||||
|
"gorm.io/plugin/soft_delete"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestApprovalOA_BuildResContent(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
a *Approval
|
||||||
|
request *approval.CreateRequest
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
oa.BuildResContent(tt.args.a, tt.args.request)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_DeleteApproval(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
p *Approval
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.DeleteApproval(tt.args.p); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("DeleteApproval() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_GetApproval(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
id uint64
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
want *Approval
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
got, err := oa.GetApproval(tt.args.id)
|
||||||
|
if (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("GetApproval() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, tt.want) {
|
||||||
|
t.Errorf("GetApproval() got = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_SaveApprovalContent(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
in *approval.CreateRequest
|
||||||
|
a *Approval
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
args: args{
|
||||||
|
in: &approval.CreateRequest{
|
||||||
|
ID: 0,
|
||||||
|
Domain: "",
|
||||||
|
Status: 0,
|
||||||
|
Type: "",
|
||||||
|
SubmitterID: 40,
|
||||||
|
SubmitterName: "超级管理员",
|
||||||
|
CopyUsers: nil,
|
||||||
|
Content: "",
|
||||||
|
Reply: "",
|
||||||
|
CanView: false,
|
||||||
|
ApprovalUsers: nil,
|
||||||
|
CanApproval: false,
|
||||||
|
WorkFlows: nil,
|
||||||
|
AllStatus: 0,
|
||||||
|
NowUserId: 0,
|
||||||
|
NowUserName: "",
|
||||||
|
Level: 0,
|
||||||
|
NowLevel: 0,
|
||||||
|
CreatedAt: "",
|
||||||
|
CustomizeInfo: nil,
|
||||||
|
IsCustom: 0,
|
||||||
|
TypeName: "",
|
||||||
|
GroupName: "",
|
||||||
|
BundlePayPrice: nil,
|
||||||
|
ApprovalOA: nil,
|
||||||
|
FinancialForm: nil,
|
||||||
|
},
|
||||||
|
a: &Approval{
|
||||||
|
SubmitterID: 40,
|
||||||
|
Status: 0,
|
||||||
|
SubmitterName: "",
|
||||||
|
CopyUsers: nil,
|
||||||
|
ApprovalUsers: nil,
|
||||||
|
Type: "",
|
||||||
|
Level: 0,
|
||||||
|
NowLevel: 0,
|
||||||
|
NowUserId: 0,
|
||||||
|
NowUserName: "",
|
||||||
|
Content: "",
|
||||||
|
ValueJson: nil,
|
||||||
|
Reply: "",
|
||||||
|
Domain: nil,
|
||||||
|
Show: nil,
|
||||||
|
ApprovalType: nil,
|
||||||
|
Work: nil,
|
||||||
|
Bundle: nil,
|
||||||
|
Exhibition: nil,
|
||||||
|
BundlePayPrice: nil,
|
||||||
|
ExhibitionReward: nil,
|
||||||
|
ApprovalWorkFlows: nil,
|
||||||
|
ApprovalOA: nil,
|
||||||
|
FinancialForm: nil,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.SaveApprovalContent(tt.args.in, tt.args.a); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("SaveApprovalContent() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_TableName(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if got := oa.TableName(); got != tt.want {
|
||||||
|
t.Errorf("TableName() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_UpdateApprovalContent(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
in *approval.CreateRequest
|
||||||
|
a *Approval
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.UpdateApprovalContent(tt.args.in, tt.args.a); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("UpdateApprovalContent() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_addOtherInfoToModel(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
in *approval.CreateRequest
|
||||||
|
a *Approval
|
||||||
|
approvalOA *ApprovalOA
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.addOtherInfoToModel(tt.args.in, tt.args.a, tt.args.approvalOA); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("addOtherInfoToModel() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_addOtherInfoToRpc(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
a *Approval
|
||||||
|
in *approval.CreateRequest
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.addOtherInfoToRpc(tt.args.a, tt.args.in); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("addOtherInfoToRpc() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_copyOAToModel(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
in *approval.CreateRequest
|
||||||
|
a *Approval
|
||||||
|
}
|
||||||
|
|
||||||
|
arg := args{}
|
||||||
|
leave := Leave{}
|
||||||
|
leave.ActionTime := make([])
|
||||||
|
arg.in.ApprovalOA.Leave =
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantApprovalOA *ApprovalOA
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
gotApprovalOA, err := oa.copyOAToModel(tt.args.in, tt.args.a)
|
||||||
|
if (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("copyOAToModel() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(gotApprovalOA, tt.wantApprovalOA) {
|
||||||
|
t.Errorf("copyOAToModel() gotApprovalOA = %v, want %v", gotApprovalOA, tt.wantApprovalOA)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApprovalOA_copyOAToRpc(t *testing.T) {
|
||||||
|
type fields struct {
|
||||||
|
ID uint64
|
||||||
|
DeletedAt soft_delete.DeletedAt
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
ApprovalID uint64
|
||||||
|
LeaveApply *LeaveApply
|
||||||
|
OutWork *OutWorkApply
|
||||||
|
MakeUp *MakeUpApply
|
||||||
|
Turnover *TurnoverApply
|
||||||
|
OverTime *OverTimeApply
|
||||||
|
Leave *Leave
|
||||||
|
}
|
||||||
|
type args struct {
|
||||||
|
a *Approval
|
||||||
|
in *approval.CreateRequest
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
fields fields
|
||||||
|
args args
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
// TODO: Add test cases.
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
oa := &ApprovalOA{
|
||||||
|
ID: tt.fields.ID,
|
||||||
|
DeletedAt: tt.fields.DeletedAt,
|
||||||
|
CreatedAt: tt.fields.CreatedAt,
|
||||||
|
UpdatedAt: tt.fields.UpdatedAt,
|
||||||
|
ApprovalID: tt.fields.ApprovalID,
|
||||||
|
LeaveApply: tt.fields.LeaveApply,
|
||||||
|
OutWork: tt.fields.OutWork,
|
||||||
|
MakeUp: tt.fields.MakeUp,
|
||||||
|
Turnover: tt.fields.Turnover,
|
||||||
|
OverTime: tt.fields.OverTime,
|
||||||
|
Leave: tt.fields.Leave,
|
||||||
|
}
|
||||||
|
if err := oa.copyOAToRpc(tt.args.a, tt.args.in); (err != nil) != tt.wantErr {
|
||||||
|
t.Errorf("copyOAToRpc() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -40,23 +40,34 @@ var TypeMap = map[string]string{
|
|||||||
TypeBundlePayPrice: "",
|
TypeBundlePayPrice: "",
|
||||||
TypeArtExhibitionReward: "",
|
TypeArtExhibitionReward: "",
|
||||||
|
|
||||||
"leave": "", // 事假
|
"leave": "oa", // 事假
|
||||||
"sick": "", // 病假
|
"sick": "oa", // 病假
|
||||||
"annualLeave": "", // 年假
|
"annualLeave": "oa", // 年假
|
||||||
"dayOff": "", // 调休
|
"dayOff": "oa", // 调休
|
||||||
"maritalLeave": "", // 婚假
|
"maritalLeave": "oa", // 婚假
|
||||||
"matingCheckLeave": "", // 孕检假
|
"matingCheckLeave": "oa", // 孕检假
|
||||||
"maternityLeave": "", // 产假
|
"maternityLeave": "oa", // 产假
|
||||||
"paternityLeave": "", // 陪产假
|
"paternityLeave": "oa", // 陪产假
|
||||||
"parentalLeave": "", // 育儿假
|
"parentalLeave": "oa", // 育儿假
|
||||||
"nursingLeave": "", // 独生子女护理假
|
"nursingLeave": "oa", // 独生子女护理假
|
||||||
"funeralLeave": "", // 丧假
|
"funeralLeave": "oa", // 丧假
|
||||||
"makeUp": "", // 补卡
|
|
||||||
"overTime": "", // 加班
|
"makeUp": "oa", // 补卡
|
||||||
"outWork": "", // 外勤
|
"overTime": "oa", // 加班
|
||||||
"turnover": "", // 离职
|
"outWork": "oa", // 外勤
|
||||||
|
"turnover": "oa", // 离职
|
||||||
|
|
||||||
|
"annualLeaveApply": "oa", // 年假申请
|
||||||
|
"maritalLeaveApply": "oa", // 婚假申请
|
||||||
|
"matingCheckLeaveApply": "oa", // 孕检假申请
|
||||||
|
"maternityLeaveApply": "oa", // 产假申请
|
||||||
|
"paternityLeaveApply": "oa", // 陪产假申请
|
||||||
|
"parentalLeaveApply": "oa", // 育儿假申请
|
||||||
|
"nursingLeaveApply": "oa", // 独生子女护理假申请
|
||||||
|
"funeralLeaveApply": "oa", // 丧假
|
||||||
|
|
||||||
"financialFormApply": "", // 财务表单审批
|
"financialFormApply": "", // 财务表单审批
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var keyWordMap = map[string]string{
|
var keyWordMap = map[string]string{
|
||||||
@ -67,22 +78,35 @@ var keyWordMap = map[string]string{
|
|||||||
"画展审批": "show",
|
"画展审批": "show",
|
||||||
"画展包付款单申请": TypeBundlePayPrice,
|
"画展包付款单申请": TypeBundlePayPrice,
|
||||||
"画作润格审批": TypeArtExhibitionReward,
|
"画作润格审批": TypeArtExhibitionReward,
|
||||||
"事假": "leave", // 事假
|
|
||||||
"病假": "sick", // 病假
|
"事假": "leave", // 事假
|
||||||
"年假": "annualLeave", // 年假
|
"病假": "sick", // 病假
|
||||||
"调休": "dayOff", // 调休
|
"年假": "annualLeave", // 年假
|
||||||
"婚假": "maritalLeave", // 婚假
|
"调休": "dayOff", // 调休
|
||||||
"孕检假": "matingCheckLeave", // 孕检假
|
"婚假": "maritalLeave", // 婚假
|
||||||
"产假": "maternityLeave", // 产假
|
"孕检假": "matingCheckLeave", // 孕检假
|
||||||
"陪产假": "paternityLeave", // 陪产假
|
"产假": "maternityLeave", // 产假
|
||||||
"育儿假": "parentalLeave", // 育儿假
|
"陪产假": "paternityLeave", // 陪产假
|
||||||
"独生子女护理假": "nursingLeave", // 独生子女护理假
|
"育儿假": "parentalLeave", // 育儿假
|
||||||
"丧假": "funeralLeave", // 丧假
|
"独生子女护理假": "nursingLeave", // 独生子女护理假
|
||||||
"补卡": "makeUp", // 补卡
|
"丧假": "funeralLeave", // 丧假
|
||||||
"加班": "overTime", // 加班
|
|
||||||
"外勤": "outWork", // 外勤
|
"补卡": "makeUp", // 补卡
|
||||||
"离职": "turnover", // 离职
|
"加班": "overtime", // 加班
|
||||||
"财务表单审批": "financialFormApply", // 财务表单审批
|
"外勤": "outwork", // 外勤
|
||||||
|
"离职": "turnover", // 离职
|
||||||
|
|
||||||
|
"年假申请": "annualLeaveApply", // 年假申请
|
||||||
|
"婚假申请": "maritalLeaveApply", // 婚假申请
|
||||||
|
"孕检假申请": "matingCheckLeaveApply", // 孕检假申请
|
||||||
|
"产假申请": "maternityLeaveApply", // 产假申请
|
||||||
|
"陪产假申请": "paternityLeaveApply", // 陪产假申请
|
||||||
|
"育儿假申请": "parentalLeaveApply", // 育儿假申请
|
||||||
|
"独生子女护理假申请": "nursingLeaveApply", // 独生子女护理假申请
|
||||||
|
"丧假申请": "funeralLeaveApply", // 丧假申请
|
||||||
|
|
||||||
|
"财务表单审批": "financialFormApply", // 财务表单审批
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func DataExist(domain, keyWork, title string) bool {
|
func DataExist(domain, keyWork, title string) bool {
|
||||||
@ -141,7 +165,43 @@ func IsSystemKeyWork(title string) bool {
|
|||||||
return isOk
|
return isOk
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
// 增加 逻辑 取出 value值 判断是否为 ""
|
||||||
|
// 为 "" 则为 系统
|
||||||
|
// 不为 "" 则为 自定义中特殊类型
|
||||||
func IsSystemType(title string) bool {
|
func IsSystemType(title string) bool {
|
||||||
_, isOk := TypeMap[title]
|
_, isOk := TypeMap[title]
|
||||||
return isOk
|
return isOk
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var OaTypeMap = map[string]string{
|
||||||
|
"leave": "leave", // 事假
|
||||||
|
"sick": "leave", // 病假
|
||||||
|
"annualLeave": "leave", // 年假
|
||||||
|
"dayOff": "leave", // 调休
|
||||||
|
"maritalLeave": "leave", // 婚假
|
||||||
|
"matingCheckLeave": "leave", // 孕检假
|
||||||
|
"maternityLeave": "leave", // 产假
|
||||||
|
"paternityLeave": "leave", // 陪产假
|
||||||
|
"parentalLeave": "leave", // 育儿假
|
||||||
|
"nursingLeave": "leave", // 独生子女护理假
|
||||||
|
"funeralLeave": "leave", // 丧假
|
||||||
|
|
||||||
|
"makeUp": "makeUp", // 补卡
|
||||||
|
"overTime": "overTime", // 加班
|
||||||
|
"outWork": "outWork", // 外勤
|
||||||
|
"turnover": "turnover", // 离职
|
||||||
|
|
||||||
|
"annualLeaveApply": "leaveApply", // 年假申请
|
||||||
|
"maritalLeaveApply": "leaveApply", // 婚假申请
|
||||||
|
"matingCheckLeaveApply": "leaveApply", // 孕检假申请
|
||||||
|
"maternityLeaveApply": "leaveApply", // 产假申请
|
||||||
|
"paternityLeaveApply": "leaveApply", // 陪产假申请
|
||||||
|
"parentalLeaveApply": "leaveApply", // 育儿假申请
|
||||||
|
"nursingLeaveApply": "leaveApply", // 独生子女护理假申请
|
||||||
|
"funeralLeaveApply": "leaveApply", // 丧假申请
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetOaType(k string) string {
|
||||||
|
return OaTypeMap[k]
|
||||||
|
}
|
||||||
|
@ -10,22 +10,23 @@ import (
|
|||||||
|
|
||||||
// BundlePayPrice 画展包付款单审批
|
// BundlePayPrice 画展包付款单审批
|
||||||
type BundlePayPrice struct {
|
type BundlePayPrice struct {
|
||||||
ID uint64 `gorm:"column:id" json:"id"`
|
ID uint64 `gorm:"column:id" json:"id"`
|
||||||
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
|
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
|
||||||
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间
|
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间
|
||||||
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间
|
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间
|
||||||
ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"`
|
ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:0;comment:画展的uid" json:"approvalId"`
|
||||||
ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"`
|
ShowUid string `gorm:"type:varchar(32);column:show_uid;default:'';comment:画展的uid" json:"showUid"`
|
||||||
ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"`
|
ShowName string `gorm:"type:varchar(32);column:show_name;default:'';comment:画展的名称" json:"showName"`
|
||||||
ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间
|
ReceivedAt string `gorm:"type:varchar(32);column:received_at;default:'';comment:领取时间" json:"receivedAt"` // 领取时间
|
||||||
ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"`
|
ShowDate string `gorm:"type:varchar(32);column:show_date;default:'';comment:画展时间" json:"showDate"`
|
||||||
ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"`
|
ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"`
|
||||||
ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"`
|
ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"`
|
||||||
ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"`
|
ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"`
|
||||||
ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"`
|
ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"`
|
||||||
ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"`
|
ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"`
|
||||||
Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"`
|
Rollback int32 `gorm:"type:int;column:rollback;default:1;comment:是否回滚(默认 1 回滚 2)" json:"rollback"`
|
||||||
Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"`
|
OperationTimes int32 `gorm:"type:int;column:operation_times;default:1;comment:操作次数" json:"operationTimes"`
|
||||||
|
Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TableName get sql table name.获取数据库表名
|
// TableName get sql table name.获取数据库表名
|
||||||
@ -60,6 +61,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr
|
|||||||
m.ShowAddress = in.BundlePayPrice.ShowAddress
|
m.ShowAddress = in.BundlePayPrice.ShowAddress
|
||||||
m.ArtistName = in.BundlePayPrice.ArtistName
|
m.ArtistName = in.BundlePayPrice.ArtistName
|
||||||
m.Rollback = in.BundlePayPrice.Rollback
|
m.Rollback = in.BundlePayPrice.Rollback
|
||||||
|
m.OperationTimes = in.BundlePayPrice.OperationTimes
|
||||||
|
|
||||||
return DB.Create(&m).Error
|
return DB.Create(&m).Error
|
||||||
}
|
}
|
||||||
@ -83,6 +85,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap
|
|||||||
m.ShowAddress = in.BundlePayPrice.ShowAddress
|
m.ShowAddress = in.BundlePayPrice.ShowAddress
|
||||||
m.ArtistName = in.BundlePayPrice.ArtistName
|
m.ArtistName = in.BundlePayPrice.ArtistName
|
||||||
m.Rollback = in.BundlePayPrice.Rollback
|
m.Rollback = in.BundlePayPrice.Rollback
|
||||||
|
m.OperationTimes = in.BundlePayPrice.OperationTimes
|
||||||
|
|
||||||
return DB.Model(&m).Updates(m).Error
|
return DB.Model(&m).Updates(m).Error
|
||||||
}
|
}
|
||||||
@ -91,19 +94,20 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe
|
|||||||
|
|
||||||
if a.BundlePayPrice != nil {
|
if a.BundlePayPrice != nil {
|
||||||
request.BundlePayPrice = &approval.BundlePayPrice{
|
request.BundlePayPrice = &approval.BundlePayPrice{
|
||||||
ShowUid: a.BundlePayPrice.ShowUid,
|
ShowUid: a.BundlePayPrice.ShowUid,
|
||||||
ApprovalID: a.BundlePayPrice.ApprovalID,
|
ApprovalID: a.BundlePayPrice.ApprovalID,
|
||||||
ShowName: a.BundlePayPrice.ShowName,
|
ShowName: a.BundlePayPrice.ShowName,
|
||||||
ReceivedAt: a.BundlePayPrice.ReceivedAt,
|
ReceivedAt: a.BundlePayPrice.ReceivedAt,
|
||||||
ShowDate: a.BundlePayPrice.ShowDate,
|
ShowDate: a.BundlePayPrice.ShowDate,
|
||||||
ShowLowPrice: a.BundlePayPrice.ShowLowPrice,
|
ShowLowPrice: a.BundlePayPrice.ShowLowPrice,
|
||||||
ArtworkNum: a.BundlePayPrice.ArtworkNum,
|
ArtworkNum: a.BundlePayPrice.ArtworkNum,
|
||||||
ArtworkSize: a.BundlePayPrice.ArtworkSize,
|
ArtworkSize: a.BundlePayPrice.ArtworkSize,
|
||||||
ShowAddress: a.BundlePayPrice.ShowAddress,
|
ShowAddress: a.BundlePayPrice.ShowAddress,
|
||||||
Status: a.BundlePayPrice.Status,
|
Status: a.BundlePayPrice.Status,
|
||||||
ArtistName: a.BundlePayPrice.ArtistName,
|
ArtistName: a.BundlePayPrice.ArtistName,
|
||||||
Rollback: a.BundlePayPrice.Rollback,
|
Rollback: a.BundlePayPrice.Rollback,
|
||||||
ID: a.BundlePayPrice.ID,
|
OperationTimes: a.BundlePayPrice.OperationTimes,
|
||||||
|
ID: a.BundlePayPrice.ID,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// financial_form
|
||||||
type FinancialForm struct {
|
type FinancialForm struct {
|
||||||
ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID
|
ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID
|
||||||
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
|
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
|
||||||
|
@ -14,7 +14,9 @@ func migration() {
|
|||||||
addTable(&ApprovalReward{})
|
addTable(&ApprovalReward{})
|
||||||
|
|
||||||
addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息
|
addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息
|
||||||
addTable(&FinancialForm{}) // 财务报表审批 设置信息
|
addTable(&FinancialForm{}) // 财务报表审批
|
||||||
|
|
||||||
|
addTable(&ApprovalOA{}) // OA
|
||||||
|
|
||||||
//增加字段
|
//增加字段
|
||||||
addColumn(&ApprovalType{}, "is_normal")
|
addColumn(&ApprovalType{}, "is_normal")
|
||||||
@ -34,6 +36,7 @@ func migration() {
|
|||||||
addColumn(&BundlePayPrice{}, "status")
|
addColumn(&BundlePayPrice{}, "status")
|
||||||
addColumn(&BundlePayPrice{}, "artist_name")
|
addColumn(&BundlePayPrice{}, "artist_name")
|
||||||
addColumn(&BundlePayPrice{}, "rollback")
|
addColumn(&BundlePayPrice{}, "rollback")
|
||||||
|
addColumn(&BundlePayPrice{}, "operation_times")
|
||||||
|
|
||||||
addColumn(&ApprovalExhibition{}, "art_exhibition_detail")
|
addColumn(&ApprovalExhibition{}, "art_exhibition_detail")
|
||||||
addColumn(&ApprovalExhibition{}, "artworks")
|
addColumn(&ApprovalExhibition{}, "artworks")
|
||||||
|
@ -26,6 +26,22 @@ func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateReques
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if model.LeaveBalanceUsefulTime[in.Type] == model.OnceAYear || model.LeaveBalanceUsefulTime[in.Type] == model.Once {
|
||||||
|
if model.ExistLeaveApplyApproval(in) == true {
|
||||||
|
if model.LeaveBalanceUsefulTime[in.Type] == model.OnceAYear {
|
||||||
|
return response, errors.New(m.ErrorOnceAYear)
|
||||||
|
} else if model.LeaveBalanceUsefulTime[in.Type] == model.Once {
|
||||||
|
return response, errors.New(m.ErrorOnce)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//if in.Type == model.TypeMakeUp {
|
||||||
|
// if model.CheckMakeUpApplyApproval(in) == true {
|
||||||
|
// return response, errors.New(m.ErrorOnce)
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
entity, err := model.StoreApproval(in)
|
entity, err := model.StoreApproval(in)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response, err
|
return response, err
|
||||||
@ -116,6 +132,10 @@ func (a *ApprovalProvider) SetStatus(ctx context.Context, in *approval.StatusReq
|
|||||||
return response, errors.New(m.ErrorWrongStatus)
|
return response, errors.New(m.ErrorWrongStatus)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := model.UpdateLeaveBalance(approvalObj, in.LeaveBalance); err != nil {
|
||||||
|
return response, errors.New(m.ErrorUpdateLeaveBalance)
|
||||||
|
}
|
||||||
|
|
||||||
// 审批人审批内容
|
// 审批人审批内容
|
||||||
if in.Status == model.StatusFail {
|
if in.Status == model.StatusFail {
|
||||||
err = approvalObj.Refuse(in.Reply, in.WorkFlowId)
|
err = approvalObj.Refuse(in.Reply, in.WorkFlowId)
|
||||||
|
47
pkg/service/approval_oa.go
Normal file
47
pkg/service/approval_oa.go
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
||||||
|
"github.com/fonchain_enterprise/fonchain-approval/pkg/e"
|
||||||
|
"github.com/fonchain_enterprise/fonchain-approval/pkg/model"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (a *ApprovalProvider) UpdateApprovalOAUUID(_ context.Context, in *approval.UpdateApprovalOAUUIDReq) (*approval.UpdateApprovalOAUUIDResponse, error) {
|
||||||
|
|
||||||
|
response := &approval.UpdateApprovalOAUUIDResponse{}
|
||||||
|
approvalOA := new(model.ApprovalOA)
|
||||||
|
result := model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Find(&approvalOA)
|
||||||
|
if result.Error != nil {
|
||||||
|
if result.Error != gorm.ErrRecordNotFound {
|
||||||
|
return response, errors.New(e.GetMsg(e.ApprovalIsNotExist))
|
||||||
|
}
|
||||||
|
return response, result.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
if model.GetOaType(in.ApplyType) == "leave" {
|
||||||
|
approvalOA.Leave.UUID = in.UUID
|
||||||
|
fmt.Println("oa apply UUID is :", in.UUID)
|
||||||
|
fmt.Println("approvalOA UUID is :", approvalOA.Leave.UUID)
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave", approvalOA.Leave)
|
||||||
|
} else if model.GetOaType(in.ApplyType) == "outWork" {
|
||||||
|
approvalOA.OutWork.UUID = in.UUID
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("out_work", approvalOA.OutWork)
|
||||||
|
} else if model.GetOaType(in.ApplyType) == "makeUp" {
|
||||||
|
approvalOA.MakeUp.UUID = in.UUID
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("make_up", approvalOA.MakeUp)
|
||||||
|
} else if model.GetOaType(in.ApplyType) == "turnover" {
|
||||||
|
approvalOA.Turnover.UUID = in.UUID
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("turnover", approvalOA.Turnover)
|
||||||
|
} else if model.GetOaType(in.ApplyType) == "overTime" {
|
||||||
|
approvalOA.OverTime.UUID = in.UUID
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("over_time", approvalOA.OverTime)
|
||||||
|
} else if model.GetOaType(in.ApplyType) == "leaveApply" {
|
||||||
|
approvalOA.LeaveApply.UUID = in.UUID
|
||||||
|
model.DB.Model(&model.ApprovalOA{}).Where(&model.ApprovalOA{ApprovalID: in.ApprovalID}).Update("leave_apply", approvalOA.LeaveApply)
|
||||||
|
}
|
||||||
|
return response, nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user