Browse Source

不再依赖配置的的projectId 将该字段加到plant上 添加打包中缤智线的plc写入逻辑

pull/199/head
zhangxin 2 years ago
parent
commit
248523cd18
20 changed files with 1849 additions and 1296 deletions
  1. +0
    -1
      conf/config.go
  2. +3
    -1
      meta/base/Plant.meta.go
  3. +15
    -1
      meta/jit/PackOrderPlcError.meta.go
  4. +3
    -0
      models/base/Const.go
  5. +1
    -0
      models/base/Plant.model.go
  6. +8
    -1
      models/jit/PackOrderPlcError.model.go
  7. +4
    -0
      models/jit/const.go
  8. +137
    -0
      plc/plc.go
  9. +9
    -9
      services/base/implments/Plant.service.impl.go
  10. +1
    -1
      services/jit/PackOrder.service.go
  11. +349
    -1248
      services/jit/implments/PackOrder.service.impl.go
  12. +1245
    -0
      services/jit/implments/PackOrderToPLC.service.impl.go
  13. +13
    -4
      services/jit/implments/ShipOrder.service.impl.go
  14. +1
    -1
      services/om/implments/SerialOrder.service.impl.go
  15. +3
    -0
      services/pln/implments/HondaCalloff.service.impl.go
  16. +6
    -0
      services/pln/implments/ToyotaCalloff.service.impl.go
  17. +3
    -0
      services/pln/implments/ToyotaDeliveryOrder.service.impl.go
  18. +11
    -2
      services/qm/implments/ReclinerReclst.service.impl.go
  19. +20
    -25
      task/scheduler.go
  20. +17
    -2
      web/controllers/jit/PackOrder.rest.go

+ 0
- 1
conf/config.go View File

