Browse Source

Merge pull request '添加解析excel时解析日期' (#181) from feature_om into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_Acura_MES_Backend/pulls/181
pull/182/head
娄文智 2 years ago
parent
commit
e0a7942b3e
19 changed files with 433 additions and 160 deletions
  1. +2
    -2
      dao/base/implments/AndonInfo.dao.impl.go
  2. +4
    -4
      dao/base/implments/Etcd.dao.impl.go
  3. +2
    -2
      dao/base/implments/Menu.dao.impl.go
  4. +2
    -2
      dao/base/implments/Plant.dao.impl.go
  5. +2
    -2
      dao/base/implments/Role.dao.impl.go
  6. +2
    -2
      dao/base/implments/RoleMenu.dao.impl.go
  7. +2
    -2
      dao/base/implments/Stdef.dao.impl.go
  8. +2
    -2
      dao/base/implments/TabColName.dao.impl.go
  9. +40
    -0
      dao/pln/CustOrder.dao.go
  10. +27
    -0
      dao/pln/implments/CustOrder.dao.impl.go
  11. +3
    -3
      dao/wm/implments/Client.dao.impl.go
  12. +2
    -2
      dao/wm/implments/InventoryCheckDetail.dao.impl.go
  13. +3
    -3
      dao/wm/implments/InventoryCheckLst.dao.impl.go
  14. +2
    -2
      dao/wm/implments/ReplenishOrder.dao.impl.go
  15. +3
    -3
      dao/wm/implments/Vendor.dao.impl.go
  16. +0
    -14
      models/base/RepairInfo.go
  17. +1
    -0
      models/om/om.go
  18. +207
    -70
      services/om/implments/SerialOrder.service.impl.go
  19. +127
    -45
      services/pln/implments/CustOrder.service.impl.go

+ 2
- 2
dao/base/implments/AndonInfo.dao.impl.go View File

@ -145,7 +145,7 @@ func (impl *AndonInfoDAOImplement) Delete(entities *[]model.AndonInfo) error {
func (impl *AndonInfoDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -306,7 +306,7 @@ func (impl *AndonInfoDAOImplement) Update(entities *[]model.AndonInfo) error {
func (impl *AndonInfoDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.AndonInfo, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 4
- 4
dao/base/implments/Etcd.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *EtcdDAOImplement) Delete(entities *[]model.Etcd) error {
func (impl *EtcdDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -180,7 +180,7 @@ func (impl *EtcdDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
func (impl *EtcdDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.Etcd, error) {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -215,7 +215,7 @@ func (impl *EtcdDAOImplement) Select(predicates []grmi.Predicate, orderByFields
func (impl *EtcdDAOImplement) SelectAndPaging(paging *grmi.Paging, predicates []grmi.Predicate, orderByFields []grmi.Field) (grmi.PagingResult, error) {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -277,7 +277,7 @@ func (impl *EtcdDAOImplement) Update(entities *[]model.Etcd) error {
func (impl *EtcdDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Etcd, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/Menu.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *MenuDAOImplement) Delete(entities *[]model.Menu) error {
func (impl *MenuDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -279,7 +279,7 @@ func (impl *MenuDAOImplement) Update(entities *[]model.Menu) error {
func (impl *MenuDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Menu, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/Plant.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *PlantDAOImplement) Delete(entities *[]model.Plant) error {
func (impl *PlantDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -279,7 +279,7 @@ func (impl *PlantDAOImplement) Update(entities *[]model.Plant) error {
func (impl *PlantDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Plant, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/Role.dao.impl.go View File

@ -167,7 +167,7 @@ func (impl *RoleDAOImplement) Delete(entities *[]model.Role) error {
func (impl *RoleDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -294,7 +294,7 @@ func (impl *RoleDAOImplement) Update(entities *[]model.Role) error {
func (impl *RoleDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Role, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/RoleMenu.dao.impl.go View File

@ -155,7 +155,7 @@ func (impl *RoleMenuDAOImplement) Delete(entities *[]model.RoleMenu) error {
func (impl *RoleMenuDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -282,7 +282,7 @@ func (impl *RoleMenuDAOImplement) Update(entities *[]model.RoleMenu) error {
func (impl *RoleMenuDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.RoleMenu, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/Stdef.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *StdefDAOImplement) Delete(entities *[]model.Stdef) error {
func (impl *StdefDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -279,7 +279,7 @@ func (impl *StdefDAOImplement) Update(entities *[]model.Stdef) error {
func (impl *StdefDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Stdef, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/base/implments/TabColName.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *TabColNameDAOImplement) Delete(entities *[]model.TabColName) error {
func (impl *TabColNameDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -286,7 +286,7 @@ func (impl *TabColNameDAOImplement) Update(entities *[]model.TabColName) error {
func (impl *TabColNameDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.TabColName, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 40
- 0
dao/pln/CustOrder.dao.go View File

@ -393,6 +393,46 @@ type CustOrderDAO interface {
*
******************************************************************************/
SelectProduceOrder(start, end string) ([]model.CustOrderData, error)
/******************************************************************************
*
* @Function Name : SelectCrossDayCustOrder
*-----------------------------------------------------------------------------
*
* @Description : 查询是否有跨天的客户订单
*
* @Function Parameters : 当天的截止时间
*
* @Return Value : 查找到的CustOrder
*
* @Return Value : 执行时发生的错误
*
* @Author : zhangxin
*
* @Date : 2022-03-29
*
******************************************************************************/
SelectCrossDayCustOrder(end string) ([]model.CustOrder, error)
/******************************************************************************
*
* @Function Name : SelectCurrentDayCustOrder
*-----------------------------------------------------------------------------
*
* @Description : 查询当天的客户订单
*
* @Function Parameters : 当天的开始时间
*
* @Function Parameters : 当天的截止时间
*
* @Return Value : 查找到的CustOrder
*
* @Return Value : 执行时发生的错误
*
* @Author : zhangxin
*
* @Date : 2022-03-29
*
******************************************************************************/
SelectCurrentDayCustOrder(start, end string) ([]model.CustOrder, error)
}
/******************************************************************************


+ 27
- 0
dao/pln/implments/CustOrder.dao.impl.go View File

@ -817,4 +817,31 @@ func (impl *CustOrderDAOImplement) SelectProduceOrder(start, end string) ([]mode
data := make([]model.CustOrderData, 0)
err := session.Where(where, parameters...).Find(&data)
return data, err
}
// SelectCrossDayCustOrder 查询是否有跨天的客户订单
func (impl *CustOrderDAOImplement) SelectCrossDayCustOrder(end string) ([]model.CustOrder, error) {
parameters := []interface{}{impl.plantNr, end, end}
where := fmt.Sprintf("%s = ? and %s < ? and %s >= ? ",
meta.CustOrder_PlantNr.ColumnName,
meta.CustOrder_PlanStartTime.ColumnName,
meta.CustOrder_PlanEndTime.ColumnName,
)
data := make([]model.CustOrder, 0)
err := impl.session.Table(impl.meta.TableName).Where(where, parameters...).Find(&data)
return data, err
}
// SelectCurrentDayCustOrder 查询当天的客户订单
func (impl *CustOrderDAOImplement) SelectCurrentDayCustOrder(start, end string) ([]model.CustOrder, error) {
parameters := []interface{}{impl.plantNr, end, start}
where := fmt.Sprintf("%s = ? and %s < ? and %s > ? ",
meta.CustOrder_PlantNr.ColumnName,
meta.CustOrder_PlanEndTime.ColumnName,
meta.CustOrder_PlanEndTime.ColumnName,
)
data := make([]model.CustOrder, 0)
err := impl.session.Table(impl.meta.TableName).Where(where, parameters...).Desc(meta.CustOrder_PlanEndTime.Name).Find(&data)
return data, err
}

+ 3
- 3
dao/wm/implments/Client.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *ClientDAOImplement) Delete(entities *[]model.Client) error {
func (impl *ClientDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -180,7 +180,7 @@ func (impl *ClientDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
func (impl *ClientDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.Client, error) {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -279,7 +279,7 @@ func (impl *ClientDAOImplement) Update(entities *[]model.Client) error {
func (impl *ClientDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Client, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/wm/implments/InventoryCheckDetail.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *InventoryCheckDetailDAOImplement) Delete(entities *[]model.Inventory
func (impl *InventoryCheckDetailDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -280,7 +280,7 @@ func (impl *InventoryCheckDetailDAOImplement) Update(entities *[]model.Inventory
func (impl *InventoryCheckDetailDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.InventoryCheckDetail, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 3
- 3
dao/wm/implments/InventoryCheckLst.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *InventoryCheckLstDAOImplement) Delete(entities *[]model.InventoryChe
func (impl *InventoryCheckLstDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -180,7 +180,7 @@ func (impl *InventoryCheckLstDAOImplement) DeleteWhere(predicates []grmi.Predica
func (impl *InventoryCheckLstDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.InventoryCheckLst, error) {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -280,7 +280,7 @@ func (impl *InventoryCheckLstDAOImplement) Update(entities *[]model.InventoryChe
func (impl *InventoryCheckLstDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.InventoryCheckLst, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 2
- 2
dao/wm/implments/ReplenishOrder.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *ReplenishOrderDAOImplement) Delete(entities *[]model.ReplenishOrder)
func (impl *ReplenishOrderDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -280,7 +280,7 @@ func (impl *ReplenishOrderDAOImplement) Update(entities *[]model.ReplenishOrder)
func (impl *ReplenishOrderDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.ReplenishOrder, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 3
- 3
dao/wm/implments/Vendor.dao.impl.go View File

@ -152,7 +152,7 @@ func (impl *VendorDAOImplement) Delete(entities *[]model.Vendor) error {
func (impl *VendorDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -180,7 +180,7 @@ func (impl *VendorDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
func (impl *VendorDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.Vendor, error) {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {
@ -279,7 +279,7 @@ func (impl *VendorDAOImplement) Update(entities *[]model.Vendor) error {
func (impl *VendorDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Vendor, columns ...string) error {
parameters := []interface{}{}
where := ""
where := "1 = 1 "
session := impl.session.Table(impl.meta.TableName)
if predicates != nil {


+ 0
- 14
models/base/RepairInfo.go View File

@ -1,16 +1,2 @@
package base
import "LAPP_ACURA_MOM_BACKEND/grmi"
type RepairInfo struct {
WorkLineId string `xorm:"pk nvarchar(40) 'WorkLineId'" json:"RepairInfo-WorkLineId"`
PO string `xorm:"pk nvarchar(40) 'PO'" json:"RepairInfo-PO"`
WorkPlaceNr int `xorm:"pk int 'WorkPlaceNr'" json:"RepairInfo-WorkPlaceNr"`
SerialOrderId string `xorm:"pk nvarchar(100) 'SerialOrderId'" json:"RepairInfo-SerialOrderId"`
RepairReason string `xorm:"nvarchar(500) 'RepairReason' not null" json:"RepairInfo-RepairReason"`
Status int `xorm:"int 'Status' not null" json:"RepairInfo-Status"`
IsActive int `xorm:"pk int 'isActive'" json:"RepairInfo-IsActive"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null" json:"RepairInfo-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"RepairInfo-LastUser"`
CreateTime grmi.DateTime `xorm:"pk datetime 'CreateTime'" json:"RepairInfo-CreateTime"`
}

+ 1
- 0
models/om/om.go View File

@ -144,6 +144,7 @@ type OrderAUPoData struct {
IsMainOrder bool
SFP *baseModel.Article
AllAttributeLi []baseModel.ArticleAttribute
ArtRelMap map[string]int
}
type ExportItem struct {


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

@ -4,15 +4,18 @@ package implments
import (
baseDal "LAPP_ACURA_MOM_BACKEND/dao/base"
eolDal "LAPP_ACURA_MOM_BACKEND/dao/eol"
meDal "LAPP_ACURA_MOM_BACKEND/dao/me"
dal "LAPP_ACURA_MOM_BACKEND/dao/om"
"LAPP_ACURA_MOM_BACKEND/db"
"LAPP_ACURA_MOM_BACKEND/global"
"LAPP_ACURA_MOM_BACKEND/grmi"
baseMeta "LAPP_ACURA_MOM_BACKEND/meta/base"
eolMeta "LAPP_ACURA_MOM_BACKEND/meta/eol"
meMeta "LAPP_ACURA_MOM_BACKEND/meta/me"
meta "LAPP_ACURA_MOM_BACKEND/meta/om"
baseModel "LAPP_ACURA_MOM_BACKEND/models/base"
eolModel "LAPP_ACURA_MOM_BACKEND/models/eol"
meModel "LAPP_ACURA_MOM_BACKEND/models/me"
model "LAPP_ACURA_MOM_BACKEND/models/om"
"LAPP_ACURA_MOM_BACKEND/utils"
@ -815,7 +818,7 @@ func (impl *SerialOrderServiceImplement) ReleaseSerialOrder(user *global.User, s
}
sfpBomHead.BomLstLi = sfpBomLstLi
// 获取关联的所有零件ID
sfpArtMap := impl.ExtractArtId(bomHead)
sfpArtMap := impl.ExtractArtId(sfpBomHead)
sfpArtIdLi := make([]string, 0, len(sfpArtMap))
for innerArtId := range sfpArtMap {
sfpArtIdLi = append(sfpArtIdLi, innerArtId)
@ -852,11 +855,12 @@ func (impl *SerialOrderServiceImplement) ReleaseSerialOrder(user *global.User, s
}
// 所有需要生成工单工序绑定的数据
orderPoMap[bomLst.CmatNr] = &model.OrderAUPoData{
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
AllAttributeLi: sfpAllArticleAttributeLi,
ArtRelMap: sfpArtMap,
}
}
mainOrderPOIdLi := make([]string, 0)
@ -881,11 +885,12 @@ func (impl *SerialOrderServiceImplement) ReleaseSerialOrder(user *global.User, s
}
// 所有需要生成工单工序绑定的数据
orderPoMap[serialOrder.ArtId] = &model.OrderAUPoData{
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
AllAttributeLi: allArticleAttributeLi,
ArtRelMap: artMap,
}
// 获取所有使用工序的扫码校验规则 组建MAP数据结构
@ -1054,7 +1059,7 @@ func (impl *SerialOrderServiceImplement) ReleaseSerialOrder(user *global.User, s
return grmi.NewBusinessError("未获取到扫描校验详细规则, 工艺ID:" + strconv.Itoa(serialOrderStep.OperationId))
}
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, artMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, orderOPData.ArtRelMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
if err != nil {
_ = session.Rollback()
return err
@ -2305,7 +2310,7 @@ func (impl *SerialOrderServiceImplement) GenerateCraftDataByCustOrder(user *glob
}
sfpBomHead.BomLstLi = sfpBomLstLi
// 获取关联的所有零件ID
sfpArtMap := impl.ExtractArtId(bomHead)
sfpArtMap := impl.ExtractArtId(sfpBomHead)
sfpArtIdLi := make([]string, 0, len(sfpArtMap))
for innerArtId := range sfpArtMap {
sfpArtIdLi = append(sfpArtIdLi, innerArtId)
@ -2347,6 +2352,7 @@ func (impl *SerialOrderServiceImplement) GenerateCraftDataByCustOrder(user *glob
IsMainOrder: false,
SFP: sfp,
AllAttributeLi: sfpAllArticleAttributeLi,
ArtRelMap: sfpArtMap,
}
}
mainOrderPOIdLi := make([]string, 0)
@ -2371,11 +2377,12 @@ func (impl *SerialOrderServiceImplement) GenerateCraftDataByCustOrder(user *glob
}
// 所有需要生成工单工序绑定的数据
orderPoMap[productId] = &model.OrderAUPoData{
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
AllAttributeLi: allArticleAttributeLi,
ArtRelMap: artMap,
}
// 获取所有使用工序的扫码校验规则 组建MAP数据结构
@ -2547,7 +2554,7 @@ func (impl *SerialOrderServiceImplement) GenerateCraftDataByCustOrder(user *glob
return grmi.NewBusinessError("未获取到扫描校验详细规则, 工艺ID:" + strconv.Itoa(serialOrderStep.OperationId))
}
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, artMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, orderOPData.ArtRelMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
if err != nil {
_ = session.Rollback()
return err
@ -2789,7 +2796,7 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
}
sfpBomHead.BomLstLi = sfpBomLstLi
// 获取关联的所有零件ID
sfpArtMap := impl.ExtractArtId(bomHead)
sfpArtMap := impl.ExtractArtId(sfpBomHead)
sfpArtIdLi := make([]string, 0, len(sfpArtMap))
for innerArtId := range sfpArtMap {
sfpArtIdLi = append(sfpArtIdLi, innerArtId)
@ -2823,11 +2830,12 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
}
// 所有需要生成工单工序绑定的数据
orderPoMap[bomLst.CmatNr] = &model.OrderAUPoData{
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
Config: auConfig,
MeOperationLi: opLi,
IsMainOrder: false,
SFP: sfp,
AllAttributeLi: sfpAllArticleAttributeLi,
ArtRelMap: sfpArtMap,
}
}
mainOrderPOIdLi := make([]string, 0)
@ -2847,13 +2855,15 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
if len(opLi) == 0 {
return grmi.NewBusinessError("未获取到工艺数据")
}
// 所有需要生成工单工序绑定的数据
orderPoMap[productId] = &model.OrderAUPoData{
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
Config: nil,
MeOperationLi: opLi,
IsMainOrder: true,
SFP: nil,
AllAttributeLi: allArticleAttributeLi,
ArtRelMap: artMap,
}
// 获取所有使用工序的扫码校验规则 组建MAP数据结构
@ -3012,8 +3022,7 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
if !exist {
return grmi.NewBusinessError("未获取到扫描校验详细规则, 工艺ID:" + strconv.Itoa(serialOrderStep.OperationId))
}
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, artMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
checkRuleMapPointer, allocateMapPointer, err := impl.ScanCodeCheck(user, session, checkRuleMap, allocateMap, orderOPData.ArtRelMap, &scanRule, &op, &serialOrderStep, op.Operation.ActivateInBKStation)
if err != nil {
return err
}
@ -3045,7 +3054,6 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
if !exist {
return grmi.NewBusinessError("未获取到打印规则, 工艺ID:" + strconv.Itoa(serialOrderStep.OperationId))
}
fmt.Println("serialOrderStep.OperationId:", serialOrderStep.OperationId)
generateRuleLi := make([]baseModel.PrintBasicRuleInfo, 0)
for _, rule := range ruleLi {
if rule.Action == baseModel.PRINT_RULE_ACTION_UPDATE {
@ -3065,7 +3073,6 @@ func (impl *SerialOrderServiceImplement) GenerateCraftData(user *global.User, se
} else {
templateId = generateRule.TemplateId
}
fmt.Println("templateId:", templateId)
printTemplate, exist = labelTemplateMap[templateId]
if !exist {
return grmi.NewBusinessError("存在单据打印规则中配置的标签模板, 模板ID:" + generateRule.TemplateId)
@ -3155,25 +3162,6 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa
result.Status = false
}
}
//// 查询工单产线
//workLineId := serialOrder.PlanResourceId
//// 通过产线查询生产工序
//workLineProcessDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId)
//poLi, err := workLineProcessDao.SelectProcessByWorkLine(workLineId)
//if err != nil {
// return nil, grmi.NewBusinessError("查询产线生产工序失败, error:" + err.Error())
//}
//if len(poLi) <= 1 {
// return nil, grmi.NewBusinessError("生产工序少于2个")
//}
//poIdLi := make([]string, 0, len(poLi))
//for _, po := range poLi {
// if po.IsLastPO || po.IsLastPOForBK {
// continue
// }
// poIdLi = append(poIdLi, po.PO)
//}
//displayPoLi := poIdLi
// 查询工序关联的所有工位
processWorkPlaceDao := baseDal.NewProcessWorkPlaceLstDAO(session, user.PlantNr, user.UserId)
@ -3285,17 +3273,66 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa
result.TraceDataTraceData = append(result.TraceDataTraceData, poOperationData)
}
if needEOL {
// 电检 主驾和副驾需要查询EOLDR 和 EOLPA 两张表 后排 查询EOLBR
var poOperationData model.POOperationData
poOperationData.PO = "电检"
poOperationData.Status = "成功"
poOperationData.RecvDataLi = make([]model.RecvDataItem, 0)
eolEngine := db.Eloquent.Slaves()[0]
eolSession := eolEngine.NewSession()
eolResult, err := eolSession.SQL(fmt.Sprintf(`select * from Test_Data where 条码 = '%s' order by 测试完成日期, 测试完成时间`, serialOrderId)).QueryString()
eolDrDao := eolDal.NewEOLDRDAO(eolSession, user.UserId)
eolPaDao := eolDal.NewEOLPADAO(eolSession, user.UserId)
eolBrDao := eolDal.NewEOLBRDAO(eolSession, user.UserId)
productDao := meDal.NewProductDAO(session, user.PlantNr, user.UserId)
// 查询工单是否有返修记录 如果有返修记录 需要在返修记录后有电检数据
var repairFlag bool
var repairTime time.Time
repairInfoDao := baseDal.NewRepairInfoDAO(session, user.UserId)
repairInfoLi, err := repairInfoDao.Select([]grmi.Predicate{
baseMeta.RepairInfo_SerialOrderId.NewPredicate(grmi.Equal, serialOrderId),
}, []grmi.Field{baseMeta.RepairInfo_CreateTime})
if err != nil {
return nil, grmi.NewBusinessError("查询电检结果失败, error:" + err.Error())
return nil, grmi.NewBusinessError("查询工单返修记录失败, 错误:" + err.Error())
}
if len(eolResult) == 0 {
if len(repairInfoLi) != 0 {
repairFlag = true
repairTime = repairInfoLi[len(repairInfoLi)-1].CreateTime.Restore()
}
product, err := productDao.SelectOne(serialOrder.ArtId, serialOrder.ProjectId)
if err != nil {
return nil, grmi.NewBusinessError("查询工单总成信息失败, 错误:" + err.Error())
}
if product == nil {
return nil, grmi.NewBusinessError("工单总成数据不存在")
}
eolResultLi := make([]interface{}, 0)
if product.CtrlStr1 == meModel.PRODUCT_TYPE_MS || product.CtrlStr1 == meModel.PRODUCT_TYPE_PS {
drLi, err := eolDrDao.Select([]grmi.Predicate{eolMeta.EOLDR_CODE.NewPredicate(grmi.Equal, serialOrderId)}, nil)
if err != nil {
return nil, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
paLi, err := eolPaDao.Select([]grmi.Predicate{eolMeta.EOLPA_CODE.NewPredicate(grmi.Equal, serialOrderId)}, nil)
if err != nil {
return nil, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
for _, item := range drLi {
eolResultLi = append(eolResultLi, item)
}
for _, item := range paLi {
eolResultLi = append(eolResultLi, item)
}
} else {
brLi, err := eolBrDao.Select([]grmi.Predicate{eolMeta.EOLBR_CODE.NewPredicate(grmi.Equal, serialOrderId)}, nil)
if err != nil {
return nil, grmi.NewBusinessError("查询电检数据失败, 错误:" + err.Error())
}
for _, item := range brLi {
eolResultLi = append(eolResultLi, item)
}
}
if len(eolResultLi) == 0 {
recvData := model.RecvDataItem{
SerialOrderId: serialOrderId,
ArtId: "",
@ -3308,38 +3345,57 @@ func (impl *SerialOrderServiceImplement) GetSerialOrderOperationData(user *globa
poOperationData.RecvDataLi = append(poOperationData.RecvDataLi, recvData)
poOperationData.Status = "失败"
} else {
opData := eolResult[len(eolResult)-1]
var executeTime time.Time
executeTimeStr := opData["测试完成日期"] + " " + opData["测试完成时间"]
executeTime, err = time.ParseInLocation(executeTimeStr, grmi.DateTimeOutFormat, utils.TimezoneLocation)
err = impl.QuickSort(eolResultLi)
if err != nil {
executeTime = time.Time{}
return nil, err
}
var status string
var remark string
operateResult, exists := opData["测试结果(P/F)"]
if !exists {
status = "失败"
poOperationData.Status = "失败"
remark = "未获取到检测结果"
fmt.Println("eolResultLi:", eolResultLi)
lastRecord := eolResultLi[len(eolResultLi)-1]
var recordTime time.Time
var recordResult string
drData, ok := lastRecord.(eolModel.EOLDR)
if ok {
recordTime, _ = time.ParseInLocation("2006/01/02 15:04:05", drData.TESTDATA, utils.TimezoneLocation)
recordResult = drData.TOTALRESULT
} else {
if operateResult == "P" {
status = "成功"
paData, ok := lastRecord.(eolModel.EOLPA)
if ok {
recordTime, _ = time.ParseInLocation("2006/01/02 15:04:05", paData.TESTDATA, utils.TimezoneLocation)
recordResult = paData.TOTALRESULT
} else {
brData, ok := lastRecord.(eolModel.EOLBR)
if ok {
recordTime, _ = time.ParseInLocation("2006/01/02 15:04:05", brData.TESTDATA, utils.TimezoneLocation)
recordResult = brData.TOTALRESULT
} else {
return nil, grmi.NewBusinessError("电检数据格式错误")
}
}
}
var status string = "成功"
var remark string = "已通过电检"
if repairFlag {
if recordTime.Before(repairTime) {
status = "失败"
poOperationData.Status = "失败"
remark = "检测结果未通过"
result.Status = false
remark = "线上返修之后未进行电检"
}
}
if recordResult != "OK" {
status = "失败"
result.Status = false
remark = "电检不合格"
}
recvData := model.RecvDataItem{
SerialOrderId: serialOrderId,
ArtId: "",
PO: "EOL",
OperationDesc: "电检",
RecvData: operateResult,
RecvData: "",
Status: status,
Remark1: remark,
ExecuteTime: executeTime.Format(grmi.DateTimeOutFormat),
ExecuteTime: recordTime.Format(grmi.DateTimeOutFormat),
}
poOperationData.RecvDataLi = append(poOperationData.RecvDataLi, recvData)
}
@ -3922,7 +3978,6 @@ func (impl *SerialOrderServiceImplement) CreateBatchSerialOrder(user *global.Use
}
if len(serialOrderLi) > 0 {
_ = session.Rollback()
fmt.Println("schedKeyLi:", schedKeyLi)
return grmi.NewBusinessError("生成的排序Key已存在工单")
}
now := time.Now()
@ -4352,3 +4407,85 @@ func (impl *SerialOrderServiceImplement) GetProductTraceDataReport(user *global.
}
return result, nil
}
func (impl *SerialOrderServiceImplement) QuickSort(values []interface{}) (err error) {
if len(values) <= 1 {
return nil
}
mid, i := values[0], 1
var midTime time.Time
drData, ok := mid.(eolModel.EOLDR)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", drData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
paData, ok := mid.(eolModel.EOLPA)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", paData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
brData, ok := mid.(eolModel.EOLBR)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", brData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
return grmi.NewBusinessError("电检数据格式错误")
}
}
}
head, tail := 0, len(values)-1
for head < tail {
var iTime time.Time
drData, ok = values[i].(eolModel.EOLDR)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", drData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
paData, ok := values[i].(eolModel.EOLPA)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", paData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
brData, ok := values[i].(eolModel.EOLBR)
if ok {
midTime, err = time.ParseInLocation("2006/01/02 15:04:05", brData.TESTDATA, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("电检数据时间格式错误")
}
} else {
return grmi.NewBusinessError("电检数据格式错误")
}
}
}
if iTime.Before(midTime) {
values[i], values[tail] = values[tail], values[i]
tail--
} else {
values[i], values[head] = values[head], values[i]
head++
i++
}
}
values[head] = mid
err = impl.QuickSort(values[:head])
if err != nil {
return err
}
err = impl.QuickSort(values[head+1:])
if err != nil {
return err
}
return nil
}

+ 127
- 45
services/pln/implments/CustOrder.service.impl.go View File

@ -3725,10 +3725,11 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User,
if err != nil {
return grmi.NewBusinessError("读取Sheet1页失败, error:" + err.Error())
}
today, _ := time.ParseInLocation(grmi.DateTimeOutFormat, time.Now().Format(grmi.DateOutFormat) + " 00:00:00", utils.TimezoneLocation)
rowIndex := 0
projectMap := make(map[string]*meModel.Project)
productFamilyMap := make(map[string]*meModel.ProductFamily)
custOrderLi := make([]model.CustOrder, 0)
planDateCustOrderMap := make(map[string][]model.CustOrder, 0)
for rowsIterator.Next() {
rowIndex++
// 第一行标题行
@ -3744,7 +3745,7 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User,
if err != nil {
return grmi.NewBusinessError("去读excel行数据失败, error:" + err.Error())
}
if len(row) != 3 {
if len(row) != 4 {
return grmi.NewBusinessError("excel数据列数不合规, 行数:" + strconv.Itoa(rowIndex))
}
productFamilyId := row[0]
@ -3756,6 +3757,14 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User,
if qty == 0 {
return grmi.NewBusinessError("需求数量为0, 行数:" + strconv.Itoa(rowIndex))
}
planDateStr := row[3]
planDate, err := time.ParseInLocation(grmi.DateOutFormat, planDateStr, utils.TimezoneLocation)
if err != nil {
return grmi.NewBusinessError("解析计划日期失败, 行数:" + strconv.Itoa(rowIndex))
}
if planDate.Before(today) {
return grmi.NewBusinessError("计划日期不能早于今天")
}
productFamily, exist := productFamilyMap[productFamilyId]
if !exist {
productFamily, err = productFamilyDao.SelectOne(productFamilyId)
@ -3791,35 +3800,128 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User,
PlanQty: qty,
WorkLineId: productFamily.WorkLineId,
QuantityPerHour: int(productFamily.Jph),
PlanStartDate: grmi.Date(planDate),
PlanEndDate: grmi.Date(planDate),
}
planDateCustOrderMap[planDate.Format(grmi.DateOutFormat)] = append(planDateCustOrderMap[planDate.Format(grmi.DateOutFormat)], custOrder)
}
// 计算计划时间
// 如果根据所有的jph当天时间够用 根据jph进行分配时间 如果不够根据数量占用所有时间
// 查询当天是否有计划客户订单
for planDate, custOrderLi := range planDateCustOrderMap {
dayStartTime := planDate + " 00:00:00"
dayEndTime := planDate + " 23:59:59"
existCustOrderLi, err := custOrderDao.SelectCrossDayCustOrder(dayEndTime)
if err != nil {
return grmi.NewBusinessError("查询已存在的客户订单数据失败, 错误:" + err.Error())
}
if len(existCustOrderLi) != 0 {
return grmi.NewBusinessError("计划日期中存在跨天的客户订单,无法计划客户订单, 日期:" + planDate)
}
existCustOrderLi, err = custOrderDao.SelectCurrentDayCustOrder(dayStartTime, dayEndTime)
if err != nil {
return grmi.NewBusinessError("查询已存在的客户订单数据失败, 错误:" + err.Error())
}
var startPlanTime time.Time
// 如果当天没有客户订单 使用的开始时间从0点开始
if len(existCustOrderLi) == 0 {
startPlanTime, _ = time.ParseInLocation(grmi.DateTimeOutFormat, dayStartTime, utils.TimezoneLocation)
} else {
startPlanTime = existCustOrderLi[0].PlanEndTime.Restore()
}
if startPlanTime.Before(time.Now()) {
startPlanTime = time.Now()
}
// 按照jph计算当时的时间
useTimeMap := make(map[int]int)
var allUsedSeconds int
var allQty int
for index, custOrder := range custOrderLi {
jph := productFamilyMap[custOrder.ProductFamilyId].Jph
planQty := custOrder.PlanQty
useSeconds := 3600 / int(jph) * planQty
useTimeMap[index] = useSeconds
allUsedSeconds += useSeconds
allQty += custOrder.PlanQty
}
endPlanTme := startPlanTime.Add(time.Second * time.Duration(allUsedSeconds))
// 如果计算结束时间大于当天则时间剩余时间分配 如果没有大于当天则时间计划时间
endDayTime, _ := time.ParseInLocation(grmi.DateTimeOutFormat, dayEndTime, utils.TimezoneLocation)
prePlanEndTime := startPlanTime
if endPlanTme.After(endDayTime) {
// 当天还可以使用的时间
CanUsedTime := endDayTime.Sub(startPlanTime).Seconds()
// 没台套使用的时间 单位s
perCarUsedTime := int(CanUsedTime) / allQty
if perCarUsedTime < 60 {
return grmi.NewBusinessError("分配给每个台套的时间已不足一分钟, 日期:" + planDate)
}
for index, custOrder := range custOrderLi {
custOrder.PlanStartTime = grmi.DateTime(prePlanEndTime)
custOrder.PlanEndTime = grmi.DateTime(prePlanEndTime.Add(time.Duration(custOrder.PlanQty * perCarUsedTime) * time.Second))
prePlanEndTime = custOrder.PlanEndTime.Restore()
custOrderLi[index] = custOrder
}
} else {
for index, custOrder := range custOrderLi {
custOrder.PlanStartTime = grmi.DateTime(prePlanEndTime)
usedTime := useTimeMap[index]
custOrder.PlanEndTime = grmi.DateTime(prePlanEndTime.Add(time.Duration(usedTime) * time.Second))
prePlanEndTime = custOrder.PlanEndTime.Restore()
custOrderLi[index] = custOrder
}
}
custOrderLi = append(custOrderLi, custOrder)
planDateCustOrderMap[planDate] = custOrderLi
}
if err = session.Begin(); err != nil {
return grmi.NewBusinessError("开启事务失败, 错误:" + err.Error())
}
custOrderStatusLi := make([]model.CustOrderStatus, 0, 20)
custOrderQtyLi := make([]model.CustOrderQty, 0, 20)
tempCustOrderLi := make([]model.CustOrder, 0, 20)
for index, custOrder := range custOrderLi {
project := projectMap[custOrder.ProjectId]
custOrderId, err := snrDao.GetNextSnr(project.CustOrderSnr)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("获取客户订单流水号失败, 错误:" + err.Error())
}
custOrder.CustOrderId = custOrderId
custOrderStatus := model.CustOrderStatus{
CustOrderId: custOrderId,
Status: baseModel.WO_STATUS_UNPLANNED,
}
custOrderStatusLi = append(custOrderStatusLi, custOrderStatus)
custOrderQty := model.CustOrderQty{
CustOrderId: custOrderId,
PlanQty: custOrder.PlanQty,
for _, custOrderLi := range planDateCustOrderMap {
custOrderStatusLi := make([]model.CustOrderStatus, 0, 20)
custOrderQtyLi := make([]model.CustOrderQty, 0, 20)
tempCustOrderLi := make([]model.CustOrder, 0, 20)
for index, custOrder := range custOrderLi {
project := projectMap[custOrder.ProjectId]
custOrderId, err := snrDao.GetNextSnr(project.CustOrderSnr)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("获取客户订单流水号失败, 错误:" + err.Error())
}
custOrder.CustOrderId = custOrderId
custOrderStatus := model.CustOrderStatus{
CustOrderId: custOrderId,
Status: baseModel.WO_STATUS_PLANNED,
}
custOrderStatusLi = append(custOrderStatusLi, custOrderStatus)
custOrderQty := model.CustOrderQty{
CustOrderId: custOrderId,
PlanQty: custOrder.PlanQty,
}
custOrderQtyLi = append(custOrderQtyLi, custOrderQty)
tempCustOrderLi = append(tempCustOrderLi, custOrder)
if index != 0 && index % 20 == 0 {
err = custOrderDao.Insert(&tempCustOrderLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单数据失败, 错误:" + err.Error())
}
err = custOrderStatusDao.Insert(&custOrderStatusLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单状态数据失败, 错误:" + err.Error())
}
err = custOrderQtyDao.Insert(&custOrderQtyLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单数据量数据失败, 错误:" + err.Error())
}
custOrderStatusLi = make([]model.CustOrderStatus, 0, 20)
custOrderQtyLi = make([]model.CustOrderQty, 0, 20)
tempCustOrderLi = make([]model.CustOrder, 0, 20)
}
}
custOrderQtyLi = append(custOrderQtyLi, custOrderQty)
tempCustOrderLi = append(tempCustOrderLi, custOrder)
if index != 0 && index % 20 == 0 {
if len(tempCustOrderLi) != 0 {
err = custOrderDao.Insert(&tempCustOrderLi)
if err != nil {
_ = session.Rollback()
@ -3835,26 +3937,6 @@ func (impl *CustOrderServiceImplement) AnalysisPlanFromExcel(user *global.User,
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单数据量数据失败, 错误:" + err.Error())
}
custOrderStatusLi = make([]model.CustOrderStatus, 0, 20)
custOrderQtyLi = make([]model.CustOrderQty, 0, 20)
tempCustOrderLi = make([]model.CustOrder, 0, 20)
}
}
if len(tempCustOrderLi) != 0 {
err = custOrderDao.Insert(&tempCustOrderLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单数据失败, 错误:" + err.Error())
}
err = custOrderStatusDao.Insert(&custOrderStatusLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单状态数据失败, 错误:" + err.Error())
}
err = custOrderQtyDao.Insert(&custOrderQtyLi)
if err != nil {
_ = session.Rollback()
return grmi.NewBusinessError("保存客户订单数据量数据失败, 错误:" + err.Error())
}
}
_ = session.Commit()


Loading…
Cancel
Save