|
|
@ -5,12 +5,14 @@ package implments |
|
|
|
import ( |
|
|
|
dalAp "leit.com/LAPP_CHEERSSON_BACKEND/dao/ap" |
|
|
|
dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/base" |
|
|
|
dalMe "leit.com/LAPP_CHEERSSON_BACKEND/dao/me" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/db" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/global" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/grmi" |
|
|
|
meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/base" |
|
|
|
modelAp "leit.com/LAPP_CHEERSSON_BACKEND/models/ap" |
|
|
|
model "leit.com/LAPP_CHEERSSON_BACKEND/models/base" |
|
|
|
modelMe "leit.com/LAPP_CHEERSSON_BACKEND/models/me" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/utils" |
|
|
|
) |
|
|
|
|
|
|
@ -70,6 +72,7 @@ var DefaultConditionOfArticle = grmi.NewCondition( |
|
|
|
meta.Article_LastUser.UrlParameterName: grmi.NewConditionItem(meta.Article_LastUser, grmi.Equal, false), |
|
|
|
meta.Article_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.Article_CreateTime, grmi.Approximate, false), |
|
|
|
meta.Article_FMaterialId.UrlParameterName: grmi.NewConditionItem(meta.Article_FMaterialId, grmi.Equal, false), |
|
|
|
meta.Article_Planner.UrlParameterName: grmi.NewConditionItem(meta.Article_Planner, grmi.Equal, false), |
|
|
|
}, |
|
|
|
nil, |
|
|
|
) |
|
|
@ -235,52 +238,65 @@ func (impl *ArticleServiceImplement) ImportArticle(_list [][]interface{}) { |
|
|
|
var stockLevelData []modelAp.ArticleStockLevel |
|
|
|
var articleResourceData []modelAp.ArticleResource |
|
|
|
articleMap := make(map[string]int) |
|
|
|
uomDao := dal.NewUomDAO(session, model.PlantNr, "System") |
|
|
|
uomMap := make(map[int]model.Uom) |
|
|
|
|
|
|
|
var projectData []modelMe.Project |
|
|
|
projectMap := make(map[string]int) |
|
|
|
projectDao := dalMe.NewProjectDAO(session, model.PlantNr, "System") |
|
|
|
for _, v := range _list { |
|
|
|
if _, ok := articleMap[utils.ValueToString(v[3], "")]; ok { |
|
|
|
continue |
|
|
|
} else { |
|
|
|
articleMap[utils.ValueToString(v[3], "")] = 1 |
|
|
|
} |
|
|
|
_stockLevel, _ := stockLevelDao.SelectOne(utils.ValueToString(v[3], "")) |
|
|
|
if _stockLevel == nil { |
|
|
|
stockLevelData = append(stockLevelData, modelAp.ArticleStockLevel{ |
|
|
|
PlantNr: model.PlantNr, |
|
|
|
ArtId: utils.ValueToString(v[3], ""), |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//如果没有找到准缺类型不导入
|
|
|
|
if utils.GetMaterialgroupMap(utils.ValueToInt(v[7], 0)) == "" { |
|
|
|
continue |
|
|
|
} |
|
|
|
//如果没有找到单位不导入
|
|
|
|
_uom := model.Uom{} |
|
|
|
if _info, ok := uomMap[utils.ValueToInt(v[5], 0)]; ok { |
|
|
|
_uom = _info |
|
|
|
} else { |
|
|
|
//查询
|
|
|
|
_info, err := uomDao.Get(utils.ValueToInt(v[5], 0)) |
|
|
|
if err != nil { |
|
|
|
continue |
|
|
|
if utils.ValueToString(v[3], "") == model.ART_TYPE_FINISHED { |
|
|
|
_articleResourceDao, _ := articleResourceDao.SelectOne(utils.ValueToString(v[3], "")) |
|
|
|
if _articleResourceDao == nil { |
|
|
|
articleResourceData = append(articleResourceData, modelAp.ArticleResource{ |
|
|
|
PlantNr: model.PlantNr, |
|
|
|
ArtId: utils.ValueToString(v[3], ""), |
|
|
|
}) |
|
|
|
} |
|
|
|
_stockLevel, _ := stockLevelDao.SelectOne(utils.ValueToString(v[3], "")) |
|
|
|
if _stockLevel == nil { |
|
|
|
stockLevelData = append(stockLevelData, modelAp.ArticleStockLevel{ |
|
|
|
PlantNr: model.PlantNr, |
|
|
|
ArtId: utils.ValueToString(v[3], ""), |
|
|
|
}) |
|
|
|
} |
|
|
|
_uom = *_info |
|
|
|
uomMap[utils.ValueToInt(v[5], 0)] = _uom |
|
|
|
} |
|
|
|
_articleResourceDao, _ := articleResourceDao.SelectOne(utils.ValueToString(v[3], "")) |
|
|
|
if _articleResourceDao == nil { |
|
|
|
articleResourceData = append(articleResourceData, modelAp.ArticleResource{ |
|
|
|
PlantNr: model.PlantNr, |
|
|
|
ArtId: utils.ValueToString(v[3], ""), |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
isUp := false |
|
|
|
//查询物料
|
|
|
|
_info, err := dao.SelectOne(utils.ValueToString(v[3], "")) |
|
|
|
if err != nil { |
|
|
|
continue |
|
|
|
} |
|
|
|
//查询项目
|
|
|
|
if utils.ValueToString(v[13], "") != "" { |
|
|
|
if _, ok := projectMap[utils.ValueToString(v[13], "")]; !ok { |
|
|
|
//
|
|
|
|
projectInfo, err := projectDao.SelectOne(utils.ValueToString(v[13], "")) |
|
|
|
if err != nil { |
|
|
|
continue |
|
|
|
} |
|
|
|
if projectInfo == nil { |
|
|
|
projectData = append(projectData, modelMe.Project{ |
|
|
|
ProjectId: utils.ValueToString(v[13], ""), |
|
|
|
Descr: utils.ValueToString(v[14], ""), |
|
|
|
}) |
|
|
|
} else { |
|
|
|
if projectInfo.Descr != utils.ValueToString(v[14], "") { |
|
|
|
projectInfo.Descr = utils.ValueToString(v[14], "") |
|
|
|
_ = projectDao.UpdateOne(projectInfo) |
|
|
|
} |
|
|
|
} |
|
|
|
projectMap[utils.ValueToString(v[13], "")] = 1 |
|
|
|
} |
|
|
|
} |
|
|
|
if _info != nil { |
|
|
|
//修改物料
|
|
|
|
if _info.Descr1 != utils.ValueToString(v[2], "") { |
|
|
@ -308,14 +324,22 @@ func (impl *ArticleServiceImplement) ImportArticle(_list [][]interface{}) { |
|
|
|
_info.ArtSpec5 = utils.GetMaterialMap(utils.ValueToString(v[8], "")) |
|
|
|
isUp = true |
|
|
|
} |
|
|
|
if _info.UomId != _uom.UomId { |
|
|
|
_info.UomId = _uom.UomId |
|
|
|
if _info.UomId != utils.ValueToString(v[15], "") { |
|
|
|
_info.UomId = utils.ValueToString(v[15], "") |
|
|
|
isUp = true |
|
|
|
} |
|
|
|
if _info.FMaterialId != utils.ValueToInt(v[0], 0) { |
|
|
|
_info.FMaterialId = utils.ValueToInt(v[0], 0) |
|
|
|
isUp = true |
|
|
|
} |
|
|
|
if _info.ProjectId != utils.ValueToString(v[13], "") { |
|
|
|
_info.ProjectId = utils.ValueToString(v[13], "") |
|
|
|
isUp = true |
|
|
|
} |
|
|
|
if _info.Planner != utils.ValueToString(v[16], "") { |
|
|
|
_info.Planner = utils.ValueToString(v[16], "") |
|
|
|
isUp = true |
|
|
|
} |
|
|
|
if isUp { |
|
|
|
_ = dao.UpdateOne(_info) |
|
|
|
} |
|
|
@ -331,77 +355,101 @@ func (impl *ArticleServiceImplement) ImportArticle(_list [][]interface{}) { |
|
|
|
ArtSpec4: utils.ValueToString(v[4], ""), |
|
|
|
ArtSpec5: utils.GetMaterialMap(utils.ValueToString(v[8], "")), |
|
|
|
ArtTypeId: utils.GetMaterialgroupMap(utils.ValueToInt(v[7], 0)), |
|
|
|
UomId: _uom.UomId, |
|
|
|
UomId: utils.ValueToString(v[15], ""), |
|
|
|
FMaterialId: utils.ValueToInt(v[0], 0), |
|
|
|
ProjectId: utils.ValueToString(v[13], ""), |
|
|
|
Planner: utils.ValueToString(v[16], ""), |
|
|
|
}) |
|
|
|
} |
|
|
|
if data == nil { |
|
|
|
return |
|
|
|
} |
|
|
|
_ = session.Begin() |
|
|
|
if len(data) > 20 { |
|
|
|
var _detail []model.Article |
|
|
|
for k, v := range data { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(data) { |
|
|
|
err := dao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
if data != nil { |
|
|
|
if len(data) > 20 { |
|
|
|
var _detail []model.Article |
|
|
|
for k, v := range data { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(data) { |
|
|
|
err := dao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
_detail = []model.Article{} |
|
|
|
} |
|
|
|
_detail = []model.Article{} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
err := dao.Insert(&data) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} else { |
|
|
|
err := dao.Insert(&data) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if len(stockLevelData) > 20 { |
|
|
|
var _detail []modelAp.ArticleStockLevel |
|
|
|
for k, v := range stockLevelData { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(stockLevelData) { |
|
|
|
err := stockLevelDao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
if stockLevelData != nil { |
|
|
|
if len(stockLevelData) > 20 { |
|
|
|
var _detail []modelAp.ArticleStockLevel |
|
|
|
for k, v := range stockLevelData { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(stockLevelData) { |
|
|
|
err := stockLevelDao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
_detail = []modelAp.ArticleStockLevel{} |
|
|
|
} |
|
|
|
_detail = []modelAp.ArticleStockLevel{} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
err := stockLevelDao.Insert(&stockLevelData) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} else { |
|
|
|
err := stockLevelDao.Insert(&stockLevelData) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if len(articleResourceData) > 20 { |
|
|
|
var _detail []modelAp.ArticleResource |
|
|
|
for k, v := range articleResourceData { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(articleResourceData) { |
|
|
|
err := articleResourceDao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
if articleResourceData != nil { |
|
|
|
if len(articleResourceData) > 20 { |
|
|
|
var _detail []modelAp.ArticleResource |
|
|
|
for k, v := range articleResourceData { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(articleResourceData) { |
|
|
|
err := articleResourceDao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
_detail = []modelAp.ArticleResource{} |
|
|
|
} |
|
|
|
_detail = []modelAp.ArticleResource{} |
|
|
|
} |
|
|
|
} else { |
|
|
|
err := articleResourceDao.Insert(&articleResourceData) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
err := articleResourceDao.Insert(&articleResourceData) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
if projectData != nil { |
|
|
|
if len(projectData) > 20 { |
|
|
|
var _detail []modelMe.Project |
|
|
|
for k, v := range projectData { |
|
|
|
_detail = append(_detail, v) |
|
|
|
if (k > 0 && k%20 == 0) || k+1 == len(projectData) { |
|
|
|
err := projectDao.Insert(&_detail) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
_detail = []modelMe.Project{} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
err := projectDao.Insert(&projectData) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
panic(err.Error()) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
_ = session.Commit() |
|
|
|
} |
|
|
|
|
|
|
|