diff --git a/dao/log/PackOrderItemlst.dao.go b/dao/log/PackOrderItemlst.dao.go index 5fa28eb..6e263e5 100644 --- a/dao/log/PackOrderItemlst.dao.go +++ b/dao/log/PackOrderItemlst.dao.go @@ -263,6 +263,21 @@ type PackOrderItemlstDAO interface { * ******************************************************************************/ UpdateWhere([]grmi.Predicate, *model.PackOrderItemlst, ...string) error + /****************************************************************************** + * + * @Function Name : SelectListByOrders + *----------------------------------------------------------------------------- + * + * @Description : 按条件修改PackOrderItemlst + * + * @Return Value : 执行时发生的错误 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-03-24 09:53:49 + * + ******************************************************************************/ + SelectListByOrders(serialOrderIds []string) ([]model.PackOrderItemlst, error) } /****************************************************************************** diff --git a/dao/log/implments/PackOrderItemlst.dao.impl.go b/dao/log/implments/PackOrderItemlst.dao.impl.go index 06ea5b5..49b56a0 100644 --- a/dao/log/implments/PackOrderItemlst.dao.impl.go +++ b/dao/log/implments/PackOrderItemlst.dao.impl.go @@ -337,3 +337,17 @@ func (impl *PackOrderItemlstDAOImplement) UpdateWhere(predicates []grmi.Predicat } return nil } + +/****************************************************************************** + * + * @Reference LAPP_ACURA_MOM_BACKEND/dao/log/PackOrderItemlstDAO.SelectListByOrders + * + ******************************************************************************/ +func (impl *PackOrderItemlstDAOImplement) SelectListByOrders(serialOrderIds []string) ([]model.PackOrderItemlst, error) { + data := make([]model.PackOrderItemlst, 0) + err := impl.session.Table(impl.meta.TableName).Where("PlantNr = ? and Status = ?", impl.plantNr, bmodel.PACK_STATUS_CLOSED).In("SerialOrderId", serialOrderIds).Asc("Pos").Find(&data) + if err != nil { + return nil, grmi.NewDataBaseError(err) + } + return data, nil +} diff --git a/dao/om/SerialOrder.dao.go b/dao/om/SerialOrder.dao.go index 235eca9..749d2eb 100644 --- a/dao/om/SerialOrder.dao.go +++ b/dao/om/SerialOrder.dao.go @@ -423,6 +423,8 @@ type SerialOrderDAO interface { ******************************************************************************/ SelectByOriginSerialOrderId(serialOrderId string) (*model.SerialOrder, error) SelectByCustOrderIdForDashboard(custOrderId, start, end string) ([]model.SerialOrder, error) + + SelectSerialOrderByCustOrder(custOrderId string) (serialOrderLi []model.SerialOrder, err error) } /****************************************************************************** diff --git a/dao/om/implments/SerialOrder.dao.impl.go b/dao/om/implments/SerialOrder.dao.impl.go index 904f6b6..36c119b 100644 --- a/dao/om/implments/SerialOrder.dao.impl.go +++ b/dao/om/implments/SerialOrder.dao.impl.go @@ -741,4 +741,36 @@ func (impl *SerialOrderDAOImplement) SelectByCustOrderIdForDashboard(custOrderId data := make([]model.SerialOrder, 0) err := impl.session.Table(impl.meta.TableName).Where(where, parameters...).OrderBy(meta.SerialOrder_ActEndTime.SortColumnName).Find(&data) return data, err +} + +/****************************************************************************** + * + * @Reference LAPP_ACURA_MOM_BACKEND/dao/om/SerialOrderDAO.SelectByCustOrder + * + ******************************************************************************/ +func (impl *SerialOrderDAOImplement) SelectSerialOrderByCustOrder(custOrderId string) (serialOrderLi []model.SerialOrder, err error) { + data := make([]model.VOmSerialorder, 0) + + session := impl.session.Table(impl.meta.TableName) + condition := fmt.Sprintf("%s = %s and %s = %s", + meta.SerialOrder_PlantNr.ColumnName, + meta.SerialOrderStatus_PlantNr.ColumnName, + meta.SerialOrder_SerialOrderId.ColumnName, + meta.SerialOrderStatus_SerialOrderId.ColumnName) + where := fmt.Sprintf("%s = ? and %s = ? and %s <= ?", + meta.SerialOrder_PlantNr.ColumnName, + meta.SerialOrder_CustOrderId.ColumnName, + meta.SerialOrderStatus_Status.ColumnName) + err = session.Join("INNER", meta.SerialOrderStatus.TableName, condition).Where(where, impl.plantNr, custOrderId, common.WO_STATUS_FINISHED).Find(&data) + if err != nil { + return nil, err + } + serialOrderLi = make([]model.SerialOrder, 0, len(data)) + for _, item := range data { + var serialOrder model.SerialOrder + serialOrder = item.SerialOrder + serialOrder.SerialOrderStatus = item.SerialOrderStatus + serialOrderLi = append(serialOrderLi, serialOrder) + } + return serialOrderLi, nil } \ No newline at end of file diff --git a/dao/pln/implments/CustOrder.dao.impl.go b/dao/pln/implments/CustOrder.dao.impl.go index 023d92e..c98f699 100644 --- a/dao/pln/implments/CustOrder.dao.impl.go +++ b/dao/pln/implments/CustOrder.dao.impl.go @@ -844,4 +844,5 @@ func (impl *CustOrderDAOImplement) SelectCurrentDayCustOrder(start, end string) 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/services/pln/implments/CustOrder.service.impl.go b/services/pln/implments/CustOrder.service.impl.go index 37ab820..df831d3 100644 --- a/services/pln/implments/CustOrder.service.impl.go +++ b/services/pln/implments/CustOrder.service.impl.go @@ -5,6 +5,7 @@ package implments import ( baseDal "LAPP_ACURA_MOM_BACKEND/dao/base" jitDal "LAPP_ACURA_MOM_BACKEND/dao/jit" + logDal "LAPP_ACURA_MOM_BACKEND/dao/log" meDal "LAPP_ACURA_MOM_BACKEND/dao/me" omDal "LAPP_ACURA_MOM_BACKEND/dao/om" dal "LAPP_ACURA_MOM_BACKEND/dao/pln" @@ -2823,6 +2824,8 @@ func (impl *CustOrderServiceImplement) CountTarget(user *global.User) (model.Tar now := time.Now() result := model.TargetItem{} custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId) + serialOrderDao := omDal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) + packDao := logDal.NewPackOrderItemlstDAO(session, user.PlantNr, user.UserId) today := now.Format(grmi.DateOutFormat) start := today + " " + "00:00:00" end := today + " " + "23:59:59" @@ -2836,8 +2839,28 @@ func (impl *CustOrderServiceImplement) CountTarget(user *global.User) (model.Tar return result, nil } for _, custOrderData := range custOrderLi { - result.Target += custOrderData.CustOrderQty.PlanQty - custOrderData.CustOrderQty.CancelQty - result.Current += custOrderData.CustOrderQty.ActQty + result.Current += custOrderData.CustOrderQty.PlanQty - custOrderData.CustOrderQty.CancelQty + //查询工单对应的派生工单状态!=98的是否都已经进入包装 + serialList, err := serialOrderDao.SelectSerialOrderByCustOrder(custOrderData.CustOrder.CustOrderId) + if err != nil { + return result, err + } + //台套对应的派生数量 + serialNUM := len(serialList) + var orders []string + for _, v := range serialList { + orders = append(orders, v.SerialOrderId) + } + //查询进去包装并且包装状态等于80的派生个数 + packList,err :=packDao.SelectListByOrders(orders) + if err != nil { + return result, err + } + //派生对应的打包数量 + packNum :=len(packList) + if serialNUM <= packNum{ + result.Target += 1 + } } return result, nil }