Browse Source

同步数据

pull/91/head
娄文智 3 years ago
parent
commit
ede4d32ea1
13 changed files with 661 additions and 0 deletions
  1. +15
    -0
      dao/base/Article.dao.go
  2. +19
    -0
      dao/base/Customer.dao.go
  3. +20
    -0
      dao/base/implments/Article.dao.impl.go
  4. +22
    -0
      dao/base/implments/Customer.dao.impl.go
  5. +19
    -0
      services/ap/CustArtlst.service.go
  6. +19
    -0
      services/ap/CustDemandVerHead.service.go
  7. +85
    -0
      services/ap/implments/CustArtlst.service.impl.go
  8. +253
    -0
      services/ap/implments/CustDemandVerHead.service.impl.go
  9. +19
    -0
      services/me/Project.service.go
  10. +60
    -0
      services/me/implments/Project.service.impl.go
  11. +15
    -0
      task/k3cloud.go
  12. +58
    -0
      utils/k3cloud/service/cust_material.go
  13. +57
    -0
      utils/k3cloud/service/me_project.go

+ 15
- 0
dao/base/Article.dao.go View File

@ -253,6 +253,21 @@ type ArticleDAO interface {
* *
******************************************************************************/ ******************************************************************************/
SelectArtData(artId string, opotionId string) ([]model.Article, error) SelectArtData(artId string, opotionId string) ([]model.Article, error)
/******************************************************************************
*
* @Function Name : SelectOneByFMaterialId
*-----------------------------------------------------------------------------
*
* @Description : 根据FMaterialId查询数据
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-20 11:11:05
*
******************************************************************************/
SelectOneByFMaterialId(FMaterialId string) (data *model.Article,err error)
} }
/****************************************************************************** /******************************************************************************


+ 19
- 0
dao/base/Customer.dao.go View File

@ -238,6 +238,25 @@ type CustomerDAO interface {
* *
******************************************************************************/ ******************************************************************************/
SelectTree(CustomerIds []string) ([]model.Customer, error) SelectTree(CustomerIds []string) ([]model.Customer, error)
/******************************************************************************
*
* @Function Name : SelectOne
*-----------------------------------------------------------------------------
*
* @Description : 查找指定键的Customer
*
* @Function Parameters : 主键
*
* @Return Value : 查找到的Customer
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-20 11:11:05
*
******************************************************************************/
SelectOneByFcustId(string) (*model.Customer, error)
} }
/****************************************************************************** /******************************************************************************


+ 20
- 0
dao/base/implments/Article.dao.impl.go View File

@ -366,3 +366,23 @@ func (impl *ArticleDAOImplement) SelectArtData(artId string, opotionId string) (
} }
return data, nil return data, nil
} }
/******************************************************************************
*
* @Reference leit.com/LAPP_SZDQ_BACKEND/dao/base/CustomerDAO.SelectOneByFMaterialId
*
******************************************************************************/
func (impl *ArticleDAOImplement) SelectOneByFMaterialId(FMaterialId string) (data *model.Article,err error) {
session := impl.session.Table(impl.meta.TableName)
session.Where("PlantNr = ? and FMaterialId = ?", impl.plantNr, FMaterialId)
ok,err := session.Get(&data)
if err != nil {
return nil, grmi.NewDataBaseError(err)
}
if !ok {
return nil, nil
}
return data, nil
}

+ 22
- 0
dao/base/implments/Customer.dao.impl.go View File

@ -326,3 +326,25 @@ func (impl *CustomerDAOImplement) SelectTree(CustomerIds []string) ([]model.Cust
} }
return data, nil return data, nil
} }
/******************************************************************************
*
* @Reference leit.com/LAPP_SZDQ_BACKEND/dao/base/CustomerDAO.SelectOneByFcustId
*
******************************************************************************/
func (impl *CustomerDAOImplement) SelectOneByFcustId(fcustId string) (data *model.Customer,err error) {
session := impl.session.Table(impl.meta.TableName)
session.Where("PlantNr = ? and FcustId = ?", impl.plantNr, fcustId)
session = session.OrderBy(meta.Customer_PlantNr.ColumnName)
ok,err := session.Get(&data)
if err != nil {
return nil, grmi.NewDataBaseError(err)
}
if !ok {
return nil, nil
}
return data, nil
}

+ 19
- 0
services/ap/CustArtlst.service.go View File

