package crontab import ( "kpt-pasture/model" "gitee.com/xuyiping_admin/pkg/logger/zaplog" "go.uber.org/zap" ) // 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;) func (e *Entry) UpdateMilkLoad2(pastureId int64, milkClassConfig *MilkClassConfig, hall *model.MilkHall) { milkOriginalList := make([]*model.MilkOriginal, 0) if err := e.DB.Model(new(model.MilkOriginal)). Where("pasture_id = ?", pastureId). Where("nattach = ?", 0). Where("milk_hall_number = ?", hall.Name). Where("id BETWEEN ? AND ?", milkClassConfig.OldUpdateMaxId+1, milkClassConfig.CurrentMaxId). Find(&milkOriginalList).Error; err != nil { return } for _, v := range milkOriginalList { if err := e.DB.Model(new(model.MilkOriginal)). Where("id = ?", v.Id). Update("nattach", 1).Error; err != nil { zaplog.Error("UpdateMilkLoad2", zap.Any("err", err)) return } } } // UpdateMilkLoad3 更新重复套杯牛只圈数 // // SELECT aa.wid, aa.`load` FROM ( // SELECT m0.milkdate, m0.shifts, m0.detacher_address, m0.wid, IF(m0.nattach=1 OR @address!=m0.detacher_address, @nload:= m0.`load`, @nload) `load`, // @attachtimes:=attachtimes, @detachtimes:=detachtimes, @shifts:=m0.shifts, @address:=m0.detacher_address, m0.nattach // FROM ( // SELECT m00.milkdate, m00.shifts, m00.detacher_address, m00.wid, m00.nattach, m00.`load`, m00.attachtimes, m00.detachtimes // FROM milkweight m00 WHERE m00.wid BETWEEN xdminwid AND xdmaxwid AND m00.milkdate=xcurdate AND m00.station=xvarName // ORDER BY m00.shifts, m00.detacher_address, m00.wid LIMIT 99999 // ) m0, (SELECT @shifts:=6, @address:=0, @nload:=1) mm ORDER BY m0.shifts, m0.detacher_address, m0.wid LIMIT 9999 // ) aa WHERE aa.nattach=2 ORDER BY aa.wid; // // UPDATE milkweight m5 JOIN tmp_milkload1 m6 ON m5.Wid=m6.wid SET m5.`load`=m6.`load`; func (e *Entry) UpdateMilkLoad3(pastureId int64, milkClassConfig *MilkClassConfig, hall *model.MilkHall) { milkOriginalList := make([]*model.MilkOriginal, 0) if err := e.DB.Model(new(model.MilkOriginal)). Where("pasture_id = ?", pastureId). Where("milk_hall_number = ?", hall.Name). Where("id BETWEEN ? AND ?", milkClassConfig.OldUpdateMaxId+1, milkClassConfig.CurrentMaxId). Order("shifts,detached_address,id"). Find(&milkOriginalList).Error; err != nil { return } }