5 Commits

7 changed files with 117 additions and 288 deletions
Split View
  1. +2
    -2
      dao/jit/implments/PackTemplateItemLst.dao.impl.go
  2. +1
    -1
      services/jit/ShipOrder.service.go
  3. +44
    -39
      services/jit/implments/PackOrder.service.impl.go
  4. +19
    -0
      services/jit/implments/PackTemplate.service.impl.go
  5. +47
    -243
      services/jit/implments/ShipOrder.service.impl.go
  6. +1
    -1
      services/pln/implments/HondaCalloff.service.impl.go
  7. +3
    -2
      web/controllers/jit/ShipOrder.rest.go

+ 2
- 2
dao/jit/implments/PackTemplateItemLst.dao.impl.go View File

@ -319,8 +319,8 @@ func (impl *PackTemplateItemLstDAOImplement) InitGlobalPackTemplate() (err error
meta.PackTemplateItemLst_PackTemplateId.ColumnName,
meta.PackTemplate_PackTemplateId.ColumnName)
parameters := []interface{}{impl.plantNr}
where := fmt.Sprintf("%s = ?", meta.PackTemplateItemLst_PlantNr.ColumnName)
parameters := []interface{}{impl.plantNr, true}
where := fmt.Sprintf("%s = ? and %s = ?", meta.PackTemplateItemLst_PlantNr.ColumnName, meta.PackTemplate_EnabledToggle.ColumnName)
session := impl.session.Table(impl.meta.TableName).Join("LEFT", meta.PackTemplate.TableName, condition)
err = session.Select(fmt.Sprintf("%s.*,%s.*", meta.PackTemplate.TableName, meta.PackTemplateItemLst.TableName)).Where(where, parameters...).OrderBy(meta.PackTemplateItemLst_PlantNr.ColumnName).OrderBy(meta.PackTemplateItemLst_PackTemplateId.ColumnName).OrderBy(meta.PackTemplateItemLst_Pos.ColumnName).Find(&templateLstLi)


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

