12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package service
-
- import (
- "Xcx_New/models"
- "Xcx_New/utils"
- "fmt"
- "github.com/robfig/cron"
- "strconv"
- "time"
- )
-
- var createStockCronJob *cron.Cron
-
- func init() {
- utils.InfoLog("开启自动更新耗材库存定时任务")
- createStockCronJob = cron.New()
- spec := "0 */5 * * * ?" // 每1分钟执行一次
- //spec := "0 55 23 * * ?" // 每天23点55执行一次
- //spec := "0 0 0 ? * Sun"
- createStockCronJob.AddFunc(spec, func() {
- AutoCreateStockJob()
- })
- }
-
- func BeginAutoCreateStockJob() {
-
- createStockCronJob.Start()
- }
-
- func AutoCreateStockJob() {
-
- timeStr := time.Now().Format("2006-01-02")
- timeLayout := "2006-01-02 15:04:05"
- fmt.Println("timeStr:", timeStr)
- timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, timeStr+" 00:00:00")
- timenow := timeStringToTime.Unix()
- fmt.Println("timenow是什么", timenow)
- //查询当天排班所有机构
- org, errs := GetAllOrgName(timenow)
- fmt.Print("错误是什么", errs)
- fmt.Println("查询有机构失败", err)
-
- for _, item := range org {
-
- information, _ := FindAlLGoodInformation(item.UserOrgId)
- for _, ite := range information {
- countList, _ := FindAllGoodInformationTotalCount(ite.ID)
- for _, it := range countList {
- if ite.ID == it.GoodId {
- formatInt := strconv.FormatInt(it.StockCount, 10)
- total, _ := strconv.ParseFloat(formatInt, 64)
- info := models.GoodInfo{
- Total: total,
- }
- UpdateStockTotal(it.GoodId, info)
- }
- }
- }
-
- }
- }
-
- //查询所有的耗材信息
- func FindAlLGoodInformation(orgid int64) (info []*models.GoodInfo, err error) {
-
- err = XTReadDB().Where("org_id = ? and status = 1", orgid).Find(&info).Error
- return info, err
- }
-
- func FindAllGoodInformationTotalCount(good_id int64) (info []*models.WarehousingInfo, err error) {
-
- db := XTReadDB().Table("xt_warehouse_info as x").Where("x.status =1")
-
- if good_id > 0 {
- db = db.Where("x.good_id = ?", good_id)
- }
- err = db.Select("x.good_id,sum(x.stock_count) as stock_count,x.warehousing_count").Find(&info).Error
- return info, err
- }
-
- //更新耗材库的total字段
-
- func UpdateStockTotal(id int64, lib models.GoodInfo) error {
-
- err := XTWriteDB().Model(&lib).Where("id=? and status = 1", id).Updates(map[string]interface{}{"total": lib.Total}).Error
- return err
- }
|