From 836d23e52bf88b72d45228d389e6ab720ddcc8df Mon Sep 17 00:00:00 2001 From: "DESKTOP-4672LME\\Xu Tengfei" Date: Fri, 21 Jan 2022 10:02:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/ap/implments/Balance.service.impl.go | 121 ++++++++++-------- 1 file changed, 65 insertions(+), 56 deletions(-) diff --git a/services/ap/implments/Balance.service.impl.go b/services/ap/implments/Balance.service.impl.go index 91f3e93..0ca7ed9 100644 --- a/services/ap/implments/Balance.service.impl.go +++ b/services/ap/implments/Balance.service.impl.go @@ -69,6 +69,7 @@ func NewBalanceServiceImplement() *BalanceServiceImplement { return &BalanceServiceImplement{} } +// 显示计划列表 func (impl *BalanceServiceImplement) GetCustomerArticleDemand(user *global.User, ArtId, CustomerId, Planner string, pageNumber, pageSize int) (*model.CustArtStockItem, error) { grmi.Log(user, "/services/ap/implments/ArticleDemand.service.impl.go", "GetCustomerArticleDemand", "GetCustomerArticleDemand") @@ -96,6 +97,7 @@ func (impl *BalanceServiceImplement) GetCustomerArticleDemand(user *global.User, artList = append(artList, artId) } + // 三个搜索条件 var custArtlst1, custArtlst2, custArtlst3 []string var CustomerList []interface{} if CustomerId != "" { @@ -357,6 +359,7 @@ func (impl *BalanceServiceImplement) GetCustomerArticleDemand(user *global.User, return &CustArtStockaLL, nil } +//刷新一条物料计划的显示 func (impl *BalanceServiceImplement) RefreshCustomerArticleDemand(user *global.User, ArtId string, mapList []map[string]string) ([]model.ArticleDemand, *model.CustArtStockItem, error) { engine := db.Eloquent.Master() session := engine.NewSession() @@ -627,6 +630,7 @@ func (impl *BalanceServiceImplement) RefreshCustomerArticleDemand(user *global.U return data_ArticleDemand_new, &CustArtStockaLL, err } +//编辑后保存并刷新显示 func (impl *BalanceServiceImplement) SaveCustomerArticleDemand(user *global.User, CustomerId, ArtId string, mapList []map[string]string) (*model.MpsPlan, error) { engine := db.Eloquent.Master() session := engine.NewSession() @@ -703,6 +707,7 @@ func (impl *BalanceServiceImplement) SaveCustomerArticleDemand(user *global.User return mpsPlan, err } +//资源产能评估 func (impl *BalanceServiceImplement) GetResourceCapacityAndDemand(user *global.User, urlParameters map[string]string) (result []model.ResourceLoad, err error) { grmi.Log(user, "/services/ap/implments/BalanceService.service.impl.go", "GetResourceCapacityAndDemand", "查询GetResourceCapacityAndDemand") @@ -1060,6 +1065,7 @@ func (impl *BalanceServiceImplement) GetResourceCapacityAndDemand(user *global.U return result, nil } +//交期评估---列表 func (impl *BalanceServiceImplement) CustomerOrderReviewList(user *global.User, CustomerOrderReviewInfoLst []model.CustomerOrderReviewInfo) (result []model.CustomerOrderReviewInfo, err error) { grmi.Log(user, "/services/ap/implments/BalanceService.service.impl.go", "CustomerOrderReviewList", "CustomerOrderReviewList") @@ -1078,6 +1084,7 @@ func (impl *BalanceServiceImplement) CustomerOrderReviewList(user *global.User, return result, err } +//交期评估---单条 func (impl *BalanceServiceImplement) CustomerOrderReview(user *global.User, urlParameters map[string]string) (result *model.CustomerOrderReviewInfo, err error) { grmi.Log(user, "/services/ap/implments/BalanceService.service.impl.go", "CustomerOrderReview", "查询CustomerOrderReview") @@ -1454,6 +1461,7 @@ func (impl *BalanceServiceImplement) CustomerOrderReviewOne(user *global.User, q return result, nil } +//交期评估 上传文件 func (impl *BalanceServiceImplement) CustomerOrderReviewUpload(user *global.User, savePath string) (resultList []model.CustomerOrderReviewInfo, err error) { file, err := excelize.OpenFile(savePath) if err != nil { @@ -1509,6 +1517,7 @@ func (impl *BalanceServiceImplement) CustomerOrderReviewUpload(user *global.User return resultList, nil } +//交期评估 导出文件 func (impl *BalanceServiceImplement) CustomerOrderReviewExport(user *global.User, CustomerOrderReviewInfoLst []model.CustomerOrderReviewInfo) (result string, err error) { grmi.Log(user, "/services/ap/implments/BalanceService.service.impl.go", "CustomerOrderReviewExport", "CustomerOrderReviewExport") @@ -1545,7 +1554,7 @@ func (impl *BalanceServiceImplement) CustomerOrderReviewExport(user *global.User result, err = grmi.SaveExcelFile(inter, []string{"CustomerId", "ArtId", "Qty", "ExpectedDate", "ReplyDate"}, "sheet1", "客户正式订单交期评审结果") return result, err } - +//mps计算逻辑 func (impl *BalanceServiceImplement) refreshMpsArticleDemand(isRefresh bool, data_ArticleStock []model_base.ArticleStock, data_ArticleStockLevel []model.ArticleStockLevel, data_ArticleDemand []model.ArticleDemand, data_ArticleResource []model.ArticleResource, mpsSetting *model.MpsSetting) ([]model.ArticleDemand, error) { if data_ArticleDemand == nil || len(data_ArticleDemand) == 0 { fmt.Println(data_ArticleDemand) @@ -1716,7 +1725,7 @@ func (impl *BalanceServiceImplement) refreshMpsArticleDemand(isRefresh bool, dat return data_ArticleDemand, nil } - +//mps计算逻辑 --- 紧急插单 func (impl *BalanceServiceImplement) refreshMpsArticleDemandEmergency(isRefresh bool, data_ArticleStock []model_base.ArticleStock, data_ArticleStockLevel []model.ArticleStockLevel, data_ArticleDemand []model.ArticleDemandEmergency, data_ArticleResource []model.ArticleResource, mpsSetting *model.MpsSetting) ([]model.ArticleDemandEmergency, error) { if data_ArticleDemand == nil || len(data_ArticleDemand) == 0 { fmt.Println(data_ArticleDemand) @@ -1838,7 +1847,7 @@ func (impl *BalanceServiceImplement) refreshMpsArticleDemandEmergency(isRefresh return data_ArticleDemand, nil } - +//生成mps资源负荷 func (impl *BalanceServiceImplement) GetMpsPlan(user *global.User, resouceId, secondresourceid, artId string) (*model.MpsPlan, error) { grmi.Log(user, "/services/ap/implments/Balance.service.impl.go", "GetMpsPlan", "GetMpsPlan") @@ -2174,6 +2183,7 @@ func (impl *BalanceServiceImplement) makeMpsGroup(data_ArticleStock []model_base return finalArticleDemandList, mpsGroupLst, nil, nil, false } +// mps资源负荷计算 func (impl *BalanceServiceImplement) MpsPlan(user *global.User, resouceId, secondresourceid, artId string, MpsSettingNr int, CustomerId string) (*model.MpsPlan, error) { grmi.Log(user, "/services/ap/implments/Balance.service.impl.go", "MpsPlan", "MpsPlan") @@ -2514,6 +2524,7 @@ func (impl *BalanceServiceImplement) MpsPlan(user *global.User, resouceId, secon return mpsPlan, err } +//替代资源平衡 func (impl *BalanceServiceImplement) MpsPlanFit(user *global.User, mpsPlan *model.MpsPlan, data_ArticleAlternativeResource []model.ArticleAlternativeResource, data_ArticleStockLevel []model.ArticleStockLevel, data_ArticleResource []model.ArticleResource) (*model.MpsPlan, error) { var err error @@ -2628,6 +2639,7 @@ func (impl *BalanceServiceImplement) MpsPlanFit(user *global.User, mpsPlan *mode return mpsPlan, err } +//有效产能约束平衡 func (impl *BalanceServiceImplement) MpsPlanConstraint(mpsPlan *model.MpsPlan, data_ArticleResource []model.ArticleResource, data_ArticleStockLevel []model.ArticleStockLevel, artId string) (*model.MpsPlan, error) { var err error for index, mpsGroupInfo := range mpsPlan.ArticleResourceMpsGroupLst { @@ -2739,6 +2751,7 @@ func (impl *BalanceServiceImplement) MpsPlanConstraint(mpsPlan *model.MpsPlan, d return mpsPlan, err } +// mps 资源负荷保存 暂时废弃 func (impl *BalanceServiceImplement) SaveMpsPlan(user *global.User, ArticleDemandLst *[]model.ArticleDemand) (err error) { grmi.Log(user, "/services/ap/implments/Balance.service.impl.go", "SaveMpsPlan", "SaveMpsPlan") @@ -2753,7 +2766,7 @@ func (impl *BalanceServiceImplement) SaveMpsPlan(user *global.User, ArticleDeman return err } - +//发布 func (impl *BalanceServiceImplement) PublishMpsPlan(user *global.User, version string) (err error) { engine := db.Eloquent.Master() session := engine.NewSession() @@ -3190,7 +3203,7 @@ func CopyStruct(src, dst interface{}) { dvalue.Set(value) //这里默认共同成员的类型一样,否则这个地方可能导致 panic,需要简单修改一下。 } } - +// 启动程序预加载缓存 func (impl *BalanceServiceImplement) RefreshData() error { var err error @@ -3233,7 +3246,7 @@ func (impl *BalanceServiceImplement) RefreshData() error { return err } -//刷新 +//初始化 刷新 func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error { engine := db.Eloquent.Master() @@ -3262,8 +3275,8 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User) error // 查询需求详细数据 var demandLstLi []model.CustDemandVerDetail for _, headInfo := range demandHeadList { - custDemandHeadData, err := dao_CustDemandHead.Select([]grmi.Predicate{meta.CustDemandHead_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandHead_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId)},nil) - if err !=nil || len(custDemandHeadData) == 0 { + custDemandHeadData, err := dao_CustDemandHead.Select([]grmi.Predicate{meta.CustDemandHead_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandHead_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId)}, nil) + if err != nil || len(custDemandHeadData) == 0 { continue } @@ -4140,12 +4153,12 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U // 查询需求详细数据 var demandLstLi []model.CustDemandVerDetail for _, headInfo := range demandHeadList { - custDemandHeadData, err := dao_CustDemandHead.Select([]grmi.Predicate{meta.CustDemandHead_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandHead_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId)},nil) - if err !=nil || len(custDemandHeadData) == 0 { + custDemandHeadData, err := dao_CustDemandHead.Select([]grmi.Predicate{meta.CustDemandHead_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandHead_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId)}, nil) + if err != nil || len(custDemandHeadData) == 0 { continue } - demandLstLiOne, err := demandDetailDao.Select([]grmi.Predicate{meta.CustDemandVerDetail_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandVerDetail_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId),meta.CustDemandVerDetail_ArtId.NewPredicate(grmi.Equal, ArtId)}, []grmi.Field{meta.CustDemandVerDetail_ArtId, meta.CustDemandVerDetail_DemandDate}) + demandLstLiOne, err := demandDetailDao.Select([]grmi.Predicate{meta.CustDemandVerDetail_VersionId.NewPredicate(grmi.Equal, headInfo.VersionId), meta.CustDemandVerDetail_CustomerId.NewPredicate(grmi.Equal, headInfo.CustomerId), meta.CustDemandVerDetail_ArtId.NewPredicate(grmi.Equal, ArtId)}, []grmi.Field{meta.CustDemandVerDetail_ArtId, meta.CustDemandVerDetail_DemandDate}) if err != nil { session.Rollback() return grmi.NewBusinessError("查询客户需求版本详细数据失败, error:" + err.Error()) @@ -4186,7 +4199,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U var firstDemandList []model.ArticleDemand // 订单需求 - erp.GetOrderQty(user.PlantNr,user.UserId, &alldata_Article) + erp.GetOrderQty(user.PlantNr, user.UserId, &alldata_Article) dao_SalesOrder := dal_base.NewSalesOrderDAO(session, user.PlantNr, user.UserId) SalesOrderList, err := dao_SalesOrder.Select([]grmi.Predicate{meta_base.SalesOrder_ArtId.NewPredicate(grmi.Equal, ArtId)}, nil) @@ -4196,7 +4209,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U } for _, salesOrder := range SalesOrderList { - if salesOrder.ProductType == "DD"{ + if salesOrder.ProductType == "DD" { //临时插单类型 salesOrder.ProductType = "DD_TEMP" err = dao_SalesOrder.UpdateOne(&salesOrder) @@ -4204,7 +4217,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U session.Rollback() return grmi.NewBusinessError("更新SalesOrder失败, error:" + err.Error()) } - }else{ + } else { continue } @@ -4387,7 +4400,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U firstDemandList = append(firstDemandList, firstArticleDemand) } - if len(firstDemandList) == 0{ + if len(firstDemandList) == 0 { return grmi.NewBusinessError("该物料没有未完销售订单") } @@ -4549,8 +4562,6 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U firstDemandList = append(firstDemandList, firstArticleDemand) } - - //聚合 keyArtIdMap := make(map[string]map[string]model.ArticleDemand) for _, v := range firstDemandList { @@ -4582,7 +4593,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U session.Rollback() return grmi.NewBusinessError("查询SalesOrder失败, error:" + err.Error()) } - DLQty,WGQty,ZZQty,DD_TEMPQty := 0.0,0.0,0.0,0.0 + DLQty, WGQty, ZZQty, DD_TEMPQty := 0.0, 0.0, 0.0, 0.0 for _, info := range SalesOrderList { if info.ProductType == "DD_TEMP" { DD_TEMPQty = info.PlanQty @@ -4745,27 +4756,27 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U DemandKey: info.DemandKey, DemandPeriodType: info.DemandPeriodType, CustomerId: info.CustomerId, - DemandDate: info.DemandDate, + DemandDate: info.DemandDate, DemandYear: info.DemandYear, DemandWeek: info.DemandWeek, - DemandMonth: info.DemandMonth, - ForecastDemandQty: info.ForecastDemandQty, //预测需求 - OrderQty: info.OrderQty, //订单需求 - OutSourcingQty: info.OutSourcingQty, //外购需求 + DemandMonth: info.DemandMonth, + ForecastDemandQty: info.ForecastDemandQty, //预测需求 + OrderQty: info.OrderQty, //订单需求 + OutSourcingQty: info.OutSourcingQty, //外购需求 IndependentDemandQty: info.IndependentDemandQty, //独立需求 - WipQty: info.WipQty, //在制量 - OpeningInventory: info.OpeningInventory, //期初库存 - TargetInventory: info.TargetInventory, //目标库存 - MinInventory: info.MinInventory, //最低库存 - NetDemandQty: info.NetDemandQty, // 净生产量 mps - EndingInventory: info.EndingInventory, //期末库存 - MidBatchQuantity: info.MidBatchQuantity, //每次削减量 - LockWeeks: info.LockWeeks, //前置期 - MinCoverPeriod: info.MinCoverPeriod, - MaxCoverPeriod: info.MaxCoverPeriod, - MinCoverPeriodType: info.MinCoverPeriodType, - ResourceId: info.ResourceId, - ZaituQty: info.ZaituQty, + WipQty: info.WipQty, //在制量 + OpeningInventory: info.OpeningInventory, //期初库存 + TargetInventory: info.TargetInventory, //目标库存 + MinInventory: info.MinInventory, //最低库存 + NetDemandQty: info.NetDemandQty, // 净生产量 mps + EndingInventory: info.EndingInventory, //期末库存 + MidBatchQuantity: info.MidBatchQuantity, //每次削减量 + LockWeeks: info.LockWeeks, //前置期 + MinCoverPeriod: info.MinCoverPeriod, + MaxCoverPeriod: info.MaxCoverPeriod, + MinCoverPeriodType: info.MinCoverPeriodType, + ResourceId: info.ResourceId, + ZaituQty: info.ZaituQty, } err := dao_ArticleDemandEmergency.InsertOne(&articleDemandEmergency) if err != nil { @@ -4779,14 +4790,13 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U session.Commit() return nil } - -func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.User, mapList []map[string]string) ( error) { +//紧急插单保存 +func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.User, mapList []map[string]string) error { engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() - dao_ArticleDemand := dal.NewArticleDemandEmergencyDAO(session, user.PlantNr, user.UserId) dao_MpsSetting := dal.NewMpsSettingDAO(session, user.PlantNr, user.UserId) @@ -4800,7 +4810,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.Use mpsSettingOne, err := dao_MpsSetting.SelectOne(data_plant.DefaultMpsSettingNr) if err != nil || mpsSettingOne == nil { - return grmi.NewDataBaseError(err) + return grmi.NewDataBaseError(err) } //保存 @@ -4812,10 +4822,10 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.Use err = dao_ArticleDemand.Update(&data_ArticleDemand_new) } - return err + return err } - -func (impl *BalanceServiceImplement)ArticleDemandEmergencyGet(user *global.User, pageNumber, pageSize int) (*model.CustArtStockItem, error) { +//紧急插单显示 +func (impl *BalanceServiceImplement) ArticleDemandEmergencyGet(user *global.User, pageNumber, pageSize int) (*model.CustArtStockItem, error) { engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() @@ -5042,8 +5052,7 @@ func (impl *BalanceServiceImplement)ArticleDemandEmergencyGet(user *global.User, CustArtStockaLL.Count = CustArtStockaLL.Count / 11 return &CustArtStockaLL, nil } - - +//紧急插单发布 func (impl *BalanceServiceImplement) ArticleDemandEmergencyPublish(user *global.User) (err error) { engine := db.Eloquent.Master() session := engine.NewSession() @@ -5149,13 +5158,13 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyPublish(user *global. planOrder := model.PlanOrder{ //PlanOrderId: planOrderId, - Pos: pos, - PlantNr: user.PlantNr, - ArtId: info.ArtId, - VersionNr: info.ArtId+"_"+versionKey, - DemandKey: info.DemandKey, - ProjectId: info.ProjectId, - CustomerId: info.CustomerId, + Pos: pos, + PlantNr: user.PlantNr, + ArtId: info.ArtId, + VersionNr: info.ArtId + "_" + versionKey, + DemandKey: info.DemandKey, + ProjectId: info.ProjectId, + CustomerId: info.CustomerId, //Descr PlanDate: date, PlanYear: info.DemandYear, @@ -5171,11 +5180,11 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyPublish(user *global. fmt.Println(err.Error()) message := make(map[string]string) message["time"] = time.Now().Format("2006-01-02 03:04:05") - message["info"] = "紧急插单 物料:" + planOrder.ArtId + " 计划周:" + utils.ValueToString(planOrder.PlanYear, "") + "-" + utils.ValueToString(planOrder.PlanWeek, "") + message["info"] = "紧急插单 物料:" + planOrder.ArtId + " 计划周:" + utils.ValueToString(planOrder.PlanYear, "") + "-" + utils.ValueToString(planOrder.PlanWeek, "") message["request"] = req message["response"] = res + err.Error() logUtils.Write("plan", message, planOrder.ArtId) - }else{ + } else { // 已发布 info.Status = 2 err = dao_ArticleDemand.UpdateOne(&info) @@ -5186,7 +5195,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyPublish(user *global. } pos++ planOrderList = append(planOrderList, planOrder) - }else{ + } else { //// 已发布 //info.Status = 2 //err = dao_ArticleDemand.UpdateOne(&info) @@ -5461,4 +5470,4 @@ func (impl *BalanceServiceImplement) RefreshCustomerArticleDemandEmergency(user } return data_ArticleDemand_new, &CustArtStockaLL, err -} \ No newline at end of file +}