@ -274,7 +274,7 @@ type ShipOrderService interface {
* @Date : 2021-11-03
*
******************************************************************************/
CreateAdvanceShipOrder(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool) (err error)
CreateAdvanceShipOrder(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool, planQty int) (err error)
/******************************************************************************
*
* @Function Name : CloseShipOrder


+ 44
- 39
services/jit/implments/PackOrder.service.impl.go View File

@ -466,8 +466,8 @@ 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 && serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_FAIL {
return nil, grmi.NewBusinessError("工单未进行目检")
}
// 获取用户之前是否存在未关包的包装单 如果存在则使用之前的包装单ID 如果不存在则创建包装单 如果超过一个则报错
var packOrderId string
@ -501,12 +501,12 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
currentPackOrder := &model.PackOrderWithStatus{}
// 如果当前用户不存在操作中未关闭的包装单, 则创建包装单数据
if packOrderId == "" {
var packTypeId string
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
packTypeId = model.PACK_TYPE_STD
} else {
packTypeId = model.PACK_TYPE_INT
}
var packTypeId string = model.PACK_TYPE_STD
//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 {
_ = session.Rollback()
@ -575,11 +575,11 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return nil, grmi.NewBusinessError("对应的包装单数据不存在, 包装单ID:" + packOrderId)
}
// 如果工单时内部工单 则校验包装单类型 是不是符合要求 同时插入包装单
if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前工单是序列工单,但是包装单是内部包装单。")
}
//if serialOrder.OrderType == baseModel.ODER_TYPE_SEQ {
// if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("当前工单是序列工单,但是包装单是内部包装单。")
// }
//currentPackOrder.PackOrder.ActQty += 1
//currentPackOrder.PackOrder.PlanQty += 1
//currentPackOrder.PackOrder.Operator = user.UserId
@ -614,12 +614,12 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
//result.PackOrderId = currentPackOrder.PackOrder.PackOrderId
//result.MatchTemplateLi = make([]model.PackTemplate, 0)
//return result, nil
} else {
if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
_ = session.Rollback()
return nil, grmi.NewBusinessError("当前进行包装的包装单是标包, 但工单不是序列工单")
}
}
//} else {
// if currentPackOrder.PackOrder.PackTypeId != model.PACK_TYPE_INT {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("当前进行包装的包装单是标包, 但工单不是序列工单")
// }
//}
// 判断包装单是否校验CheckSyncKey
if currentPackOrder.PackOrder.CheckSyncKey {
@ -938,18 +938,18 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
} else if len(tempMatchLi) == 1 {
// 如果当前包装单匹配到一个模板 则直接将模板数据写入到当前包装单中
template := tempMatchLi[0]
var packTypeId string
if serialOrderLi[0].OrderType == baseModel.ODER_TYPE_INTERVAL {
packTypeId = model.PACK_TYPE_INT
} else {
packTypeId = template.PackTypeId
}
var checkSyncKey bool = true
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
checkSyncKey = false
} else {
checkSyncKey = template.CheckSyncKey
}
var packTypeId string = template.PackTypeId
//if serialOrderLi[0].OrderType == baseModel.ODER_TYPE_INTERVAL {
// packTypeId = model.PACK_TYPE_INT
//} else {
// packTypeId = template.PackTypeId
//}
var checkSyncKey bool = template.CheckSyncKey
//if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// checkSyncKey = false
//} else {
// checkSyncKey = template.CheckSyncKey
//}
currentPackOrder.PackOrder.PackTemplateId = template.PackTemplateId
currentPackOrder.PackOrder.PackTypeId = packTypeId
currentPackOrder.PackOrder.PlanQty = template.PlanQty
@ -1005,15 +1005,20 @@ func (impl *PackOrderServiceImplement) ScanBarcode(user *global.User, barcode st
return result, nil
} else {
var checkSyncKey bool = true
if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
checkSyncKey = false
} else {
for _, template := range tempMatchLi {
if !template.CheckSyncKey {
checkSyncKey = false
}
for _, template := range tempMatchLi {
if !template.CheckSyncKey {
checkSyncKey = false
}
}
//if currentPackOrder.PackOrder.PackTypeId == model.PACK_TYPE_INT {
// checkSyncKey = false
//} else {
// for _, template := range tempMatchLi {
// if !template.CheckSyncKey {
// checkSyncKey = false
// }
// }
//}
currentPackOrder.PackOrder.CheckSyncKey = checkSyncKey
err = packOrderDao.UpdateOne(&currentPackOrder.PackOrder)
@ -2250,7 +2255,7 @@ func (impl *PackOrderServiceImplement) MakeUpSeatData(session *xorm.Session, use
}
var status = `1`
for _, serialOrder := range serialOrderLi {
if serialOrder.SerialOrderStatus.Status != baseModel.WO_STATUS_FINISHED {
if serialOrder.SerialOrderStatus.Status != baseModel.WO_STATUS_FINISHED || serialOrder.QualityCheck != baseModel.QualityCheck_STATUS_OK {
status = `0`
}
}


+ 19
- 0
services/jit/implments/PackTemplate.service.impl.go View File

@ -142,6 +142,7 @@ func (impl *PackTemplateServiceImplement) DeleteOne(user *global.User, packTempl
}
dao := dal.NewPackTemplateDAO(session, user.PlantNr, user.UserId)
detailDao := dal.NewPackTemplateItemLstDAO(session, user.PlantNr, user.UserId)
templateLstDao := dal.NewPackTemplateItemLstDAO(session, user.PlantNr, user.UserId)
record, err := dao.SelectOne(packTemplateId)
if err != nil {
_ = session.Rollback()
@ -161,6 +162,12 @@ func (impl *PackTemplateServiceImplement) DeleteOne(user *global.User, packTempl
_ = session.Rollback()
return grmi.NewBusinessError("删除包装模板子项失败, error:" + err.Error())
}
// 更新全局包装模板数据
err = templateLstDao.InitGlobalPackTemplate()
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("初始化全局模板数据失败, error:" + err.Error())
}
_ = session.Commit()
return nil
}
@ -204,6 +211,7 @@ func (impl *PackTemplateServiceImplement) UpdateOne(user *global.User, entity *m
session := engine.NewSession()
defer session.Close()
dao := dal.NewPackTemplateDAO(session, user.PlantNr, user.UserId)
templateLstDao := dal.NewPackTemplateItemLstDAO(session, user.PlantNr, user.UserId)
record, err := dao.SelectOne(entity.PackTemplateId)
if err != nil {
return err
@ -211,10 +219,21 @@ func (impl *PackTemplateServiceImplement) UpdateOne(user *global.User, entity *m
if record == nil {
return grmi.NewBusinessError("不存在指定记录!")
}
if err = session.Begin(); err != nil {
return grmi.NewBusinessError("开启事务失败, 错误:" + err.Error())
}
err = dao.UpdateOne(entity)
if err != nil {
_ = session.Rollback()
return err
}
// 更新全局包装模板数据
err = templateLstDao.InitGlobalPackTemplate()
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("初始化全局模板数据失败, error:" + err.Error())
}
_ = session.Commit()
return nil
}


+ 47
- 243
services/jit/implments/ShipOrder.service.impl.go View File

@ -524,209 +524,8 @@ func (impl *ShipOrderServiceImplement) Update(user *global.User, entities *[]mod
return nil
}
// ScanBarCode 在发运环境扫描工单条码 通过工单条码获取包装单 自动配置发运单
//func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode string) (result *model.ShipResult, err error) {
// grmi.Log(user, "/services/jit/implments/ShipOrder.service.impl.go", "ScanBarCode", "在发运环境扫描工单条码")
//
// engine := db.Eloquent.Master()
// session := engine.NewSession()
// defer session.Close()
// // 通过barcode 工单条码查询包装单数据 并校验
// packLstDao := dal.NewPackOrderItemLstDAO(session, user.PlantNr, user.UserId)
// packOrderDao := dal.NewPackOrderDAO(session, user.PlantNr, user.UserId)
// packOrderItemLstLi, err := packLstDao.Select([]grmi.Predicate{meta.PackOrderItemLst_SerialOrderId.NewPredicate(grmi.Equal, barCode)}, nil)
// if len(packOrderItemLstLi) == 0 {
// return nil, grmi.NewBusinessError("未查询到该工单的包装单")
// } else if len(packOrderItemLstLi) > 1 {
// return nil, grmi.NewBusinessError("包含该工单的包装单大于一条,请排查, 工单ID:" + barCode)
// }
// packOrderId := packOrderItemLstLi[0].PackOrderId
// packOrder, err := packOrderDao.SelectOne(packOrderId)
// if err != nil {
// return nil, grmi.NewBusinessError("查询包装单失败, error:" + err.Error())
// }
// if packOrder == nil {
// return nil, grmi.NewBusinessError("未查询到该工单的包装单头部数据, 包装单ID:" + packOrderId)
// }
// if packOrder.Status != baseModel.PACK_STATUS_CLOSED {
// return nil, grmi.NewBusinessError("该包装单的状态不是已完成, 包装单ID:" + packOrderId)
// }
// // 校验该包装单是否已经存在发运单中
// shipDataLstDao := dal.NewShipOrderDataLstDAO(session, user.PlantNr, user.UserId)
// shipDataLstLi, err := shipDataLstDao.Select([]grmi.Predicate{meta.ShipOrderDataLst_PackOrderId.NewPredicate(grmi.Equal, packOrderId)}, nil)
// if err != nil {
// return nil, grmi.NewBusinessError("查询发运包装单数据项失败, error:" + err.Error())
// }
// if len(shipDataLstLi) != 0 {
// return nil, grmi.NewBusinessError("该发运单已经存在于发运单中,包装单ID:" + packOrderId)
// }
// // 查询该包装单下的所有总成及其数量
// packOrderItemLstLi, err = packLstDao.Select([]grmi.Predicate{meta.PackOrderItemLst_PackOrderId.NewPredicate(grmi.Equal, packOrderId)}, []grmi.Field{meta.PackOrderItemLst_Pos})
// if err != nil {
// return nil, grmi.NewBusinessError("查询包装单数据失败, error:" + err.Error())
// }
// //packOrderArtQtyMap := make(map[string]int)
// //for _, packOrderItemLst := range packOrderItemLstLi {
// // _, exist := packOrderArtQtyMap[packOrderItemLst.PartId]
// // if !exist {
// // packOrderArtQtyMap[packOrderItemLst.PartId] = 1
// // } else {
// // packOrderArtQtyMap[packOrderItemLst.PartId] += 1
// // }
// //}
// // 读取当前用户操作的数据
// originTempData, exist := model.UserShipOrderTempMap[user.UserId]
// if !exist {
// originTempData = model.TempShipOrderData{
// UserId: user.UserId,
// ScannedArtMap: make(map[string]int),
// PackOrderIdLi: make([]string, 0),
// }
// }
// tempData := originTempData
// // 将当前包装单数据保存到用户操作数据中
// for _, packOrderItemLst := range packOrderItemLstLi {
// _, exist = tempData.ScannedArtMap[packOrderItemLst.PartId]
// if !exist {
// tempData.ScannedArtMap[packOrderItemLst.PartId] = 1
// } else {
// tempData.ScannedArtMap[packOrderItemLst.PartId] += 1
// }
// }
// tempData.PackOrderIdLi = append(tempData.PackOrderIdLi, packOrderId)
// // 聚合所有未完成的发运单
// shipOrderDao := dal.NewShipOrderDAO(session, user.PlantNr, user.UserId)
// shipOrderIdLi, err := shipOrderDao.SelectUnAccomplishedShipOrder()
// if err != nil {
// return nil, grmi.NewBusinessError("查询未完成的发运单失败, error:" + err.Error())
// }
// if len(shipOrderIdLi) == 0 {
// return nil, grmi.NewBusinessError("不存在未完成的发运单,请检查")
// }
// shipOrderItemLstDao := dal.NewShipOrderItemLstDAO(session, user.PlantNr, user.UserId)
// shipOrderItemLstLi, err := shipOrderItemLstDao.Select([]grmi.Predicate{meta.ShipOrderItemLst_ShipOrderId.NewPredicate(grmi.Include, shipOrderIdLi...)},
// []grmi.Field{meta.ShipOrderItemLst_ShipOrderId, meta.ShipOrderItemLst_Pos})
// if err != nil {
// return nil, grmi.NewBusinessError("查询未完成发运单的发运项数据失败, error:" + err.Error())
// }
// shipOrderArtMap := make(map[string]map[string]int, 0)
// for _, shipOrderItemLst := range shipOrderItemLstLi {
// _, exist := shipOrderArtMap[shipOrderItemLst.ShipOrderId]
// if !exist {
// shipOrderArtMap[shipOrderItemLst.ShipOrderId] = make(map[string]int)
// } else {
// shipOrderArtMap[shipOrderItemLst.ShipOrderId][shipOrderItemLst.PackTypeId] = shipOrderItemLst.PlanQty
// }
// }
// // 比对当前用户的操作数据和所有未完成的发运单数据
// matchShipOrderIdLi := make([]string, 0, 1)
// for shipOrderId, artMap := range shipOrderArtMap {
// if len(tempData.ScannedArtMap) == len(artMap) {
// var matchSign = true
// for artId, qty := range tempData.ScannedArtMap {
// shipQty, exist := artMap[artId]
// if !exist {
// matchSign = false
// break
// }
// if qty != shipQty {
// matchSign = false
// break
// }
// }
// if matchSign {
// matchShipOrderIdLi = append(matchShipOrderIdLi, shipOrderId)
// }
// }
// }
// // 如果没有任何一个发运模板匹配配上,存储用户操作数据到MONGO中 返回操作成功
// if len(matchShipOrderIdLi) == 0 {
// _, err := db.AppMongo.Database(model.MONGO_USER_SHIP_DATABASE).Collection(model.MONGOD_USER_SHIP_COLLECTION).InsertOne(context.Background(), tempData)
// if err != nil {
// return nil, grmi.NewBusinessError("写入用户操作数据到临时存储失败, error:" + err.Error() + " ,请重新扫描该包装")
// }
// model.UserShipOrderTempMap[user.UserId] = tempData
// result = &model.ShipResult{
// Message: "扫描完成,包装单ID:" + packOrderId,
// }
// return result, nil
// } else if len(matchShipOrderIdLi) == 1 {
// // 只匹配到一个发运单 将用户操作数据落库 同时对该发运单进行关单 对用户操作数据进行清空同时清空MONGO中用户操作数据
// if err = session.Begin(); err != nil {
// return nil, grmi.NewBusinessError("开启事务失败")
// }
// shipOrderId := matchShipOrderIdLi[0]
// shipOrder, err := shipOrderDao.SelectOneWithStatus(shipOrderId)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("查询发运单失败, 发运单ID:" + shipOrderId + ", error:" + err.Error())
// }
// if shipOrder == nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("未查询到发运单, 发运单ID:" + shipOrderId)
// }
// shipOrder.ShipOrder.ActQty = shipOrder.PlanQty
// shipOrder.ShipOrder.Operator = user.UserId
// shipOrder.ShipOrder.CloseTime = grmi.DateTime(time.Now())
// err = shipOrderDao.UpdateOne(&shipOrder.ShipOrder)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("更新发运单数据失败, 发运单ID:" + shipOrderId + ", error:" + err.Error())
// }
// statusHistoryDao := dal.NewShipOrderStatusHistoryDAO(session, user.PlantNr, user.UserId)
// maxPos, err := statusHistoryDao.GetMaxPos(shipOrderId)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("获取发运单状态变更历史位置数据失败, error:" + err.Error())
// }
// statusHistory := model.ShipOrderStatusHistory{
// ShipOrderId: shipOrderId,
// Pos: maxPos + 1,
// FromStatus: shipOrder.ShipOrderStatus.Status,
// ToStatus: baseModel.PACK_STATUS_CLOSED,
// }
// err = statusHistoryDao.InsertOne(&statusHistory)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("插入发运单状态变更历史失败, error:" + err.Error())
// }
// shipOrder.ShipOrderStatus.Status = baseModel.PACK_STATUS_CLOSED
// shipOrderStatusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId)
// err = shipOrderStatusDao.UpdateOne(&shipOrder.ShipOrderStatus)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("更新发运单状态失败, 发运单ID:" + shipOrderId)
// }
// for _, packOrderId := range tempData.PackOrderIdLi {
// packOrder, err := packOrderDao.SelectOne(packOrderId)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("查询包装单失败, error:" + err.Error())
// }
// if packOrder == nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("包装单不存在, 包装单ID:" + packOrderId)
// }
// shipOrderDataLst := model.ShipOrderDataLst{
// ShipOrderId: shipOrderId,
// PackOrderId: packOrderId,
// Status: baseModel.PACK_STATUS_CLOSED,
// PlanQty: packOrder.PlanQty,
// ActQty: packOrder.ActQty,
// }
// err = shipDataLstDao.InsertOne(&shipOrderDataLst)
// if err != nil {
// _ = session.Rollback()
// return nil, grmi.NewBusinessError("写入发运单数据项失败, error:" + err.Error())
// }
// shipOrderLstLi, err := shipOrderItemLstDao.Select([]grmi.Predicate{})
// }
//
// }
//}
// CreateAdvanceShipOrder 根据模板创建发运单
func (impl *ShipOrderServiceImplement) CreateAdvanceShipOrder(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool) (err error) {
func (impl *ShipOrderServiceImplement) CreateAdvanceShipOrder(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool, planQty int) (err error) {
grmi.Log(user, "/services/jit/implments/ShipOrder.service.impl.go", "CreateAdvanceShipOrderByTemplate", "通过发运模板创建预发运单")
engine := db.Eloquent.Master()
@ -843,7 +642,7 @@ func (impl *ShipOrderServiceImplement) CreateAdvanceShipOrder(user *global.User,
ShipTemplateId: shipTemplateId,
ProjectId: projectId,
ShipType: model.SHIP_TYPE_ADVANCE,
PlanQty: 0,
PlanQty: planQty,
OpenTime: grmi.DateTime(time.Now()),
Operator: user.UserId,
PlateNumber: plateNumber,
@ -1137,6 +936,10 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
}
// 如果是预发运单, 且没有指定发运模板
if shipOrder.ShipOrder.ShipType == model.SHIP_TYPE_ADVANCE && shipOrder.ShipOrder.ShipTemplateId == "" {
if shipOrder.ShipOrder.ProjectId != packOrder.ProjectId {
_ = session.Rollback()
return nil, grmi.NewBusinessError("包装项目和发运单项目不一致")
}
// 如果发运单已经进行扫描且需要校验同一派生
if shipOrder.CheckCarSet && shipOrder.ShipOrderStatus.Status == model.SHIP_STATUS_RUNNING {
scanDataLi, err := shipOrderDataLstDao.Select([]grmi.Predicate{
@ -1183,45 +986,6 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
}
}
// 进行扫码处理
shipOrder.ShipOrder.PlanQty += 1
shipOrder.ShipOrder.ActQty += 1
shipOrder.ShipOrder.Operator = user.UserId
err = shipOrderDao.UpdateOne(&shipOrder.ShipOrder)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error())
}
if shipOrder.ShipOrderStatus.Status != model.SHIP_STATUS_RUNNING {
maxPos, err = shipOrderStatusHistoryDao.GetMaxPos(shipOrderId)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("获取发运单状态变更历史位置失败, error:" + err.Error())
}
shipOrderStatusHistory := model.ShipOrderStatusHistory{
ShipOrderId: shipOrderId,
Pos: maxPos + 1,
StatusChangeType: model.SHIP_STATUS_CHANGE_TYPE_SHIP,
FromStatus: shipOrder.ShipOrderStatus.Status,
ToStatus: model.SHIP_STATUS_RUNNING,
ChangeTime: grmi.DateTime(time.Now()),
}
err = shipOrderStatusHistoryDao.InsertOne(&shipOrderStatusHistory)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("保存发运单状态变更历史失败, error:" + err.Error())
}
shipOrder.ShipOrderStatus.Status = model.SHIP_STATUS_RUNNING
err = shipOrderStatusDao.UpdateOne(&shipOrder.ShipOrderStatus)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("更新发运单状态变更历史失败, error:" + err.Error())
}
}
err = shipOrderDao.UpdateOne(&shipOrder.ShipOrder)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error())
}
maxPos, err = shipOrderLstDao.GetMaxPos(shipOrderId)
if err != nil {
_ = session.Rollback()
@ -1256,9 +1020,49 @@ func (impl *ShipOrderServiceImplement) ScanBarCode(user *global.User, barCode st
_ = session.Rollback()
return nil, grmi.NewBusinessError("写入发运单数据项失败, error:" + err.Error())
}
var isClosed = false
status := model.SHIP_STATUS_RUNNING
shipOrder.ShipOrder.ActQty += 1
shipOrder.ShipOrder.Operator = user.UserId
if shipOrder.ShipOrder.PlanQty == shipOrder.ShipOrder.ActQty {
isClosed = true
shipOrder.ShipOrder.CloseTime = grmi.DateTime(time.Now())
status = model.SHIP_STATUS_CLOSED
}
err = shipOrderDao.UpdateOne(&shipOrder.ShipOrder)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("更新发运单数据失败, error:" + err.Error())
}
if status != shipOrder.ShipOrderStatus.Status {
maxPos, err = shipOrderStatusHistoryDao.GetMaxPos(shipOrderId)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("获取发运单状态变更历史位置失败, error:" + err.Error())
}
shipOrderStatusHistory := model.ShipOrderStatusHistory{
ShipOrderId: shipOrderId,
Pos: maxPos + 1,
StatusChangeType: model.SHIP_STATUS_CHANGE_TYPE_SHIP,
FromStatus: shipOrder.ShipOrderStatus.Status,
ToStatus: status,
ChangeTime: grmi.DateTime(time.Now()),
}
err = shipOrderStatusHistoryDao.InsertOne(&shipOrderStatusHistory)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("保存发运单状态变更历史失败, error:" + err.Error())
}
shipOrder.ShipOrderStatus.Status = status
err = shipOrderStatusDao.UpdateOne(&shipOrder.ShipOrderStatus)
if err != nil {
_ = session.Rollback()
return nil, grmi.NewBusinessError("更新发运单状态变更历史失败, error:" + err.Error())
}
}
_ = session.Commit()
result.Message = "扫描完成,扫描包装单ID:" + packOrder.PackOrder.PackOrderId + ", 当前发运单ID:" + shipOrderId
result.IsClosed = false
result.IsClosed = isClosed
err = impl.PermitTrough(workPlaceConfig)
if err != nil {
result.PLCResult = false


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

@ -288,7 +288,7 @@ func (impl *HondaCalloffServiceImplement) LoadFile(entity *model.HondaCalloff) (
return nil, grmi.NewBusinessError("行数据中的需求时间解析失败, error:" + err.Error() + ", 行号:" + strconv.Itoa(currentRow))
}
modelValue := matchLi[4][4:7]
configValue := matchLi[4][:4]
configValue := matchLi[4][1:4]
vinNo := matchLi[5]
color := matchLi[6]
productFamilyId := configValue + "-" + modelValue + "-" + color


+ 3
- 2
web/controllers/jit/ShipOrder.rest.go View File

@ -413,7 +413,7 @@ func RegisterUpdateShipOrder(party router.Party, path string, method func(*globa
* @Date : 2021-11-03
*
******************************************************************************/
func RegisterCreateAdvanceShipOrder(party router.Party, path string, method func(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool) (err error)) {
func RegisterCreateAdvanceShipOrder(party router.Party, path string, method func(user *global.User, shipTemplateId string, projectId string, plateNumber string, checkCarSet bool, planQty int) (err error)) {
party.Post(path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
@ -425,6 +425,7 @@ func RegisterCreateAdvanceShipOrder(party router.Party, path string, method func
ProjectId string `json:"projectId"`
PlateNumber string `json:"plateNumber"`
CheckCarSet bool `json:"checkCarSet"`
PlanQty int `json:"planQty"`
}
var data Req
if err := ctx.ReadJSON(&data); err != nil {
@ -435,7 +436,7 @@ func RegisterCreateAdvanceShipOrder(party router.Party, path string, method func
supports.Error(ctx, iris.StatusBadRequest, "参数为空", nil)
return
}
err := method(user, data.ShipTemplateId, data.ProjectId, data.PlateNumber, data.CheckCarSet)
err := method(user, data.ShipTemplateId, data.ProjectId, data.PlateNumber, data.CheckCarSet, data.PlanQty)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return


Loading…
Cancel
Save