Browse Source

Merge pull request '调试ERP对接库存、需求、外购、在制量接口' (#89) from feature_mps into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_CHEERSSON_BACKEND/pulls/89
pull/90/head
yehongyang 3 years ago
parent
commit
a31e097955
12 changed files with 233 additions and 196 deletions
  1. +5
    -5
      dao/ap/implments/WeekModelLst.dao.impl.go
  2. +5
    -5
      dao/ap/implments/WorkCalendarLst.dao.impl.go
  3. +0
    -4
      log/glog/INFO.Def.2021_08_16-154600.22676.log
  4. +0
    -4
      log/glog/INFO.Def.2021_08_16-154614.25068.log
  5. +0
    -5
      log/glog/INFO.Def.2021_08_16-154713.27060.log
  6. +0
    -5
      log/glog/INFO.Def.2021_08_16-154823.21996.log
  7. +0
    -5
      log/glog/INFO.Def.2021_08_16-161350.31464.log
  8. +2
    -0
      main.go
  9. +16
    -4
      services/ap/implments/Balance.service.impl.go
  10. +198
    -152
      services/erp/erp.go
  11. +1
    -1
      utils/k3cloud/service/REM_IndepenReqPlan.go
  12. +6
    -6
      web/controllers/base/base.go

+ 5
- 5
dao/ap/implments/WeekModelLst.dao.impl.go View File

@ -365,14 +365,14 @@ func (impl *WeekModelLstDAOImplement) SelectJoinDayModel(weekModelNr int) ([]mod
//} else {
// session = session.Where(where, parameters...)
//}
session.Where("AP_WeekModelLst.PlantNr = ? and AP_WeekModelLst.WeekModelNr = ?", impl.plantNr, weekModelNr)
condition := fmt.Sprintf("%s.PlantNr = %s.PlantNr and %s = %s",
meta.WeekModelLst.TableName,
meta.DayModel.TableName,
session.Where(fmt.Sprintf("%s = ? and %s = ?", meta.WeekModelLst_PlantNr.ColumnName,meta.WeekModelLst_WeekModelNr.ColumnName), impl.plantNr, weekModelNr)
condition := fmt.Sprintf("%s = %s and %s = %s",
meta.WeekModelLst_PlantNr.ColumnName,
meta.DayModel_PlantNr.ColumnName,
meta.WeekModelLst_DayModelNr.ColumnName,
meta.DayModel_DayModelNr.ColumnName)
session.Join("LEFT", meta.DayModel.TableName, condition)
session = session.OrderBy("AP_WeekModelLst.PlantNr")
session = session.OrderBy(meta.WeekModelLst_PlantNr.ColumnName)
//if orderByFields != nil {
// for _, field := range orderByFields {
// session = session.OrderBy(field.ColumnName)


+ 5
- 5
dao/ap/implments/WorkCalendarLst.dao.impl.go View File

@ -357,14 +357,14 @@ func (impl *WorkCalendarLstDAOImplement) SelectJoinDayModel(workCalendarNr int)
//} else {
// session = session.Where(where, parameters...)
//}
session.Where("AP_WorkCalendarLst.PlantNr = ? and AP_WorkCalendarLst.WorkCalendarNr = ?", impl.plantNr, workCalendarNr)
condition := fmt.Sprintf("%s.PlantNr = %s.PlantNr and %s = %s",
meta.WorkCalendarLst.TableName,
meta.DayModel.TableName,
session.Where(fmt.Sprintf("%s = ? and %s = ?", meta.WorkCalendarLst_PlantNr.ColumnName, meta.WorkCalendarLst_WorkCalendarNr.ColumnName), impl.plantNr, workCalendarNr)
condition := fmt.Sprintf("%s = %s and %s = %s",
meta.WorkCalendarLst_PlantNr.ColumnName,
meta.DayModel_PlantNr.ColumnName,
meta.WorkCalendarLst_DayModelNr.ColumnName,
meta.DayModel_DayModelNr.ColumnName)
session.Join("LEFT", meta.DayModel.TableName, condition)
session = session.OrderBy("AP_WorkCalendarLst.PlantNr")
session = session.OrderBy(meta.WorkCalendarLst_PlantNr.ColumnName)
//if orderByFields != nil {
// for _, field := range orderByFields {
// session = session.OrderBy(field.ColumnName)


+ 0
- 4
log/glog/INFO.Def.2021_08_16-154600.22676.log View File

@ -1,4 +0,0 @@
Log file created at: 2021/08/16 15:46:00
Running on machine: Sleipnir2000
Binary: Built with gc go1.14.2 for windows/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg

+ 0
- 4
log/glog/INFO.Def.2021_08_16-154614.25068.log View File

@ -1,4 +0,0 @@
Log file created at: 2021/08/16 15:46:14
Running on machine: Sleipnir2000
Binary: Built with gc go1.14.2 for windows/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg

+ 0
- 5
log/glog/INFO.Def.2021_08_16-154713.27060.log View File

@ -1,5 +0,0 @@
Log file created at: 2021/08/16 15:47:13
Running on machine: Sleipnir2000
Binary: Built with gc go1.14.2 for windows/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
0816 15:47:13.461060 27060 LAPP_CHEERSSON_BACKEND/main.go: 89] 启动日志 InitDB return success

+ 0
- 5
log/glog/INFO.Def.2021_08_16-154823.21996.log View File

@ -1,5 +0,0 @@
Log file created at: 2021/08/16 15:48:23
Running on machine: Sleipnir2000
Binary: Built with gc go1.14.2 for windows/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
0816 15:48:23.916981 21996 LAPP_CHEERSSON_BACKEND/main.go: 89] 启动日志 InitDB return success

+ 0
- 5
log/glog/INFO.Def.2021_08_16-161350.31464.log View File

@ -1,5 +0,0 @@
Log file created at: 2021/08/16 16:13:50
Running on machine: Sleipnir2000
Binary: Built with gc go1.14.2 for windows/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
0816 16:13:50.903592 31464 LAPP_CHEERSSON_BACKEND/main.go: 85] 启动日志 InitDB return success

+ 2
- 0
main.go View File

@ -27,9 +27,11 @@ func (p *program) Start(s service.Service) error {
go p.run()
return nil
}
func (p *program) run() {
imain()
}
func (p *program) Stop(s service.Service) error {
return nil
}


+ 16
- 4
services/ap/implments/Balance.service.impl.go View File

@ -2527,13 +2527,25 @@ func (impl *BalanceServiceImplement) RefreshBalanceData(user *global.User, Custo
}
// 期初库存
erp.GetArticleDemandErpQty(user.PlantNr, user.UserId, CustomerId)
err = erp.GetArticleDemandErpQty(user.PlantNr, user.UserId, CustomerId, &alldata_Article)
if err != nil {
return err
}
// 订单需求
erp.GetOrderQty(user.PlantNr, user.UserId, CustomerId)
err = erp.GetOrderQty(user.PlantNr, user.UserId, CustomerId, &alldata_Article)
if err != nil {
return err
}
// 外购需求
erp.GetWaigouQty(user.PlantNr, user.UserId, CustomerId)
err = erp.GetWaigouQty(user.PlantNr, user.UserId, CustomerId, &alldata_Article)
if err != nil {
return err
}
// 独立需求
erp.GetDuliQty(user.PlantNr, user.UserId, CustomerId)
err = erp.GetDuliQty(user.PlantNr, user.UserId, CustomerId, &alldata_Article)
if err != nil {
return err
}
return nil
}