@ -206,6 +206,25 @@ type CustArtlstService interface {
Update(*global.User, *[]model.CustArtlst) error Update(*global.User, *[]model.CustArtlst) error
Search(*global.User, map[string]string) ([]model_base.CustomerLable, error) Search(*global.User, map[string]string) ([]model_base.CustomerLable, error)
/******************************************************************************
*
* @Function Name : ImportCustArtlst
*-----------------------------------------------------------------------------
*
* @Description : 导入客户物料对应表
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 需要修改的CustArtlst列表
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-20 11:11:05
*
******************************************************************************/
ImportCustArtlst(string, [][]interface{}) error
} }
/****************************************************************************** /******************************************************************************


+ 19
- 0
services/ap/CustDemandVerHead.service.go View File

@ -399,6 +399,25 @@ type CustDemandVerHeadService interface {
SelectVersionList(*global.User, map[string]string) ([]string, error) SelectVersionList(*global.User, map[string]string) ([]string, error)
SelectVersionCustomerList(*global.User, map[string]string) ([]model.VersionCustomer, error) SelectVersionCustomerList(*global.User, map[string]string) ([]model.VersionCustomer, error)
/******************************************************************************
*
* @Function Name : ImportDeviationAnalysis
*-----------------------------------------------------------------------------
*
* @Description : 多版本比较导出
*
* @Function Parameters : customerId 客户编号
*
* @Function Parameters : versionId 版本号
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-08-20 11:11:05
*
******************************************************************************/
ImportDeviationAnalysis(user *global.User, searchType string, customerId string, versionId string) (*model.CustomerDeviation, error)
} }
/****************************************************************************** /******************************************************************************


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

@ -3,6 +3,7 @@
package implments package implments
import ( import (
"errors"
dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/ap" dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/ap"
dal_base "leit.com/LAPP_CHEERSSON_BACKEND/dao/base" dal_base "leit.com/LAPP_CHEERSSON_BACKEND/dao/base"
"leit.com/LAPP_CHEERSSON_BACKEND/db" "leit.com/LAPP_CHEERSSON_BACKEND/db"
@ -12,7 +13,9 @@ import (
meta_base "leit.com/LAPP_CHEERSSON_BACKEND/meta/base" meta_base "leit.com/LAPP_CHEERSSON_BACKEND/meta/base"
model "leit.com/LAPP_CHEERSSON_BACKEND/models/ap" model "leit.com/LAPP_CHEERSSON_BACKEND/models/ap"
model_base "leit.com/LAPP_CHEERSSON_BACKEND/models/base" model_base "leit.com/LAPP_CHEERSSON_BACKEND/models/base"
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service" utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service"
"strings"
) )
/****************************************************************************** /******************************************************************************
@ -565,3 +568,85 @@ func (impl *CustArtlstServiceImplement) CustArtStockErp(user *global.User, urlPa
} }
var alldata_CustArtlstDemo []model.CustArtlstDemo var alldata_CustArtlstDemo []model.CustArtlstDemo
/******************************************************************************
*
* @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/ap/CustDemandVerHeadService.ImportCustArtlst
*
******************************************************************************/
func (impl *CustArtlstServiceImplement) ImportCustArtlst(FieldKeysStr string, listData [][]interface{}) error {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer func() { //在panic前声明defer,能捕获异常
if err := recover(); err != nil {
session.Rollback()
}
}()
_ = session.Begin()
defer session.Close()
dao := dal.NewCustArtlstDAO(session, model_base.PlantNr, "System")
custDao := dal_base.NewCustomerDAO(session, model_base.PlantNr, "System")
artDao := dal_base.NewArticleDAO(session, model_base.PlantNr, "System")
FieldKeys := strings.Split(FieldKeysStr, ",")
if len(listData) == 0 {
return errors.New("同步数据为空!")
}
//第一步,先处理数据,按照客户分类
resultMap := make(map[string][]map[string]interface{})
for _, valData := range listData {
valMap := make(map[string]interface{})
for k, val := range valData {
key := FieldKeys[k]
valMap[key] = val
}
resultKey := utils.ValueToString(valMap["FCustomerId"], "")
resultMap[resultKey] = append(resultMap[resultKey], valMap)
}
for customerId, vals := range resultMap {
//查询客户信息
custInfo, err := custDao.SelectOneByFcustId(customerId)
if err != nil {
return err
}
if custInfo == nil {
return errors.New("客户信息不存在!")
}
//第二步,删除客户维护关系
err = dao.DeleteWhere([]grmi.Predicate{meta.CustArtlst_CustomerId.NewPredicate(grmi.Equal, custInfo.CustomerId)})
if err != nil {
return err
}
//第三步,添加客户物料
for _, v := range vals {
status := utils.ValueToString(v["FDocumentStatus"], "")
if status != "C" {
continue
}
artInfo, err := artDao.SelectOneByFMaterialId(utils.ValueToString(v["FMaterialId"], ""))
if err != nil {
return err
}
if artInfo == nil {
return errors.New("物料信息不存在!")
}
oneData := new(model.CustArtlst)
oneData.PlantNr = model_base.PlantNr
oneData.CustomerId = custInfo.CustomerId
oneData.ArtId = artInfo.ArtId
oneData.Descr1 = utils.ValueToString(v["FCustMatName"], "")
err = dao.InsertOne(oneData)
if err != nil {
return err
}
}
}
session.Commit()
return nil
}