@ -8,7 +8,6 @@ import (
var DbConfig *EnvConfig var DbConfig *EnvConfig
type EnvConfig struct { type EnvConfig struct {
Project string `yaml:"project"`
Finr int `yaml:"finr"` Finr int `yaml:"finr"`
Mongdbname string `yaml:"mongdbname"` Mongdbname string `yaml:"mongdbname"`
Mongdbip string `yaml:"mongdbip"` Mongdbip string `yaml:"mongdbip"`


+ 3
- 1
meta/base/Plant.meta.go View File

@ -36,6 +36,7 @@ var Plant_TaxId = grmi.NewField("TaxId", "[Plant].TaxId", "taxid", grmi.TypeStri
var Plant_AccountBank = grmi.NewField("AccountBank", "[Plant].AccountBank", "accountbank", grmi.TypeString) var Plant_AccountBank = grmi.NewField("AccountBank", "[Plant].AccountBank", "accountbank", grmi.TypeString)
var Plant_AccountNr = grmi.NewField("AccountNr", "[Plant].AccountNr", "accountnr", grmi.TypeInt) var Plant_AccountNr = grmi.NewField("AccountNr", "[Plant].AccountNr", "accountnr", grmi.TypeInt)
var Plant_Currency = grmi.NewField("Currency", "[Plant].Currency", "currency", grmi.TypeString) var Plant_Currency = grmi.NewField("Currency", "[Plant].Currency", "currency", grmi.TypeString)
var Plant_PlantProject = grmi.NewField("PlantProject", "[Plant].PlantProject", "plantproject", grmi.TypeString)
var Plant_LastModify = grmi.NewField("LastModify", "[Plant].LastModify", "lastmodify", grmi.TypeDateTime) var Plant_LastModify = grmi.NewField("LastModify", "[Plant].LastModify", "lastmodify", grmi.TypeDateTime)
var Plant_LastUser = grmi.NewField("LastUser", "[Plant].LastUser", "lastuser", grmi.TypeString) var Plant_LastUser = grmi.NewField("LastUser", "[Plant].LastUser", "lastuser", grmi.TypeString)
var Plant_CreateTime = grmi.NewField("CreateTime", "[Plant].CreateTime", "createtime", grmi.TypeDateTime) var Plant_CreateTime = grmi.NewField("CreateTime", "[Plant].CreateTime", "createtime", grmi.TypeDateTime)
@ -73,9 +74,10 @@ var Plant = grmi.NewEntity(
Plant_AccountBank.Name: Plant_AccountBank, Plant_AccountBank.Name: Plant_AccountBank,
Plant_AccountNr.Name: Plant_AccountNr, Plant_AccountNr.Name: Plant_AccountNr,
Plant_Currency.Name: Plant_Currency, Plant_Currency.Name: Plant_Currency,
Plant_PlantProject.Name: Plant_PlantProject,
Plant_LastModify.Name: Plant_LastModify, Plant_LastModify.Name: Plant_LastModify,
Plant_LastUser.Name: Plant_LastUser, Plant_LastUser.Name: Plant_LastUser,
Plant_CreateTime.Name: Plant_CreateTime, Plant_CreateTime.Name: Plant_CreateTime,
}, },
[]string{}, []string{},
[]string{"Status", "Name1", "Name2", "Logo", "Abrevname", "Country", "Street", "Address", "PostCode", "Phone", "Fax", "StartYear", "EndYear", "CompanyTitle", "CompanyAddress", "TaxId", "AccountBank", "AccountNr", "Currency", "LastUser"})
[]string{"Status", "Name1", "Name2", "Logo", "Abrevname", "Country", "Street", "Address", "PostCode", "Phone", "Fax", "StartYear", "EndYear", "CompanyTitle", "CompanyAddress", "TaxId", "AccountBank", "AccountNr", "Currency", "PlantProject", "LastUser"})

+ 15
- 1
meta/jit/PackOrderPlcError.meta.go View File

@ -24,6 +24,13 @@ var PackOrderPlcError_ErrorInfo = grmi.NewField("ErrorInfo", "[JIT_PackOrderPlcE
var PackOrderPlcError_ErrorType = grmi.NewField("ErrorType", "[JIT_PackOrderPlcError].ErrorType", "errortype", grmi.TypeString) var PackOrderPlcError_ErrorType = grmi.NewField("ErrorType", "[JIT_PackOrderPlcError].ErrorType", "errortype", grmi.TypeString)
var PackOrderPlcError_Location = grmi.NewField("Location", "[JIT_PackOrderPlcError].Location", "location", grmi.TypeString) var PackOrderPlcError_Location = grmi.NewField("Location", "[JIT_PackOrderPlcError].Location", "location", grmi.TypeString)
var PackOrderPlcError_SeatData = grmi.NewField("SeatData", "[JIT_PackOrderPlcError].SeatData", "seatdata", grmi.TypeString) var PackOrderPlcError_SeatData = grmi.NewField("SeatData", "[JIT_PackOrderPlcError].SeatData", "seatdata", grmi.TypeString)
var PackOrderPlcError_Source = grmi.NewField("Source", "[JIT_PackOrderPlcError].Source", "source", grmi.TypeString)
var PackOrderPlcError_StrCtrl1 = grmi.NewField("StrCtrl1", "[JIT_PackOrderPlcError].StrCtrl1", "strctrl1", grmi.TypeString)
var PackOrderPlcError_StrCtrl2 = grmi.NewField("StrCtrl2", "[JIT_PackOrderPlcError].StrCtrl2", "strctrl2", grmi.TypeString)
var PackOrderPlcError_StrCtrl3 = grmi.NewField("StrCtrl3", "[JIT_PackOrderPlcError].StrCtrl3", "strctrl3", grmi.TypeString)
var PackOrderPlcError_IntCtrl1 = grmi.NewField("IntCtrl1", "[JIT_PackOrderPlcError].IntCtrl1", "intctrl1", grmi.TypeInt)
var PackOrderPlcError_IntCtrl2 = grmi.NewField("IntCtrl2", "[JIT_PackOrderPlcError].IntCtrl2", "intctrl2", grmi.TypeInt)
var PackOrderPlcError_IntCtrl3 = grmi.NewField("IntCtrl3", "[JIT_PackOrderPlcError].IntCtrl3", "intctrl3", grmi.TypeInt)
var PackOrderPlcError_LastModify = grmi.NewField("LastModify", "[JIT_PackOrderPlcError].LastModify", "lastmodify", grmi.TypeDateTime) var PackOrderPlcError_LastModify = grmi.NewField("LastModify", "[JIT_PackOrderPlcError].LastModify", "lastmodify", grmi.TypeDateTime)
var PackOrderPlcError_LastUser = grmi.NewField("LastUser", "[JIT_PackOrderPlcError].LastUser", "lastuser", grmi.TypeString) var PackOrderPlcError_LastUser = grmi.NewField("LastUser", "[JIT_PackOrderPlcError].LastUser", "lastuser", grmi.TypeString)
var PackOrderPlcError_CreateTime = grmi.NewField("CreateTime", "[JIT_PackOrderPlcError].CreateTime", "createtime", grmi.TypeDateTime) var PackOrderPlcError_CreateTime = grmi.NewField("CreateTime", "[JIT_PackOrderPlcError].CreateTime", "createtime", grmi.TypeDateTime)
@ -49,9 +56,16 @@ var PackOrderPlcError = grmi.NewEntity(
PackOrderPlcError_ErrorType.Name: PackOrderPlcError_ErrorType, PackOrderPlcError_ErrorType.Name: PackOrderPlcError_ErrorType,
PackOrderPlcError_Location.Name: PackOrderPlcError_Location, PackOrderPlcError_Location.Name: PackOrderPlcError_Location,
PackOrderPlcError_SeatData.Name: PackOrderPlcError_SeatData, PackOrderPlcError_SeatData.Name: PackOrderPlcError_SeatData,
PackOrderPlcError_Source.Name: PackOrderPlcError_Source,
PackOrderPlcError_StrCtrl1.Name: PackOrderPlcError_StrCtrl1,
PackOrderPlcError_StrCtrl2.Name: PackOrderPlcError_StrCtrl2,
PackOrderPlcError_StrCtrl3.Name: PackOrderPlcError_StrCtrl3,
PackOrderPlcError_IntCtrl1.Name: PackOrderPlcError_IntCtrl1,
PackOrderPlcError_IntCtrl2.Name: PackOrderPlcError_IntCtrl2,
PackOrderPlcError_IntCtrl3.Name: PackOrderPlcError_IntCtrl3,
PackOrderPlcError_LastModify.Name: PackOrderPlcError_LastModify, PackOrderPlcError_LastModify.Name: PackOrderPlcError_LastModify,
PackOrderPlcError_LastUser.Name: PackOrderPlcError_LastUser, PackOrderPlcError_LastUser.Name: PackOrderPlcError_LastUser,
PackOrderPlcError_CreateTime.Name: PackOrderPlcError_CreateTime, PackOrderPlcError_CreateTime.Name: PackOrderPlcError_CreateTime,
}, },
[]string{"PlantNr"}, []string{"PlantNr"},
[]string{"Status", "Step", "ErrorInfo", "ErrorType", "Location", "SeatData", "LastUser"})
[]string{"Status", "Step", "ErrorInfo", "ErrorType", "Location", "SeatData", "Source", "StrCtrl1", "StrCtrl2", "StrCtrl3", "IntCtrl1", "IntCtrl2", "IntCtrl3", "LastUser"})

