Browse Source

Merge branch 'develop' of http://101.201.121.115:3000/leo/LAPP_Acura_MES_Backend into feature_om

pull/146/head
zhangxin 3 years ago
parent
commit
032b82137d
3 changed files with 76 additions and 18 deletions
  1. +4
    -0
      conf/config.go
  2. +5
    -1
      conf/config.yaml
  3. +67
    -17
      services/jit/implments/PackOrder.service.impl.go

+ 4
- 0
conf/config.go View File

@ -66,6 +66,10 @@ type EnvConfig struct {
BackFlushPlcWriteSign string `yaml:"backflushwritesign"`
BackFlushPlcReadData string `yaml:"backflushreaddata"`
BackFlushPlcReadLen int `yaml:"backflushreadlen"`
// 讴歌 座椅下线打包 plc放行
PermitThroughPlcType string `yaml:"permitthroughplctype"`
PermitThroughPlcAddress string `yaml:"permitthroughplcaddress"`
PermitThroughPlcDB string `yaml:"permitthroughdb"`
}
//read yaml config


+ 5
- 1
conf/config.yaml View File

@ -34,7 +34,7 @@ portalcachepostfileurl: http://8.134.81.220:8097/admin/log/artdemandlst/synchron
portalhost: 8.134.81.220:8097
proxy: http://10.10.5.18:8080
# 项目ID:
project: nansha
project: acura
# 南沙座椅下线PLC地址
plcwritebackend: 1http://10.122.64.96:9009/WriteToSiemensPLC
plcwritestringbackend:
@ -68,5 +68,9 @@ backflushreadsign: DB2.54.2
backflushreaddata: DB2.54.2
backflushwritesign: DB2.54.2
backflushreadlen: 50
# 讴歌 下线打包plc座椅放行
permitthroughplctype: S1200
permitthroughplcaddress: 10.122.76.136
permitthroughdb: DB3.1.0

+ 67
- 17
services/jit/implments/PackOrder.service.impl.go View File

