苏州瑞玛APS项目web后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
3.5 KiB

package service
import (
dal_base "leit.com/LAPP_CHEERSSON_BACKEND/dao/base"
"leit.com/LAPP_CHEERSSON_BACKEND/db"
model "leit.com/LAPP_CHEERSSON_BACKEND/models/ap"
utils2 "leit.com/LAPP_CHEERSSON_BACKEND/utils"
"leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct/REM_IndepenReqPlan"
request2 "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct/request"
)
/**
生产制造=>生产线生产=>生产线独立需求计划
*/
type REM_IndepenReqPlan_Service struct {
*utils2.K3config
FormID string
FieldKeys string
FUseOrgKey string
}
//独立需求
//物料编码 需求数量 需求日期
func REM_IndepenReqPlan_Init() *REM_IndepenReqPlan_Service {
voucher := &REM_IndepenReqPlan_Service{
K3config: utils2.K3Obj,
FormID: "REM_IndepenReqPlan",
FieldKeys: "FMaterialId.FNumber,FRequiredQuantity,FNeedDate",
FUseOrgKey: "FNeedOrgId=" + utils2.K3Obj.FUseOrgId,
}
return voucher
}
func (_this *REM_IndepenReqPlan_Service) Search(FilterString, OrderString string) [][]interface{} {
var data [][]interface{}
if FilterString != "" {
FilterString = _this.FUseOrgKey + " And " + FilterString
} else {
FilterString = _this.FUseOrgKey
}
request := request2.SearchRequest{
Formid: _this.FormID,
FieldKeys: _this.FieldKeys,
FilterString: FilterString,
OrderString: OrderString,
TopRowCount: 0,
StartRow: 0,
Limit: 1000,
}
for true {
response, err := _this.SearchApi(_this.FormID, request)
if err != nil {
return data
}
for _, v := range response {
data = append(data, v)
}
if len(response) == request.Limit {
request.StartRow = request.StartRow + request.Limit
} else {
break
}
}
return data
}
func (_this *REM_IndepenReqPlan_Service) Save(PlantNr int, UserId string, articleDemand *model.ArticleIndependentDemand) error {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao_Article := dal_base.NewArticleDAO(session, PlantNr, UserId)
article, err := dao_Article.SelectOne(articleDemand.ArtId)
if err != nil {
return err
}
request := request2.SaveRequest{
IsDeleteEntry: true,
IsVerifyBaseDataField: false,
IsEntryBatchFill: true,
ValidateFlag: true,
NumberSearch: true,
Model: REM_IndepenReqPlan.REM_IndepenReqPlan_SAVE{
FID: 0,
FPrdOrgID: REM_IndepenReqPlan.FPrdOrgID{
FNUMBER: utils2.K3Obj.FUseOrgId,
},
FBillTypeID: REM_IndepenReqPlan.FBillTypeID{
FNUMBER: "SCXDLXQJH01_SYS",
},
FMaterialID: REM_IndepenReqPlan.FMaterialID{
FNumber: article.ArtId,
},
FUnitID: REM_IndepenReqPlan.FUnitID{
//todo
FNumber: "Pcs",
},
FNeedDate: articleDemand.DemandDate.ToString(),
FEndDate: articleDemand.DemandDate.ToString(),
FRequiredQuantity: articleDemand.DemandQty,
FCreatorID: REM_IndepenReqPlan.FCreatorID{
//todo
FUserID: 133817,
},
FCreateDate: articleDemand.DemandDate.ToString(),
FNeedOrgID: REM_IndepenReqPlan.FNeedOrgID{
FNumber: utils2.K3Obj.FUseOrgId,
},
FStockInOrgID: REM_IndepenReqPlan.FStockInOrgID{
FNumber: utils2.K3Obj.FUseOrgId,
},
FBillDate: articleDemand.DemandDate.ToString(),
FOwnerTypeID: "BD_OwnerOrg",
FOwnerID: REM_IndepenReqPlan.FOwnerID{
FNumber: utils2.K3Obj.FUseOrgId,
},
FDivideFlag: false,
FBaseUnitID: REM_IndepenReqPlan.FBaseUnitID{
FNumber: "Pcs",
},
FBaseNeedQty: articleDemand.DemandQty,
FSourceBillType: "A",
FIsCreateNumber: false,
//todo
FYieldRate: 100.0,
},
}
_, err, _, _ = _this.SaveApi(_this.FormID, request)
return err
}