+ 253
- 0
services/ap/implments/CustDemandVerHead.service.impl.go View File

@ -2037,3 +2037,256 @@ func (impl *CustDemandVerHeadServiceImplement) ExportCompareVersionInfoByArtcle(
err = file.Save(excelfile) err = file.Save(excelfile)
return filename, nil return filename, nil
} }
/******************************************************************************
*
* @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/ap/CustDemandVerHeadService.ImportDeviationAnalysis
*
******************************************************************************/
func (impl *CustDemandVerHeadServiceImplement) ImportDeviationAnalysis(user *global.User, searchType string, customerId string, versionId string) (*model.CustomerDeviation, error) {
grmi.Log(user, "/services/ap/implments/CustDemandVerHead.service.impl.go", "CompareVersion", "多版本比较")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
detailDao := dal.NewCustDemandVerDetailDAO(session, user.PlantNr, user.UserId)
custDao := basedal.NewCustomerDAO(session, user.PlantNr, user.UserId)
artListDao := dal.NewCustArtlstDAO(session, user.PlantNr, user.UserId)
result := new(model.CustomerDeviation)
data := make([]model.CustomerDeviationDetailItem, 0)
perData := model.PerCustomerDeviationDetailItem{}
var versionIds []string
if len(versionId) > 0 {
versionIds = strings.Split(strings.TrimSpace(versionId), ",")
}
if len(versionIds) == 0 {
return nil, grmi.NewBusinessError("版本不存在!")
}
mDao := dal.NewCustDemandModelDAO(session, user.PlantNr, user.UserId)
tolDao := dal.NewDemandToleranceModelDAO(session, user.PlantNr, user.UserId)
record, err := custDao.SelectOne(customerId)
if err != nil {
return nil, err
}
if record == nil {
return nil, grmi.NewBusinessError("不存在指定记录!")
}
//第一步:查询对应的模型
mInfo, err := mDao.SelectOne(record.DemandModelId)
if err != nil {
return nil, err
}
//查询变差类型
tInfo, err := tolDao.SelectOneByCustomerId(record.CustomerId)
if err != nil {
return nil, err
}
if tInfo == nil {
return nil, grmi.NewBusinessError("偏差模型不能为空!")
}
//数据长度:保存多少周的数据
lenData := mInfo.DemandWeeks
//第一步:根据时间模型,计算当前周的起始位置
//计算当天是周几,
year, month, day := time.Now().Date()
firstWeek := utils.ZellerFunction2Week(uint16(year), uint16(month), uint16(day))
dayLen := mInfo.WeekDemandDay - firstWeek
nowDate := utils.TimeFormat(time.Now().AddDate(0, 0, dayLen), "yyyy-MM-dd")
//查询客户对应的物料主数据
artIds, err := artListDao.Select([]grmi.Predicate{meta.CustArtlst_CustomerId.NewPredicate(grmi.Equal, customerId)}, nil)
if err != nil {
return nil, err
}
for _, info := range artIds {
detailData, err := detailDao.SelectDeviation(customerId, versionIds, info.ArtId, nowDate)
if err != nil {
return nil, err
}
//第二步:按照条件收索,构建数组
mapDetailData := make(map[string][]model.CustDemandVerDetail)
//1.先按版本分类
for _, v := range detailData {
key := v.CustomerId + "_" + v.VersionId
mapDetailData[key] = append(mapDetailData[key], v)
}
if len(versionIds) == 1 && searchType == "seq" {
//第二步: 查询对应的需求数量,如果长度不够,用0补齐
for k, details := range mapDetailData {
temLen := 0
var allWeeks []string
var temDemandDate time.Time
info := strings.Split(k, "_")
one := model.CustomerDeviationDetailItem{}
one.CustomerId = info[0]
one.VersionId = info[1]
one.PeriodOnPeriodUpperLimit = tInfo.PeriodOnPeriodUpperLimit
one.PeriodOverPeriodLowerLimit = tInfo.PeriodOverPeriodLowerLimit
perOne := model.PerCustomerDeviationDetailItem{}
perOne.CustomerId = info[0]
perOne.VersionId = info[1]
perOne.PeriodOnPeriodUpperLimit = tInfo.PeriodOnPeriodUpperLimit
perOne.PeriodOverPeriodLowerLimit = tInfo.PeriodOverPeriodLowerLimit
mapWeeks := make(map[string]int)
for _, vv := range details {
if temLen > lenData {
continue
}
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandWeek, "")
val, ok := mapWeeks[key]
if !ok {
temLen++
mapWeeks[key] = utils.ValueToInt(vv.DemandQty, 0)
allWeeks = append(allWeeks, key)
} else {
mapWeeks[key] = val + utils.ValueToInt(vv.DemandQty, 0)
}
weekDate, err := time.Parse("2006-01-02", vv.DemandDate.ToString())
if err != nil {
return nil, err
}
temDemandDate = weekDate
}
//不足的周,用空位补齐
lenInfo := lenData - temLen
if lenInfo > 0 {
for k := 0; k < lenInfo; k++ {
weekDate := temDemandDate.AddDate(0, 0, 7*(k+1))
year, _, _ := weekDate.Date()
week := utils.WeekByDate(weekDate)
key := utils.ValueToString(year, "") + "." + utils.ValueToString(week, "")
allWeeks = append(allWeeks, key)
}
}
pevNum := 0
items := make(map[string]int, 0)
peritems := make(map[string]float64, 0)
//排序
sort.Strings(allWeeks)
for kkk, vvv := range allWeeks {
key := vvv
val, ok := mapWeeks[key]
if ok {
if kkk == 0 {
pevNum = val
}
items[key] = val
if pevNum == 0 {
peritems[key] = 0
} else {
num := (float64(val) - float64(pevNum)) / float64(pevNum)
peritems[key] = utils.Decimal(num*100, 2)
}
pevNum = val
} else {
items[key] = 0
peritems[key] = 0
pevNum = 0
}
}
one.Item = items
one.SortKeys = allWeeks
data = append(data, one)
perOne.Item = peritems
perOne.SortKeys = allWeeks
perData = perOne
}
} else {
if len(versionIds) != 2 {
return result, errors.New("请选择两个版本比较!")
}
//第二步: 查询对应的需求数量,如果长度不够,用0补齐
for k, details := range mapDetailData {
temLen := 0
var allWeeks []string
var temDemandDate time.Time
info := strings.Split(k, "_")
one := model.CustomerDeviationDetailItem{}
one.CustomerId = info[0]
one.VersionId = info[1]
one.PeriodOnPeriodUpperLimit = tInfo.PeriodOnPeriodUpperLimit
one.PeriodOverPeriodLowerLimit = tInfo.PeriodOverPeriodLowerLimit
mapWeeks := make(map[string]int)
for _, vv := range details {
if temLen > lenData {
continue
}
key := utils.ValueToString(vv.DemandYear, "") + "." + utils.ValueToString(vv.DemandWeek, "")
val, ok := mapWeeks[key]
if !ok {
temLen++
mapWeeks[key] = utils.ValueToInt(vv.DemandQty, 0)
allWeeks = append(allWeeks, key)
} else {
mapWeeks[key] = val + utils.ValueToInt(vv.DemandQty, 0)
}
weekDate, err := time.Parse("2006-01-02", vv.DemandDate.ToString())
if err != nil {
return nil, err
}
temDemandDate = weekDate
}
//不足的周,用空位补齐
lenInfo := lenData - temLen
if lenInfo > 0 {
for k := 0; k < lenInfo; k++ {
weekDate := temDemandDate.AddDate(0, 0, 7*(k+1))
year, _, _ := weekDate.Date()
week := utils.WeekByDate(weekDate)
key := utils.ValueToString(year, "") + "." + utils.ValueToString(week, "")
allWeeks = append(allWeeks, key)
}
}
items := make(map[string]int, 0)
//排序
sort.Strings(allWeeks)
for _, vvv := range allWeeks {
key := vvv
val, ok := mapWeeks[key]
if ok {
items[key] = val
} else {
items[key] = 0
}
}
one.Item = items
one.SortKeys = allWeeks
data = append(data, one)
}
perData.SortKeys = data[0].SortKeys
perData.PeriodOverPeriodLowerLimit = data[0].PeriodOverPeriodLowerLimit
perData.PeriodOnPeriodUpperLimit = data[0].PeriodOnPeriodUpperLimit
itemMap1 := data[0].Item
itemMap2 := data[1].Item
ItemMap := make(map[string]float64)
for _, vvvv := range perData.SortKeys {
key := vvvv
val1, ok1 := itemMap1[key]
val2, ok2 := itemMap2[key]
if !ok1 || !ok2 {
ItemMap[key] = 0
}
if val1 == 0 {
ItemMap[key] = 0
} else {
num := (float64(val2) - float64(val1)) / float64(val1)
ItemMap[key] = utils.Decimal(num*100, 2)
}
}
perData.Item = ItemMap
}
}
result.CustomerDeviationDetailItem = data
result.PerCustomerDeviationDetailItem = append(result.PerCustomerDeviationDetailItem, perData)
return result, nil
}

