/** * @Author: sun * @Company: 苏州泰丰文化 * @Description: * @File: home_page * @Version: 1.0.0 * @Date: 2024/12/2 10:11:00 */ package home_page import ( "fmt" api "github.com/fonchain_enterprise/fonchain-main/api/approval" "github.com/fonchain_enterprise/fonchain-main/pkg/e" homePage "github.com/fonchain_enterprise/fonchain-main/pkg/model/home_page" "github.com/fonchain_enterprise/fonchain-main/pkg/model/login" "github.com/fonchain_enterprise/fonchain-main/pkg/serializer" "github.com/fonchain_enterprise/fonchain-main/pkg/service" "github.com/fonchain_enterprise/fonchain-main/pkg/service/account" "github.com/fonchain_enterprise/fonchain-main/pkg/service/oa_new/common" "github.com/fonchain_enterprise/fonchain-main/pkg/service/oa_new/model" "github.com/fonchain_enterprise/fonchain-main/pkg/service/oa_new/oa_logic" "github.com/fonchain_enterprise/fonchain-main/pkg/utils/holiday" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" "strings" ) func ApplyCount(c *gin.Context) { var ( reqPendApproval api.ListRequest reqSubmitApproval api.ListRequest reqPendClockIn api.ListRequest reqSubmitClockIn api.ListRequest ) reqPendApproval.Status = 1 reqPendApproval.MenuType = 2 reqPendApproval.Domain = "all" paData, e1 := pendingApproval(c, &reqPendApproval) if e1 != nil { service.Error(c, e.Error, e1) } reqSubmitApproval.Status = 1 reqSubmitApproval.MenuType = 2 reqSubmitApproval.Domain = "all" caData, e2 := commitApproval(c, &reqSubmitApproval) if e2 != nil { service.Error(c, e.Error, e1) } reqPendClockIn.Status = 1 reqPendClockIn.MenuType = 1 reqPendClockIn.Domain = "all" cdData, e3 := pendingApproval(c, &reqPendClockIn) if e3 != nil { service.Error(c, e.Error, e1) } reqSubmitClockIn.Status = 1 reqSubmitClockIn.MenuType = 1 reqSubmitClockIn.Domain = "all" ccData, e4 := commitApproval(c, &reqSubmitClockIn) if e4 != nil { service.Error(c, e.Error, e1) } res := &homePage.ApplyCountRes{} res.PendingApprovalCount = paData.Count res.SubmitApprovalCount = caData.Count res.PendingClockInCount = cdData.Count res.SubmitClockInCount = ccData.Count service.Success(c, res) } func ClockingIn(c *gin.Context) { req := new(model.CollectionDetailReq) if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: err.Error(), Status: e.Failed, }) return } res := new(model.CollectionDetailRes) var ( err error userInfo login.Info ) if req.StaffUID != 0 { userResponse, getUserInfoByIdErr := account.GetUserInfoById(c, req.StaffUID, "") if getUserInfoByIdErr != nil { msg := "" if getUserInfoByIdErr.Error() == "record not found" { msg = "查询当前人员信息不存在" } else { msg = getUserInfoByIdErr.Error() } service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: msg, Status: e.Failed, }) return } userInfo.PositionUsers = userResponse.PositionUsers } else { userInfo = login.GetUserInfoFromC(c) } // 查询 考勤信息 workingTime, workingTimeErr := oa_logic.QueryWorkingTimeInUse(userInfo.PositionUsers, userInfo.ID) if workingTimeErr != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: workingTimeErr.Error(), Status: e.Failed, }) return } if req.Month == "" { req.Month = holiday.CurrentMonth() } req.Dates = holiday.SplitMonthV1(req.Month+"-25", common.YYMMDD) res, err = oa_logic.AllRecord(req, workingTime) if err != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: err.Error(), Status: e.Failed, }) return } month := common.Add25ForMonth(req.Month) dates := holiday.SplitMonthV1(month, common.YYMMDD) resp := &homePage.ClockInRes{} resp.AverageHourNum = res.AverageHourNum resp.AttendanceDayNum = res.AttendanceDayNum resp.AbnormalClock = res.MissNum + res.CommonLateNum + res.ExtremeLateNum + res.BeforeNum + res.MissDayNum resp.NeedAttendanceDayNum = res.NeedAttendanceDayNum resp.OverWorkHour = res.OverTime.OverWorkHour resp.ClockInCycle = fmt.Sprintf("%s-%s", dates[0], dates[len(dates)-1]) service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Data: resp, Status: e.Ok, }) } func ClockRecord(c *gin.Context) { req := new(model.CollectionDetailReq) if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: err.Error(), Status: e.Failed, }) return } fmt.Println("================ StaffCollectionDetailDate =======================") res := new(model.WorkDayDetail) var err error if req.Date == "" { req.Date = common.CheckIsBeforeFour() } var userInfo login.Info if req.StaffUID != 0 { userResponse, getUserInfoByIdErr := account.GetUserInfoById(c, req.StaffUID, "") if getUserInfoByIdErr != nil { msg := "" if getUserInfoByIdErr.Error() == "record not found" { msg = "查询当前人员信息不存在" } else { msg = getUserInfoByIdErr.Error() } service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: msg, Status: e.Failed, }) return } userInfo.PositionUsers = userResponse.PositionUsers } else { userInfo = login.GetUserInfoFromC(c) } if req.StaffUID == 0 { req.StaffUID = userInfo.ID } // 查询 考勤信息 workingTime, workingTimeErr := oa_logic.QueryWorkingTimeInUse(userInfo.PositionUsers, userInfo.ID) if workingTimeErr != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: workingTimeErr.Error(), Status: e.Failed, }) return } res, err = oa_logic.WorkDayDate(req, workingTime) if err != nil { service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Msg: err.Error(), Status: e.Failed, }) return } service.ResponseMsg(c, e.SUCCESS, serializer.Response{ Data: res.Records, Status: e.Ok, }) } func pendingApproval(c *gin.Context, req *api.ListRequest) (res *api.ListResponse, err error) { userInfo := login.GetUserInfoFromC(c) req.UserID = userInfo.ID req.Domain = "all" if req.OrderBy == "" { req.OrderBy = "desc" } //if req.StartTime != "" && req.EndTime != "" { // req.StartTime = req.StartTime + " 00:00:00" // req.EndTime = req.EndTime + " 23:59:59" // req.OrderBy = "desc" //} res = &api.ListResponse{} res, err = service.ApprovalProvider.MyWorkV2(c, req) if err != nil { service.Error(c, e.Error, err) return } //全局搜索过滤 if len(res.Data) > 0 && req.AllQuery != "" { fmt.Println("========================全局搜索过滤==============================") filterData := make([]*api.CreateRequest, 0) for _, approvalItem := range res.Data { flag := 0 if strings.Contains(approvalItem.Content, req.AllQuery) || strings.Contains(approvalItem.Reply, req.AllQuery) || strings.Contains(approvalItem.SubmitterName, req.AllQuery) || strings.Contains(approvalItem.NowUserName, req.AllQuery) || strings.Contains(approvalItem.CreatedAt, req.AllQuery) || strings.Contains(approvalItem.TypeName, req.AllQuery) { flag = flag + 1 } if approvalItem.Work != nil { if len(approvalItem.Work.ApprovalWorks) > 0 { for _, work := range approvalItem.Work.ApprovalWorks { if strings.Contains(work.ArtworkName, req.AllQuery) || strings.Contains(work.ArtistShowCount, req.AllQuery) || strings.Contains(work.ArtworkCover, req.AllQuery) { flag = flag + 1 break } } } } if len(approvalItem.Show) > 0 { for _, show := range approvalItem.Show { if strings.Contains(show.Address, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.Exhibition != nil { if strings.Contains(approvalItem.Exhibition.Address, req.AllQuery) { flag = flag + 1 } if len(approvalItem.Exhibition.ApprovalExhibitions) > 0 { for _, exhibition := range approvalItem.Exhibition.ApprovalExhibitions { if len(exhibition.Artworks) > 0 { for _, artwork := range exhibition.Artworks { if strings.Contains(artwork.ArtworkName, req.AllQuery) || strings.Contains(artwork.ArtistShowCount, req.AllQuery) || strings.Contains(artwork.SaleAddress, req.AllQuery) || strings.Contains(artwork.Reward, req.AllQuery) || strings.Contains(artwork.Tfnum, req.AllQuery) { flag = flag + 1 break } } } if exhibition.ArtExhibitionDetail != nil { if strings.Contains(exhibition.ArtExhibitionDetail.ArtistShowCount, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowTime, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowName, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.Address, req.AllQuery) { flag = flag + 1 break } } } } } if len(approvalItem.WorkFlows) > 0 { for _, user := range approvalItem.WorkFlows { if strings.Contains(user.Name, req.AllQuery) { flag = flag + 1 break } } } if len(approvalItem.CopyUsers) > 0 { for _, copyUser := range approvalItem.CopyUsers { if strings.Contains(copyUser.Name, req.AllQuery) { flag = flag + 1 break } } } if len(approvalItem.CustomizeInfo) > 0 { for _, keyInfo := range approvalItem.CustomizeInfo { if strings.Contains(keyInfo.ApprovalValue, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.BundlePayPrice != nil { if strings.Contains(approvalItem.BundlePayPrice.ShowName, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ArtistShowCount, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowLowPrice, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ArtworkSize, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowAddress, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowDate, req.AllQuery) { flag = flag + 1 } } if approvalItem.ApprovalOA != nil { if strings.Contains(approvalItem.ApprovalOA.RevokeReason, req.AllQuery) { flag = flag + 1 } if approvalItem.ApprovalOA.LeaveApply != nil { if strings.Contains(approvalItem.ApprovalOA.LeaveApply.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.ActionTime, req.AllQuery) { flag = flag + 1 } } if approvalItem.ApprovalOA.OutWork != nil { if strings.Contains(approvalItem.ApprovalOA.OutWork.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.OutWorkAddress, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.Vehicle, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.OutWork.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.MakeUp != nil { if strings.Contains(approvalItem.ApprovalOA.MakeUp.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.MakeUp.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.Turnover != nil { fmt.Println("=====================turnover=====================") fmt.Println(approvalItem.ApprovalOA.Turnover) if strings.Contains(approvalItem.ApprovalOA.Turnover.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.HandoverName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.JoinTime, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.LeftTime, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.ContactInfo, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.HandoverNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.Address, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.SuperviseName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.SuperviseNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.WorkItems, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.FinanceItems, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.Turnover.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } fmt.Println("=====================flag=====================") fmt.Println(flag) } if approvalItem.ApprovalOA.OverTime != nil { if strings.Contains(approvalItem.ApprovalOA.OverTime.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.OverTime.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.Leave != nil { if strings.Contains(approvalItem.ApprovalOA.Leave.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.DateOfBrith, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.Leave.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.GoOut != nil { if strings.Contains(approvalItem.ApprovalOA.GoOut.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.DateOfBrith, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.GoOut.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.BusinessTrip != nil { if strings.Contains(approvalItem.ApprovalOA.BusinessTrip.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.ActionTime, req.AllQuery) { flag = flag + 1 } for _, itinerary := range approvalItem.ApprovalOA.BusinessTrip.ItineraryList { if strings.Contains(itinerary.Vehicle, req.AllQuery) || strings.Contains(itinerary.EndAddress, req.AllQuery) || strings.Contains(itinerary.StartAddress, req.AllQuery) { flag = flag + 1 break } } } } if approvalItem.FinancialForm != nil { if strings.Contains(approvalItem.FinancialForm.PaymentCompany, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.TransactionDepartment, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.Payee, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.BeneficiaryBank, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.BankNo, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.PaymentMethod, req.AllQuery) { flag = flag + 1 } for _, costInfo := range approvalItem.FinancialForm.CostInfo { if strings.Contains(costInfo.Description, req.AllQuery) || strings.Contains(costInfo.UnitPrice, req.AllQuery) || strings.Contains(costInfo.CostUnit, req.AllQuery) || strings.Contains(costInfo.UsedDepartment, req.AllQuery) || strings.Contains(costInfo.TotalPrice, req.AllQuery) { flag = flag + 1 break } } for _, invoiceInfo := range approvalItem.FinancialForm.InvoiceInfo { if strings.Contains(invoiceInfo.InvoiceDate, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceNo, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceProvider, req.AllQuery) || strings.Contains(invoiceInfo.Amount, req.AllQuery) || strings.Contains(invoiceInfo.Applicant, req.AllQuery) || strings.Contains(invoiceInfo.PaymentMethod, req.AllQuery) || strings.Contains(invoiceInfo.PaymentObj, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceType, req.AllQuery) || strings.Contains(invoiceInfo.Notes, req.AllQuery) || strings.Contains(invoiceInfo.UseTo, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ExhibitionHis != nil { if strings.Contains(approvalItem.ExhibitionHis.Address, req.AllQuery) { flag = flag + 1 } if len(approvalItem.ExhibitionHis.ApprovalExhibitionHiss) > 0 { for _, exhibition := range approvalItem.ExhibitionHis.ApprovalExhibitionHiss { if len(exhibition.Artworks) > 0 { for _, artwork := range exhibition.Artworks { if strings.Contains(artwork.ArtworkName, req.AllQuery) || strings.Contains(artwork.ArtistShowCount, req.AllQuery) || strings.Contains(artwork.SaleAddress, req.AllQuery) || strings.Contains(artwork.Reward, req.AllQuery) || strings.Contains(artwork.Tfnum, req.AllQuery) { flag = flag + 1 break } } } if exhibition.ArtExhibitionDetail != nil { if strings.Contains(exhibition.ArtExhibitionDetail.ArtistShowCount, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowTime, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowName, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.Address, req.AllQuery) { flag = flag + 1 break } } } } } if approvalItem.Promotion != nil { if strings.Contains(approvalItem.Promotion.StaffName, req.AllQuery) || strings.Contains(approvalItem.Promotion.StaffNum, req.AllQuery) || strings.Contains(approvalItem.Promotion.FileName, req.AllQuery) || strings.Contains(approvalItem.Promotion.NewJob, req.AllQuery) || strings.Contains(approvalItem.Promotion.EffectiveTime, req.AllQuery) || strings.Contains(approvalItem.Promotion.OldJob, req.AllQuery) { flag = flag + 1 } } if approvalItem.StaffSupply != nil { if strings.Contains(approvalItem.StaffSupply.PositionName, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.JobAsk, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.JoinInTime, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.DepartmentName, req.AllQuery) { flag = flag + 1 } } if approvalItem.Employ != nil { if strings.Contains(approvalItem.Employ.Post, req.AllQuery) || strings.Contains(approvalItem.Employ.BelongDepartment, req.AllQuery) || strings.Contains(approvalItem.Employ.Name, req.AllQuery) || strings.Contains(approvalItem.Employ.EmployeeType, req.AllQuery) || strings.Contains(approvalItem.Employ.EmployeeNo, req.AllQuery) || strings.Contains(approvalItem.Employ.EntryTime, req.AllQuery) || strings.Contains(approvalItem.Employ.CloseReason, req.AllQuery) || strings.Contains(approvalItem.Employ.ConfirmDate, req.AllQuery) || strings.Contains(approvalItem.Employ.Remark, req.AllQuery) || strings.Contains(approvalItem.Employ.Mobile, req.AllQuery) { flag = flag + 1 } } if approvalItem.CheckIn != nil { if strings.Contains(approvalItem.CheckIn.SaleAddress, req.AllQuery) || strings.Contains(approvalItem.CheckIn.DetailAddress, req.AllQuery) { flag = flag + 1 } } if flag > 0 { filterData = append(filterData, approvalItem) } } fmt.Println("========================匹配所有字段结束,匹配结果==============================") fmt.Println(filterData) res.Data = filterData } return } func commitApproval(c *gin.Context, req *api.ListRequest) (res *api.ListResponse, err error) { userInfo := login.GetUserInfoFromC(c) req.UserID = userInfo.ID if req.OrderBy == "" { req.OrderBy = "desc" } res = &api.ListResponse{} res, err = service.ApprovalProvider.MySubmit(c, req) if err != nil { service.Error(c, e.Error, err) return } //全局搜索过滤 if len(res.Data) > 0 && req.AllQuery != "" { filterData := make([]*api.CreateRequest, 0) for _, approvalItem := range res.Data { flag := 0 if strings.Contains(approvalItem.Content, req.AllQuery) || strings.Contains(approvalItem.Reply, req.AllQuery) || strings.Contains(approvalItem.SubmitterName, req.AllQuery) || strings.Contains(approvalItem.NowUserName, req.AllQuery) || strings.Contains(approvalItem.CreatedAt, req.AllQuery) || strings.Contains(approvalItem.TypeName, req.AllQuery) { flag = flag + 1 } if approvalItem.Work != nil { if len(approvalItem.Work.ApprovalWorks) > 0 { for _, work := range approvalItem.Work.ApprovalWorks { if strings.Contains(work.ArtworkName, req.AllQuery) || strings.Contains(work.ArtistShowCount, req.AllQuery) || strings.Contains(work.ArtworkCover, req.AllQuery) { flag = flag + 1 break } } } } if len(approvalItem.Show) > 0 { for _, show := range approvalItem.Show { if strings.Contains(show.Address, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.Exhibition != nil { if strings.Contains(approvalItem.Exhibition.Address, req.AllQuery) { flag = flag + 1 } if len(approvalItem.Exhibition.ApprovalExhibitions) > 0 { for _, exhibition := range approvalItem.Exhibition.ApprovalExhibitions { if len(exhibition.Artworks) > 0 { for _, artwork := range exhibition.Artworks { if strings.Contains(artwork.ArtworkName, req.AllQuery) || strings.Contains(artwork.ArtistShowCount, req.AllQuery) || strings.Contains(artwork.SaleAddress, req.AllQuery) || strings.Contains(artwork.Reward, req.AllQuery) || strings.Contains(artwork.Tfnum, req.AllQuery) { flag = flag + 1 break } } } if exhibition.ArtExhibitionDetail != nil { if strings.Contains(exhibition.ArtExhibitionDetail.ArtistShowCount, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowTime, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowName, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.Address, req.AllQuery) { flag = flag + 1 break } } } } } if len(approvalItem.WorkFlows) > 0 { for _, user := range approvalItem.WorkFlows { if strings.Contains(user.Name, req.AllQuery) { flag = flag + 1 break } } } if len(approvalItem.CopyUsers) > 0 { for _, copyUser := range approvalItem.CopyUsers { if strings.Contains(copyUser.Name, req.AllQuery) { flag = flag + 1 break } } } if len(approvalItem.CustomizeInfo) > 0 { for _, keyInfo := range approvalItem.CustomizeInfo { if strings.Contains(keyInfo.ApprovalValue, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.BundlePayPrice != nil { if strings.Contains(approvalItem.BundlePayPrice.ShowName, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ArtistShowCount, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowLowPrice, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ArtworkSize, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowAddress, req.AllQuery) || strings.Contains(approvalItem.BundlePayPrice.ShowDate, req.AllQuery) { flag = flag + 1 } } if approvalItem.ApprovalOA != nil { if strings.Contains(approvalItem.ApprovalOA.RevokeReason, req.AllQuery) { flag = flag + 1 } if approvalItem.ApprovalOA.LeaveApply != nil { if strings.Contains(approvalItem.ApprovalOA.LeaveApply.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.LeaveApply.ActionTime, req.AllQuery) { flag = flag + 1 } } if approvalItem.ApprovalOA.OutWork != nil { if strings.Contains(approvalItem.ApprovalOA.OutWork.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.OutWorkAddress, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.Vehicle, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OutWork.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.OutWork.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.MakeUp != nil { if strings.Contains(approvalItem.ApprovalOA.MakeUp.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.MakeUp.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.MakeUp.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.Turnover != nil { if strings.Contains(approvalItem.ApprovalOA.Turnover.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.HandoverName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.JoinTime, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.LeftTime, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.ContactInfo, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.HandoverNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.Address, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.SuperviseName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.SuperviseNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.WorkItems, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.FinanceItems, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Turnover.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.Turnover.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.OverTime != nil { if strings.Contains(approvalItem.ApprovalOA.OverTime.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.OverTime.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.OverTime.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.Leave != nil { if strings.Contains(approvalItem.ApprovalOA.Leave.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.DateOfBrith, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.Leave.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.Leave.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.GoOut != nil { if strings.Contains(approvalItem.ApprovalOA.GoOut.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.DateOfBrith, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.GoOut.ActionTime, req.AllQuery) { flag = flag + 1 } for _, applyTime := range approvalItem.ApprovalOA.GoOut.ApplyTimes { if strings.Contains(applyTime.Date, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ApprovalOA.BusinessTrip != nil { if strings.Contains(approvalItem.ApprovalOA.BusinessTrip.StaffName, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.Reason, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.StaffNum, req.AllQuery) || strings.Contains(approvalItem.ApprovalOA.BusinessTrip.ActionTime, req.AllQuery) { flag = flag + 1 } for _, itinerary := range approvalItem.ApprovalOA.BusinessTrip.ItineraryList { if strings.Contains(itinerary.Vehicle, req.AllQuery) || strings.Contains(itinerary.EndAddress, req.AllQuery) || strings.Contains(itinerary.StartAddress, req.AllQuery) { flag = flag + 1 break } } } } if approvalItem.FinancialForm != nil { if strings.Contains(approvalItem.FinancialForm.PaymentCompany, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.TransactionDepartment, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.Payee, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.BeneficiaryBank, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.BankNo, req.AllQuery) || strings.Contains(approvalItem.FinancialForm.PaymentMethod, req.AllQuery) { flag = flag + 1 } for _, costInfo := range approvalItem.FinancialForm.CostInfo { if strings.Contains(costInfo.Description, req.AllQuery) || strings.Contains(costInfo.UnitPrice, req.AllQuery) || strings.Contains(costInfo.CostUnit, req.AllQuery) || strings.Contains(costInfo.UsedDepartment, req.AllQuery) || strings.Contains(costInfo.TotalPrice, req.AllQuery) { flag = flag + 1 break } } for _, invoiceInfo := range approvalItem.FinancialForm.InvoiceInfo { if strings.Contains(invoiceInfo.InvoiceDate, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceNo, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceProvider, req.AllQuery) || strings.Contains(invoiceInfo.Amount, req.AllQuery) || strings.Contains(invoiceInfo.Applicant, req.AllQuery) || strings.Contains(invoiceInfo.PaymentMethod, req.AllQuery) || strings.Contains(invoiceInfo.PaymentObj, req.AllQuery) || strings.Contains(invoiceInfo.InvoiceType, req.AllQuery) || strings.Contains(invoiceInfo.Notes, req.AllQuery) || strings.Contains(invoiceInfo.UseTo, req.AllQuery) { flag = flag + 1 break } } } if approvalItem.ExhibitionHis != nil { if strings.Contains(approvalItem.ExhibitionHis.Address, req.AllQuery) { flag = flag + 1 } if len(approvalItem.ExhibitionHis.ApprovalExhibitionHiss) > 0 { for _, exhibition := range approvalItem.ExhibitionHis.ApprovalExhibitionHiss { if len(exhibition.Artworks) > 0 { for _, artwork := range exhibition.Artworks { if strings.Contains(artwork.ArtworkName, req.AllQuery) || strings.Contains(artwork.ArtistShowCount, req.AllQuery) || strings.Contains(artwork.SaleAddress, req.AllQuery) || strings.Contains(artwork.Reward, req.AllQuery) || strings.Contains(artwork.Tfnum, req.AllQuery) { flag = flag + 1 break } } } if exhibition.ArtExhibitionDetail != nil { if strings.Contains(exhibition.ArtExhibitionDetail.ArtistShowCount, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowTime, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.ShowName, req.AllQuery) || strings.Contains(exhibition.ArtExhibitionDetail.Address, req.AllQuery) { flag = flag + 1 break } } } } } if approvalItem.Promotion != nil { if strings.Contains(approvalItem.Promotion.StaffName, req.AllQuery) || strings.Contains(approvalItem.Promotion.StaffNum, req.AllQuery) || strings.Contains(approvalItem.Promotion.FileName, req.AllQuery) || strings.Contains(approvalItem.Promotion.NewJob, req.AllQuery) || strings.Contains(approvalItem.Promotion.EffectiveTime, req.AllQuery) || strings.Contains(approvalItem.Promotion.OldJob, req.AllQuery) { flag = flag + 1 } } if approvalItem.StaffSupply != nil { if strings.Contains(approvalItem.StaffSupply.PositionName, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.JobAsk, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.JoinInTime, req.AllQuery) || strings.Contains(approvalItem.StaffSupply.DepartmentName, req.AllQuery) { flag = flag + 1 } } if approvalItem.Employ != nil { if strings.Contains(approvalItem.Employ.Post, req.AllQuery) || strings.Contains(approvalItem.Employ.BelongDepartment, req.AllQuery) || strings.Contains(approvalItem.Employ.Name, req.AllQuery) || strings.Contains(approvalItem.Employ.EmployeeType, req.AllQuery) || strings.Contains(approvalItem.Employ.EmployeeNo, req.AllQuery) || strings.Contains(approvalItem.Employ.EntryTime, req.AllQuery) || strings.Contains(approvalItem.Employ.CloseReason, req.AllQuery) || strings.Contains(approvalItem.Employ.ConfirmDate, req.AllQuery) || strings.Contains(approvalItem.Employ.Remark, req.AllQuery) || strings.Contains(approvalItem.Employ.Mobile, req.AllQuery) { flag = flag + 1 } } if approvalItem.CheckIn != nil { if strings.Contains(approvalItem.CheckIn.SaleAddress, req.AllQuery) || strings.Contains(approvalItem.CheckIn.DetailAddress, req.AllQuery) { flag = flag + 1 } } if flag > 0 { filterData = append(filterData, approvalItem) } } res.Data = filterData } return }