|
|
@ -3,6 +3,9 @@ |
|
|
|
package implments |
|
|
|
|
|
|
|
import ( |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
|
"github.com/360EntSecGroup-Skylar/excelize" |
|
|
|
dalAp "leit.com/LAPP_CHEERSSON_BACKEND/dao/ap" |
|
|
|
dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/base" |
|
|
|
dalMe "leit.com/LAPP_CHEERSSON_BACKEND/dao/me" |
|
|
@ -14,6 +17,7 @@ import ( |
|
|
|
model "leit.com/LAPP_CHEERSSON_BACKEND/models/base" |
|
|
|
modelMe "leit.com/LAPP_CHEERSSON_BACKEND/models/me" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/utils" |
|
|
|
"strings" |
|
|
|
) |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
@ -691,3 +695,89 @@ func (impl *ArticleServiceImplement) Update(user *global.User, entities *[]model |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
|
* |
|
|
|
* @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/ap/CustDemandVerHeadService.ImportArtcleLockWeekFile |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *ArticleServiceImplement) ImportArtcleLockWeekFile(user *global.User, savePath string) error { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/ap/implments/Article.service.impl.go", "ImportArtcleFile", "导入物料吸收期文件") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
dao := dal.NewArticleDAO(session, user.PlantNr, user.UserId) |
|
|
|
daoAp := dalAp.NewArticleStockLevelDAO(session, user.PlantNr, user.UserId) |
|
|
|
|
|
|
|
//第一步:读取文件,构造一个map数组
|
|
|
|
xlsx, err := excelize.OpenFile(savePath) |
|
|
|
if err != nil { |
|
|
|
return grmi.NewBusinessError("打开文件错误!") |
|
|
|
} |
|
|
|
|
|
|
|
rows := xlsx.GetRows("物料参数") |
|
|
|
|
|
|
|
for k, row := range rows { |
|
|
|
if k == 0 { |
|
|
|
continue |
|
|
|
} |
|
|
|
//开启session
|
|
|
|
err = session.Begin() |
|
|
|
if err != nil{ |
|
|
|
return err |
|
|
|
} |
|
|
|
//判断客户是否相同,不相同continue
|
|
|
|
ArtId := strings.TrimSpace(utils.ValueToString(row[0], "")) |
|
|
|
lockWeek := strings.TrimSpace(utils.ValueToString(row[1], "")) |
|
|
|
smallStockWeek := strings.TrimSpace(utils.ValueToString(row[2], "")) |
|
|
|
targetStockWeek := strings.TrimSpace(utils.ValueToString(row[3], "")) |
|
|
|
|
|
|
|
//查询物料信息
|
|
|
|
artInfo,err := dao.SelectOne(ArtId) |
|
|
|
if err != nil{ |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
if artInfo == nil{ |
|
|
|
session.Rollback() |
|
|
|
return errors.New(fmt.Sprintf("物料编号:%s没有维护",ArtId)) |
|
|
|
} |
|
|
|
artInfo.DeliveryBuffer = utils.ValueToFloat(lockWeek,0.0) |
|
|
|
err = dao.UpdateOne(artInfo) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//更新吸收期
|
|
|
|
lockArt,err := daoAp.SelectOne(ArtId) |
|
|
|
if lockArt == nil{ |
|
|
|
stockArt := new(modelAp.ArticleStockLevel) |
|
|
|
stockArt.PlantNr = user.PlantNr |
|
|
|
stockArt.Descr = artInfo.Descr1 |
|
|
|
stockArt.ArtId = ArtId |
|
|
|
stockArt.MaxCoverPeriod = utils.ValueToFloat(targetStockWeek,0.0) |
|
|
|
stockArt.MinCoverPeriod =utils.ValueToFloat(smallStockWeek,0.0) |
|
|
|
stockArt.MaxCoverPeriodType = "W" |
|
|
|
stockArt.MinCoverPeriodType = "W" |
|
|
|
err = daoAp.InsertOne(stockArt) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
}else{ |
|
|
|
lockArt.MaxCoverPeriod = utils.ValueToFloat(targetStockWeek,0.0) |
|
|
|
lockArt.MinCoverPeriod =utils.ValueToFloat(smallStockWeek,0.0) |
|
|
|
lockArt.MaxCoverPeriodType = "W" |
|
|
|
lockArt.MinCoverPeriodType = "W" |
|
|
|
err := daoAp.UpdateOne(lockArt) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
session.Commit() |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |