|
|
@ -355,10 +355,15 @@ func (impl *CustDemandVerHeadServiceImplement) SelectOne(user *global.User, cust |
|
|
|
result.CreateModeDescr = mInfo.Descr |
|
|
|
//构建数组
|
|
|
|
var sortArtKeys []string |
|
|
|
artMap := make(map[string][]model.CustDemandVerDetail) |
|
|
|
artMap := make(map[string]map[string][]model.CustDemandVerDetail) |
|
|
|
for _, v := range list { |
|
|
|
key := v.ArtId |
|
|
|
artMap[key] = append(artMap[key], v) |
|
|
|
if _info, ok := artMap[key]; ok { |
|
|
|
_info[v.FUseOrgNo] = append(_info[v.FUseOrgNo], v) |
|
|
|
} else { |
|
|
|
artMap[key] = make(map[string][]model.CustDemandVerDetail) |
|
|
|
artMap[key][v.FUseOrgNo] = append(artMap[key][v.FUseOrgNo], v) |
|
|
|
} |
|
|
|
} |
|
|
|
for key, _ := range artMap { |
|
|
|
sortArtKeys = append(sortArtKeys, key) |
|
|
@ -374,22 +379,25 @@ func (impl *CustDemandVerHeadServiceImplement) SelectOne(user *global.User, cust |
|
|
|
for _, artId := range sortArtKeys { |
|
|
|
artInfo, ok := artMap[artId] |
|
|
|
if ok { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range artInfo { |
|
|
|
dateTime := vv.DemandDate.Restore() |
|
|
|
key := utils.TimeFormat(dateTime, "yyyy-MM-dd") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
detail[key] = vv |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
for fUseOrgNo, _info := range artInfo { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.FUseOrgNo = fUseOrgNo |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range _info { |
|
|
|
dateTime := vv.DemandDate.Restore() |
|
|
|
key := utils.TimeFormat(dateTime, "yyyy-MM-dd") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
detail[key] = vv |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
} |
|
|
|
} else if mInfo.DemandStartDateMode == "W" { |
|
|
@ -397,44 +405,49 @@ func (impl *CustDemandVerHeadServiceImplement) SelectOne(user *global.User, cust |
|
|
|
for _, artId := range sortArtKeys { |
|
|
|
artInfo, ok := artMap[artId] |
|
|
|
if ok { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range artInfo { |
|
|
|
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandWeek, "") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
detail[key] = vv |
|
|
|
for fUseOrgNo, _info := range artInfo { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.FUseOrgNo = fUseOrgNo |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range _info { |
|
|
|
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandWeek, "") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
detail[key] = vv |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else if mInfo.DemandStartDateMode == "M" { |
|
|
|
//按照周处理
|
|
|
|
for _, artId := range sortArtKeys { |
|
|
|
artInfo, ok := artMap[artId] |
|
|
|
if ok { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range artInfo { |
|
|
|
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandMonth, "") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
detail[key] = vv |
|
|
|
for fUseOrgNo, _info := range artInfo { |
|
|
|
one := model.CustomerItem{} |
|
|
|
one.ArtId = artId |
|
|
|
one.FUseOrgNo = fUseOrgNo |
|
|
|
one.CustomerId = result.CustomerId |
|
|
|
one.Version = result.VersionId |
|
|
|
item := make(map[string]int) |
|
|
|
for _, vv := range _info { |
|
|
|
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandMonth, "") |
|
|
|
item[key] = utils.ValueToInt(vv.DemandQty, 0) |
|
|
|
SortKeys = append(SortKeys, key) |
|
|
|
detail[key] = vv |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
one.Item = item |
|
|
|
one.CustDemandVerDetail = detail |
|
|
|
one.SortKeys = SortKeys |
|
|
|
temData = append(temData, one) |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
@ -495,6 +508,10 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
if mInfo.DemandStartDateMode == "D" { |
|
|
|
//按照日期处理
|
|
|
|
for _, detail := range entity.CustomerItem { |
|
|
|
fUseOrgNo := detail.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
//查询物料数据是否维护
|
|
|
|
artInfo, err := artListDao.SelectOne(entity.CustomerId, detail.ArtId) |
|
|
|
if err != nil { |
|
|
@ -505,10 +522,6 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
} |
|
|
|
for demandDate, qty := range detail.Item { |
|
|
|
val, ok := detail.CustDemandVerDetail[demandDate] |
|
|
|
fUseOrgNo := val.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
if ok { |
|
|
|
one := model.CustDemandVerDetail{} |
|
|
|
one.ArtId = detail.ArtId |
|
|
@ -528,6 +541,10 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
} else if mInfo.DemandStartDateMode == "W" { |
|
|
|
//按照周处理
|
|
|
|
for _, detail := range entity.CustomerItem { |
|
|
|
fUseOrgNo := detail.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
//查询物料数据是否维护
|
|
|
|
artInfo, err := artListDao.SelectOne(entity.CustomerId, detail.ArtId) |
|
|
|
if err != nil { |
|
|
@ -538,10 +555,6 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
} |
|
|
|
for demandWeek, qty := range detail.Item { |
|
|
|
val, ok := detail.CustDemandVerDetail[demandWeek] |
|
|
|
fUseOrgNo := val.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
if ok { |
|
|
|
one := model.CustDemandVerDetail{} |
|
|
|
one.ArtId = detail.ArtId |
|
|
@ -562,6 +575,10 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
|
|
|
|
//按照周处理
|
|
|
|
for _, detail := range entity.CustomerItem { |
|
|
|
fUseOrgNo := detail.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
//查询物料数据是否维护
|
|
|
|
artInfo, err := artListDao.SelectOne(entity.CustomerId, detail.ArtId) |
|
|
|
if err != nil { |
|
|
@ -572,10 +589,6 @@ func (impl *CustDemandVerHeadServiceImplement) UpdateOne(user *global.User, enti |
|
|
|
} |
|
|
|
for demandMonth, qty := range detail.Item { |
|
|
|
val, ok := detail.CustDemandVerDetail[demandMonth] |
|
|
|
fUseOrgNo := val.FUseOrgNo |
|
|
|
if fUseOrgNo == "" { |
|
|
|
fUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
if ok { |
|
|
|
one := model.CustDemandVerDetail{} |
|
|
|
one.ArtId = detail.ArtId |
|
|
@ -1138,7 +1151,8 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalVersion(user *global.U |
|
|
|
//查询物料
|
|
|
|
articleDao := basedal.NewArticleDAO(session, user.PlantNr, user.UserId) |
|
|
|
articleMap := make(map[string]baseModel.Article) |
|
|
|
var request []pln_forecast.FEntity |
|
|
|
//要区分组织
|
|
|
|
request := make(map[string][]pln_forecast.FEntity) |
|
|
|
for _, v := range detailList { |
|
|
|
startDate := v.DemandDate.Restore() |
|
|
|
_week := startDate.Weekday() |
|
|
@ -1160,9 +1174,13 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalVersion(user *global.U |
|
|
|
_article = *_info |
|
|
|
articleMap[v.ArtId] = _article |
|
|
|
} |
|
|
|
request = append(request, pln_forecast.FEntity{ |
|
|
|
FUseOrgNo := v.FUseOrgNo |
|
|
|
if FUseOrgNo == "" { |
|
|
|
FUseOrgNo = utils.K3Obj.FUseOrgNo |
|
|
|
} |
|
|
|
request[FUseOrgNo] = append(request[FUseOrgNo], pln_forecast.FEntity{ |
|
|
|
FSupplyOrgID: _struct.FNumber{ |
|
|
|
FNumber: utils.K3Obj.FUseOrgNo, |
|
|
|
FNumber: FUseOrgNo, |
|
|
|
}, |
|
|
|
FCustID: _struct.FNumber{ |
|
|
|
FNumber: entity.CustomerId, |
|
|
@ -1183,33 +1201,45 @@ func (impl *CustDemandVerHeadServiceImplement) IssueGlobalVersion(user *global.U |
|
|
|
FAVERATYPE: "W", |
|
|
|
FAveraCycle: 1, |
|
|
|
FStockOrgID: _struct.FNumber{ |
|
|
|
FNumber: utils.K3Obj.FUseOrgNo, |
|
|
|
FNumber: FUseOrgNo, |
|
|
|
}, |
|
|
|
FOwnerTypeID: "BD_Customer", |
|
|
|
FOwnerID: _struct.FNumber{ |
|
|
|
FNumber: utils.K3Obj.FUseOrgNo, |
|
|
|
FNumber: FUseOrgNo, |
|
|
|
}, |
|
|
|
FReserveType: "1", |
|
|
|
FIsMRP: false, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//发布对应版本
|
|
|
|
response, err := utilService.PlnForecastInit().SaveForecast(pln_forecast.PlnForecastSave{ |
|
|
|
FForeOrgID: _struct.FNumber{ |
|
|
|
FNumber: utils.K3Obj.FUseOrgNo, |
|
|
|
}, |
|
|
|
FBillTypeID: _struct.FNumber{ |
|
|
|
FNumber: "YCD01_SYS", |
|
|
|
}, |
|
|
|
FDate: utils.TimeFormat(time.Now(), utils.SysTimeform), |
|
|
|
FEntity: request, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
//发布不同组织的对应版本
|
|
|
|
ResultId := "" |
|
|
|
ResultNumber := "" |
|
|
|
for k, v := range request { |
|
|
|
response, err := utilService.PlnForecastInit().SaveForecast(pln_forecast.PlnForecastSave{ |
|
|
|
FForeOrgID: _struct.FNumber{ |
|
|
|
FNumber: k, |
|
|
|
}, |
|
|
|
FBillTypeID: _struct.FNumber{ |
|
|
|
FNumber: "YCD01_SYS", |
|
|
|
}, |
|
|
|
FDate: utils.TimeFormat(time.Now(), utils.SysTimeform), |
|
|
|
FEntity: v, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if ResultId != "" { |
|
|
|
ResultId += "," |
|
|
|
} |
|
|
|
if ResultNumber != "" { |
|
|
|
ResultNumber += "," |
|
|
|
} |
|
|
|
ResultId += utils.ValueToString(response.Result.ID, "") |
|
|
|
ResultNumber += response.Result.Number |
|
|
|
} |
|
|
|
entity.PublishId = response.Result.ID |
|
|
|
entity.PublishNumber = response.Result.Number |
|
|
|
entity.PublishId = ResultId |
|
|
|
entity.PublishNumber = ResultNumber |
|
|
|
entity.PublishStatus = baseModel.STATUS_INT_YES |
|
|
|
err = dao.IssueGlobalVersion(entity) |
|
|
|
if err != nil { |
|
|
@ -1302,6 +1332,7 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
continue |
|
|
|
} |
|
|
|
ArtId := strings.TrimSpace(utils.ValueToString(row[3], "")) |
|
|
|
FUseOrgNo := strings.TrimSpace(utils.ValueToString(row[4], "")) |
|
|
|
//查询物料数据是否维护
|
|
|
|
artInfo, err := artListDao.SelectOne(customerId, ArtId) |
|
|
|
if err != nil { |
|
|
@ -1314,12 +1345,11 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
var temDemandDate time.Time |
|
|
|
for kkk, vvv := range row { |
|
|
|
//当列>=4开始记录零件
|
|
|
|
if kkk >= 4 { |
|
|
|
if kkk >= 5 { |
|
|
|
//根据k的数值,映射数据
|
|
|
|
val, ok := tem[kkk] |
|
|
|
//判断值是否存在
|
|
|
|
if ok { |
|
|
|
|
|
|
|
if temLen >= lenData { |
|
|
|
continue |
|
|
|
} |
|
|
@ -1342,6 +1372,7 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
one.CustomerId = customerId |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = 0 |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
one.DemandQty = float64(utils.ValueToInt(vvv, 0)) |
|
|
|
one.DemandWeek = week |
|
|
|
one.DemandDate = grmi.Date(weekDate.AddDate(0, 0, dayLen)) |
|
|
@ -1351,7 +1382,6 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
|
|
|
|
temDemandDate = weekDate.AddDate(0, 0, dayLen) |
|
|
|
temLen++ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
@ -1365,6 +1395,7 @@ func (impl *CustDemandVerHeadServiceImplement) ImportFile(user *global.User, cus |
|
|
|
week := utils.WeekByDate(weekDate) |
|
|
|
one := model.CustDemandVerDetail{} |
|
|
|
one.ArtId = ArtId |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
one.CustomerId = customerId |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = 0 |
|
|
@ -1454,6 +1485,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
if utils.ValueIsEmpty(strings.TrimSpace(ArtId)) { |
|
|
|
return grmi.NewBusinessError("Excel物料主数据没有维护!") |
|
|
|
} |
|
|
|
FUseOrgNo := strings.TrimSpace(utils.ValueToString(row[5], "")) |
|
|
|
versionId := strings.TrimSpace(utils.ValueToString(row[0], "")) |
|
|
|
if utils.ValueIsEmpty(strings.TrimSpace(versionId)) { |
|
|
|
return grmi.NewBusinessError("Excel缺少版本信息!") |
|
|
@ -1499,7 +1531,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
var temDemandDate time.Time |
|
|
|
for kkk, vvv := range row { |
|
|
|
//当列>=5开始记录零件
|
|
|
|
if kkk >= 5 { |
|
|
|
if kkk >= 6 { |
|
|
|
//根据k的数值,映射数据
|
|
|
|
val, ok := tem[kkk] |
|
|
|
//判断值是否存在
|
|
|
@ -1527,6 +1559,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
one.CustomerId = customerId |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = 0 |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
one.DemandQty = float64(utils.ValueToInt(vvv, 0)) |
|
|
|
one.DemandWeek = week |
|
|
|
one.DemandDate = grmi.Date(weekDate.AddDate(0, 0, dayLen)) |
|
|
@ -1553,6 +1586,7 @@ func (impl *CustDemandVerHeadServiceImplement) BulkImportFile(user *global.User, |
|
|
|
one.CustomerId = customerId |
|
|
|
one.VersionId = versionId |
|
|
|
one.Status = 0 |
|
|
|
one.FUseOrgNo = FUseOrgNo |
|
|
|
one.DemandQty = 0 |
|
|
|
one.DemandWeek = week |
|
|
|
one.DemandDate = grmi.Date(weekDate) |
|
|
|