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())
|
}
|
|
}
|