Browse Source

Merge pull request '注释' (#296) from feature_mps_2 into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_CHEERSSON_BACKEND/pulls/296
pull/297/head
zhangxin 3 years ago
parent
commit
95530733c9
1 changed files with 65 additions and 56 deletions
  1. +65
    -56
      services/ap/implments/Balance.service.impl.go

+ 65
- 56
services/ap/implments/Balance.service.impl.go View File

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

Loading…
Cancel
Save