Browse Source

更新(当前uat环境)

feature_PlanLog
yehongyang 2 years ago
parent
commit
648d83ff08
1 changed files with 8 additions and 50 deletions
  1. +8
    -50
      services/ap/implments/CustDemandVerHead.service.impl.go

+ 8
- 50
services/ap/implments/CustDemandVerHead.service.impl.go View File

@ -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
}
/******************************************************************************
*


Loading…
Cancel
Save