+ 198
- 152
services/erp/erp.go View File

@ -1,6 +1,7 @@
package erp
import (
"errors"
"fmt"
dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/ap"
dal_base "leit.com/LAPP_CHEERSSON_BACKEND/dao/base"
@ -12,15 +13,15 @@ import (
"strconv"
)
func PublishPlan(PlantNr int,UserId string){
func PublishPlan(PlantNr int, UserId string) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao_version := dal.NewPlanOrderVersionDAO(session, PlantNr,UserId)
dao_plan := dal.NewPlanOrderDAO(session, PlantNr,UserId)
planVersionList ,err := dao_version.Select([]grmi.Predicate{meta.PlanOrderVersion_Status.NewPredicate(grmi.Equal, 20)}, nil)
if err!=nil{
dao_version := dal.NewPlanOrderVersionDAO(session, PlantNr, UserId)
dao_plan := dal.NewPlanOrderDAO(session, PlantNr, UserId)
planVersionList, err := dao_version.Select([]grmi.Predicate{meta.PlanOrderVersion_Status.NewPredicate(grmi.Equal, 20)}, nil)
if err != nil {
fmt.Println(err)
return
}
@ -28,14 +29,14 @@ func PublishPlan(PlantNr int,UserId string){
return
}
_ = session.Begin()
for _, planVersionInfo := range planVersionList{
for _, planVersionInfo := range planVersionList {
planList, err := dao_plan.Select([]grmi.Predicate{meta.PlanOrder_VersionNr.NewPredicate(grmi.Equal, planVersionInfo.VersionNr)}, nil)
if err!=nil{
if err != nil {
return
}
for _, info := range planList{
err = utilService.PLN_PLANORDER_Init().Save(PlantNr,UserId,&info)
if err != nil{
for _, info := range planList {
err = utilService.PLN_PLANORDER_Init().Save(PlantNr, UserId, &info)
if err != nil {
fmt.Println(err)
return
}
@ -43,7 +44,7 @@ func PublishPlan(PlantNr int,UserId string){
planVersionInfo.Status = 26
err = dao_version.UpdateOne(&planVersionInfo)
if err != nil{
if err != nil {
fmt.Println(err)
return
}
@ -53,12 +54,12 @@ func PublishPlan(PlantNr int,UserId string){
}
//即时库存 期初库存
func GetQiChuQty(PlantNr int,UserId,CustomerId string){
func GetQiChuQty(PlantNr int, UserId, CustomerId string) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal_base.NewArticleStockDAO(session, PlantNr,UserId)
dao := dal_base.NewArticleStockDAO(session, PlantNr, UserId)
_ = session.Begin()
ArticleStockStart := make([]model.ArticleStock, 0)
@ -67,76 +68,76 @@ func GetQiChuQty(PlantNr int,UserId,CustomerId string){
Article := make([]model.Article, 0)
session.Table("Article").Find(&Article)
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr,UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr),meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err!=nil{
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr), meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err != nil {
return
}
var FMaterialIdList []int
for _, articleInfo := range Article{
for _, articleDemandInfo := range articleDemandList{
if articleInfo.ArtId == articleDemandInfo.ArtId{
for _, articleInfo := range Article {
for _, articleDemandInfo := range articleDemandList {
if articleInfo.ArtId == articleDemandInfo.ArtId {
FMaterialIdList = append(FMaterialIdList, articleInfo.FMaterialId)
}
}
}
FilerString := ""
for index, FMaterialId := range FMaterialIdList{
if index > 0{
for index, FMaterialId := range FMaterialIdList {
if index > 0 {
FilerString += " Or "
}
FMaterialIdS := strconv.Itoa(FMaterialId)
FilerString += "FMaterialId = " + FMaterialIdS
}
dataList := utilService.STK_InventoryInit().Search(FilerString,"")
dataList := utilService.STK_InventoryInit().Search(FilerString, "")
StockType := "QCKC"
//即时库存
articlestockMap := make(map[int]float64)
for _, info := range dataList{
FMaterialId := info[0].(int)
for _, info := range dataList {
FMaterialId := int(info[0].(float64))
_, isIn := articlestockMap[FMaterialId]
if isIn{
if isIn {
articlestockMap[FMaterialId] += info[1].(float64)
}else{
} else {
articlestockMap[FMaterialId] = info[1].(float64)
}
}
data := make([]model.ArticleStock, 0)
for _, info := range ArticleStockStart{
for FMaterialId, qty := range articlestockMap{
if info.FMaterialId == FMaterialId{
for _, info := range ArticleStockStart {
for FMaterialId, qty := range articlestockMap {
if info.FMaterialId == FMaterialId {
sql := "update `ArticleStock` set ActualStock = ? where PlantNr = ? AND FMaterialId = ? And StockType = ?"
if _, err := session.Table("ArticleStock").Exec(sql, qty, PlantNr, FMaterialId, StockType); err != nil {
if _, err := session.Table("ArticleStock").Exec(sql, qty, PlantNr, FMaterialId, StockType); err != nil {
fmt.Println(err)
_ = session.Rollback()
}
}else{
} else {
var selectArticle model.Article
for _, info := range Article{
if info.FMaterialId == FMaterialId{
for _, info := range Article {
if info.FMaterialId == FMaterialId {
selectArticle = info
break
}
}
articleStockInfo := model.ArticleStock{
ArtId:selectArticle.ArtId,
StockType: StockType,
ArtId: selectArticle.ArtId,
StockType: StockType,
ActualStock: qty,
}
data = append(data,articleStockInfo )
data = append(data, articleStockInfo)
}
}
}
if len(data) > 20{
if len(data) > 20 {
var _detail []model.ArticleStock
for k,v := range data{
for k, v := range data {
_detail = append(_detail, v)
if (k>0 && k%20==0) || k+1 == len(data) {
if (k > 0 && k%20 == 0) || k+1 == len(data) {
err := dao.Insert(&_detail)
if err != nil {
_ = session.Rollback()
@ -145,7 +146,7 @@ func GetQiChuQty(PlantNr int,UserId,CustomerId string){
_detail = []model.ArticleStock{}
}
}
}else{
} else {
err := dao.Insert(&data)
if err != nil {
_ = session.Rollback()
@ -155,255 +156,300 @@ func GetQiChuQty(PlantNr int,UserId,CustomerId string){
_ = session.Commit()
}
func GetArticleDemandErpQty(PlantNr int,UserId,CustomerId string){
func GetArticleDemandErpQty(PlantNr int, UserId, CustomerId string, allData *[]model.Article) (err error) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
_ = session.Begin()
Article := make([]model.Article, 0)
session.Table("Article").Find(&Article)
if err = session.Begin(); err != nil {
return err
}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr,UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr),meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err!=nil{
session.Rollback()
//Article := make([]model.Article, 0)
//err = session.Table("Article").Find(&Article)
//if err != nil {
// return err
//}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err != nil {
_ = session.Rollback()
return
}
var FMaterialIdList []int
for _, articleInfo := range Article{
for _, articleDemandInfo := range articleDemandList{
if articleInfo.ArtId == articleDemandInfo.ArtId{
for _, articleInfo := range *allData {
// 在MDS中存在 在金蝶中不存在
if articleInfo.FMaterialId == 0 {
continue
}
for _, articleDemandInfo := range articleDemandList {
if articleInfo.ArtId == articleDemandInfo.ArtId {
FMaterialIdList = append(FMaterialIdList, articleInfo.FMaterialId)
}
}
}
FilerString := ""
for index, FMaterialId := range FMaterialIdList{
if index > 0{
for index, FMaterialId := range FMaterialIdList {
if index > 0 {
FilerString += " Or "
}
FMaterialIdS := strconv.Itoa(FMaterialId)
FilerString += "FMaterialId = " + FMaterialIdS
}
dataList := utilService.STK_InventoryInit().Search(FilerString,"")
dataList := utilService.STK_InventoryInit().Search(FilerString, "")
articleQtyMap := make(map[string]float64)
for _, info := range dataList {
FMaterialId := info[0].(int)
FMaterialId := info[0].(float64)
var articleOne *model.Article
_, err := session.Table("Article").Where("PlantNr = ? and UserId = ? and FMaterialId = ?", PlantNr, UserId,FMaterialId).Get(&articleOne)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
ok, err := session.Table("Article").Where("PlantNr = ? and FMaterialId = ?", PlantNr, FMaterialId).Get(articleOne)
if err != nil {
_ = session.Rollback()
return errors.New("查询系统物料失败, error:" + err.Error())
}
if !ok {
fmt.Println("物料在金蝶中存在, 在MDS中不存在, FMaterialId:" + strconv.Itoa(int(FMaterialId)))
continue
}
articleQtyMap[articleOne.ArtId] = info[1].(float64)
}
for _, articleDemandInfo := range articleDemandList{
for _, articleDemandInfo := range articleDemandList {
articleDemandInfo.OpeningInventory = articleQtyMap[articleDemandInfo.ArtId]
err := dao_ArticleDemand.UpdateOne(&articleDemandInfo)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
if err != nil {
_ = session.Rollback()
return errors.New("更新物料需求数据失败, error:" + err.Error())
}
}
_ = session.Commit()
return nil
}
//在制库存
func GetOrderQty(PlantNr int,UserId string,CustomerId string){
func GetOrderQty(PlantNr int, UserId string, CustomerId string, allData *[]model.Article) (err error) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
_ = session.Begin()
Article := make([]model.Article, 0)
session.Table("Article").Find(&Article)
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr,UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr),meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err!=nil{
session.Rollback()
if err = session.Begin(); err != nil {
return
}
//Article := make([]model.Article, 0)
//err = session.Table("Article").Find(&Article)
//if err != nil {
// return errors.New("查询系统物料失败, error:" + err.Error())
//}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err != nil {
_ = session.Rollback()
return errors.New("查询物料需求数据失败, error:" + err.Error())
}
var FMaterialIdList []int
for _, articleInfo := range Article{
for _, articleDemandInfo := range articleDemandList{
if articleInfo.ArtId == articleDemandInfo.ArtId{
for _, articleInfo := range *allData {
// 在MDS中存在 在金蝶中不存在
if articleInfo.FMaterialId == 0 {
continue
}
for _, articleDemandInfo := range articleDemandList {
if articleInfo.ArtId == articleDemandInfo.ArtId {
FMaterialIdList = append(FMaterialIdList, articleInfo.FMaterialId)
}
}
}
FilerString := ""
for index, FMaterialId := range FMaterialIdList{
if index > 0{
for index, FMaterialId := range FMaterialIdList {
if index > 0 {
FilerString += " Or "
}
FMaterialIdS := strconv.Itoa(FMaterialId)
FilerString += "FMaterialId = " + FMaterialIdS
}
dataList := utilService.PLN_PLANORDER_Init().Search(FilerString,"")
dataList := utilService.PLN_PLANORDER_Init().Search(FilerString, "")
articleQtyMap := make(map[string]float64)
for _, info := range dataList {
FMaterialId := info[0].(int)
FMaterialId := info[0].(float64)
var articleOne *model.Article
_, err := session.Table("Article").Where("PlantNr = ? and UserId = ? and FMaterialId = ?", PlantNr, UserId,FMaterialId).Get(&articleOne)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
ok, err := session.Table("Article").Where("PlantNr = ? and FMaterialId = ?", PlantNr, FMaterialId).Get(articleOne)
if err != nil {
_ = session.Rollback()
return errors.New("查询系统物料失败, error:" + err.Error())
}
if !ok {
fmt.Println("金蝶物料在系统中不存在, 物料ID:" + strconv.Itoa(int(FMaterialId)))
continue
}
articleQtyMap[articleOne.ArtId] = info[1].(float64)
}
for _, articleDemandInfo := range articleDemandList{
for _, articleDemandInfo := range articleDemandList {
articleDemandInfo.WipQty = articleQtyMap[articleDemandInfo.ArtId]
err := dao_ArticleDemand.UpdateOne(&articleDemandInfo)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("更新物料需求数据失败, error:" + err.Error())
}
}
_ = session.Commit()
return nil
}
//外购量
//到货日期 入库数量 物料编码
func GetWaigouQty(PlantNr int,UserId string,CustomerId string){
func GetWaigouQty(PlantNr int, UserId string, CustomerId string, allData *[]model.Article) (err error) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
_ = session.Begin()
Article := make([]model.Article, 0)
session.Table("Article").Find(&Article)
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr,UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr),meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err!=nil{
session.Rollback()
if err = session.Begin(); err != nil {
return
}
//Article := make([]model.Article, 0)
//err = session.Table("Article").Find(&Article)
//if err != nil {
// _ = session.Rollback()
// return errors.New("查询系统物料失败, error:" + err.Error())
//}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr), meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err != nil {
_ = session.Rollback()
return errors.New("查询物料需求数据失败, error:" + err.Error())
}
var FMaterialIdList []int
for _, articleInfo := range Article{
for _, articleDemandInfo := range articleDemandList{
if articleInfo.ArtId == articleDemandInfo.ArtId{
for _, articleInfo := range *allData {
// 在MDS中存在 在金蝶中不存在
if articleInfo.FMaterialId == 0 {
continue
}
for _, articleDemandInfo := range articleDemandList {
if articleInfo.ArtId == articleDemandInfo.ArtId {
FMaterialIdList = append(FMaterialIdList, articleInfo.FMaterialId)
}
}
}
FilerString := ""
for index, FMaterialId := range FMaterialIdList{
if index > 0{
for index, FMaterialId := range FMaterialIdList {
if index > 0 {
FilerString += " Or "
}
FMaterialIdS := strconv.Itoa(FMaterialId)
FilerString += "FMaterialId = " + FMaterialIdS
}
dataList := utilService.PUR_Requisition_Init().Search(FilerString,"")
dataList := utilService.PUR_Requisition_Init().Search(FilerString, "")
articleQtyMap := make(map[string]float64)
for _, info := range dataList {
FMaterialId := info[0].(int)
FMaterialId := info[0].(float64)
var articleOne *model.Article
_, err := session.Table("Article").Where("PlantNr = ? and UserId = ? and FMaterialId = ?", PlantNr, UserId,FMaterialId).Get(&articleOne)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
ok, err := session.Table("Article").Where("PlantNr = ? and FMaterialId = ?", PlantNr, FMaterialId).Get(&articleOne)
if err != nil {
_ = session.Rollback()
return errors.New("查询系统物料失败, error:" + err.Error())
}
if !ok {
fmt.Println("金蝶物料在系统中不存在, 物料ID:" + strconv.Itoa(int(FMaterialId)))
continue
}
articleQtyMap[articleOne.ArtId] = info[1].(float64)
}
for _, articleDemandInfo := range articleDemandList{
for _, articleDemandInfo := range articleDemandList {
articleDemandInfo.OutSourcingQty = articleQtyMap[articleDemandInfo.ArtId]
err := dao_ArticleDemand.UpdateOne(&articleDemandInfo)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
if err != nil {
_ = session.Rollback()
return errors.New("更新物料需求数据失败, error:" + err.Error())
}
}
_ = session.Commit()
return nil
}
//独立需求
//需求日期 需求数量 物料编码
func GetDuliQty(PlantNr int,UserId string,CustomerId string){
func GetDuliQty(PlantNr int, UserId string, CustomerId string, allData *[]model.Article) (err error) {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
_ = session.Begin()
Article := make([]model.Article, 0)
session.Table("Article").Find(&Article)
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr,UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_PlantNr.NewPredicate(grmi.Equal, PlantNr),meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err!=nil{
session.Rollback()
if err = session.Begin(); err != nil {
return
}
//Article := make([]model.Article, 0)
//err = session.Table("Article").Find(&Article)
//if err != nil {
// _ = session.Rollback()
// return errors.New("查询系统物料失败, error:" + err.Error())
//}
dao_ArticleDemand := dal.NewArticleDemandDAO(session, PlantNr, UserId)
articleDemandList, err := dao_ArticleDemand.Select([]grmi.Predicate{meta.ArticleDemand_CustomerId.NewPredicate(grmi.Equal, CustomerId)}, nil)
if err != nil {
_ = session.Rollback()
return errors.New("查询系统物料需求数据失败, error:" + err.Error())
}
var FMaterialIdList []int
for _, articleInfo := range Article{
for _, articleDemandInfo := range articleDemandList{
if articleInfo.ArtId == articleDemandInfo.ArtId{
for _, articleInfo := range *allData {
// 在MDS中存在 在金蝶中不存在
if articleInfo.FMaterialId == 0 {
continue
}
for _, articleDemandInfo := range articleDemandList {
if articleInfo.ArtId == articleDemandInfo.ArtId {
FMaterialIdList = append(FMaterialIdList, articleInfo.FMaterialId)
}
}
}
FilerString := ""
for index, FMaterialId := range FMaterialIdList{
if index > 0{
for index, FMaterialId := range FMaterialIdList {
if index > 0 {
FilerString += " Or "
}
FMaterialIdS := strconv.Itoa(FMaterialId)
FilerString += "FMaterialId = " + FMaterialIdS
}
dataList := utilService.REM_IndepenReqPlan_Init().Search(FilerString,"")
dataList := utilService.REM_IndepenReqPlan_Init().Search(FilerString, "")
articleQtyMap := make(map[string]float64)
for _, info := range dataList {
FMaterialId := info[0].(int)
FMaterialId := info[0].(float64)
var articleOne *model.Article
_, err := session.Table("Article").Where("PlantNr = ? and UserId = ? and FMaterialId = ?", PlantNr, UserId,FMaterialId).Get(&articleOne)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
ok, err := session.Table("Article").Where("PlantNr = ? and FMaterialId = ?", PlantNr, FMaterialId).Get(articleOne)
if err != nil {
_ = session.Rollback()
return errors.New("查询系统物料失败, error:" + err.Error())
}
if !ok {
fmt.Println("金蝶物料在系统中不存在, 物料ID:" + strconv.Itoa(int(FMaterialId)))
continue
}
articleQtyMap[articleOne.ArtId] = info[1].(float64)
}
for _, articleDemandInfo := range articleDemandList{
for _, articleDemandInfo := range articleDemandList {
articleDemandInfo.IndependentDemandQty = articleQtyMap[articleDemandInfo.ArtId]
err := dao_ArticleDemand.UpdateOne(&articleDemandInfo)
if err!=nil{
fmt.Println(err)
session.Rollback()
return
err = dao_ArticleDemand.UpdateOne(&articleDemandInfo)
if err != nil {
_ = session.Rollback()
return errors.New("更新系统物料需求数据失败, error:" + err.Error())
}
}
_ = session.Commit()
return nil
}

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

@ -40,7 +40,7 @@ func (_this *REM_IndepenReqPlan_Service) Search( FilterString, OrderString strin
OrderString: OrderString,
TopRowCount: 0,
StartRow: 0,
//Limit: 1000,
Limit: 1000,
}
for true {


+ 6
- 6
web/controllers/base/base.go View File

@ -531,11 +531,11 @@ func RegisterRoutes() {
// StatusColor的服务实例
var serviceOfStatusColor = svr.NewStatusColorService()
// StatusColor插入一条
// RegisterInsertOneStatusColor(statuscolor, "/insertone", serviceOfStatusColor.InsertOne)
RegisterInsertOneStatusColor(statuscolor, "/insertone", serviceOfStatusColor.InsertOne)
// StatusColor插入多条
// RegisterInsertStatusColor(statuscolor, "/insert", serviceOfStatusColor.Insert)
// StatusColor删除一条
// RegisterDeleteOneStatusColor(statuscolor, "/deleteone", serviceOfStatusColor.DeleteOne)
RegisterDeleteOneStatusColor(statuscolor, "/deleteone", serviceOfStatusColor.DeleteOne)
// StatusColor删除多条
// RegisterDeleteStatusColor(statuscolor, "/delete", serviceOfStatusColor.Delete)
// StatusColor查询多条
@ -545,7 +545,7 @@ func RegisterRoutes() {
// StatusColor查询一条
RegisterSelectOneStatusColor(statuscolor, "/selectone", serviceOfStatusColor.SelectOne)
// StatusColor修改一条
// RegisterUpdateOneStatusColor(statuscolor, "/updateone", serviceOfStatusColor.UpdateOne)
RegisterUpdateOneStatusColor(statuscolor, "/updateone", serviceOfStatusColor.UpdateOne)
// StatusColor修改多条
// RegisterUpdateStatusColor(statuscolor, "/update", serviceOfStatusColor.Update)
@ -600,11 +600,11 @@ func RegisterRoutes() {
// Uom的服务实例
var serviceOfUom = svr.NewUomService()
// Uom插入一条
// RegisterInsertOneUom(uom, "/insertone", serviceOfUom.InsertOne)
RegisterInsertOneUom(uom, "/insertone", serviceOfUom.InsertOne)
// Uom插入多条
// RegisterInsertUom(uom, "/insert", serviceOfUom.Insert)
// Uom删除一条
// RegisterDeleteOneUom(uom, "/deleteone", serviceOfUom.DeleteOne)
RegisterDeleteOneUom(uom, "/deleteone", serviceOfUom.DeleteOne)
// Uom删除多条
// RegisterDeleteUom(uom, "/delete", serviceOfUom.Delete)
// Uom查询多条
@ -614,7 +614,7 @@ func RegisterRoutes() {
// Uom查询一条
RegisterSelectOneUom(uom, "/selectone", serviceOfUom.SelectOne)
// Uom修改一条
// RegisterUpdateOneUom(uom, "/updateone", serviceOfUom.UpdateOne)
RegisterUpdateOneUom(uom, "/updateone", serviceOfUom.UpdateOne)
// Uom修改多条
// RegisterUpdateUom(uom, "/update", serviceOfUom.Update)


Loading…
Cancel
Save