Browse Source

添加注释

feature_zhangxin
zhangxin 3 years ago
parent
commit
e75c607c88
1 changed files with 20 additions and 12 deletions
  1. +20
    -12
      services/ap/implments/Balance.service.impl.go

+ 20
- 12
services/ap/implments/Balance.service.impl.go View File

@ -1622,6 +1622,7 @@ func (impl *BalanceServiceImplement) refreshMpsArticleDemand(isRefresh bool, dat
if index == 0 {
for _, articleStock := range data_ArticleStock {
if articleStock.ArtId == data_ArticleDemand[index].ArtId {
// FGQty 成品库存
data_ArticleDemand[index].OpeningInventory = articleStock.FGQty
break
}
@ -1630,6 +1631,7 @@ func (impl *BalanceServiceImplement) refreshMpsArticleDemand(isRefresh bool, dat
//最小库存水平
MinInventory := 0.0
// 通过最小库存覆盖周数 添加后续预测需求
for i := 1; i <= int(data_ArticleDemand[index].MinCoverPeriod); i++ {
now := i + index
if now < len(data_ArticleDemand) {
@ -1667,7 +1669,7 @@ func (impl *BalanceServiceImplement) refreshMpsArticleDemand(isRefresh bool, dat
//净生产量 = 0
//END IF
//计算需求
// 编辑时 在制量不参与预算
if !isRefresh {
if data_ArticleDemand[index].OpeningInventory-data_ArticleDemand[index].NeedQty < data_ArticleDemand[index].MinInventory {
data_ArticleDemand[index].NetDemandQty = data_ArticleDemand[index].TargetInventory - (data_ArticleDemand[index].OpeningInventory - data_ArticleDemand[index].NeedQty)
@ -3492,7 +3494,10 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error
firstDemandList = append(firstDemandList, firstArticleDemand)
}
// 抓销售订单数据 再把销售订单的需求和mds的客户需求聚合在一起
// 获取销售订单
dao_SalesOrder := dal_base.NewSalesOrderDAO(session, user.PlantNr, user.UserId)
// DD代表销售订单
SalesOrderList, err := dao_SalesOrder.Select([]grmi.Predicate{meta_base.SalesOrder_ProductType.NewPredicate(grmi.Equal, "DD")}, nil)
if err != nil {
session.Rollback()
@ -3510,14 +3515,14 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error
break
}
}
if resourceId == "" {
for _, resource := range alldata_ArticleSecondResource {
if salesOrder.ArtId == resource.ArtId {
resourceId = resource.SecondaryResourceId
break
}
}
}
//if resourceId == "" {
// for _, resource := range alldata_ArticleSecondResource {
// if salesOrder.ArtId == resource.ArtId {
// resourceId = resource.SecondaryResourceId
// break
// }
// }
//}
if resourceId == "" {
//return grmi.NewBusinessError("缺少物料资源关联关系,物料 :" + salesOrder.ArtId)
@ -3675,11 +3680,11 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error
MinCoverPeriodType: "W",
ResourceId: resourceId,
}
firstDemandList = append(firstDemandList, firstArticleDemand)
}
//聚合
// map[string-物料ID]map[string-demandKey]model.ArticleDemand
keyArtIdMap := make(map[string]map[string]model.ArticleDemand)
for _, v := range firstDemandList {
if info, ok := keyArtIdMap[v.ArtId]; ok {
@ -3712,6 +3717,9 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error
}
DLQty, ZZQty, DDQty := 0.0, 0.0, 0.0
for _, info := range SalesOrderList {
// DL 独立需求订单
// ZZ 在制量
// DD销售订单
if info.ProductType == "DL" {
DLQty = info.PlanQty
} else {
@ -3736,11 +3744,12 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error
var AddTime time.Time
ArticleTime := utils.WeekDayMondayZeroTs(beforeList[index].DemandDate.Restore())
if isInMap[beforeList[index].ArtId] == 0 {
// SalesOrderFetchLeadTimeByDay mps配置前置期
AddTime = ArticleTime.Add(-time.Duration(mpsSettingOne.SalesOrderFetchLeadTimeByDay*24) * time.Hour)
fmt.Println(AddTime, Time, ArticleTime)
isAdd = true
}
// 第一周的销售订单往前抓一个前置期的需求数据
if isAdd && !AddTime.After(OrginTime.Restore()) && !ArticleTime.Before(OrginTime.Restore()) || Time == ArticleTime {
beforeList[index].IndependentDemandQty += DLQty
}
@ -3973,7 +3982,6 @@ func (impl *BalanceServiceImplement) MpsPlanExport(user *global.User, CustArtSto
artDescMap[article.ArtId] = article.Descr1
}
// 通过传入的artIdLi 和 demandKeyLi查询所有的物料需求
articleDemandList, err := daoArticleDemand.Select([]grmi.Predicate{}, nil)
if err != nil {
return "", grmi.NewBusinessError("查询物料需求数据失败, 错误:" + err.Error())


Loading…
Cancel
Save