+ 19
- 0
services/me/Project.service.go View File

@ -195,6 +195,25 @@ type ProjectService interface {
* *
******************************************************************************/ ******************************************************************************/
Update(*global.User, *[]model.Project) error Update(*global.User, *[]model.Project) error
/******************************************************************************
*
* @Function Name : ImportProject
*-----------------------------------------------------------------------------
*
* @Description : 同步项目
*
* @Function Parameters : 当前访问人员信息
*
* @Function Parameters : 需要修改的Project列表
*
* @Return Value : 执行时发生的错误
*
* @Author : 代码生成器创建
*
* @Date : 2021-10-08 09:45:06
*
******************************************************************************/
ImportProject(FieldKeysStr string, listData [][]interface{}) error
} }
/****************************************************************************** /******************************************************************************


+ 60
- 0
services/me/implments/Project.service.impl.go View File

@ -3,12 +3,16 @@
package implments package implments
import ( import (
"errors"
dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/me" dal "leit.com/LAPP_CHEERSSON_BACKEND/dao/me"
"leit.com/LAPP_CHEERSSON_BACKEND/db" "leit.com/LAPP_CHEERSSON_BACKEND/db"
"leit.com/LAPP_CHEERSSON_BACKEND/global" "leit.com/LAPP_CHEERSSON_BACKEND/global"
"leit.com/LAPP_CHEERSSON_BACKEND/grmi" "leit.com/LAPP_CHEERSSON_BACKEND/grmi"
meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/me" meta "leit.com/LAPP_CHEERSSON_BACKEND/meta/me"
model_base "leit.com/LAPP_CHEERSSON_BACKEND/models/base"
model "leit.com/LAPP_CHEERSSON_BACKEND/models/me" model "leit.com/LAPP_CHEERSSON_BACKEND/models/me"
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
"strings"
) )
/****************************************************************************** /******************************************************************************
@ -336,3 +340,59 @@ func (impl *ProjectServiceImplement) Update(user *global.User, entities *[]model
} }
return nil return nil
} }
/******************************************************************************
*
* @Reference leit.com/LAPP_CHEERSSON_BACKEND/services/ap/CustDemandVerHeadService.ImportProject
*
******************************************************************************/
func (impl *ProjectServiceImplement) ImportProject(FieldKeysStr string, listData [][]interface{}) error {
engine := db.Eloquent.Master()
session := engine.NewSession()
defer func() { //在panic前声明defer,能捕获异常
if err := recover(); err != nil {
session.Rollback()
}
}()
_ = session.Begin()
defer session.Close()
dao := dal.NewProjectDAO(session, model_base.PlantNr, "System")
FieldKeys := strings.Split(FieldKeysStr, ",")
if len(listData) == 0 {
return errors.New("同步数据为空!")
}
//第一步,先处理数据,按照客户分类
for _, valData := range listData {
valMap := make(map[string]interface{})
for k, val := range valData {
key := FieldKeys[k]
valMap[key] = val
}
projectId := utils.ValueToString(valMap["FNumber"],"")
//第二步,删除客户维护关系
err := dao.DeleteWhere([]grmi.Predicate{meta.Project_ProjectId.NewPredicate(grmi.Equal, projectId)})
if err != nil {
return err
}
status := utils.ValueToString(valMap["FDocumentStatus"], "")
if status != "C"{
continue
}
//第三步,添加客户物料
oneData := new(model.Project)
oneData.PlantNr = model_base.PlantNr
oneData.ProjectId = projectId
oneData.Descr = utils.ValueToString(valMap["FName"], "")
err = dao.InsertOne(oneData)
if err != nil {
return err
}
}
session.Commit()
return nil
}

