package task import ( "silkserver/models" "silkserver/pkg/logx" "silkserver/service" "silkserver/utils" ) func WorkingHours() { //加锁,只需要一个进程运行此任务 var ( lockName = "WorkingHours" serviceID = "WorkingHoursServer" ) err := models.NewLockSearch().AcquireLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats AcquireLock err:%v", err) return } defer func() { err := models.NewLockSearch().ReleaseLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats ReleaseLock err:%v", err) } }() firstDay, lastDay := utils.GetLastMonthPeriod(utils.GetMonthByOffset(-1)) for i := firstDay.Day() - 1; i <= lastDay.Day(); i++ { localDay := firstDay.AddDate(0, 0, i-1).Format("2006-01-02") err = service.WorkingHours(localDay) if err != nil { logx.Error(err.Error()) } } } func ProductionCar() { //加锁,只需要一个进程运行此任务 var ( lockName = "ProductionCar" serviceID = "ProductionCarServer" ) err := models.NewLockSearch().AcquireLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats AcquireLock err:%v", err) return } defer func() { err := models.NewLockSearch().ReleaseLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats ReleaseLock err:%v", err) } }() firstDay, lastDay := utils.GetLastMonthPeriod(utils.GetMonthByOffset(-1)) for i := 0; i < lastDay.Day(); i++ { localDay := firstDay.AddDate(0, 0, i).Format("2006-01-02") err = service.ProductionCar(localDay) if err != nil { logx.Error(err.Error()) } err = service.ProductionGroup(localDay) if err != nil { logx.Error(err.Error()) } err = service.ProductionWeavers(localDay) if err != nil { logx.Error(err.Error()) } } } func SalaryPlan() { //加锁,只需要一个进程运行此任务 var ( lockName = "SalaryPlan" serviceID = "SalaryPlanServer" ) err := models.NewLockSearch().AcquireLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats AcquireLock err:%v", err) return } defer func() { err := models.NewLockSearch().ReleaseLock(lockName, serviceID) if err != nil { logx.Errorf("MonthStats ReleaseLock err:%v", err) } }() lastMonth := utils.GetMonthByOffset(-1).Format("2006-01") err = service.SalaryPlan(lastMonth) if err != nil { logx.Error(err.Error()) } }