@ -415,8 +415,8 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
packOrderStatusDao := dal.NewPackOrderStatusDAO(session, user.PlantNr, user.UserId)
packOrderStatusHistoryDao := dal.NewPackOrderStatusHistoryDAO(session, user.PlantNr, user.UserId)
projectDao := meDal.NewProjectDAO(session, user.PlantNr, user.UserId)
packOrderPlcErrDao := dal.NewPackOrderPlcErrorDAO(session, user.PlantNr, user.UserId)
if conf.DbConfig.Project == baseModel.PROJECT_NANSHA {
packOrderPlcErrDao := dal.NewPackOrderPlcErrorDAO(session, user.PlantNr, user.UserId)
errorLi, err := packOrderPlcErrDao.Select([]grmi.Predicate{meta.PackOrderPlcError_Location.NewPredicate(grmi.Equal, model.PACK_LOCATION_ON_LINE),
meta.PackOrderPlcError_Status.NewPredicate(grmi.LessThen, model.PACK_STATUS_CLOSED)}, nil)
if err != nil {
@ -466,9 +466,9 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return nil, grmi.NewBusinessError("条码对应的工单状态不允许打包")
}
serialOrder := serialOrderLi[0]
if serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
return nil, grmi.NewBusinessError("工单目检结果不符合要求")
}
//if serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
// return nil, grmi.NewBusinessError("工单目检结果不符合要求")
//}
// 获取用户之前是否存在未关包的包装单 如果存在则使用之前的包装单ID 如果不存在则创建包装单 如果超过一个则报错
var packOrderId string
packOrderLi, err := packOrderDao.SelectUserRunningPackOrder(user.UserId, model.PACK_LOCATION_ON_LINE)
@ -502,10 +502,10 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
// 如果当前用户不存在操作中未关闭的包装单, 则创建包装单数据
if packOrderId == "" {
var packTypeId string
if serialOrder.OrderType == baseModel.ODER_TYPE_INTERVAL {
packTypeId = model.PACK_TYPE_INT
} else {
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
packTypeId = model.PACK_TYPE_STD
} else {
packTypeId = model.PACK_TYPE_INT
}
packOrderId, err = snrDao.GetNextSnr(project.PackOrderSnr)
if err != nil {
@ -575,10 +575,10 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return nil, grmi.NewBusinessError("对应的包装单数据不存在, 包装单ID:" + packOrderId)
}
// 如果工单时内部工单 则校验包装单类型 是不是符合要求 同时插入包装单
if serialOrder.OrderType == baseModel.ODER_TYPE_INTERVAL {
if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前进行包装的包装单是标包类型, 但工单是内部工单")
return nil, grmi.NewBusinessError("当前工单是序列工单,但是包装单是内部包装单。")
}
//currentPackOrder.PackOrder.ActQty += 1
//currentPackOrder.PackOrder.PlanQty += 1
@ -615,9 +615,9 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
//result.MatchTemplateLi = make([]model.PackTemplate, 0)
//return result, nil
} else {
if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_STD {
if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前进行包装的包装单是内部包装, 但工单是序列工单")
return nil, grmi.NewBusinessError("当前进行包装的包装单是标包, 但工单不是序列工单")
}
}
@ -725,6 +725,14 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
result.PLCMessage = err.Error()
}
}
} else {
if result.IsClosed {
err = impl.PLCPermitThrough()
if err != nil {
result.PLCResult = false
result.PLCMessage = err.Error()
}
}
}
result.PackOrderId = currentPackOrder.PackOrder.PackOrderId
return result, nil
@ -858,6 +866,12 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
result.PLCMessage = err.Error()
}
} else {
err = impl.PLCPermitThrough()
if err != nil {
result.PLCResult = false
result.PLCMessage = err.Error()
}
}
return result, nil
} else if len(matchLi) > 1 {
@ -906,6 +920,14 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
result.PLCMessage = err.Error()
}
}
} else {
if result.IsClosed {
err = impl.PLCPermitThrough()
if err != nil {
result.PLCResult = false
result.PLCMessage = err.Error()
}
}
}
return result, nil
} else {
@ -1359,6 +1381,17 @@ func (impl *PackOrderServiceImplement) ScanBarcodeOutLine(user *global.User, bar
packOrderStatusDao := dal.NewPackOrderStatusDAO(session, user.PlantNr, user.UserId)
packOrderStatusHistoryDao := dal.NewPackOrderStatusHistoryDAO(session, user.PlantNr, user.UserId)
projectDao := meDal.NewProjectDAO(session, user.PlantNr, user.UserId)
packOrderPlcErrDao := dal.NewPackOrderPlcErrorDAO(session, user.PlantNr, user.UserId)
if conf.DbConfig.Project == baseModel.PROJECT_NANSHA {
errorLi, err := packOrderPlcErrDao.Select([]grmi.Predicate{meta.PackOrderPlcError_Location.NewPredicate(grmi.Equal, model.PACK_LOCATION_ON_LINE),
meta.PackOrderPlcError_Status.NewPredicate(grmi.LessThen, model.PACK_STATUS_CLOSED)}, nil)
if err != nil {
return nil, grmi.NewBusinessError("查询座椅下线写入PLC数据错误失败, error:" + err.Error())
}
if len(errorLi) != 0 {
return nil, grmi.NewBusinessError("当前存在未处理的座椅下线写入PLC错误")
}
}
// 初始化全局的包装模板数据
if model.AllPackTemplate.Data == nil {
templateLstDao := dal.NewPackTemplateItemLstDAO(session, user.PlantNr, user.UserId)
@ -1392,11 +1425,14 @@ func (impl *PackOrderServiceImplement) ScanBarcodeOutLine(user *global.User, bar
if serialOrderLi[0].GenerateFlag {
return nil, grmi.NewBusinessError("该工单条码已经失效,请使用新的工单条码")
}
if serialOrderStatus != baseModel.WO_STATUS_FINISHED &&
serialOrderStatus != baseModel.WO_STATUS_STOP &&
serialOrderStatus != baseModel.WO_STATUS_INTERRUPT &&
serialOrderStatus != baseModel.WO_STATUS_UNCHECKED {
return nil, grmi.NewBusinessError("条码对应的工单状态不允许打包")
//if serialOrderStatus != baseModel.WO_STATUS_FINISHED &&
// serialOrderStatus != baseModel.WO_STATUS_STOP &&
// serialOrderStatus != baseModel.WO_STATUS_INTERRUPT &&
// serialOrderStatus != baseModel.WO_STATUS_UNCHECKED {
// return nil, grmi.NewBusinessError("条码对应的工单状态不允许打包")
//}
if serialOrderStatus != baseModel.WO_STATUS_FINISHED {
return nil, grmi.NewBusinessError("工单状态不是已完成")
}
serialOrder := serialOrderLi[0]
if serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
@ -3000,3 +3036,17 @@ func (impl *PackOrderServiceImplement) ReadPLCBackFlushData() {
return
}
}
// PLCPermitThrough 讴歌下线打包 PLC放行
func (impl *PackOrderServiceImplement) PLCPermitThrough() error {
data := baseModel.PLC{
PLCType: conf.DbConfig.PermitThroughPlcType,
PLCAddress: conf.DbConfig.PermitThroughPlcAddress,
ValueAddress: conf.DbConfig.PermitThroughPlcDB,
ValueType: "Boolean",
RetryCount: 2,
ValueText: true,
}
err := impl.SeatOfflineWriteSign(data)
return err
}

Loading…
Cancel
Save