diff --git a/dao/base/SalesOrder.dao.go b/dao/base/SalesOrder.dao.go index 226f9f2..8fe3610 100644 --- a/dao/base/SalesOrder.dao.go +++ b/dao/base/SalesOrder.dao.go @@ -217,6 +217,7 @@ type SalesOrderDAO interface { * ******************************************************************************/ UpdateWhere([]grmi.Predicate, *model.SalesOrder, ...string) error + SelectSumPlanQty(string, string, string) ([]map[string][]byte, error) } /****************************************************************************** diff --git a/dao/base/implments/SalesOrder.dao.impl.go b/dao/base/implments/SalesOrder.dao.impl.go index 23889c2..ef93e02 100644 --- a/dao/base/implments/SalesOrder.dao.impl.go +++ b/dao/base/implments/SalesOrder.dao.impl.go @@ -8,6 +8,7 @@ import ( "leit.com/LAPP_CHEERSSON_BACKEND/grmi" meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/base" model "leit.com/LAPP_CHEERSSON_BACKEND/models/base" + "leit.com/LAPP_CHEERSSON_BACKEND/utils" "xorm.io/core" ) @@ -210,6 +211,17 @@ func (impl *SalesOrderDAOImplement) Select(predicates []grmi.Predicate, orderByF } return data, nil } +func (impl *SalesOrderDAOImplement) SelectSumPlanQty(artId string, yearWeek string, cust string) ([]map[string][]byte, error) { + sql := "SELECT sum(" + meta.SalesOrder_PlanQty.Name + ") " + + meta.SalesOrder_PlanQty.Name + + " FROM " + meta.SalesOrder.TableName + + " WHERE " + meta.SalesOrder_PlantNr.Name + "=" + utils.ValueToString(model.PlantNr, "") + "" + + " AND " + meta.SalesOrder_ArtId.Name + " = '" + artId + "' " + + " AND " + meta.SalesOrder_CtrlStr1.Name + " = '" + yearWeek + "' " + + " AND " + meta.SalesOrder_CustomerId.Name + " = '" + cust + "' " + session, err := impl.session.Query(sql) + return session, err +} /****************************************************************************** * diff --git a/services/ap/implments/Balance.service.impl.go b/services/ap/implments/Balance.service.impl.go index 0ca7ed9..c6fb77e 100644 --- a/services/ap/implments/Balance.service.impl.go +++ b/services/ap/implments/Balance.service.impl.go @@ -259,7 +259,7 @@ func (impl *BalanceServiceImplement) GetCustomerArticleDemand(user *global.User, for index, info := range data { var CustArtStockItem model.CustArtStockItem //净生产量 - for i := 0; i < 10; i++ { + for i := 0; i < 11; i++ { CustArtStockItem.ItemLst = append(CustArtStockItem.ItemLst, make(map[string]string)) if i == 0 && index == 0 { @@ -324,15 +324,18 @@ func (impl *BalanceServiceImplement) GetCustomerArticleDemand(user *global.User, CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-WipQty" CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.WipQty, 0) case 6: + CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-ZaituQty" + CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.ZaituQty, 0) + case 7: CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-OpeningInventory" CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.OpeningInventory, 0) - case 7: + case 8: CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-TargetInventory" CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.TargetInventory, 0) - case 8: + case 9: CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-MinInventory" CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.MinInventory, 0) - case 9: + case 10: CustArtStockItem.ItemLst[i]["AP_ArticleDemand-Label"] = "AP_ArticleDemand-EndingInventory" CustArtStockItem.ItemLst[i][detail.DemandKey] = utils.FloatToString(detail.EndingInventory, 0) } @@ -359,7 +362,6 @@ 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() @@ -630,7 +632,6 @@ 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() @@ -707,7 +708,6 @@ 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") @@ -1065,7 +1065,6 @@ 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") @@ -1084,7 +1083,6 @@ 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") @@ -1554,6 +1552,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 { @@ -1725,6 +1724,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 { @@ -1847,6 +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) { @@ -2183,7 +2184,6 @@ 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") @@ -2766,6 +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() @@ -3203,6 +3204,7 @@ func CopyStruct(src, dst interface{}) { dvalue.Set(value) //这里默认共同成员的类型一样,否则这个地方可能导致 panic,需要简单修改一下。 } } + // 启动程序预加载缓存 func (impl *BalanceServiceImplement) RefreshData() error { var err error @@ -4790,6 +4792,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencyCreate(user *global.U session.Commit() return nil } + //紧急插单保存 func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.User, mapList []map[string]string) error { engine := db.Eloquent.Master() @@ -4824,6 +4827,7 @@ func (impl *BalanceServiceImplement) ArticleDemandEmergencySave(user *global.Use return err } + //紧急插单显示 func (impl *BalanceServiceImplement) ArticleDemandEmergencyGet(user *global.User, pageNumber, pageSize int) (*model.CustArtStockItem, error) { engine := db.Eloquent.Master() @@ -5052,6 +5056,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() diff --git a/services/ap/implments/CustDemandVerHead.service.impl.go b/services/ap/implments/CustDemandVerHead.service.impl.go index 812cab2..575507c 100644 --- a/services/ap/implments/CustDemandVerHead.service.impl.go +++ b/services/ap/implments/CustDemandVerHead.service.impl.go @@ -14,6 +14,7 @@ import ( "leit.com/LAPP_CHEERSSON_BACKEND/global" "leit.com/LAPP_CHEERSSON_BACKEND/grmi" meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/ap" + baseMeta "leit.com/LAPP_CHEERSSON_BACKEND/meta/base" model "leit.com/LAPP_CHEERSSON_BACKEND/models/ap" baseModel "leit.com/LAPP_CHEERSSON_BACKEND/models/base" commonModel "leit.com/LAPP_CHEERSSON_BACKEND/models/common" @@ -3482,6 +3483,7 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalAllVersion(user *globa articleMap := make(map[string]baseModel.Article) //要区分组织 request := make(map[string][]pln_forecast.FEntity) + sealesOrderDao := basedal.NewSalesOrderDAO(session, user.PlantNr, user.UserId) for _, v := range detailList { startDate := v.DemandDate.Restore() _week := startDate.Weekday() @@ -3509,6 +3511,15 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalAllVersion(user *globa if FUseOrgNo == "" { FUseOrgNo = utils.K3Obj.FUseOrgNo } + //查询零件销售订单 当周销售数量 + orderList, _ := sealesOrderDao.SelectSumPlanQty(v.ArtId, utils.ValueToString(v.DemandYear, "")+"."+utils.ValueToString(v.DemandWeek, ""), v.CustomerId) + _qty := v.DemandQty + if orderList != nil && len(orderList) > 1 { + qty := utils.ValueToFloat(string(orderList[0][baseMeta.SalesOrder_PlanQty.Name]), 0) + if qty > _qty { + _qty = qty + } + } request[FUseOrgNo] = append(request[FUseOrgNo], pln_forecast.FEntity{ FSupplyOrgID: _struct.FNumber{ FNumber: FUseOrgNo, @@ -3522,7 +3533,7 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalAllVersion(user *globa FUnitID: _struct.FNumber{ FNumber: _article.UomId, }, - FQty: v.DemandQty, + FQty: _qty, FStartDate: _startDate.ToString(), FEndDate: _endDate.ToString(), FBaseUnitID: _struct.FNumber{ diff --git a/services/erp/erp.go b/services/erp/erp.go index 08400ea..04cbfa7 100644 --- a/services/erp/erp.go +++ b/services/erp/erp.go @@ -567,7 +567,7 @@ func GetOrderQty(PlantNr int, UserId string, allData *[]model.Article) (err erro OrderId := "DD" + "_" + billNoOrigin + "_" + rowId //fmt.Println(OrderId) Time = utils.WeekDayMondayZeroTs(Time) - + _week, _year, _ := utils.WeekByDate(Time) SalesOrder := model.SalesOrder{ PlantNr: PlantNr, OrderId: OrderId, @@ -578,6 +578,7 @@ func GetOrderQty(PlantNr int, UserId string, allData *[]model.Article) (err erro RecieveTime: grmi.DateTime(Time), PlanQty: Qty, ProductType: "DD", + CtrlStr1: utils.ValueToString(_year, "") + "." + utils.ValueToString(_week, ""), } dao_SalesOrder.InsertOne(&SalesOrder) //if err != nil {