+ 15
- 0
task/k3cloud.go View File

@ -3,6 +3,7 @@ package task
import ( import (
svr "leit.com/LAPP_CHEERSSON_BACKEND/services/base" svr "leit.com/LAPP_CHEERSSON_BACKEND/services/base"
svrMe "leit.com/LAPP_CHEERSSON_BACKEND/services/me" svrMe "leit.com/LAPP_CHEERSSON_BACKEND/services/me"
svrAp "leit.com/LAPP_CHEERSSON_BACKEND/services/ap"
"leit.com/LAPP_CHEERSSON_BACKEND/utils" "leit.com/LAPP_CHEERSSON_BACKEND/utils"
utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service" utilService "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/service"
"math" "math"
@ -19,6 +20,8 @@ var serviceOfBomList = svrMe.NewBomLstService()
var serviceOfCustomer = svr.NewCustomerService() var serviceOfCustomer = svr.NewCustomerService()
var serviceOfSaleOrder = svr.NewSalesOrderService() var serviceOfSaleOrder = svr.NewSalesOrderService()
var serviceOfStdef = svr.NewStdefService() var serviceOfStdef = svr.NewStdefService()
var serviceOfCustArtlst = svrAp.NewCustArtlstService()
var serviceOfProject = svrMe.NewProjectService()
func TaskInit() { func TaskInit() {
utils.K3configTestInit() utils.K3configTestInit()
@ -110,7 +113,19 @@ func importMaterialGroupSearch() {
} }
return return
} }
//客户物料对应表
func importCustomerMaterialSearch() {
svrCust := utilService.CustomerMaterialInit()
response := svrCust.CustomerMaterialSearch("", "")
serviceOfCustArtlst.ImportCustArtlst(svrCust.FieldKeys, response)
}
//客户物料对应表
func ImportProjectSearch() {
svrProject := utilService.ProjectInit()
response := svrProject.ProjectSearch("", "")
serviceOfProject.ImportProject(svrProject.FieldKeys, response)
}
//DaysBetweenDates 返回前后两个日期共包含多少天 //DaysBetweenDates 返回前后两个日期共包含多少天
func DaysBetweenDates(startDate, endDate time.Time) int { func DaysBetweenDates(startDate, endDate time.Time) int {
return int(math.Floor(math.Abs(endDate.Sub(startDate).Hours()/24))) + 1 return int(math.Floor(math.Abs(endDate.Sub(startDate).Hours()/24))) + 1


+ 58
- 0
utils/k3cloud/service/cust_material.go View File

@ -0,0 +1,58 @@
package service
import (
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
request2 "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct/request"
)
type CustomerMaterialService struct {
*utils.K3config
FormID string
FieldKeys string
FUseOrgKey string
}
func CustomerMaterialInit() *CustomerMaterialService {
cust := &CustomerMaterialService{
K3config: utils.K3Obj,
FormID: "SAL_CustMatMapping",
FieldKeys: "FBillNo,FDocumentStatus,FCustomerId,FName,FIsOldVersion,FIsMultiple,FCustMatNo,FMaterialId,FCustMatName,FEffective",
FUseOrgKey: "",
}
return cust
}
//客户物料对应表
func (_this *CustomerMaterialService) CustomerMaterialSearch(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
}

+ 57
- 0
utils/k3cloud/service/me_project.go View File

@ -0,0 +1,57 @@
package service
import (
"leit.com/LAPP_CHEERSSON_BACKEND/utils"
utils2 "leit.com/LAPP_CHEERSSON_BACKEND/utils"
request2 "leit.com/LAPP_CHEERSSON_BACKEND/utils/k3cloud/struct/request"
)
type ProjectService struct {
*utils.K3config
FormID string
FieldKeys string
FUseOrgKey string
}
func ProjectInit() *ProjectService {
cust := &ProjectService{
K3config: utils2.K3Obj,
FormID: "PLM_STD_PRJ_WORKCALTEMP",
FieldKeys: "FDocumentStatus,FForbidStatus,FName,FNumber,FDescription",
}
return cust
}
func (_this *ProjectService) ProjectSearch(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
}

Loading…
Cancel
Save