Browse Source

Merge pull request '紧急插单' (#293) from feature_mps_2 into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_CHEERSSON_BACKEND/pulls/293
pull/296/head
yehongyang 3 years ago
parent
commit
a04cfc65af
11 changed files with 1782 additions and 424 deletions
  1. +2
    -0
      models/ap/ArticleDemand.model.go
  2. +1
    -0
      models/ap/CustArtlst.model.go
  3. +5
    -0
      services/ap/Balance.service.go
  4. +1620
    -394
      services/ap/implments/Balance.service.impl.go
  5. +4
    -0
      services/base/implments/ArticleStock.service.impl.go
  6. +35
    -28
      services/erp/erp.go
  7. +1
    -0
      task/k3cloud.go
  8. +1
    -1
      utils/k3cloud/service/PLN_PLANORDER.go
  9. +1
    -1
      utils/k3cloud/service/PUR_PurchaseOrder.go
  10. +83
    -0
      web/controllers/ap/Balance.rest.go
  11. +29
    -0
      web/controllers/ap/ap.go

+ 2
- 0
models/ap/ArticleDemand.model.go View File

@ -42,6 +42,8 @@ type ArticleDemand struct {
PublishedVersionNr string `xorm:"nvarchar(40) 'PublishedVersionNr'" json:"AP_ArticleDemand-PublishedVersionNr"` //期末库存
Status int `xorm:"int 'Status' not null" json:"AP_ArticleDemand-Status"` //0未发布 1 发布中 2 已发布
ZaituQty float64 `xorm:"-" json:"AP_ArticleDemand-ZaituQty"` //在途量
//不显示
OriginOutSourcingQty float64 `xorm:"float 'OriginOutSourcingQty'" json:"AP_ArticleDemand-OriginOutSourcingQty"` //原始外购需求
MidBatchQuantity int `xorm:"-" json:"AP_ArticleDemand-MidBatchQuantity"` //每次削减量


+ 1
- 0
models/ap/CustArtlst.model.go View File

@ -85,6 +85,7 @@ type CustArtStockInfo struct {
SfgWip float64 `xorm:"-" json:"CustArtStockInfo-SfgWip"` //在制冲压
ArticleDemandLst []ArticleDemand `xorm:"-" json:"CustArtStockInfo-ArticleDemandLst"`
ArticleDemandEmergencyLst []ArticleDemandEmergency `xorm:"-" json:"CustArtStockInfo-ArticleDemandEmergencyLst"`
}
type CustArtStockItem struct {


+ 5
- 0
services/ap/Balance.service.go View File

@ -39,6 +39,11 @@ type BalanceService interface {
RefreshBalanceData(user *global.User) (error)
RefreshData() (error)
GetGlobalArticleData()([]model_base.Article)
ArticleDemandEmergencyCreate(user *global.User,ArtId string)(error)
ArticleDemandEmergencySave(user *global.User, mapList []map[string]string) (error)
ArticleDemandEmergencyGet(user *global.User,pageNumber,pageSize int)(*model.CustArtStockItem, error)
ArticleDemandEmergencyPublish(user *global.User)(error)
}
/******************************************************************************


+ 1620
- 394
services/ap/implments/Balance.service.impl.go
File diff suppressed because it is too large
View File


+ 4
- 0
services/base/implments/ArticleStock.service.impl.go View File

@ -390,6 +390,10 @@ func (impl *ArticleStockServiceImplement) Erp(user *global.User, urlParameters m
// 独立需求
erp.GetDuliQty(model.PlantNr, "system", &alldata_Article)
//外购
erp.GetChaigouQty(model.PlantNr, "system", &alldata_Article)
erp.GetWaigouWeekQty(model.PlantNr, "system", &alldata_Article)
//erp.GetWeiWaiQty(user.PlantNr, user.UserId, &alldata_Article)
predicates, err := condition.BuildPredicates(urlParameters)


+ 35
- 28
services/erp/erp.go View File

@ -420,7 +420,7 @@ func GetOrderQty(PlantNr int, UserId string, allData *[]model.Article) (err erro
dao_SalesOrder := dal_base.NewSalesOrderDAO(session, PlantNr, UserId)
dao_SalesOrder.DeleteWhere([]grmi.Predicate{meta.SalesOrder_ProductType.NewPredicate(grmi.Equal, "DD")})
dao_SalesOrder.DeleteWhere([]grmi.Predicate{meta.SalesOrder_ProductType.NewPredicate(grmi.Equal, "DD_TEMP")})
//dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
//articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{}, nil)
//if err != nil {
@ -596,7 +596,7 @@ func GetOrderQty(PlantNr int, UserId string, allData *[]model.Article) (err erro
//外购量
//到货日期 入库数量 物料编码
func GetWaigouQty(PlantNr int, UserId string, allData *[]model.Article) (err error) {
func GetWaigouWeekQty(PlantNr int, UserId string, allData *[]model.Article) (err error) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
@ -605,36 +605,43 @@ func GetWaigouQty(PlantNr int, UserId string, allData *[]model.Article) (err err
return
}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{}, nil)
if err != nil {
_ = session.Rollback()
return errors.New("查询物料需求数据失败, error:" + err.Error())
}
dao_SalesOrder := dal_base.NewSalesOrderDAO(session, PlantNr, UserId)
dao_SalesOrder.DeleteWhere([]grmi.Predicate{meta.SalesOrder_ProductType.NewPredicate(grmi.Equal, "WG")})
FilerString := ""
FilerString += "FDocumentStatus = 'C'"
dataList := utilService.PUR_PurchaseOrder_Init().Search("", "")
for index, _ := range articleDemandList {
articleDemandList[index].OutSourcingQty = 0
for _, info := range dataList {
ArtId := info[0].(string)
Qty := info[1].(float64)
Time, _ := time.ParseInLocation("2006-01-02T15:04:05", utils.ValueToString(info[2], ""), utils.TimezoneLocation)
Time = utils.WeekDayMondayZeroTs(Time)
ArticleTime := utils.WeekDayMondayZeroTs(articleDemandList[index].DemandDate.Restore())
if Time == ArticleTime && ArtId == articleDemandList[index].ArtId {
articleDemandList[index].OutSourcingQty += Qty
articleDemandList[index].OriginOutSourcingQty = articleDemandList[index].OutSourcingQty //原始数据
err := dao_ArticleDemand.UpdateOne(&articleDemandList[index])
fmt.Println(articleDemandList[index].ArtId, articleDemandList[index].OutSourcingQty)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("更新物料需求数据失败, error:" + err.Error())
}
}
dataList := utilService.PUR_PurchaseOrder_Init().Search(FilerString, "")
for _, info := range dataList {
ArtId := info[0].(string)
Qty := info[1].(float64)
if Qty == 0 {
continue
}
OriginTime, _ := time.ParseInLocation("2006-01-02T15:04:05", utils.ValueToString(info[2], ""), utils.TimezoneLocation)
Time := utils.WeekDayMondayZeroTs(OriginTime)
timeNow := time.Now()
if OriginTime.Before(timeNow) {
Time = utils.WeekDayMondayZeroTs(timeNow)
}
billNoOrigin := info[3].(string)
rowId := info[4].(string)
OrderId := "WG" + "_" + billNoOrigin + "_" + rowId
SalesOrder := model.SalesOrder{
PlantNr: PlantNr,
OrderId: OrderId,
ArtId: ArtId,
//Descr: articleInfo.Descr1,
//FMaterialId: FMaterialId,
ExpectedDeliveryDate: grmi.Date(OriginTime),
RecieveTime: grmi.DateTime(Time),
PlanQty: Qty,
ProductType: "WG",
}
dao_SalesOrder.InsertOne(&SalesOrder)
}
_ = session.Commit()


+ 1
- 0
task/k3cloud.go View File

@ -137,6 +137,7 @@ func ImportChaigou() {
impl := implments.NewBalanceServiceImplement()
alldata_Article := impl.GetGlobalArticleData()
erp.GetChaigouQty(model.PlantNr, "system", &alldata_Article)
erp.GetWaigouWeekQty(model.PlantNr, "system", &alldata_Article)
}
//销售订单


+ 1
- 1
utils/k3cloud/service/PLN_PLANORDER.go View File

@ -123,7 +123,7 @@ func (_this *PLN_PLANORDER_Service) Save(PlantNr int, UserId string, articleDema
ValidateFlag: true,
NumberSearch: true,
Model: PLN_PLANORDER.PLN_PLANORDER_SAVE{
F_RDPB_MPSVNO: articleDemand.DemandKey + "_" + articleDemand.VersionNr,
F_RDPB_MPSVNO: articleDemand.VersionNr,
FReleaseStatus: "0", //计划
//FID: 0,
FBillTypeID: _struct.FNumber{


+ 1
- 1
utils/k3cloud/service/PUR_PurchaseOrder.go View File

@ -19,7 +19,7 @@ func PUR_PurchaseOrder_Init() *PUR_PurchaseOrder_Service {
voucher := &PUR_PurchaseOrder_Service{
K3config: utils2.K3Obj,
FormID: "PUR_PurchaseOrder",
FieldKeys: "FMaterialId.FNumber,FRemainStockINQty,FDeliveryDate",
FieldKeys: "FMaterialId.FNumber,FRemainStockINQty,FDeliveryDate,FBillNo,FRowId",
FUseOrgKey: "FReceiveOrgId="+utils2.K3Obj.FUseOrgId,
}
return voucher


+ 83
- 0
web/controllers/ap/Balance.rest.go View File

@ -797,4 +797,87 @@ func RegisterPublishMpsPlan(party router.Party, path string, method func(*global
}
supports.Ok(ctx, supports.OptionSuccess, nil)
})
}
func RegisterArticleDemandEmergencyCreate(party router.Party, path string, method func(*global.User, string) (error)) {
party.Post(path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
var err error = nil
artId := ctx.FormValue("artid")
err = method(user, artId)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, nil)
})
}
func RegisterArticleDemandEmergencySave(party router.Party, path string, method func(*global.User,[]map[string]string) (error)) {
party.Handle("POST", path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
return
}
var mapList []map[string]string
info1 := ctx.FormValue("maplist")
err := json.Unmarshal([]byte(info1), &mapList)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "json解析错误:"+err.Error(), nil)
return
}
err = method(user,mapList)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, nil)
})
}
func RegisterArticleDemandEmergencyGet(party router.Party, path string, method func(*global.User,int,int) (*model.CustArtStockItem, error)) {
party.Post(path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
var err error = nil
pageNumber,_ := strconv.Atoi(ctx.FormValue("pageNumber"))
pageSize,_ := strconv.Atoi(ctx.FormValue("pageSize"))
result, err := method(user,pageNumber,pageSize)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
if result == nil {
supports.Error(ctx, iris.StatusNotFound, supports.NotFound, nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, result)
})
}
func RegisterArticleDemandEmergencyPublish(party router.Party, path string, method func(*global.User) error) {
party.Handle("POST", path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
if !ok {
return
}
err := method(user)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, nil)
})
}

+ 29
- 0
web/controllers/ap/ap.go View File

@ -728,6 +728,35 @@ func RegisterRoutes() {
RegisterRefreshData(balance, "/refreshdata", balanceService.RefreshBalanceData)
RegisterArticleDemandEmergencyCreate(balance, "/articledemandemergencycreate", balanceService.ArticleDemandEmergencyCreate)
RegisterArticleDemandEmergencySave(balance, "/articledemandemergencysave", balanceService.ArticleDemandEmergencySave)
RegisterArticleDemandEmergencyGet(balance, "/articledemandemergencyget", balanceService.ArticleDemandEmergencyGet)
RegisterArticleDemandEmergencyPublish(balance, "/articledemandemergencypublish", balanceService.ArticleDemandEmergencyPublish)
// ArticleDemandEmergency的路由组
articledemandemergency := party.Party("/articledemandemergency")
// ArticleDemandEmergency的服务实例
var serviceOfArticleDemandEmergency = svr.NewArticleDemandEmergencyService()
// ArticleDemandEmergency插入一条
// RegisterInsertOneArticleDemandEmergency(articledemandemergency, "/insertone", serviceOfArticleDemandEmergency.InsertOne)
// ArticleDemandEmergency插入多条
// RegisterInsertArticleDemandEmergency(articledemandemergency, "/insert", serviceOfArticleDemandEmergency.Insert)
// ArticleDemandEmergency删除一条
// RegisterDeleteOneArticleDemandEmergency(articledemandemergency, "/deleteone", serviceOfArticleDemandEmergency.DeleteOne)
// ArticleDemandEmergency删除多条
RegisterDeleteArticleDemandEmergency(articledemandemergency, "/delete", serviceOfArticleDemandEmergency.Delete)
RegisterDeleteAllArticleDemandEmergency(articledemandemergency, "/deleteall", serviceOfArticleDemandEmergency.DeleteAll)
// ArticleDemandEmergency查询多条
RegisterSelectArticleDemandEmergency(articledemandemergency, "/selectlist", serviceOfArticleDemandEmergency.Select)
// ArticleDemandEmergency查询多条并分页
RegisterQueryArticleDemandEmergency(articledemandemergency, "/query", serviceOfArticleDemandEmergency.SelectAndPaging)
// ArticleDemandEmergency查询一条
RegisterSelectOneArticleDemandEmergency(articledemandemergency, "/selectone", serviceOfArticleDemandEmergency.SelectOne)
// ArticleDemandEmergency修改一条
// RegisterUpdateOneArticleDemandEmergency(articledemandemergency, "/updateone", serviceOfArticleDemandEmergency.UpdateOne)
// ArticleDemandEmergency修改多条
// RegisterUpdateArticleDemandEmergency(articledemandemergency, "/update", serviceOfArticleDemandEmergency.Update)
artstockresource := party.Party("/artstockresource")
var artstockresourceSevice = svr.NewArticleStockLevelService()
RegisterSelectOneArticleStockResourceData(artstockresource, "/selectone", artstockresourceSevice.SelectOneArtStockResourceData)


Loading…
Cancel
Save