+ 3
- 0
models/base/Const.go View File

@ -6,6 +6,9 @@ const (
PROJECT_ACURA = "ACURA" PROJECT_ACURA = "ACURA"
PROJECT_NANSHA = "nansha" PROJECT_NANSHA = "nansha"
WORKPLACE_CONIFG_WIRTE_SEAT = "SEAT"
WORKPLACE_CONFIG_WRITE_SIGN = "SIGN"
// 工单绑定来源类型 // 工单绑定来源类型
ORDER_IDENTIFY_SOURCE_MONITOR = "MONITOR" ORDER_IDENTIFY_SOURCE_MONITOR = "MONITOR"
ORDER_IDENTIFY_SOURCE_PRODUCE = "PRODUCE" ORDER_IDENTIFY_SOURCE_PRODUCE = "PRODUCE"


+ 1
- 0
models/base/Plant.model.go View File

@ -40,6 +40,7 @@ type Plant struct {
AccountBank string `xorm:"nvarchar(100) 'AccountBank' not null" json:"Plant-AccountBank"` AccountBank string `xorm:"nvarchar(100) 'AccountBank' not null" json:"Plant-AccountBank"`
AccountNr int `xorm:"int 'AccountNr' not null" json:"Plant-AccountNr"` AccountNr int `xorm:"int 'AccountNr' not null" json:"Plant-AccountNr"`
Currency string `xorm:"nvarchar(20) 'Currency' not null" json:"Plant-Currency"` Currency string `xorm:"nvarchar(20) 'Currency' not null" json:"Plant-Currency"`
PlantProject string `xorm:"nvarchar(20) 'PlantProject' not null" json:"Plant-PlantProject"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"Plant-LastModify"` LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"Plant-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"Plant-LastUser"` LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"Plant-LastUser"`
CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"Plant-CreateTime"` CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"Plant-CreateTime"`


+ 8
- 1
models/jit/PackOrderPlcError.model.go View File

@ -25,9 +25,16 @@ type PackOrderPlcError struct {
Status int `xorm:"int 'Status' not null" json:"JIT_PackOrderPlcError-Status"` Status int `xorm:"int 'Status' not null" json:"JIT_PackOrderPlcError-Status"`
Step int `xorm:"int 'Step' not null" json:"JIT_PackOrderPlcError-Step"` Step int `xorm:"int 'Step' not null" json:"JIT_PackOrderPlcError-Step"`
ErrorInfo string `xorm:"nvarchar(500) 'ErrorInfo' not null" json:"JIT_PackOrderPlcError-ErrorInfo"` ErrorInfo string `xorm:"nvarchar(500) 'ErrorInfo' not null" json:"JIT_PackOrderPlcError-ErrorInfo"`
ErrorType string `xorm:"nvarchar(20) 'ErrorType' not null" json:"PLCErrorInfo-ErrorType"`
ErrorType string `xorm:"nvarchar(20) 'ErrorType' not null" json:"PLCErrorInfo-ErrorType"`
Location string `xorm:"nvarchar(40) 'Location' not null" json:"JIT_PackOrderPlcError-Location"` Location string `xorm:"nvarchar(40) 'Location' not null" json:"JIT_PackOrderPlcError-Location"`
SeatData string `xorm:"nvarchar(100) 'SeatData' not null" json:"JIT_PackOrderPlcError-SeatData"` SeatData string `xorm:"nvarchar(100) 'SeatData' not null" json:"JIT_PackOrderPlcError-SeatData"`
Source string `xorm:"nvarchar(100) 'Source' not null" json:"JIT_PackOrderPlcError-Source"`
StrCtrl1 string `xorm:"nvarchar(100) 'StrCtrl1' null" json:"JIT_PackOrderPlcError-StrCtrl1"`
StrCtrl2 string `xorm:"nvarchar(100) 'StrCtrl2' null" json:"JIT_PackOrderPlcError-StrCtrl2"`
StrCtrl3 string `xorm:"nvarchar(100) 'StrCtrl3' null" json:"JIT_PackOrderPlcError-StrCtrl3"`
IntCtrl1 int `xorm:"int 'IntCtrl1' null" json:"JIT_PackOrderPlcError-IntCtrl1"`
IntCtrl2 int `xorm:"int 'IntCtrl2' null" json:"JIT_PackOrderPlcError-IntCtrl2"`
IntCtrl3 int `xorm:"int 'IntCtrl3' null" json:"JIT_PackOrderPlcError-IntCtrl3"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"JIT_PackOrderPlcError-LastModify"` LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"JIT_PackOrderPlcError-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"JIT_PackOrderPlcError-LastUser"` LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"JIT_PackOrderPlcError-LastUser"`
CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"JIT_PackOrderPlcError-CreateTime"` CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"JIT_PackOrderPlcError-CreateTime"`


+ 4
- 0
models/jit/const.go View File

@ -21,6 +21,10 @@ const (
PACK_TYPE_STD = "STD" PACK_TYPE_STD = "STD"
PACK_TYPE_INT = "INT" PACK_TYPE_INT = "INT"
// 合格、不合格包装
PACK_QUALITY_OK = "OK"
PACK_QUALITY_NG = "NG"
// 发运状态 // 发运状态
SHIP_STATUS_UNPLANED = 10 // 未计划 SHIP_STATUS_UNPLANED = 10 // 未计划
SHIP_STATUS_PLANNED = 20 // 已计划 SHIP_STATUS_PLANNED = 20 // 已计划


+ 137
- 0
plc/plc.go View File

@ -0,0 +1,137 @@
package plc
import (
"LAPP_ACURA_MOM_BACKEND/conf"
"LAPP_ACURA_MOM_BACKEND/grmi"
"LAPP_ACURA_MOM_BACKEND/infra/logger"
baseModel "LAPP_ACURA_MOM_BACKEND/models/base"
"LAPP_ACURA_MOM_BACKEND/utils"
json "github.com/json-iterator/go"
"github.com/kataras/iris/v12"
)
// ReadDataFromPLC 从PLC读取数据
func ReadDataFromPLC(data baseModel.PLC, log logger.Log, dataType string) (interface{}, error) {
postData, err := json.Marshal(data)
if err != nil {
log.Error("序列化读数据请求数据失败, error:" + err.Error())
return "", grmi.NewBusinessError("序列化读取数据请求数据失败, error:" + err.Error())
}
log.Debug("读取数据请求参数:" + string(postData) + ", url:" + conf.DbConfig.PLCReadBackend)
boday, err := utils.Post(conf.DbConfig.PLCReadBackend, postData)
if err != nil {
log.Error("读取数据调用失败, error:" + err.Error())
return "", grmi.NewBusinessError("读取数据调用失败, error:" + err.Error())
}
log.Debug("读取数据请求响应:" + string(boday))
var response baseModel.Response
err = json.Unmarshal(boday, &response)
if err != nil {
log.Error("解析读取数据后台数据失败, error:" + err.Error() + ", 后台数据:" + string(boday))
return "", grmi.NewBusinessError("解析读取数据后台数据失败, error:" + err.Error())
}
if response.Code != iris.StatusOK {
log.Error("读取数据调用后台失败, 后台返回错误, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据调用后台失败, 后台返回错误, 错误:" + response.Msg)
}
plcData, ok := response.Data.(map[string]interface{})
if !ok {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
successInterface, exist := plcData["IsSuccess"]
if !exist {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
success, ok := successInterface.(bool)
if !ok {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
if !success {
log.Error("读取数据后台plc执行失败, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台plc执行失败, 后台数据:" + string(boday))
}
content, exist := plcData["Content"]
if !exist {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
if dataType == "String" {
stringContent, ok := content.(string)
if !ok {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
if !ok {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return "", grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
length := len(stringContent)
for index, item := range stringContent {
if item == 0 {
length = index
break
}
}
return stringContent[:length], nil
} else if dataType == "Boolean" {
boolContent, ok := content.(bool)
if !ok {
log.Error("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
return false, grmi.NewBusinessError("读取数据后台返回data格式不正确, 后台数据:" + string(boday))
}
return boolContent, nil
} else {
return nil, grmi.NewBusinessError("不支持的数据类型")
}
}
// WriteDataToPLC 向plc中写入数据
func WriteDataToPLC(data baseModel.PLC, log logger.Log) error {
postData, err := json.Marshal(data)
if err != nil {
log.Error("序列化数据请求数据失败, error:" + err.Error())
return grmi.NewBusinessError("序列化数据请求数据失败, error:" + err.Error())
}
log.Debug("写入数据请求参数:" + string(postData) + ", url:" + conf.DbConfig.PLCWriteBackend)
boday, err := utils.Post(conf.DbConfig.PLCWriteBackend, postData)
if err != nil {
log.Error("写入数据调用失败, error:" + err.Error())
return grmi.NewBusinessError("写入数据调用失败, error:" + err.Error())
}
log.Debug("写入数据请求响应:" + string(boday))
var response baseModel.Response
err = json.Unmarshal(boday, &response)
if err != nil {
log.Error("解析写入数据后台数据失败, error:" + err.Error() + ", 后台数据:" + string(boday))
return grmi.NewBusinessError("解析写入数据后台数据失败, error:" + err.Error())
}
if response.Code != iris.StatusOK {
log.Error("写入数据调用后台失败, 后台返回错误, 后台数据:" + string(boday))
return grmi.NewBusinessError("写入数据调用后台失败, 后台返回错误, 错误:" + response.Msg)
}
plcData, ok := response.Data.(map[string]interface{})
if !ok {
log.Error("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
return grmi.NewBusinessError("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
}
successInterface, exist := plcData["IsSuccess"]
if !exist {
log.Error("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
return grmi.NewBusinessError("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
}
success, ok := successInterface.(bool)
if !ok {
log.Error("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
return grmi.NewBusinessError("写入数据后台返回data格式不正确, 后台数据:" + string(boday))
}
if !success {
log.Error("写入数据后台plc执行失败, 后台数据:" + string(boday))
return grmi.NewBusinessError("写入数据后台plc执行失败, 后台数据:" + string(boday))
}
return nil
}

+ 9
- 9
services/base/implments/Plant.service.impl.go View File

@ -45,6 +45,7 @@ var DefaultConditionOfPlant = grmi.NewCondition(
meta.Plant_AccountBank.UrlParameterName: grmi.NewConditionItem(meta.Plant_AccountBank, grmi.Equal, false), meta.Plant_AccountBank.UrlParameterName: grmi.NewConditionItem(meta.Plant_AccountBank, grmi.Equal, false),
meta.Plant_AccountNr.UrlParameterName: grmi.NewConditionItem(meta.Plant_AccountNr, grmi.Equal, false), meta.Plant_AccountNr.UrlParameterName: grmi.NewConditionItem(meta.Plant_AccountNr, grmi.Equal, false),
meta.Plant_Currency.UrlParameterName: grmi.NewConditionItem(meta.Plant_Currency, grmi.Equal, false), meta.Plant_Currency.UrlParameterName: grmi.NewConditionItem(meta.Plant_Currency, grmi.Equal, false),
meta.Plant_PlantProject.UrlParameterName: grmi.NewConditionItem(meta.Plant_PlantProject, grmi.Equal, false),
meta.Plant_LastModify.UrlParameterName: grmi.NewConditionItem(meta.Plant_LastModify, grmi.Approximate, false), meta.Plant_LastModify.UrlParameterName: grmi.NewConditionItem(meta.Plant_LastModify, grmi.Approximate, false),
meta.Plant_LastUser.UrlParameterName: grmi.NewConditionItem(meta.Plant_LastUser, grmi.Equal, false), meta.Plant_LastUser.UrlParameterName: grmi.NewConditionItem(meta.Plant_LastUser, grmi.Equal, false),
meta.Plant_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.Plant_CreateTime, grmi.Approximate, false), meta.Plant_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.Plant_CreateTime, grmi.Approximate, false),
@ -396,7 +397,7 @@ func (impl *PlantServiceImplement) GetAllProjectsOfPlant(user *global.User) ([]m
projectDataLi := make([]model.PlantDataTree, 0, len(projectLi)) projectDataLi := make([]model.PlantDataTree, 0, len(projectLi))
for _, project := range projectLi { for _, project := range projectLi {
projectData := model.PlantDataTree{ projectData := model.PlantDataTree{
ItemId: project.ProjectId,
ItemId: project.ProjectId,
ItemDesc: project.Descr, ItemDesc: project.Descr,
} }
productFamilyLi, err := productFamilyDao.Select([]grmi.Predicate{meMeta.ProductFamily_ProjectId.NewPredicate(grmi.Equal, project.ProjectId)}, []grmi.Field{meMeta.ProductFamily_ProductFamilyId}) productFamilyLi, err := productFamilyDao.Select([]grmi.Predicate{meMeta.ProductFamily_ProjectId.NewPredicate(grmi.Equal, project.ProjectId)}, []grmi.Field{meMeta.ProductFamily_ProductFamilyId})
@ -406,7 +407,7 @@ func (impl *PlantServiceImplement) GetAllProjectsOfPlant(user *global.User) ([]m
productFamilyDataLi := make([]model.PlantDataTree, 0, len(productFamilyLi)) productFamilyDataLi := make([]model.PlantDataTree, 0, len(productFamilyLi))
for _, productFamily := range productFamilyLi { for _, productFamily := range productFamilyLi {
productFamilyData := model.PlantDataTree{ productFamilyData := model.PlantDataTree{
ItemId: productFamily.ProductFamilyId,
ItemId: productFamily.ProductFamilyId,
ItemDesc: productFamily.Descr, ItemDesc: productFamily.Descr,
} }
productLi, err := productFamilyRelateDao.SelectProductByFamilyId(project.ProjectId, productFamily.ProductFamilyId) productLi, err := productFamilyRelateDao.SelectProductByFamilyId(project.ProjectId, productFamily.ProductFamilyId)
@ -416,9 +417,9 @@ func (impl *PlantServiceImplement) GetAllProjectsOfPlant(user *global.User) ([]m
productDataLi := make([]model.PlantDataTree, 0, len(productLi)) productDataLi := make([]model.PlantDataTree, 0, len(productLi))
for _, product := range productLi { for _, product := range productLi {
productData := model.PlantDataTree{ productData := model.PlantDataTree{
ItemId: product.ProductId,
ItemId: product.ProductId,
ItemDesc: product.Descr, ItemDesc: product.Descr,
IsEnd: true,
IsEnd: true,
} }
productDataLi = append(productDataLi, productData) productDataLi = append(productDataLi, productData)
} }
@ -435,7 +436,6 @@ func (impl *PlantServiceImplement) GetAllProjectsOfPlant(user *global.User) ([]m
} }
/****************************************************************************** /******************************************************************************
* *
* @Reference LAPP_ACURA_MOM_BACKEND/services/base/PlantService.GetAllWorkLineOfPlant * @Reference LAPP_ACURA_MOM_BACKEND/services/base/PlantService.GetAllWorkLineOfPlant
@ -454,7 +454,7 @@ func (impl *PlantServiceImplement) GetAllWorkLineOfPlant(user *global.User) ([]m
result := make([]model.WorkLineOfPlant, 0, 1) result := make([]model.WorkLineOfPlant, 0, 1)
for _, plant := range plantLi { for _, plant := range plantLi {
plantData := model.WorkLineOfPlant{ plantData := model.WorkLineOfPlant{
ItemId: plant.PlantNr,
ItemId: plant.PlantNr,
ItemDesc: plant.Name1, ItemDesc: plant.Name1,
Children: make([]model.WorkLineOfPlant, 0), Children: make([]model.WorkLineOfPlant, 0),
} }
@ -465,13 +465,13 @@ func (impl *PlantServiceImplement) GetAllWorkLineOfPlant(user *global.User) ([]m
} }
for _, workLine := range workLineLi { for _, workLine := range workLineLi {
data := model.WorkLineOfPlant{ data := model.WorkLineOfPlant{
ItemId: workLine.WorkLineid,
ItemId: workLine.WorkLineid,
ItemDesc: workLine.Descr, ItemDesc: workLine.Descr,
IsEnd: true,
IsEnd: true,
} }
plantData.Children = append(plantData.Children, data) plantData.Children = append(plantData.Children, data)
} }
result = append(result, plantData) result = append(result, plantData)
} }
return result, nil return result, nil
}
}

+ 1
- 1
services/jit/PackOrder.service.go View File

@ -215,7 +215,7 @@ type PackOrderService interface {
* @Date : 2021-10-22 * @Date : 2021-10-22
* *
******************************************************************************/ ******************************************************************************/
ScanBarcode(user *global.User, barcode string) (*model.PackOrderInfo, error)
ScanBarcode(user *global.User, barcode string, workplaceNr int) (*model.PackOrderInfo, error)
/****************************************************************************** /******************************************************************************
* *
* @Function Name : ClosePackOrder * @Function Name : ClosePackOrder


+ 349
- 1248
services/jit/implments/PackOrder.service.impl.go
File diff suppressed because it is too large
View File


+ 1245
- 0
services/jit/implments/PackOrderToPLC.service.impl.go
File diff suppressed because it is too large
View File


+ 13
- 4
services/jit/implments/ShipOrder.service.impl.go View File

@ -762,8 +762,17 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId) shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId)
shipOrderStatusHistoryDao := dal.NewShipOrderStatusHistoryDAO(session, user.PlantNr, user.UserId) shipOrderStatusHistoryDao := dal.NewShipOrderStatusHistoryDAO(session, user.PlantNr, user.UserId)
workPlaceConfigDao := baseDal.NewWorkPlaceConfigDAO(session, user.PlantNr, user.UserId) workPlaceConfigDao := baseDal.NewWorkPlaceConfigDAO(session, user.PlantNr, user.UserId)
plantDao := baseDal.NewPlantDAO(session, user.UserId)
plant, err := plantDao.SelectOne(user.PlantNr)
if err != nil {
return nil, grmi.NewBusinessError("查询工厂数据失败, 错误:" + err.Error())
}
if plant == nil {
return nil, grmi.NewBusinessError("用户归属工厂不存在, 工厂ID:" + strconv.Itoa(user.PlantNr))
}
plantProject := plant.PlantProject
var workPlaceConfig *baseModel.WorkPlaceConfig var workPlaceConfig *baseModel.WorkPlaceConfig
if conf.DbConfig.Project == baseModel.PROJECT_ACURA {
if plantProject == baseModel.PROJECT_ACURA {
// 获取工位配置 // 获取工位配置
workPlaceConfigLi, err := workPlaceConfigDao.Select([]grmi.Predicate{baseMeta.WorkPlaceConfig_WorkPlaceNr.NewPredicate(grmi.Equal, workPlaceNr)}, nil) workPlaceConfigLi, err := workPlaceConfigDao.Select([]grmi.Predicate{baseMeta.WorkPlaceConfig_WorkPlaceNr.NewPredicate(grmi.Equal, workPlaceNr)}, nil)
if err != nil { if err != nil {
@ -1071,7 +1080,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
_ = session.Commit() _ = session.Commit()
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId
result.IsClosed = isClosed result.IsClosed = isClosed
if conf.DbConfig.Project == baseModel.PROJECT_ACURA {
if plantProject == baseModel.PROJECT_ACURA {
err = impl.PermitTrough(workPlaceConfig) err = impl.PermitTrough(workPlaceConfig)
if err != nil { if err != nil {
result.PLCResult = false result.PLCResult = false
@ -1198,7 +1207,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error()) return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error())
} }
_ = session.Commit() _ = session.Commit()
if conf.DbConfig.Project == baseModel.PROJECT_ACURA {
if plantProject == baseModel.PROJECT_ACURA {
err = impl.PermitTrough(workPlaceConfig) err = impl.PermitTrough(workPlaceConfig)
if err != nil { if err != nil {
result.PLCResult = false result.PLCResult = false
@ -1253,7 +1262,7 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
_ = session.Commit() _ = session.Commit()
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId
result.IsClosed = false result.IsClosed = false
if conf.DbConfig.Project == baseModel.PROJECT_ACURA {
if plantProject == baseModel.PROJECT_ACURA {
err = impl.PermitTrough(workPlaceConfig) err = impl.PermitTrough(workPlaceConfig)
if err != nil { if err != nil {
result.PLCResult = false result.PLCResult = false


+ 1
- 1
services/om/implments/SerialOrder.service.impl.go View File

@ -2162,7 +2162,7 @@ func (impl *SerialOrderServiceImplement) GetOrderPOLi(poData *baseModel.Process,
prePoData, exist := allPoMap[poId] prePoData, exist := allPoMap[poId]
if exist { if exist {
prePoDataLi = append(prePoDataLi, prePoData) prePoDataLi = append(prePoDataLi, prePoData)
if prePoData.NextPO != "" {
if prePoData.PrePO != "" {
innerPrePoDataLi := impl.GetOrderPOLi(prePoData, allPoMap) innerPrePoDataLi := impl.GetOrderPOLi(prePoData, allPoMap)
prePoDataLi = append(prePoDataLi, innerPrePoDataLi...) prePoDataLi = append(prePoDataLi, innerPrePoDataLi...)
} }


+ 3
- 0
services/pln/implments/HondaCalloff.service.impl.go View File

@ -1646,6 +1646,9 @@ func (impl *HondaCalloffServiceImplement) AnalysisTask() {
return return
} }
for _, plant := range plantLi { for _, plant := range plantLi {
if plant.PlantProject != baseModel.PROJECT_ACURA {
continue
}
go func(plant baseModel.Plant) { go func(plant baseModel.Plant) {
dao := dal.NewHondaCalloffDAO(session, plant.PlantNr, userId) dao := dal.NewHondaCalloffDAO(session, plant.PlantNr, userId)
callOffLi, err := dao.Select([]grmi.Predicate{meta.HondaCalloff_Parsed.NewPredicate(grmi.Equal, model.CALL_OFF_LOADED)}, []grmi.Field{meta.HondaCalloff_CalloffId}) callOffLi, err := dao.Select([]grmi.Predicate{meta.HondaCalloff_Parsed.NewPredicate(grmi.Equal, model.CALL_OFF_LOADED)}, []grmi.Field{meta.HondaCalloff_CalloffId})


+ 6
- 0
services/pln/implments/ToyotaCalloff.service.impl.go View File

@ -370,6 +370,9 @@ func (impl *ToyotaCalloffServiceImplement) ParseToyotaCallOffFile() {
return return
} }
for _, plant := range plantLi { for _, plant := range plantLi {
if plant.PlantProject != baseModel.PROJECT_NANSHA {
continue
}
go func(plant baseModel.Plant) { go func(plant baseModel.Plant) {
user := &global.User{ user := &global.User{
UserId: userId, UserId: userId,
@ -543,6 +546,9 @@ func (impl *ToyotaCalloffServiceImplement) ParseToyotaCallOffCache() {
return return
} }
for _, plant := range plantLi { for _, plant := range plantLi {
if plant.PlantProject != baseModel.PROJECT_NANSHA {
continue
}
go func(plant baseModel.Plant) { go func(plant baseModel.Plant) {
user := &global.User{ user := &global.User{
UserId: userId, UserId: userId,


+ 3
- 0
services/pln/implments/ToyotaDeliveryOrder.service.impl.go View File

@ -376,6 +376,9 @@ func (impl *ToyotaDeliveryOrderServiceImplement) WriteDeliveryDataToPLCTask() {
return return
} }
for _, plant := range plantLi { for _, plant := range plantLi {
if plant.PlantProject != baseModel.PROJECT_NANSHA {
continue
}
go impl.WriteDeliveryDataToPLC(&global.User{ go impl.WriteDeliveryDataToPLC(&global.User{
UserId: userId, UserId: userId,
PlantNr: plant.PlantNr, PlantNr: plant.PlantNr,


+ 11
- 2
services/qm/implments/ReclinerReclst.service.impl.go View File

@ -3,7 +3,6 @@
package implments package implments
import ( import (
"LAPP_ACURA_MOM_BACKEND/conf"
baseDal "LAPP_ACURA_MOM_BACKEND/dao/base" baseDal "LAPP_ACURA_MOM_BACKEND/dao/base"
jitDal "LAPP_ACURA_MOM_BACKEND/dao/jit" jitDal "LAPP_ACURA_MOM_BACKEND/dao/jit"
meDal "LAPP_ACURA_MOM_BACKEND/dao/me" meDal "LAPP_ACURA_MOM_BACKEND/dao/me"
@ -23,6 +22,7 @@ import (
model "LAPP_ACURA_MOM_BACKEND/models/qm" model "LAPP_ACURA_MOM_BACKEND/models/qm"
svr "LAPP_ACURA_MOM_BACKEND/services/om" svr "LAPP_ACURA_MOM_BACKEND/services/om"
"LAPP_ACURA_MOM_BACKEND/utils" "LAPP_ACURA_MOM_BACKEND/utils"
"strconv"
"time" "time"
) )
@ -728,6 +728,15 @@ func (impl *ReclinerReclstServiceImplement) CreateRecPrintInfo(entity model.Recl
engine := db.Eloquent.Master() engine := db.Eloquent.Master()
session := engine.NewSession() session := engine.NewSession()
defer session.Close() defer session.Close()
plantDao := baseDal.NewPlantDAO(session, "sys")
plant, err := plantDao.SelectOne(entity.PlantNr)
if err != nil {
return grmi.NewBusinessError("查询工厂数据失败, 错误:" + err.Error())
}
if plant == nil {
return grmi.NewBusinessError("用户归属工厂不存在, 工厂ID:" + strconv.Itoa(entity.PlantNr))
}
plantProject := plant.PlantProject
seriDao := omDal.NewSerialOrderDAO(session, entity.PlantNr, "sys") seriDao := omDal.NewSerialOrderDAO(session, entity.PlantNr, "sys")
seriInfo, err := seriDao.SelectBySerialOrder(entity.SerialOrderId) seriInfo, err := seriDao.SelectBySerialOrder(entity.SerialOrderId)
if err != nil { if err != nil {
@ -796,7 +805,7 @@ func (impl *ReclinerReclstServiceImplement) CreateRecPrintInfo(entity model.Recl
head.Status = 0 head.Status = 0
head.LabelTemplateId = result.LabelTemplateId head.LabelTemplateId = result.LabelTemplateId
head.PrinterId = result.PrinterId head.PrinterId = result.PrinterId
if conf.DbConfig.Project == baseModel.PROJECT_NANSHA {
if plantProject == baseModel.PROJECT_NANSHA {
head.PrintQty = 1 head.PrintQty = 1
} else { } else {
head.PrintQty = 2 head.PrintQty = 2


+ 20
- 25
task/scheduler.go View File

@ -1,8 +1,6 @@
package task package task
import ( import (
"LAPP_ACURA_MOM_BACKEND/conf"
baseModel "LAPP_ACURA_MOM_BACKEND/models/base"
"github.com/robfig/cron" "github.com/robfig/cron"
) )
@ -21,31 +19,28 @@ import (
func Start() error { func Start() error {
c := cron.New() c := cron.New()
var err error var err error
if conf.DbConfig.Project == baseModel.PROJECT_ACURA {
// 解析HondaCallOff
err = c.AddFunc("*/5 * * * * ?", StartParseCallOff)
if err != nil {
return err
}
} else {
err = c.AddFunc("*/5 * * * * ?", ParsedToyotaCallOffFile)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", ParsedToyotaCallOff)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", WriteDeliveryOrderToPLC)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", ReadDeliveryOrderDataFromPLC)
if err != nil {
return err
}
// 解析HondaCallOff
err = c.AddFunc("*/5 * * * * ?", StartParseCallOff)
if err != nil {
return err
} }
err = c.AddFunc("*/5 * * * * ?", ParsedToyotaCallOffFile)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", ParsedToyotaCallOff)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", WriteDeliveryOrderToPLC)
if err != nil {
return err
}
err = c.AddFunc("*/5 * * * * ?", ReadDeliveryOrderDataFromPLC)
if err != nil {
return err
}
c.Start() c.Start()
select {} select {}
} }

+ 17
- 2
web/controllers/jit/PackOrder.rest.go View File

@ -10,6 +10,7 @@ import (
"LAPP_ACURA_MOM_BACKEND/web/supports" "LAPP_ACURA_MOM_BACKEND/web/supports"
"github.com/kataras/iris/v12" "github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/core/router" "github.com/kataras/iris/v12/core/router"
"strconv"
) )
/****************************************************************************** /******************************************************************************
@ -413,7 +414,7 @@ func RegisterUpdatePackOrder(party router.Party, path string, method func(*globa
* @Date : 2021-10-22 * @Date : 2021-10-22
* *
******************************************************************************/ ******************************************************************************/
func RegisterScanBarcode(party router.Party, path string, method func(user *global.User, barcode string) (*model.PackOrderInfo, error)) {
func RegisterScanBarcode(party router.Party, path string, method func(user *global.User, barcode string, workplaceNr int) (*model.PackOrderInfo, error)) {
party.Get(path, func(ctx iris.Context) { party.Get(path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx) user, ok := jwts.ParseToken(ctx)
@ -425,7 +426,21 @@ func RegisterScanBarcode(party router.Party, path string, method func(user *glob
supports.Error(ctx, iris.StatusBadRequest, "未获取到工单条码", nil) supports.Error(ctx, iris.StatusBadRequest, "未获取到工单条码", nil)
return return
} }
result, err := method(user, barcode)
workplaceNrStr := ctx.URLParam("workPlaceNr")
var (
workplaceNr int
err error
)
if workplaceNrStr == "" {
workplaceNr = 0
} else {
workplaceNr, err = strconv.Atoi(workplaceNrStr)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, "工位数据格式错误", nil)
return
}
}
result, err := method(user, barcode, workplaceNr)
if err != nil { if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return return


Loading…
Cancel
Save