Browse Source

Merge pull request '金蝶更新' (#137) from feature_jindie into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_CHEERSSON_BACKEND/pulls/137
pull/138/head
娄文智 3 years ago
parent
commit
cc8eb00aab
7 changed files with 155 additions and 84 deletions
  1. +1
    -1
      meta/ap/CustDemandVerHead.meta.go
  2. +2
    -1
      models/ap/CustDemandVerHead.model.go
  3. +2
    -0
      services/ap/implments/CustArtlst.service.impl.go
  4. +116
    -82
      services/ap/implments/CustDemandVerHead.service.impl.go
  5. +5
    -0
      services/base/implments/Article.service.impl.go
  6. +14
    -0
      utils/k3cloud.go
  7. +15
    -0
      utils/k3cloud/struct/request/save.go

+ 1
- 1
meta/ap/CustDemandVerHead.meta.go View File

@ -37,7 +37,7 @@ var CustDemandVerHead_LastUser = grmi.NewField("LastUser", "[AP_CustDemandVerHea
var CustDemandVerHead_CreateTime = grmi.NewField("CreateTime", "[AP_CustDemandVerHead].CreateTime", "createtime", grmi.TypeDateTime)
var CustDemandVerHead_CreateYear = grmi.NewField("CreateYear", "[AP_CustDemandVerHead].CreateYear", "createyear", grmi.TypeString)
var CustDemandVerHead_CreateWeek = grmi.NewField("CreateWeek", "[AP_CustDemandVerHead].CreateWeek", "createweek", grmi.TypeString)
var CustDemandVerHead_PublishId = grmi.NewField("PublishId", "[AP_CustDemandVerHead].PublishId", "publishid", grmi.TypeInt)
var CustDemandVerHead_PublishId = grmi.NewField("PublishId", "[AP_CustDemandVerHead].PublishId", "publishid", grmi.TypeString)
var CustDemandVerHead_PublishNumber = grmi.NewField("PublishNumber", "[AP_CustDemandVerHead].PublishNumber", "publishnumber", grmi.TypeString)
var CustDemandVerHead_PublishStatus = grmi.NewField("PublishStatus", "[AP_CustDemandVerHead].PublishStatus", "PublishStatus", grmi.TypeInt)


+ 2
- 1
models/ap/CustDemandVerHead.model.go View File

@ -45,7 +45,7 @@ type CustDemandVerHead struct {
CreateWeek int `xorm:"int 'CreateWeek'" json:"AP_CustDemandVerHead-CreateWeek"`
CreateModeDescr string `xorm:"-" json:"AP_CustDemandVerHead-CreateModeDescr"`
Valid bool `xorm:"-" json:"AP_CustDemandVerHead-Valid"`
PublishId int `xorm:"int 'PublishId'" json:"AP_CustDemandVerHead-PublishId"`
PublishId string `xorm:"string 'PublishId'" json:"AP_CustDemandVerHead-PublishId"`
PublishNumber string `xorm:"nvarchar(255) 'PublishNumber'" json:"AP_CustDemandVerHead-PublishNumber"`
PublishStatus int `xorm:"int 'PublishStatus'" json:"AP_CustDemandVerHead-PublishStatus"`
}
@ -85,6 +85,7 @@ type CustomerItem struct {
CustomerId string `json:"CustomerId" xorm:"-"`
Version string `json:"Version" xorm:"-"`
ArtId string `json:"ArtId" xorm:"-"`
FUseOrgNo string `json:"FUseOrgNo" xorm:"-"`
Item map[string]int `json:"Item" xorm:"-"`
SortKeys []string `json:"SortKeys" xorm:"-"`
CustDemandVerDetail map[string]CustDemandVerDetail `json:"CustDemandVerDetail" xorm:"-"`


+ 2
- 0
services/ap/implments/CustArtlst.service.impl.go View File

@ -626,6 +626,8 @@ func (impl *CustArtlstServiceImplement) ImportCustArtlst(FieldKeysStr string, li
oneData.PlantNr = model_base.PlantNr
oneData.CustomerId = _custInfo.CustomerId
oneData.ArtId = artInfo.ArtId
oneData.Descr1 = artInfo.Descr1
oneData.Descr2 = artInfo.Descr2
oneData.Descr1 = utils.ValueToString(v["FCustMatName"], "")
err = dao.InsertOne(oneData)
if err != nil {


+ 116
- 82
services/ap/implments/CustDemandVerHead.service.impl.go View File

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


+ 5
- 0
services/base/implments/Article.service.impl.go View File

@ -340,6 +340,10 @@ func (impl *ArticleServiceImplement) ImportArticle(_list [][]interface{}) {
_info.Planner = utils.ValueToString(v[16], "")
isUp = true
}
if _info.Descr2 != utils.ValueToString(v[14], "") {
_info.Descr2 = utils.ValueToString(v[14], "")
isUp = true
}
if isUp {
_ = dao.UpdateOne(_info)
}
@ -349,6 +353,7 @@ func (impl *ArticleServiceImplement) ImportArticle(_list [][]interface{}) {
PlantNr: model.PlantNr,
ArtId: utils.ValueToString(v[3], ""),
Descr1: utils.ValueToString(v[2], ""),
Descr2: utils.ValueToString(v[14], ""),
ArtSpec1: utils.ValueToString(v[9], ""),
ArtSpec2: utils.ValueToString(v[10], ""),
ArtSpec3: utils.ValueToString(v[11], ""),


+ 14
- 0
utils/k3cloud.go View File

@ -103,6 +103,20 @@ func (K3config *K3config) SaveApi(formId string, saveData request.SaveRequest) (
return &response, nil
}
//批量保存
func (K3config *K3config) BatchSaveApi(formId string, saveData request.SaveRequest) (*response.K3ResponseStruct, error) {
formParams := util.CreateBusinessPostData(formId, util.Struct2Map(saveData))
res, err := K3config.GetSession().PostJson(K3config.CloudUrl+util.BATCHSAVE_API, formParams)
if err != nil {
return nil, err
}
response := response.K3ResponseToStruct(res)
if !response.Result.ResponseStatus.IsSuccess {
return nil, fmt.Errorf("%s", response.Result.ResponseStatus.Errors)
}
return &response, nil
}
func (K3config *K3config) BillCloseApi(formId string, saveData request.CloseRequest) (*response.K3ResponseStruct, error) {
formParams := util.CreateClosePostData(formId, util.Struct2Map(saveData))
res, err := K3config.GetSession().PostJson(K3config.CloudUrl+util.BILLCLOSE_API, formParams)


+ 15
- 0
utils/k3cloud/struct/request/save.go View File

@ -14,3 +14,18 @@ type SaveRequest struct {
IsAutoSubmitAndAudit bool `json:"IsAutoSubmitAndAudit"`
Model interface{} `json:"Model"`
}
type BatchSaveRequest struct {
Creator string `json:"Creator"`
NeedUpDateFields interface{} `json:"NeedUpDateFields"`
NeedReturnFields interface{} `json:"NeedReturnFields"`
IsDeleteEntry bool `json:"IsDeleteEntry"`
SubSystemID string `json:"SubSystemId"`
IsVerifyBaseDataField bool `json:"IsVerifyBaseDataField"`
IsEntryBatchFill bool `json:"IsEntryBatchFill"`
ValidateFlag bool `json:"ValidateFlag"`
NumberSearch bool `json:"NumberSearch"`
InterationFlags string `json:"InterationFlags"`
IsAutoSubmitAndAudit bool `json:"IsAutoSubmitAndAudit"`
Model []interface{} `json:"Model"`
}

Loading…
Cancel
Save