| 
					
				 | 
			
			
				@@ -0,0 +1,468 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package api 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"io/ioutil" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"net/http" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"time" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"../../pkg/app" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"../../pkg/e" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"../../pkg/logging" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"../../pkg/setting" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"../../routers/restful" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"github.com/Anderson-Lu/gofasion/gofasion" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"github.com/gin-gonic/gin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"github.com/xormplus/xorm" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type feedtemplet struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Id     int64  `xorm:"id"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ccname string `xorm:"ccname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Cname  string `xorm:"tname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type tmrStruct struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Id          int64   `xorm:"id"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tname       string  `xorm:"tname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Maxstirfeed float64 `xorm:"maxstirfeed"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type lpplanStruct struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Id          int64   `xorm:"id"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrname     string  `xorm:"tmrname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrid       int64   `xorm:"tmrid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sort        int64   `xorm:"sort"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sel         int64   `xorm:"sel"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Times       int64   `xorm:"times"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ftname      string  `xorm:"ftname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ftid        int64   `xorm:"ftid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Maxweight   float64 `xorm:"maxweight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sumweight   float64 `xorm:"sumweight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sumcowcount int64   `xorm:"sumcowcount"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Pastureid   string  `xorm:"pastureid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type sysopt struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Inforvalue int `xorm:"inforvalue"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type lpplanQueryInfo struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Pastureid   int64   `xorm:"pastureid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lppid       int64   `xorm:"id"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Maxweight   float64 `xorm:"maxweight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lweight     float64 `xorm:"lweight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lweighthis  float64 `xorm:"lweighthis"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barid       int64   `xorm:"barid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barname     string  `xorm:"barname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sort        int64   `xorm:"sort"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrid       int64   `xorm:"tmrid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrname     string  `xorm:"tmrname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Cowcount    int64   `xorm:"cowcount"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ccountradio float64 `xorm:"ccountradio"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Background  string  `xorm:"background"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Times       int64   `xorm:"times"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ftid        int64   `xorm:"ftid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type fpdetailQueryInfo struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Fpdid       int64   `xorm:"fpdid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ptsuse      float64 `xorm:"ptsuse"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ptuse       float64 `xorm:"ptuse"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Weight      float64 `xorm:"weight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barid       int64   `xorm:"barid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barname     string  `xorm:"barname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Cowcount    int64   `xorm:"cowcount"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ccountradio float64 `xorm:"ccountradio"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type lpplandtl1 struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Pastureid   int64   `xorm:"pastureid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lppid       int64   `xorm:"lppid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barid       int64   `xorm:"barid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Barname     string  `xorm:"barname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Fpdid       int64   `xorm:"fpdid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Fttype      int64   `xorm:"fttype"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lweight     float64 `xorm:"lweight"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Sort        int64   `xorm:"sort"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrid       int64   `xorm:"tmrid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrname     string  `xorm:"tmrname"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Cowcount    int64   `xorm:"cowcount"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ccountradio float64 `xorm:"ccountradio"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Background  string  `xorm:"background"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Lweighthis  float64 `xorm:"lweighthis"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//撒料计划 自动生成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func Autogeneration(c *gin.Context) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	appG := app.Gin{C: c} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dataByte, _ := ioutil.ReadAll(c.Request.Body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fsion := gofasion.NewFasion(string(dataByte)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pastureid := fsion.Get("pastureid").ValueStr() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	typeIN := fsion.Get("type").ValueInt64() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	tx := restful.Engine.NewSession() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	feedtempletlist, err := getfeedtemplet(pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	tmrlist, err := gettmr(pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	times, err := gettimes(pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lpplanlist, err := getLpplanlist(pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// var wg sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// wg.Add(len(feedtempletlist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for _, tem := range feedtempletlist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// go func(tem *feedtemplet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// defer wg.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		count, err := getLpplanCount(tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for _, tmr := range tmrlist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for i := 1; i <= times; i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				exist := false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for _, lpp := range lpplanlist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// session.Where("pastureid = ? ", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// session.Where("times = ? ", times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// session.Where("tmrid = ? ", tmrid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// session.Where("ftid = ? ", ftid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if lpp.Tmrid == tmr.Id && lpp.Times == int64(i) && lpp.Ftid == tem.Id { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						exist = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// exist, err := getLpplanExist(tmr.Id, tem.Id, i, pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 	appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if !exist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					ids, err := setting.SnowIds.NextId() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						ids = time.Now().UnixNano() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						logging.Info("create SnowIds err", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					count++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					lpplan := &lpplanStruct{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Id:          ids, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Tmrname:     tmr.Tname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Tmrid:       tmr.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Sort:        count, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Sel:         1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Times:       int64(i), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Ftname:      tem.Cname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Ftid:        tem.Id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Maxweight:   tmr.Maxstirfeed, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Sumweight:   0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Sumcowcount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						Pastureid:   pastureid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					err = addLpplan(lpplan, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// }(tem) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	go func(typeIN int64, pastureid string, tx *xorm.Session) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = autogeneration(typeIN, pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			appG.Response(http.StatusOK, e.ERROR, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}(typeIN, pastureid, tx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	appG.Response(http.StatusOK, e.SUCCESS, true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//查看配方模板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func getfeedtemplet(pastureid string, tx *xorm.Session) ([]*feedtemplet, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	data := make([]*feedtemplet, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := tx.Table("feedtemplet").Select("id,ccname,tname").Where("pastureid = ? ", pastureid).Find(&data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("getfeedtemplet-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return data, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//查看tmr设备 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func gettmr(pastureid string, tx *xorm.Session) ([]*tmrStruct, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	data := make([]*tmrStruct, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session := tx.Table("tmr") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Select("TRIM(id) id,tname,maxstirfeed") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("pastureid = ? ", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("enable = 1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.In("tclassid", "1,2,3") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := session.Find(&data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("gettmr-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return data, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//判断计划种是否有该车次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func getLpplanExist(tmrid, ftid int64, times int, pastureid string, tx *xorm.Session) (bool, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session := tx.Table("lpplan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("pastureid = ? ", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("times = ? ", times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("tmrid = ? ", tmrid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("ftid = ? ", ftid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	exist, err := session.Exist() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("getLpplanExist-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return false, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return exist, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type lpplanList struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Tmrid int64 `xorm:"tmrid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Times int64 `xorm:"times"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Ftid  int64 `xorm:"ftid"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func getLpplanlist(patsureid string, tx *xorm.Session) ([]*lpplanList, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session := tx.Table("lpplan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Select("times,tmrid,ftid") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("pastureid = ? ", patsureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	data := make([]*lpplanList, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := session.Find(&data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("getLpplanlist-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return data, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 添加车次计划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func addLpplan(lpplan *lpplanStruct, tx *xorm.Session) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_, err := tx.Table("lpplan").Insert(lpplan) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("addLpplan-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//获取车次数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func getLpplanCount(tx *xorm.Session) (int64, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	count, err := tx.Table("lpplan").Count() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("getLpplanCount-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 0, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return count, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//获取班次信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func gettimes(pastureid string, tx *xorm.Session) (int, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session := tx.Table("sysopt") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("pastureid = ? ", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	session.Where("inforname = 'times' ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	data := new(sysopt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_, err := session.Get(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("gettimes-error", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 0, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return data.Inforvalue, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func autogeneration(typeIN int64, pastureid string, tx *xorm.Session) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	tx.Begin() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if typeIN == 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_, err := tx.SQL(`DELETE FROM lpplandtl1 WHERE pastureid = ?`, pastureid).Execute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Println("autogeneration-error-1", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_, err = tx.SQL(`update  fpdetail 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 set ptuse = 0,ptsuse=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		WHERE pastureid = ?`, pastureid).Execute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Println("autogeneration-error-2", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lpplansession := tx.SQL(`select   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	t1.sort,t1.tmrid,t1.tmrname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 t1.pastureid,t1.id ,t1.maxweight,ifnull(t2.lweight,0) as lweight from lpplan t1  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	left join ( select ifnull(sum(lweight),0) as lweight,lppid  from lpplandtl1  where pastureid =?   GROUP BY lppid) t2 on t1.id = t2.lppid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	where t1.pastureid = ?  and t1.maxweight >  ifnull(t2.lweight,0)  `, pastureid, pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lpplanlist := make([]*lpplanQueryInfo, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := lpplansession.Find(&lpplanlist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("autogeneration-error-3", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for _, lpplan := range lpplanlist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetailsession := tx.Table("fpdetail").Alias("fpd") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetailsession.Select("fpd.barid,fpd.barname,fpd.id as fpdid ,fpd.weight as weight,ifnull(fpd.ptuse,0) as ptuse,ifnull(fpd.ptsuse,0) as ptsuse,fpd.barid,fpd.barname,fpd.cowcount,fpd.ccountradio") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetailsession.Join("inner", []string{"lpplan", "lpp"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			"lpp.pastureid = fpd.pastureid ").And("lpp.ftid = fpd.ptid").And( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			"lpp.times = fpd.times").And("lpp.id = ?", lpplan.Lppid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetailsession.Where("fpd.pastureid = ? ", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetailsession.GroupBy("fpd.id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fpdetaillist := make([]*fpdetailQueryInfo, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = fpdetailsession.Find(&fpdetaillist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Println("autogeneration-error-4", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for _, fpdetail := range fpdetaillist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 	//剩余料 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			weight := fpdetail.Weight*(1-fpdetail.Ptsuse) - fpdetail.Ptuse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if lpplan.Maxweight <= lpplan.Lweight || weight == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var insertlweight float64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if lpplan.Maxweight-lpplan.Lweight > weight { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				insertlweight = weight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				insertlweight = lpplan.Maxweight - lpplan.Lweight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			lpplan.Lweight += insertlweight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			lpplan.Lweighthis = insertlweight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fpdetail.Ptuse += insertlweight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// updatefpd := tx.Table("fpdetail").Alias("fpd") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// updatefpd.Join("INNER", []string{"lpplan", "lpp"}, "lpp.pastureid = fpd.pastureid") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// updatefpd.Where("lpp.ftid = fpd.ptid").And("lpp.times = fpd.times") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// _, err = updatefpd.Update(fpdetail) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_, err = tx.SQL(` update fpdetail fpd  join lpplan lpp  on lpp.pastureid = fpd.pastureid  and  lpp.ftid = fpd.ptid and lpp.times = fpd.times 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 set   fpd.ptuse = ?  where fpd.id = ? `, fpdetail.Ptuse, fpdetail.Fpdid).Execute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				log.Println("autogeneration-error-5", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			lpplandtlExecute, err := tx.SQL(`select id from lpplandtl1 where pastureid= ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				and  lppid = ?  and fpdid =? and  fttype = ? `, pastureid, lpplan.Lppid, fpdetail.Fpdid, 1).Exist() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				log.Println("autogeneration-error-6", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if lpplandtlExecute { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				lpplandtl1query := new(lpplandtl1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				query := tx.Table("lpplandtl1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				query.Where("pastureid = ?", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				query.Where("lppid = ?", lpplan.Lppid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				query.Where("fpdid = ?", fpdetail.Fpdid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				query.Where("fttype = 1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_, err = query.Get(lpplandtl1query) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					log.Println("autogeneration-error-7", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				upLpplandtl1 := tx.Table("lpplandtl1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				data := &lpplandtl1{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Pastureid:   lpplan.Pastureid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lppid:       lpplan.Lppid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Barid:       fpdetail.Barid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Barname:     fpdetail.Barname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Fpdid:       fpdetail.Fpdid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Fttype:      1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lweight:     lpplandtl1query.Lweight + insertlweight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Sort:        lpplan.Sort, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Tmrid:       lpplan.Tmrid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Tmrname:     lpplan.Tmrname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Cowcount:    fpdetail.Cowcount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Ccountradio: fpdetail.Ccountradio, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// Background:  lpplan.Background, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lweighthis: insertlweight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				upLpplandtl1.Where("pastureid = ?", pastureid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				upLpplandtl1.Where("lppid = ?", lpplan.Lppid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				upLpplandtl1.Where("fpdid = ?", fpdetail.Fpdid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				upLpplandtl1.Where("fttype = 1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_, err = upLpplandtl1.Update(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					log.Println("autogeneration-error-8", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				data := &lpplandtl1{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Pastureid:   lpplan.Pastureid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lppid:       lpplan.Lppid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Barid:       lpplan.Barid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Barname:     lpplan.Barname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Fpdid:       fpdetail.Fpdid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Fttype:      1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lweight:     insertlweight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Sort:        lpplan.Sort, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Tmrid:       lpplan.Tmrid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Tmrname:     lpplan.Tmrname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Cowcount:    lpplan.Cowcount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Ccountradio: lpplan.Ccountradio, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Background:  lpplan.Background, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Lweighthis:  insertlweight, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				addLpplandtl1 := tx.Table("lpplandtl1") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_, err = addLpplandtl1.Insert(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					log.Println("autogeneration-error-9", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					tx.Rollback() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = tx.Commit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Println("autogeneration-error-10", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |