|
|
@ -19,12 +19,10 @@ import ( |
|
|
|
model "leit.com/LAPP_CHEERSSON_BACKEND/models/ap" |
|
|
|
baseModel "leit.com/LAPP_CHEERSSON_BACKEND/models/base" |
|
|
|
commonModel "leit.com/LAPP_CHEERSSON_BACKEND/models/common" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/models/me" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/utils" |
|
|
|
utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service" |
|
|
|
_struct "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct/pln_forecast" |
|
|
|
"leit.com/LAPP_CHEERSSON_BACKEND/web/middleware/glog" |
|
|
|
"sort" |
|
|
|
"strings" |
|
|
|
"time" |
|
|
@ -1770,7 +1768,7 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
continue |
|
|
|
} |
|
|
|
//当列>=6开始记录零件
|
|
|
|
if kkk >= 6 && kkk <= cols { |
|
|
|
if kkk >= 6 { |
|
|
|
//根据k的数值,映射数据
|
|
|
|
val, ok := tem[kkk] |
|
|
|
//判断值是否存在
|
|
|
@ -1798,8 +1796,7 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = baseModel.STATUS_INT_NO |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
qty := strings.TrimSpace(strings.ReplaceAll(vvv, ",", "")) |
|
|
|
one.DemandQty = float64(utils.ValueToInt(qty, 0)) |
|
|
|
one.DemandQty = float64(utils.ValueToInt(vvv, 0)) |
|
|
|
one.DemandWeek = week |
|
|
|
one.DemandDate = grmi.Date(weekDate.AddDate(0, 0, dayLen)) |
|
|
|
one.DemandYear = year |
|
|
@ -1932,14 +1929,10 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
} |
|
|
|
_nowTime := time.Now() |
|
|
|
_, year, _ := utils.WeekByDate(_nowTime) |
|
|
|
|
|
|
|
var cols int |
|
|
|
for k, row := range rows { |
|
|
|
if k == 0 { |
|
|
|
//记录日期,并且与k关联起来
|
|
|
|
for kk, vv := range row { |
|
|
|
if kk >= 6 && strings.TrimSpace(vv) != "" { |
|
|
|
cols = kk |
|
|
|
if kk >= 6 { |
|
|
|
if kk == 6 { |
|
|
|
//判断第一周是否是大于当前周
|
|
|
@ -1955,7 +1948,6 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
} |
|
|
|
continue |
|
|
|
} |
|
|
|
glog.InfoExtln("批量导入日志", "cols:", cols) |
|
|
|
ArtId := strings.TrimSpace(utils.ValueToString(row[5], "")) |
|
|
|
//判断物料bom是否需要维护
|
|
|
|
if _, ok := articleMap[ArtId]; !ok { |
|
|
@ -2142,7 +2134,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
} |
|
|
|
for kkk, vvv := range row { |
|
|
|
//当列>=5开始记录零件
|
|
|
|
if kkk >= 6 && kkk <= cols { |
|
|
|
if kkk >= 6 { |
|
|
|
//根据k的数值,映射数据
|
|
|
|
val, ok := tem[kkk] |
|
|
|
//判断值是否存在
|
|
|
@ -2171,8 +2163,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = 0 |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
qty := strings.TrimSpace(strings.ReplaceAll(vvv, ",", "")) |
|
|
|
one.DemandQty = float64(utils.ValueToInt(qty, 0)) |
|
|
|
one.DemandQty = float64(utils.ValueToInt(vvv, 0)) |
|
|
|
one.DemandWeek = week |
|
|
|
one.DemandDate = grmi.Date(weekDate.AddDate(0, 0, dayLen)) |
|
|
|
one.DemandYear = year |
|
|
@ -2670,10 +2661,10 @@ func (impl *CustDemandVerHeadServiceImplement) CompareVersionInfoByArtcle(user * |
|
|
|
if len(bomlst) == 0 { |
|
|
|
return nil, grmi.NewBusinessError("原材料不存在!") |
|
|
|
} |
|
|
|
//计算成品物料和原材料之间的换算关系
|
|
|
|
var artIds []string |
|
|
|
artMap := make(map[string]float64, 0) |
|
|
|
for _, v := range bomlst { |
|
|
|
key := v.FmatNr |
|
|
|
bomlstNum := v.CmatQty |
|
|
|
if bomlstNum < 1 { |
|
|
|
bomlstNum = 1 |
|
|
@ -2682,16 +2673,10 @@ func (impl *CustDemandVerHeadServiceImplement) CompareVersionInfoByArtcle(user * |
|
|
|
if bomlstFNum < 1 { |
|
|
|
bomlstFNum = 1 |
|
|
|
} |
|
|
|
|
|
|
|
bomFloat := bomlstNum / bomlstFNum |
|
|
|
//递归
|
|
|
|
key, bomFloat, err := impl.DiGuiSearch(user, v, bomFloat) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
artMap[key] = bomFloat |
|
|
|
artIds = append(artIds, key) |
|
|
|
artMap[key] = bomlstNum / bomlstFNum |
|
|
|
artIds = append(artIds, v.FmatNr) |
|
|
|
} |
|
|
|
|
|
|
|
if len(version) > 0 { |
|
|
|
//数据长度:保存多少周的数据
|
|
|
|
detailData, err := detailDao.SelectDeviationByVersion(version, artIds) |
|
|
@ -2796,33 +2781,6 @@ func (impl *CustDemandVerHeadServiceImplement) CompareVersionInfoByArtcle(user * |
|
|
|
|
|
|
|
return dataInfo, nil |
|
|
|
} |
|
|
|
func (impl *CustDemandVerHeadServiceImplement) DiGuiSearch(user *global.User, bomlst me.BomLst, bomFloat float64) (string, float64, error) { |
|
|
|
if bomlst.FmatNr != bomlst.BomId { |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
meDao := meDal.NewBomLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
bomInfo, err := meDao.SelectOneByFArtId(bomlst.BomId, bomlst.FmatNr) |
|
|
|
if err != nil { |
|
|
|
return "", 0, err |
|
|
|
} |
|
|
|
bomlstNum := bomInfo.CmatQty |
|
|
|
if bomlstNum < 1 { |
|
|
|
bomlstNum = 1 |
|
|
|
} |
|
|
|
bomlstFNum := bomInfo.FmatQty |
|
|
|
if bomlstFNum < 1 { |
|
|
|
bomlstFNum = 1 |
|
|
|
} |
|
|
|
bomFloat = bomFloat * (bomlstNum / bomlstFNum) |
|
|
|
if bomInfo.FmatNr == bomInfo.BomId { |
|
|
|
return bomInfo.FmatNr, bomFloat, nil |
|
|
|
} |
|
|
|
//递归
|
|
|
|
impl.DiGuiSearch(user, bomInfo, bomFloat) |
|
|
|
} |
|
|
|
return bomlst.FmatNr, bomFloat, nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
|
* |
|
|
|