milk_original_update_gea_more.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package crontab
  2. import (
  3. "kpt-pasture/model"
  4. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  5. "go.uber.org/zap"
  6. )
  7. // UpdateMilkLoad2 (UPDATE milkweight m SET m.nattach=1 WHERE m.wid BETWEEN xdminwid AND xdmaxwid AND m.milkdate=xcurdate AND m.nattach=0 AND m.station=xvarName;)
  8. func (e *Entry) UpdateMilkLoad2(pastureId int64, milkClassConfig *MilkClassConfig, hall *model.MilkHall) {
  9. milkOriginalList := make([]*model.MilkOriginal, 0)
  10. if err := e.DB.Model(new(model.MilkOriginal)).
  11. Where("pasture_id = ?", pastureId).
  12. Where("nattach = ?", 0).
  13. Where("milk_hall_number = ?", hall.Name).
  14. Where("id BETWEEN ? AND ?", milkClassConfig.OldUpdateMaxId+1, milkClassConfig.CurrentMaxId).
  15. Find(&milkOriginalList).Error; err != nil {
  16. return
  17. }
  18. for _, v := range milkOriginalList {
  19. if err := e.DB.Model(new(model.MilkOriginal)).
  20. Where("id = ?", v.Id).
  21. Update("nattach", 1).Error; err != nil {
  22. zaplog.Error("UpdateMilkLoad2", zap.Any("err", err))
  23. return
  24. }
  25. }
  26. }
  27. // UpdateMilkLoad3 更新重复套杯牛只圈数
  28. //
  29. // SELECT aa.wid, aa.`load` FROM (
  30. // SELECT m0.milkdate, m0.shifts, m0.detacher_address, m0.wid, IF(m0.nattach=1 OR @address!=m0.detacher_address, @nload:= m0.`load`, @nload) `load`,
  31. // @attachtimes:=attachtimes, @detachtimes:=detachtimes, @shifts:=m0.shifts, @address:=m0.detacher_address, m0.nattach
  32. // FROM (
  33. // SELECT m00.milkdate, m00.shifts, m00.detacher_address, m00.wid, m00.nattach, m00.`load`, m00.attachtimes, m00.detachtimes
  34. // FROM milkweight m00 WHERE m00.wid BETWEEN xdminwid AND xdmaxwid AND m00.milkdate=xcurdate AND m00.station=xvarName
  35. // ORDER BY m00.shifts, m00.detacher_address, m00.wid LIMIT 99999
  36. // ) m0, (SELECT @shifts:=6, @address:=0, @nload:=1) mm ORDER BY m0.shifts, m0.detacher_address, m0.wid LIMIT 9999
  37. // ) aa WHERE aa.nattach=2 ORDER BY aa.wid;
  38. //
  39. // UPDATE milkweight m5 JOIN tmp_milkload1 m6 ON m5.Wid=m6.wid SET m5.`load`=m6.`load`;
  40. func (e *Entry) UpdateMilkLoad3(pastureId int64, milkClassConfig *MilkClassConfig, hall *model.MilkHall) {
  41. milkOriginalList := make([]*model.MilkOriginal, 0)
  42. if err := e.DB.Model(new(model.MilkOriginal)).
  43. Where("pasture_id = ?", pastureId).
  44. Where("milk_hall_number = ?", hall.Name).
  45. Where("id BETWEEN ? AND ?", milkClassConfig.OldUpdateMaxId+1, milkClassConfig.CurrentMaxId).
  46. Order("shifts,detached_address,id").
  47. Find(&milkOriginalList).Error; err != nil {
  48. return
  49. }
  50. }