diff --git a/dao/base/implments/AndonInfo.dao.impl.go b/dao/base/implments/AndonInfo.dao.impl.go index beba290..afcb7be 100644 --- a/dao/base/implments/AndonInfo.dao.impl.go +++ b/dao/base/implments/AndonInfo.dao.impl.go @@ -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 { diff --git a/dao/base/implments/Etcd.dao.impl.go b/dao/base/implments/Etcd.dao.impl.go index 7d3ba3d..aa69ed3 100644 --- a/dao/base/implments/Etcd.dao.impl.go +++ b/dao/base/implments/Etcd.dao.impl.go @@ -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 { diff --git a/dao/base/implments/Menu.dao.impl.go b/dao/base/implments/Menu.dao.impl.go index 628c720..b451ce9 100644 --- a/dao/base/implments/Menu.dao.impl.go +++ b/dao/base/implments/Menu.dao.impl.go @@ -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 { diff --git a/dao/base/implments/Plant.dao.impl.go b/dao/base/implments/Plant.dao.impl.go index 1a88cd0..b573b83 100644 --- a/dao/base/implments/Plant.dao.impl.go +++ b/dao/base/implments/Plant.dao.impl.go @@ -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 { diff --git a/dao/base/implments/Role.dao.impl.go b/dao/base/implments/Role.dao.impl.go index bb1050f..b774963 100644 --- a/dao/base/implments/Role.dao.impl.go +++ b/dao/base/implments/Role.dao.impl.go @@ -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 { diff --git a/dao/base/implments/RoleMenu.dao.impl.go b/dao/base/implments/RoleMenu.dao.impl.go index 3c9737c..9e6112b 100644 --- a/dao/base/implments/RoleMenu.dao.impl.go +++ b/dao/base/implments/RoleMenu.dao.impl.go @@ -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 { diff --git a/dao/base/implments/Stdef.dao.impl.go b/dao/base/implments/Stdef.dao.impl.go index da011b9..417e013 100644 --- a/dao/base/implments/Stdef.dao.impl.go +++ b/dao/base/implments/Stdef.dao.impl.go @@ -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 { diff --git a/dao/base/implments/TabColName.dao.impl.go b/dao/base/implments/TabColName.dao.impl.go index 8c91dc2..ad3ab9a 100644 --- a/dao/base/implments/TabColName.dao.impl.go +++ b/dao/base/implments/TabColName.dao.impl.go @@ -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 { diff --git a/dao/pln/CustOrder.dao.go b/dao/pln/CustOrder.dao.go index eacd750..750c290 100644 --- a/dao/pln/CustOrder.dao.go +++ b/dao/pln/CustOrder.dao.go @@ -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) } /****************************************************************************** diff --git a/dao/pln/implments/CustOrder.dao.impl.go b/dao/pln/implments/CustOrder.dao.impl.go index 92c2713..023d92e 100644 --- a/dao/pln/implments/CustOrder.dao.impl.go +++ b/dao/pln/implments/CustOrder.dao.impl.go @@ -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 } \ No newline at end of file diff --git a/dao/wm/implments/Client.dao.impl.go b/dao/wm/implments/Client.dao.impl.go index 2899371..d8a28ef 100644 --- a/dao/wm/implments/Client.dao.impl.go +++ b/dao/wm/implments/Client.dao.impl.go @@ -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 { diff --git a/dao/wm/implments/InventoryCheckDetail.dao.impl.go b/dao/wm/implments/InventoryCheckDetail.dao.impl.go index b395435..1bef1e7 100644 --- a/dao/wm/implments/InventoryCheckDetail.dao.impl.go +++ b/dao/wm/implments/InventoryCheckDetail.dao.impl.go @@ -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 { diff --git a/dao/wm/implments/InventoryCheckLst.dao.impl.go b/dao/wm/implments/InventoryCheckLst.dao.impl.go index 6fc1b6c..47fed88 100644 --- a/dao/wm/implments/InventoryCheckLst.dao.impl.go +++ b/dao/wm/implments/InventoryCheckLst.dao.impl.go @@ -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 { diff --git a/dao/wm/implments/ReplenishOrder.dao.impl.go b/dao/wm/implments/ReplenishOrder.dao.impl.go index 3db6f56..51e4753 100644 --- a/dao/wm/implments/ReplenishOrder.dao.impl.go +++ b/dao/wm/implments/ReplenishOrder.dao.impl.go @@ -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 { diff --git a/dao/wm/implments/Vendor.dao.impl.go b/dao/wm/implments/Vendor.dao.impl.go index 99cb4a0..ee96c04 100644 --- a/dao/wm/implments/Vendor.dao.impl.go +++ b/dao/wm/implments/Vendor.dao.impl.go @@ -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 { diff --git a/models/base/RepairInfo.go b/models/base/RepairInfo.go index c4e618c..8266d0f 100644 --- a/models/base/RepairInfo.go +++ b/models/base/RepairInfo.go @@ -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"` -} diff --git a/models/om/om.go b/models/om/om.go index 7d4c56c..f0c8215 100644 --- a/models/om/om.go +++ b/models/om/om.go @@ -144,6 +144,7 @@ type OrderAUPoData struct { IsMainOrder bool SFP *baseModel.Article AllAttributeLi []baseModel.ArticleAttribute + ArtRelMap map[string]int } type ExportItem struct { diff --git a/services/om/implments/SerialOrder.service.impl.go b/services/om/implments/SerialOrder.service.impl.go index d1bdcba..447ee07 100644 --- a/services/om/implments/SerialOrder.service.impl.go +++ b/services/om/implments/SerialOrder.service.impl.go @@ -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 +} diff --git a/services/pln/implments/CustOrder.service.impl.go b/services/pln/implments/CustOrder.service.impl.go index 845104e..96426ac 100644 --- a/services/pln/implments/CustOrder.service.impl.go +++ b/services/pln/implments/CustOrder.service.impl.go @@ -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()