Browse Source

GFrame3 发运管理改版

develop
娄文智 1 year ago
parent
commit
0976bb887c
3 changed files with 119 additions and 1 deletions
  1. +2
    -0
      services/jit/ShipOrder.service.go
  2. +116
    -0
      services/jit/implments/ShipOrder.service.impl.go
  3. +1
    -1
      web/controllers/jit/jit.go

+ 2
- 0
services/jit/ShipOrder.service.go View File

@ -392,6 +392,8 @@ type ShipOrderService interface {
******************************************************************************/
ExportShipOrder(user *global.User, entity *model.ShipOrder) error
NewExportShipOrder(user *global.User, entity *model.ShipOrder) error
ScanCarPackOrders(user *global.User, shipOrderId string, packOrderId string) (bool, string, error)
SearchOne(user *global.User, shipOrderId string) (*model.ShipOrder, error)


+ 116
- 0
services/jit/implments/ShipOrder.service.impl.go View File

@ -2417,3 +2417,119 @@ func (impl *ShipOrderServiceImplement) SearchOne(user *global.User, shipOrderId
result.ShipOrderItemLstLi = items
return result, nil
}
/******************************************************************************
*
* 上传excel生成发运消息(新版)
*
******************************************************************************/
func (impl *ShipOrderServiceImplement) NewExportShipOrder(user *global.User, entity *model.ShipOrder) error {
grmi.Log(user, "/services/jit/implments/ShipOrder.service.impl.go", "InsertOneShipOrder", "插入一个ShipOrder")
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewShipOrderDAO(session, user.PlantNr, user.UserId)
output, err := xlsx.FileToSlice("web/" + entity.TemplateFile)
if err != nil {
return fmt.Errorf("读取文件失败")
}
var shipOrderItemlst []model.ShipOrderItemLst
var shipOrderStatus model.ShipOrderStatus
var articleId []string
if len(output) < 1 {
return fmt.Errorf("文件格式错误")
}
pos := 0
for rowIndex, row := range output[0] {
if len(row) < 2 {
return fmt.Errorf("文件格式无法解析")
}
if rowIndex == 0 {
entity.ShipOrderId = row[0]
}
if rowIndex >= 2 {
planQty := 0
orderQty := 0
if i, err := strconv.ParseInt(row[1], 10, 64); err == nil {
orderQty = int(i)
}
if i, err := strconv.ParseInt(row[1], 10, 64); err == nil {
planQty = int(i)
}
info := model.ShipOrderItemLst{
ShipOrderId: entity.ShipOrderId,
ItemId: row[0],
PartId: row[0],
PlanQty: planQty,
OrderQty: orderQty,
ShortShipToggle: false,
}
info.Pos = (pos + 1)
pos++
articleId = append(articleId, info.ItemId)
shipOrderItemlst = append(shipOrderItemlst, info)
}
}
//记录状态信息
shipOrderStatus.Status = baseModel.WO_STATUS_PLANNED
shipOrderStatus.ShipOrderId = entity.ShipOrderId
//判断文件是否导入
record, err := dao.SelectOne(entity.ShipOrderId)
if err != nil {
return err
}
if record != nil {
return grmi.NewBusinessError("已经存在相同主键的记录!")
}
//查询article是否存在
articleDao := baseDal.NewArticleDAO(session, user.PlantNr, user.UserId)
articleList, err := articleDao.SelectWhere(articleId)
articleMap := make(map[string]baseModel.Article)
for _, v := range articleList {
articleMap[v.ArtId] = v
}
allTal := 0
for k, v := range shipOrderItemlst {
shipOrderItemlst[k].Status = baseModel.WO_STATUS_PLANNED
val, ok := articleMap[v.ItemId]
if ok {
shipOrderItemlst[k].ItemType = "inside"
shipOrderItemlst[k].PartName = val.Descr1
shipOrderItemlst[k].ShipValidateToggle = true
allTal += v.PlanQty
} else {
if v.ItemType == "" {
shipOrderItemlst[k].ItemType = "external"
}
shipOrderItemlst[k].ShipValidateToggle = false
}
}
entity.PlanQty = allTal
entity.ShipType = baseModel.SP_TYPE_OUTER
session.Begin()
//插入明细表
itemListDao := dal.NewShipOrderItemLstDAO(session, user.PlantNr, user.UserId)
statusDao := dal.NewShipOrderStatusDAO(session, user.PlantNr, user.UserId)
err = itemListDao.Insert(&shipOrderItemlst)
if err != nil {
session.Rollback()
return err
}
err = dao.InsertOne(entity)
if err != nil {
session.Rollback()
return err
}
err = statusDao.InsertOne(&shipOrderStatus)
if err != nil {
session.Rollback()
return err
}
//记录状态
session.Commit()
return nil
}

+ 1
- 1
web/controllers/jit/jit.go View File

@ -67,7 +67,7 @@ func RegisterRoutes() {
// shipOrder 创建特殊发运单
RegisterCreateSpecialShipOrder(shiporder, "/createspecial", serviceOfShipOrder.CreateSpecialShipOrder)
//上传发运文件
RegisterExportShipOrder(shiporder, "/exportshiporder", serviceOfShipOrder.ExportShipOrder)
RegisterExportShipOrder(shiporder, "/exportshiporder", serviceOfShipOrder.NewExportShipOrder)
//发运扫描
RegisterScanCarPackOrders(shiporder, "/scancarpack", serviceOfShipOrder.ScanCarPackOrders)


Loading…
Cancel
Save