12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055 |
- package main
- import (
- "encoding/json"
- "encoding/xml"
- "fmt"
- "os"
- "strconv"
- "strings"
- "time"
- "./models"
- "./pkg/setting"
- "github.com/astaxie/beego/logs"
- "github.com/pkg/errors"
- //"unsafe"
- )
- var (
- strMethod string // 输入的方法名称
- strOutFilePath string //保存路径
- strDate string // 操作日期
- FarmCode string // 牧场编号
- )
- type DataXML struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []XMLRecord `xml:"Record"`
- }
- type DataXMLMix struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []XMLRecordMix `xml:"Record"`
- }
- type DataXMLResi struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []XMLRecordResi `xml:"Record"`
- }
- type XMLHead struct {
- SystemCode string `xml:"SystemCode"`
- MappingID string `xml:"MappingID"`
- Type string `xml:"Type"`
- FarmCode string `xml:"FarmCode"`
- DataNum string `xml:"DataNum"`
- Version string `xml:"Version"`
- }
- type XMLRecord struct {
- FeedCode string
- FeedName string
- FarmCode string
- FeedDate string
- Banci string
- BarName string
- GroupTypeCode string
- GroupTypeName string
- CowAmount string
- PCows string
- RecipeCode string
- RecipeName string
- MixBatch string
- BarStartTime string
- BarEndTime string
- BarRecipePlanWeight string
- BarRecipeRealWeight string
- BarFeedPlanWeight string
- BarFeedRealWeight string
- FDate string
- DStatus string
- UserName string
- UserTrueName string
- }
- type XMLRecordMix struct {
- FarmCode string
- MixDate string
- RecipeCode string
- RecipeName string
- FeedCode string
- FeedName string
- GroupTypeCode string
- GroupTypeName string
- Banci string
- MixBatch string
- MixStartTime string
- MixEndTime string
- MixRound string
- OutFeedTime string
- FeedWeightTotal string
- FeedOrder string
- FeedDryMatter string
- FeedAddTime string
- RecipeWeight string
- SystemWeight string
- FDate string
- DStatus string
- UserName string
- UserTrueName string
- }
- type XMLRecordResi struct {
- FarmCode string
- FeedDate string
- ResiDate string
- BarName string
- GroupTypeCode string
- GroupTypeName string
- ResiWeight string
- ResiGroupTypeCode string
- ResiGroupTypeName string
- FDate string
- DStatus string
- UserName string
- UserTrueName string
- }
- type Senddatarecipe struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []Xnr_senddatarecipe `xml:"Record"`
- }
- type Senddatafeed struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []Xnr_senddatafeed `xml:"Record"`
- }
- type Feedgdailycost struct {
- XMLName xml.Name `xml:"DataXML"`
- Head XMLHead `xml:"Head"`
- Record []Xnr_feedgdailycost `xml:"Record"`
- }
- type Xnr_senddatarecipe struct {
- getDate string
- getTime string
- FarmCode string
- RecipeCode string
- RecipeName string
- RecipeVersion string
- GroupTypeCode string
- GroupTypeName string
- RecipeType string
- FeedCode string
- FeedName string
- DryMatter string
- JiaobanOrder string
- JiaobanTime string
- BDWeight string
- BDTime string
- FeedWeight string
- FeedWeightRate string
- StartDate string
- LastAdjDate string
- FDate string
- DStatus string
- UserName string
- UserTrueName string
- }
- type Xnr_senddatafeed struct {
- getDate string
- getTime string
- FarmCode string
- FeedCode string
- FeedName string
- Goods_Spec string
- Goods_Unit string
- Class2_Name string
- FDate string
- DStatus string
- UserName string
- UserTrueName string
- }
- type Xnr_feedgdailycost struct {
- GDailyCostListID string
- getDate string
- getTime string
- FarmCode string
- FeedName string
- FeedTMR_Date string
- DeptGroupType_Code string
- DeptGroupType_Name string
- Group_Name string
- RealCowAmount string
- PCows string
- FeedCowAmount string
- FeedRecipe_Code string
- FeedRecipe_Verson string
- FeedRecipe_Name string
- FeedWeight string
- AverageDMIasRecipe string
- FeedBanciPlan string
- Banci1Rate string
- Banci2Rate string
- Banci3Rate string
- Banci4Rate string
- StatusID string
- StatusText string
- OrderNum string
- Remark string
- Creator string
- CreateDate string
- }
- func main() {
- if len(os.Args) < 2 {
- logs.Error("参数输入错误:例 : " + `PrconsoleV2.4.exe -a getData -p d:\202101011getData.txt -d 2021-01-01`)
- return
- }
- paraMap := make(map[string]string, 0)
- for i := 1; i < len(os.Args); i++ {
- if len(os.Args) > i+1 {
- paraMap[strings.ToLower(os.Args[i])] = strings.Trim(strings.ToLower(os.Args[i+1]), " ")
- } else {
- paraMap[strings.ToLower(os.Args[i])] = ""
- }
- }
- strMethod = paraMap["-a"]
- strDate = paraMap["-d"]
- err := checkDate()
- if err != nil {
- logs.Error("日期格式错误 例 : 2021-01-01")
- return
- }
- strOutFilePath = strings.ToLower(paraMap["-p"])
- FarmCode = setting.DatabaseSetting.FarmCode
- setting.Setup("")
- models.Setup()
- FarmCode = setting.DatabaseSetting.FarmCode
- //logs.Error(strMethod,strOutFilePath,strDate,FarmCode)
- SelectApi()
- }
- func SelectApi() {
- var err error
- switch strMethod {
- case "getstate":
- err = getstate()
- case "getdatamix":
- err = checkpathCreat()
- if err != nil {
- return
- }
- err = getDataMix()
- case "getdata":
- err = checkpathCreat()
- if err != nil {
- return
- }
- err = getData()
- case "getdataresi":
- err = checkpathCreat()
- if err != nil {
- return
- }
- err = getDataResi()
- case "senddatarecipe":
- err = checkpathExist()
- if err != nil {
- return
- }
- err = sendDataRecipe()
- case "senddatafeed":
- err = checkpathExist()
- if err != nil {
- return
- }
- err = sendDataFeed()
- case "feedgdailycost":
- err = checkpathExist()
- if err != nil {
- return
- }
- err = feedGDailyCost()
- default:
- fmt.Println("1")
- //logs.Info("1")
- }
- if err == nil {
- fmt.Println("1")
- //logs.Info("1")
- } else {
- logs.Error("fail", err)
- }
- }
- func getstate() error {
- tx := models.Engine.NewSession()
- err := tx.Begin()
- defer func() {
- switch {
- case err != nil:
- //logs.Error("__error:", err)
- if tx != nil {
- tx.Rollback()
- }
- default:
- if tx != nil {
- err = tx.Commit()
- }
- }
- if tx != nil {
- tx.Close()
- }
- }()
- // 修改栏舍配方
- sqlstr := `
- ALTER TABLE feed ADD COLUMN xnrFeedName VARCHAR(50) DEFAULT NULL COMMENT '伊启牛饲料名称'
- `
- _, err = tx.Exec(sqlstr)
- if err != nil {
- // logs.Error("err", err, )
- }
- sqlstr = `
- ALTER TABLE feedp ADD COLUMN xnrFeedpName VARCHAR(50) DEFAULT NULL COMMENT '伊启牛栏舍名称'
- `
- _, err = tx.Exec(sqlstr)
- if err != nil {
- // logs.Error("err", err, )
- }
- sqlstr = `
- ALTER TABLE feedtemplet ADD COLUMN feedtempletCode VARCHAR(50) DEFAULT NULL COMMENT '伊启牛配方模板编码'
- `
- _, err = tx.Exec(sqlstr)
- if err != nil {
- // logs.Error("err", err, )
- }
- sqlstr = `
- ALTER TABLE feedtemplet ADD COLUMN xnrFeedtempletName VARCHAR(50) DEFAULT NULL COMMENT '伊启牛配方模板名称'
- `
- _, err = tx.Exec(sqlstr)
- if err != nil {
- //logs.Error("err", err, )
- }
- return nil
- }
- func getDataMix() error {
- sqlstr := `SELECT ? AS FarmCode, DATE_FORMAT(MixDate,'%Y-%m-%d') MixDate,RecipeCode,RecipeName,GroupTypeCode,GroupTypeName,Banci,MixBatch,
- DATE_FORMAT(MixStartTime,'%Y-%m-%d %H:%i:%s')MixStartTime, DATE_FORMAT(MixEndTime,'%Y-%m-%d %H:%i:%s') MixEndTime,MixRound, DATE_FORMAT(OutFeedTime,'%Y-%m-%d %H:%i:%s') OutFeedTime,
- SUM(FeedWeightTotal) AS FeedWeightTotal,FeedOrder,FeedCode,FeedName,
- FeedDryMatter, DATE_FORMAT(FeedAddTime,'%Y-%m-%d %H:%i:%s') FeedAddTime ,SUM(RecipeWeight) AS RecipeWeight,SUM(SystemWeight) AS SystemWeight, DATE_FORMAT(FDate,'%Y-%m-%d %H:%i:%s') FDate,DStatus,UserName,UserTrueName
-
- FROM(
- SELECT d.Mydate AS MixDate,
- IFNULL((SELECT feedtempletCode FROM feedtemplet WHERE id = d2.feedtempletId),'') AS RecipeCode,
- d2.feedtempletName AS RecipeName,
- (SELECT GroupTypeCode FROM xnr_senddatarecipe WHERE RecipeName=d2.feedtempletName ORDER BY id DESC LIMIT 1) AS GroupTypeCode,
- (SELECT GroupTypeName FROM xnr_senddatarecipe WHERE RecipeName=d2.feedtempletName ORDER BY id DESC LIMIT 1) AS GroupTypeName,
- CASE WHEN (d.Times = 1) OR (d.Times = 2) THEN 1 WHEN (d.Times = 3) OR (d.Times = 4) THEN 2 WHEN (d.Times = 5) OR (d.Times = 6) THEN 3 END AS Banci,
- CEIL(SUBSTRING_INDEX(d.ProjName,'.', -1)) AS MixBatch,
- (SELECT MIN(downloadplandtl1_exec.InTime) FROM downloadplandtl1_exec WHERE downloadplandtl1_exec.PID = d.id GROUP BY d.id) AS MixStartTime,
- (SELECT MAX(downloadplandtl1_exec.InTime) FROM downloadplandtl1_exec WHERE downloadplandtl1_exec.PID = d.id GROUP BY d.id) AS MixEndTime,'' AS MixRound,
- d1exe.InTime AS OutFeedTime,
- (SELECT SUM(downloadplandtl1.ActualWeightMinus) FROM downloadplandtl1 WHERE downloadplandtl1.PID = d.id GROUP BY d.id) AS FeedWeightTotal,d1exe.sort AS FeedOrder,
- feed.feedcode AS FeedCode,d1.Fname AS FeedName,feed.dry AS FeedDryMatter,
- IFNULL(DATE_SUB(d1exe.Intime, INTERVAL d1exe.processTime HOUR_SECOND),d1exe.Intime) AS FeedAddTime,d1.LWEIGHT AS RecipeWeight,
- d1.ActualWeightMinus AS SystemWeight,NOW() AS FDate,1 AS DStatus,driver.ID AS UserName,driver.drivername AS UserTrueName
- FROM downloadplandtl1 d1 LEFT JOIN downloadedplan d ON d.id = d1.PID LEFT JOIN downloadplandtl1_exec d1exe ON d1.PID = d1exe.PID AND d1.SORT=d1exe.SORT
- LEFT JOIN driver ON d.DriverID = driver.ID
- LEFT JOIN feed ON d1.FID = feed.ID
- LEFT JOIN (SELECT downloadplandtl2.* FROM downloadplandtl2 JOIN downloadedplan ON downloadplandtl2.pid=downloadedplan.id
- WHERE downloadedplan.lpplanType!=1 AND downloadedplan.Mydate= ?
- GROUP BY pid) d2 ON d2.pid=d.id
- WHERE d.Mydate = ? AND d.IsCompleted = 1
- ) a
-
- WHERE FeedName != '需加料' GROUP BY RecipeName,Banci,MixBatch,feedname
- UNION ALL
- SELECT ? AS FarmCode, DATE_FORMAT(MixDate,'%Y-%m-%d') MixDate,RecipeCode,RecipeName,GroupTypeCode,GroupTypeName,Banci,MixBatch,
- DATE_FORMAT(MixStartTime,'%Y-%m-%d %H:%i:%s')MixStartTime, DATE_FORMAT(MixEndTime,'%Y-%m-%d %H:%i:%s') MixEndTime,MixRound, DATE_FORMAT(OutFeedTime,'%Y-%m-%d %H:%i:%s') OutFeedTime,
- SUM(FeedWeightTotal) AS FeedWeightTotal,FeedOrder,FeedCode,FeedName,
- FeedDryMatter, DATE_FORMAT(FeedAddTime,'%Y-%m-%d %H:%i:%s') FeedAddTime ,SUM(RecipeWeight) AS RecipeWeight,SUM(SystemWeight) AS SystemWeight, DATE_FORMAT(FDate,'%Y-%m-%d %H:%i:%s') FDate,DStatus,UserName,UserTrueName FROM(
- SELECT d.Mydate AS MixDate,
- IFNULL((SELECT feedtempletCode FROM feedtemplet WHERE id = d2.feedtempletId),'') AS RecipeCode,
- d2.feedtempletName AS RecipeName,
- (SELECT GroupTypeCode FROM xnr_senddatarecipe WHERE RecipeName=d2.feedtempletName ORDER BY id DESC LIMIT 1) AS GroupTypeCode,
- (SELECT GroupTypeName FROM xnr_senddatarecipe WHERE RecipeName=d2.feedtempletName ORDER BY id DESC LIMIT 1) AS GroupTypeName,
- CASE WHEN (d.Times = 1) OR (d.Times = 2) THEN 1 WHEN (d.Times = 3) OR (d.Times = 4) THEN 2 WHEN (d.Times = 5) OR (d.Times = 6) THEN 3 END AS Banci,
- CEIL(SUBSTRING_INDEX(d.ProjName, '.', -1)) AS MixBatch,
- (SELECT MIN(downloadplandtl1_exec.InTime) FROM downloadplandtl1_exec WHERE downloadplandtl1_exec.PID = d.id GROUP BY d.id) AS MixStartTime,
- (SELECT MAX(downloadplandtl1_exec.InTime) FROM downloadplandtl1_exec WHERE downloadplandtl1_exec.PID = d.id GROUP BY d.id) AS MixEndTime, ''AS MixRound,
- d1exe.InTime AS OutFeedTime,
- (SELECT SUM(downloadplandtl1.ActualWeightMinus) FROM downloadplandtl1 WHERE downloadplandtl1.PID = d.id GROUP BY d.id) AS FeedWeightTotal,d1exe.sort AS FeedOrder,
- feed.feedcode AS FeedCode,d1.Fname AS FeedName,feed.dry AS FeedDryMatter,
- IFNULL(DATE_SUB(d1exe.Intime, INTERVAL d1exe.processTime HOUR_SECOND),d1exe.Intime) AS FeedAddTime,d1.LWEIGHT AS RecipeWeight,
- d1.ActualWeightMinus AS SystemWeight,NOW() AS FDate,1 AS DStatus,driver.ID AS UserName,driver.drivername AS UserTrueName
- FROM downloadplandtl1 d1 LEFT JOIN downloadedplan d ON d.id = d1.PID LEFT JOIN downloadplandtl1_exec d1exe ON d1.PID = d1exe.PID AND d1.SORT=d1exe.SORT
- LEFT JOIN driver ON d.DriverID = driver.ID
- LEFT JOIN feed ON d1.FID = feed.ID
- LEFT JOIN (SELECT downloadplandtl2.* FROM downloadplandtl2 JOIN downloadedplan ON downloadplandtl2.pid=downloadedplan.id
- WHERE downloadedplan.lpplanType!=1 AND downloadedplan.Mydate= ?
- GROUP BY pid) d2 ON d2.flpid=d.id
- WHERE d.Mydate = ? AND d.IsCompleted = 1 AND d2.FLPID IS NOT NULL
-
- ) a GROUP BY RecipeName,Banci,MixBatch,feedname`
- valuesMap, err := models.Engine.SQL(sqlstr, FarmCode, strDate, strDate, FarmCode, strDate, strDate).QueryString()
- if err != nil {
- logs.Error("err", err, len(valuesMap))
- return err
- }
- W := DataXMLMix{}
- W.Head = XMLHead{
- SystemCode: "TMR",
- MappingID: FarmCode,
- Type: "TMRDataMix",
- FarmCode: FarmCode,
- DataNum: strconv.Itoa(len(valuesMap)),
- Version: "3",
- }
- var records []XMLRecordMix
- strtem, err := json.Marshal(valuesMap)
- if err != nil {
- logs.Error("json.Marshal err", err)
- }
- err = json.Unmarshal(strtem, &records)
- if err != nil {
- logs.Error("json.Unmarshal err", err)
- }
- W.Record = append(W.Record, records...)
- output1, _ := xml.MarshalIndent(W, " ", " ")
- f, err := os.Create(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- return err
- }
- output1 = append([]byte(xml.Header), output1...)
- _, err = f.Write(output1)
- if err != nil {
- logs.Error("f.Write err", err)
- return err
- }
- f.Close()
- return nil
- }
- func getData() error {
- sqlstr := ` SELECT ? AS FarmCode,id,DATE_FORMAT(FeedDate,'%Y-%m-%d') AS FeedDate,Banci,BarName,GroupTypeCode,GroupTypeName,CowAmount,
- PCows,RecipeCode,RecipeName,MixBatch,
- DATE_FORMAT(BarStartTime,'%Y-%m-%d %H:%i:%s') BarStartTime,DATE_FORMAT(BarEndTime,'%Y-%m-%d %H:%i:%s') BarEndTime,
- SUM(BarRecipePlanWeight) AS BarRecipePlanWeight,
- SUM(BarRecipeRealWeight) AS BarRecipeRealWeight,
- FeedCode,FeedName,
- SUM(ROUND(BarFeedPlanWeight / CCountRatio * BarRecipePlanWeight,2)) AS BarFeedPlanWeight,
- SUM(ROUND(BarFeedRealWeight / aCCountRatio * BarRecipeRealWeight,2)) AS BarFeedRealWeight,
- DATE_FORMAT(FDate,'%Y-%m-%d %H:%i:%s') FDate,IF(d1fname <> 0,d1fname,IF(ismodify=0,1,3)) DStatus,UserName,UserTrueName
- FROM (
- SELECT d.id,d.Mydate AS FeedDate,
-
- IF(
- (SELECT COUNT(*) FROM recweight r WHERE d2.Intime = r.MTime AND r.Weight = d2.ActualWeight )>0,
- IF((SELECT COUNT(*) FROM recweight r WHERE r.MTime = (SELECT dee.intime FROM downloadplandtl1_exec dee WHERE dee.pid = d1.pid AND dee.sort= d1.sort)
- AND r.Weight = (SELECT dee.ActualWeight FROM downloadplandtl1_exec dee WHERE dee.pid = d1.pid AND dee.sort= d1.sort) ) >0,0,3),3) ismodify,
- IF(ABS((SELECT SUM(ActualWeightMinus) FROM downloadplandtl1_exec de WHERE de.PID = d1.PID AND de.sort = d1.sort ) -
- (SELECT SUM(ActualWeightMinus) FROM downloadplandtl1 de WHERE de.PID = d1.PID AND de.sort = d1.sort ))<1,0,2 ) d1fname,
- CASE WHEN (d.Times = 1) OR (d.Times = 2) THEN 1 WHEN (d.Times = 3) OR (d.Times = 4) THEN 2 WHEN (d.Times = 5) OR (d.Times = 6) THEN 3 END AS Banci,
- d2.Fname AS BarName,
- IFNULL((SELECT DeptGroupType_Code FROM xnr_feedgdailycost WHERE Group_Name=d2.Fname ORDER BY id DESC LIMIT 1),
- (SELECT GroupTypeCode FROM xnr_senddatarecipe WHERE RecipeName =d2.feedtempletName ORDER BY id DESC LIMIT 1)
- ) AS GroupTypeCode,
- IFNULL( (SELECT DeptGroupType_Name FROM xnr_feedgdailycost WHERE Group_Name=d2.Fname ORDER BY id DESC LIMIT 1),
- (SELECT GroupTypeName FROM xnr_senddatarecipe WHERE RecipeName =d2.feedtempletName ORDER BY id DESC LIMIT 1)
- ) AS GroupTypeName,
- d2.cowcount AS CowAmount,
- d2.cowcount*CCountRatio/100 AS PCows,
- (SELECT feedtempletCode FROM feedtemplet WHERE id = d2.feedtempletId) AS RecipeCode,
- d2.feedtempletName AS RecipeName,
- CEIL(SUBSTRING_INDEX(d.ProjName, '.', -1)) AS MixBatch,
- IFNULL(DATE_SUB(d2.Intime, INTERVAL d2.processTime HOUR_SECOND),d2.intime) AS BarStartTime,d2.Intime AS BarEndTime,
- d2.LWEIGHT AS BarRecipePlanWeight,d2.ActualWeightMinus AS BarRecipeRealWeight,feed.feedcode AS FeedCode,d1.Fname AS FeedName,
- d1.LWEIGHT AS BarFeedPlanWeight,d1.ActualWeightMinus AS BarFeedRealWeight,NOW() AS FDate,1 AS DStatus,driver.ID AS UserName,driver.drivername AS UserTrueName,
- (SELECT SUM(dd1.lweight) FROM downloadplandtl1 dd1 INNER JOIN downloadedplan dd ON dd1.PID = dd.id WHERE dd1.PID = d.ID AND dd.IsCompleted = 1) AS CCountRatio,
- (SELECT SUM(ActualWeightMinus) FROM downloadplandtl1 dd1 INNER JOIN downloadedplan dd ON dd1.PID = dd.id WHERE dd1.PID = d.ID AND dd.IsCompleted = 1) AS aCCountRatio
- FROM downloadedplan d INNER JOIN downloadplandtl1 d1 ON d.id = d1.PID
- INNER JOIN downloadplandtl2 d2 ON d.id = d2.PID INNER JOIN feed ON d1.FID=feed.id
- left JOIN driver ON d.DriverID = driver.ID
-
- WHERE d.Mydate = ? AND d.IsCompleted = 1
- ) a GROUP BY BarName,FeedName,banci
- UNION ALL
- SELECT ? AS FarmCode,id,DATE_FORMAT(FeedDate,'%Y-%m-%d') FeedDate,Banci,BarName,GroupTypeCode,GroupTypeName,CowAmount,
- PCows,RecipeCode,RecipeName,MixBatch,
- DATE_FORMAT(BarStartTime,'%Y-%m-%d %H:%i:%s') BarStartTime,DATE_FORMAT(BarEndTime,'%Y-%m-%d %H:%i:%s')BarEndTime,
- SUM(BarRecipePlanWeight) AS BarRecipePlanWeight,
- SUM(BarRecipeRealWeight) AS BarRecipeRealWeight,
- FeedCode,FeedName,
- SUM(ROUND(BarFeedPlanWeight / CCountRatio * BarRecipePlanWeight,2)) AS BarFeedPlanWeight,
- SUM(ROUND(BarFeedRealWeight / aCCountRatio * BarRecipeRealWeight,2)) AS BarFeedRealWeight,
- DATE_FORMAT(FDate,'%Y-%m-%d %H:%i:%s') FDate, IF(d1fname <> 0,d1fname,IF(ismodify=0,1,3)) DStatus,UserName,UserTrueName
- FROM (
- SELECT d.id,d.Mydate AS FeedDate,
- IF(
- (SELECT COUNT(*) FROM recweight r WHERE d2.Intime = r.MTime AND r.Weight = d2.ActualWeight )>0,
- IF((SELECT COUNT(*) FROM recweight r WHERE r.MTime = (SELECT dee.intime FROM downloadplandtl1_exec dee WHERE dee.pid = d1.pid AND dee.sort= d1.sort)
- AND r.Weight = (SELECT dee.ActualWeight FROM downloadplandtl1_exec dee WHERE dee.pid = d1.pid AND dee.sort= d1.sort) ) >0,0,3),3) ismodify,
- IF((SELECT SUM(ActualWeightMinus) FROM downloadplandtl1_exec de WHERE de.PID = d1.PID AND de.sort = d1.sort ) =
- (SELECT SUM(ActualWeightMinus) FROM downloadplandtl1 de WHERE de.PID = d1.PID AND de.sort = d1.sort ),0,2 ) d1fname,
- CASE WHEN (d.Times = 1) OR (d.Times = 2) THEN 1 WHEN (d.Times = 3) OR (d.Times = 4) THEN 2 WHEN (d.Times = 5) OR (d.Times = 6) THEN 3 END AS Banci,
- d2.Fname AS BarName,
- IFNULL((SELECT DeptGroupType_Code FROM xnr_feedgdailycost WHERE Group_Name=d2.Fname ORDER BY id DESC LIMIT 1),
- (SELECT GroupTypeCode FROM xnr_senddatarecipe WHERE RecipeName =d2.Fname ORDER BY id DESC LIMIT 1)
- ) AS GroupTypeCode,
- IFNULL( (SELECT DeptGroupType_Name FROM xnr_feedgdailycost WHERE Group_Name=d2.Fname ORDER BY id DESC LIMIT 1),
- (SELECT GroupTypeCode FROM xnr_senddatarecipe WHERE RecipeName =d2.Fname ORDER BY id DESC LIMIT 1)
- ) AS GroupTypeName,
- d2.cowcount AS CowAmount,
- d2.cowcount*CCountRatio/100 AS PCows,
- (SELECT feedtempletCode FROM feedtemplet WHERE id = d2.feedtempletId) AS RecipeCode,
- d2.feedtempletName AS RecipeName,
- CEIL(SUBSTRING_INDEX(d.ProjName, '.', -1)) AS MixBatch,
- IFNULL(DATE_SUB(d2.Intime, INTERVAL d2.processTime HOUR_SECOND),d2.intime) AS BarStartTime,d2.Intime AS BarEndTime,
- d2.LWEIGHT AS BarRecipePlanWeight,d2.ActualWeightMinus AS BarRecipeRealWeight,feed.feedcode AS FeedCode,d1.Fname AS FeedName,
- d1.LWEIGHT AS BarFeedPlanWeight,d1.ActualWeightMinus AS BarFeedRealWeight,NOW() AS FDate,1 AS DStatus,driver.ID AS UserName,driver.drivername AS UserTrueName,
- (SELECT SUM(dd1.lweight) FROM downloadplandtl1 dd1 INNER JOIN downloadedplan dd ON dd1.PID = dd.id WHERE dd1.PID = d.ID AND dd.IsCompleted = 1) AS CCountRatio,
- (SELECT SUM(ActualWeightMinus) FROM downloadplandtl1 dd1 INNER JOIN downloadedplan dd ON dd1.PID = dd.id WHERE dd1.PID = d.ID AND dd.IsCompleted = 1) AS aCCountRatio
- FROM downloadedplan d INNER JOIN downloadplandtl1 d1 ON d.id = d1.PID
- INNER JOIN downloadplandtl2 d2 ON d.id = d2.FLPID INNER JOIN feed ON d1.FID=feed.id
- left JOIN driver ON d.DriverID = driver.ID
- WHERE d.Mydate = ? AND d.IsCompleted = 1 AND d2.FLPID IS NOT NULL
- ) a GROUP BY BarName,FeedName,banci `
- valuesMap, err := models.Engine.SQL(sqlstr, FarmCode, strDate, FarmCode, strDate).QueryString()
- //valuesMap, err := models.Engine.SQL(sqlstr).QueryString()
- if err != nil {
- logs.Error("err", err, len(valuesMap))
- logs.Error("err", err, len(valuesMap))
- return err
- }
- W := DataXML{}
- W.Head = XMLHead{
- SystemCode: "TMR",
- MappingID: FarmCode,
- Type: "TMRData",
- FarmCode: FarmCode,
- DataNum: strconv.Itoa(len(valuesMap)),
- Version: "3",
- }
- var records []XMLRecord
- strtem, err := json.Marshal(valuesMap)
- if err != nil {
- logs.Error("json.Marshal err", err)
- logs.Error("json.Marshal err", err)
- }
- err = json.Unmarshal(strtem, &records)
- if err != nil {
- logs.Error("json.Unmarshal err", err)
- logs.Error("json.Unmarshal err", err)
- }
- W.Record = append(W.Record, records...)
- output1, _ := xml.MarshalIndent(W, " ", " ")
- f, err := os.Create(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- logs.Error("os.Open err", err)
- return err
- }
- output1 = append([]byte(xml.Header), output1...)
- _, err = f.Write(output1)
- if err != nil {
- logs.Error("f.Write err", err)
- return err
- }
- f.Close()
- return nil
- }
- func getDataResi() error {
- sqlstr := ` SELECT ? AS FarmCode, DATE_FORMAT(DATE_SUB(d.Mydate, INTERVAL 1 DAY),'%Y-%m-%d') AS FeedDate,DATE_FORMAT(d.Mydate,'%Y-%m-%d') AS ResiDate,d2.Fname AS BarName,
- '' AS GroupTypeCode,d2.cowclassname AS GroupTypeName,barfeedremain.Remain AS ResiWeight,'' AS ResiGroupTypeCode,bar.class AS ResiGroupTypeName,
- DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') AS FDate,1 AS DStatus,driver.ID AS UserName,driver.drivername AS UserTrueName
- FROM downloadedplan d INNER JOIN downloadplandtl2 d2 ON d.id = d2.PID
- JOIN barfeedremain ON d2.FBarID = barfeedremain.barid
- AND DATE_ADD(d.Mydate,INTERVAL -1 DAY) = barfeedremain.RemainDate
- LEFT JOIN feedp ON feedp.barid = barfeedremain.barid
- LEFT JOIN bar ON feedp.barid = bar.id
- left JOIN driver ON d.DriverID = driver.ID
- WHERE d.Mydate = ? AND d.IsCompleted = 1 `
- valuesMap, err := models.Engine.SQL(sqlstr, FarmCode, strDate).QueryString()
- if err != nil {
- logs.Error("select downloadedplan err", err, len(valuesMap))
- return err
- }
- W := DataXMLResi{}
- W.Head = XMLHead{
- SystemCode: "TMR",
- MappingID: FarmCode,
- Type: "TMRDataResi",
- FarmCode: FarmCode,
- DataNum: strconv.Itoa(len(valuesMap)),
- Version: "3",
- }
- var records []XMLRecordResi
- strtem, err := json.Marshal(valuesMap)
- if err != nil {
- logs.Error("json.Marshal err", err)
- }
- err = json.Unmarshal(strtem, &records)
- if err != nil {
- logs.Error("json.Unmarshal err", err)
- }
- W.Record = append(W.Record, records...)
- output1, _ := xml.MarshalIndent(W, " ", " ")
- f, err := os.Create(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- return err
- }
- output1 = append([]byte(xml.Header), output1...)
- _, err = f.Write(output1)
- if err != nil {
- logs.Error("f.Write err", err)
- return err
- }
- f.Close()
- return nil
- }
- // 判断集合是否包含某个字符串
- func contains(slice []string, str string) bool {
- for _, s := range slice {
- if s == str {
- return true
- }
- }
- return false
- }
- func sendDataRecipe() error {
- tx := models.Engine.NewSession()
- err := tx.Begin()
- defer func() {
- switch {
- case err != nil:
- logs.Error("__error:", err)
- if tx != nil {
- tx.Rollback()
- }
- default:
- if tx != nil {
- err = tx.Commit()
- }
- }
- if tx != nil {
- tx.Close()
- }
- }()
- _, err = tx.Exec("delete from xnr_senddatarecipe where getDate = ?", strDate)
- if err != nil {
- logs.Error("delete xnr_senddatarecipe err", err)
- }
- f, err := os.Open(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- }
- input := make([]byte, 100000)
- _, err = f.Read(input)
- if err != nil {
- logs.Error("f.Read err", err)
- }
- W := Senddatarecipe{}
- err = xml.Unmarshal(input, &W)
- if err != nil {
- //logs.Error("xml.Unmarshal err", err,W)
- }
- sqlstr := `INSERT INTO xnr_senddatarecipe (
- getDate,getTime,FarmCode,RecipeCode,RecipeName,RecipeVersion,GroupTypeCode,GroupTypeName,RecipeType,FeedCode,FeedName,DryMatter,JiaobanTime,JiaobanOrder,BDWeight,BDTime,FeedWeight,FeedWeightRate,StartDate,LastAdjDate,FDate,DStatus,UserName,UserTrueName
- ) VALUES ( ?,NOW(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ) `
- // 新增新的明细
- for _, v := range W.Record {
- _, err = tx.Exec(sqlstr, strDate, v.FarmCode, v.RecipeCode, v.RecipeName, transtr(v.RecipeVersion), v.GroupTypeCode, v.GroupTypeName,
- transtr(v.RecipeVersion), v.FeedCode, v.FeedName, transtr(v.DryMatter), transtr(v.JiaobanTime), transtr(v.JiaobanOrder), transtr(v.BDWeight),
- transtr(v.BDTime), transtr(v.FeedWeight), transtr(v.FeedWeightRate), trandate(v.StartDate), trandate(v.LastAdjDate), trandate(v.FDate), v.DStatus, v.UserName, v.UserTrueName)
- if err != nil {
- logs.Error("insert xnr_senddatarecipe err"+sqlstr, err)
- }
- }
- // 修改饲料
- sqlstr = `
- UPDATE feedtemplet SET TNAME=CONCAT(LEFT(TNAME,4),'_del'),
- feedtempletCode=NULL,xnrFeedtempletName=NULL WHERE isDelete=1
- `
- _, _ = tx.Exec(sqlstr)
- // 修改饲料
- sqlstr = `
- UPDATE feed
- JOIN xnr_senddatarecipe xf ON feed.feedCode = xf.FeedCode
- SET
- feed.xnrFeedName=xf.FeedName,feed.ENABLE=1
- WHERE xf.getDate=? `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error("UPDATE feed1 err", err)
- }
- // 修改饲料
- // sqlstr = `
- // UPDATE feed
- // JOIN xnr_senddatarecipe xf ON feed.xnrFeedName = xf.FeedName OR feed.FNAME = xf.FeedName
- // SET
- // feed.xnrFeedName=xf.FeedName,feed.feedCode=xf.FeedCode,feed.ENABLE=1
- // WHERE xf.getDate=?
- //`
- // _, err =tx.Exec(sqlstr,strDate)
- // if err != nil {
- // logs.Error(" update feed2 err", err)
- // }
- //新增饲料
- sqlstr = `
- INSERT INTO feed(feedcode,FNAME,xnrFeedName,FCLASS,ENABLE)
-
- SELECT xf.FeedCode,xf.FeedName,xf.FeedName,
- IFNULL((SELECT ID FROM feedclass WHERE FCNAME='其它' OR FCNAME='其他' LIMIT 1),0)ww,1
- FROM xnr_senddatarecipe xf
- WHERE xf.getDate=? AND (SELECT COUNT(*) FROM feed WHERE feed.feedCode = xf.FeedCode) = 0
- GROUP BY xf.FeedCode `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" INSERT feed err", err)
- }
- // 修改饲料干物质
- sqlstr = `
- UPDATE feed
- JOIN xnr_senddatarecipe xf ON feed.feedCode = xf.FeedCode
- SET
- feed.dry=ROUND(xf.DryMatter/100,4)
- WHERE xf.getDate=? AND xf.DryMatter IS NOT NULL
- `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error("update feed3 err", err)
- }
- // 修改配方模板
- sqlstr = `
- UPDATE feedtemplet ft
- JOIN xnr_senddatarecipe xf ON ft.feedtempletCode = xf.RecipeCode OR ft.xnrFeedtempletName = xf.RecipeName
- OR ft.TNAME = xf.RecipeName
- SET
- ft.TNAME=xf.RecipeName,ft.feedtempletCode=xf.RecipeCode,
- ft.xnrFeedtempletName=xf.RecipeName,
- ft.OWNER = xf.UserTrueName,
- ft.REMARK = '伊启牛配方',
- ft.CCID = IFNULL((SELECT id FROM cowclass WHERE CLASSNAME= xf.GroupTypeName LIMIT 1),3)
- WHERE xf.getDate=? `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" update feedtemplet1 err", err)
- }
- //新增配方模板
- sqlstr = `
- INSERT INTO feedtemplet(TNAME,feedtempletCode,xnrFeedtempletName,OWNER,CCID,REMARK)
- SELECT xf.RecipeName,xf.RecipeCode,xf.RecipeName,xf.UserTrueName,
- IFNULL((SELECT id FROM cowclass WHERE CLASSNAME= xf.GroupTypeName LIMIT 1),3),'伊启牛配方'
- FROM xnr_senddatarecipe xf
- LEFT JOIN feedtemplet ft ON ft.feedtempletCode = xf.RecipeCode OR ft.xnrFeedtempletName = xf.RecipeName
- OR ft.TNAME = xf.RecipeName
- WHERE xf.getDate=? AND ft.id IS NULL GROUP BY xf.RecipeCode
-
- `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" INSERT feedtemplet2 err", err)
- }
- //修改配方模板子表
- sqlstr = ` DELETE ftdetail
- FROM feedtemplet
- JOIN ftdetail ON ftdetail.FTID = feedtemplet.id
- WHERE feedtemplet.feedtempletCode IN(
- SELECT RecipeCode FROM xnr_senddatarecipe WHERE getDate=? GROUP BY RecipeCode
- ) `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error("UPDATE ftdetail err", err)
- }
- //新增配方模板子表
- // sqlstr = `
- // DELETE ftd
- // FROM ftdetail ftd
- // LEFT JOIN feed ON feed.id = ftd.FID
- // LEFT JOIN feedtemplet ft ON ftd.FTID = ft.id
- // LEFT JOIN xnr_senddatarecipe xf
- // ON ft.feedtempletCode = xf.RecipeCode AND feed.feedCode = xf.FeedCode
- // AND xf.getDate = ?
- // WHERE xf.id IS NULL AND ft.feedtempletCode IN(SELECT RecipeCode FROM xnr_senddatarecipe xf1 WHERE xf1.getDate = ? GROUP BY RecipeCode)
- // `
- // _, err = tx.Exec(sqlstr, strDate, strDate)
- // if err != nil {
- // logs.Error("delete ftdetail err", err)
- // }
- //新增配方模板子表
- sqlstr = `
- INSERT INTO ftdetail(FTID,FID,FWEIGHT,packageSumWeight,sort,autosecond,autosecondname,feedgroup,fname)
- SELECT ft.id,(SELECT id FROM feed WHERE feed.feedCode = xf.FeedCode LIMIT 1) feedcode,xf.FeedWeight,0,xf.JiaobanOrder,0,'禁用',
- IF((SELECT COUNT(1) FROM ftdetail WHERE ftid = ft.id AND sort = xf.JiaobanOrder ) > 0 ,
- (SELECT feedgroup FROM ftdetail WHERE ftid = ft.id AND sort = xf.JiaobanOrder ) ,
- (SELECT fname FROM feed WHERE feed.feedCode =xf.FeedCode LIMIT 1)),
- (SELECT fname FROM feed WHERE feed.feedCode =xf.FeedCode LIMIT 1)
- FROM xnr_senddatarecipe xf
- LEFT JOIN feedtemplet ft ON ft.feedtempletCode =xf.RecipeCode OR ft.xnrFeedtempletName = xf.RecipeName OR ft.TNAME = xf.RecipeName
- WHERE xf.getDate=? GROUP BY ft.id,feedcode`
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" INSERT ftdetail err", err)
- }
- return nil
- }
- func sendDataFeed() error {
- tx := models.Engine.NewSession()
- err := tx.Begin()
- defer func() {
- switch {
- case err != nil:
- logs.Error("__error:", err)
- if tx != nil {
- tx.Rollback()
- }
- default:
- if tx != nil {
- err = tx.Commit()
- }
- }
- if tx != nil {
- tx.Close()
- }
- }()
- _, err = tx.Exec("delete from xnr_senddatafeed where getDate = ?", strDate)
- if err != nil {
- logs.Error("delete err", err)
- }
- f, err := os.Open(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- }
- input := make([]byte, 100000)
- _, err = f.Read(input)
- if err != nil {
- logs.Error("f.Read err", err)
- }
- W := Senddatafeed{}
- err = xml.Unmarshal(input, &W)
- if err != nil {
- //logs.Error("xml.Unmarshal err", err,W)
- }
- sqlstr := `INSERT INTO xnr_senddatafeed (
- getDate,getTime,FarmCode,FeedCode,FeedName,Goods_Spec,Goods_Unit,Class2_Name,FDate,DStatus,UserName,UserTrueName
- )
- VALUES
- (
- ?,NOW(),?,?,?,?,?,?,?,?,?,?
- )
- `
- for _, v := range W.Record {
- _, err = tx.Exec(sqlstr, strDate, v.FarmCode, v.FeedCode, v.FeedName, v.Goods_Spec, v.Goods_Unit, v.Class2_Name, trandate(v.FDate), transtr(v.DStatus), v.UserName, v.UserTrueName)
- if err != nil {
- logs.Error("insert err", err)
- }
- }
- _, err = tx.Exec("call xnr_synfeeddata(?)", strDate)
- if err != nil {
- logs.Error("call xnr_synfeeddata err", err)
- }
- return nil
- }
- func feedGDailyCost() error {
- tx := models.Engine.NewSession()
- err := tx.Begin()
- defer func() {
- //switch {
- //case err != nil:
- // logs.Error("__error:", err)
- // if tx != nil {
- // tx.Rollback()
- // }
- //default:
- // if tx != nil {
- // err = tx.Commit()
- // }
- //}
- err = tx.Commit()
- if tx != nil {
- tx.Close()
- }
- }()
- _, err = tx.Exec("delete from xnr_feedgdailycost where getDate = ?", strDate)
- if err != nil {
- logs.Error("delete err", err)
- }
- f, err := os.Open(strOutFilePath)
- if err != nil {
- logs.Error("os.Open err", err)
- }
- input := make([]byte, 100000)
- _, err = f.Read(input)
- if err != nil {
- logs.Error("f.Read err", err)
- }
- W := Feedgdailycost{}
- err = xml.Unmarshal(input, &W)
- if err != nil {
- logs.Error("xml.Unmarshal err", err, W)
- }
- sqlstr := `INSERT INTO xnr_feedgdailycost (
- getDate,getTime,FarmCode,GDailyCostListID,FeedName,FeedTMR_Date,DeptGroupType_Code,DeptGroupType_Name,Group_Name,RealCowAmount,
- PCows,FeedCowAmount,FeedRecipe_Code,FeedRecipe_Verson,FeedRecipe_Name,FeedWeight,AverageDMIasRecipe,
- FeedBanciPlan,Banci1Rate,Banci2Rate,Banci3Rate,Banci4Rate,StatusID,StatusText,OrderNum,Remark,Creator,CreateDate
- )
- VALUES
- (
- ?,NOW(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?
- )
- `
- for _, v := range W.Record {
- _, err = tx.Exec(sqlstr, strDate, v.FarmCode, transtr(v.GDailyCostListID), v.FeedName, trandate(v.FeedTMR_Date),
- v.DeptGroupType_Code, v.DeptGroupType_Name, v.Group_Name, transtr(v.RealCowAmount), transtr(v.PCows),
- transtr(v.FeedCowAmount), v.FeedRecipe_Code, v.FeedRecipe_Verson, v.FeedRecipe_Name,
- transtr(v.FeedWeight), transtr(v.AverageDMIasRecipe), transtr(v.FeedBanciPlan), transtr(v.Banci1Rate), transtr(v.Banci2Rate),
- transtr(v.Banci3Rate), transtr(v.Banci4Rate), transtr(v.StatusID), v.StatusText, transtr(v.OrderNum), v.Remark, v.Creator, trandate(v.CreateDate))
- if err != nil {
- logs.Error("insert err", err)
- }
- }
- // 修改栏舍配方
- sqlstr = `
- UPDATE feedp
- JOIN xnr_feedgdailycost xf ON feedp.xnrFeedpName = xf.Group_Name OR feedp.BNAME = xf.Group_Name
- SET
- feedp.softCowCount=xf.RealCowAmount,feedp.xnrFeedpName= xf.Group_Name,feedp.ENABLE=1
- WHERE xf.getDate=?
- `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" update feedp err", err)
- }
- //新增栏舍配方
- sqlstr = `
- INSERT INTO feedp (BNAME,xnrFeedpName,softCowCount,ENABLE)
- SELECT xf.Group_Name,xf.Group_Name,xf.RealCowAmount,1
- FROM xnr_feedgdailycost xf
- LEFT JOIN feedp ON feedp.xnrFeedpName = xf.Group_Name OR feedp.BNAME = xf.Group_Name
- WHERE xf.getDate=? AND feedp.id IS NULL
- `
- _, err = tx.Exec(sqlstr, strDate)
- if err != nil {
- logs.Error(" insert feedp err", err)
- }
- return nil
- }
- func transtr(str string) string {
- if str == "" {
- str = "0"
- }
- return str
- }
- func trandate(str string) string {
- if str == "" {
- str = time.Now().Format("2006-01-02 15:04:05")
- }
- return str
- }
- func checkpathCreat() error {
- if strOutFilePath == "" {
- strOutFilePath = setting.CurrentPath + strMethod + strDate
- }
- f, err := os.Create(strOutFilePath)
- if err != nil {
- logs.Error("输入的保存路径不存在,请核对", err.Error())
- return err
- }
- f.Close()
- return nil
- }
- func checkpathExist() error {
- if strOutFilePath == "" {
- logs.Error("输入的路径不存在")
- return errors.New("输入的路径不存在")
- }
- f, err := os.Open(strOutFilePath)
- if err != nil {
- logs.Error("输入的保存路径不存在,请核对", err.Error())
- return err
- }
- f.Close()
- return nil
- }
- func checkDate() error {
- if strDate == "" {
- strDate = time.Now().Format("2006-01-02")
- return nil
- }
- _, err := time.Parse("2006-01-02", strDate)
- if err != nil {
- _, err = time.Parse("2006/01/02", strDate)
- if err != nil {
- return err
- }
- }
- return nil
- }
|