|
|
@ -28,6 +28,7 @@ import ( |
|
|
|
"LAPP_ACURA_MOM_BACKEND/utils" |
|
|
|
"container/list" |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
|
"github.com/360EntSecGroup-Skylar/excelize/v2" |
|
|
|
uuid "github.com/iris-contrib/go.uuid" |
|
|
|
"strconv" |
|
|
@ -2250,7 +2251,7 @@ func (impl *CustOrderServiceImplement) PageSelect(user *global.User, urlParamete |
|
|
|
* @Reference LAPP_ACURA_MOM_BACKEND/services/pln/CustOrderService.Select |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *CustOrderServiceImplement) Dashboard(user *global.User) (interface{}, error) { |
|
|
|
func (impl *CustOrderServiceImplement) Dashboard(user *global.User, workLineId string) (interface{}, error) { |
|
|
|
grmi.Log(user, "/services/pln/implments/CustOrder.service.impl.go", "SelectCustOrder", "查询CustOrder") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
@ -2271,7 +2272,6 @@ func (impl *CustOrderServiceImplement) Dashboard(user *global.User) (interface{} |
|
|
|
var personNum int //当班人数
|
|
|
|
var timeBeat float64 //节拍
|
|
|
|
var days int //展示天数
|
|
|
|
var workLineId string //产线
|
|
|
|
var ippmTarge int //IPPM
|
|
|
|
for _, v := range dashlist { |
|
|
|
if v.ParamName == "TimeBeat" { |
|
|
@ -2521,13 +2521,13 @@ func (impl *CustOrderServiceImplement) Dashboard(user *global.User) (interface{} |
|
|
|
wg.Add(6) |
|
|
|
//图例001
|
|
|
|
go func() { |
|
|
|
DashboardData.DashboardDataPic1, err1 = impl.SelectPic1(user, dayModel) |
|
|
|
DashboardData.DashboardDataPic1, err1 = impl.SelectPic1(user, dayModel, workLineId) |
|
|
|
wg.Done() // 操作完成,减少一个计数
|
|
|
|
}() |
|
|
|
|
|
|
|
//图例002
|
|
|
|
go func() { |
|
|
|
DashboardData.DashboardDataPic2, err2 = impl.SelectDefectNumber(user, days) |
|
|
|
DashboardData.DashboardDataPic2, err2 = impl.SelectDefectNumber(user, days, workLineId) |
|
|
|
wg.Done() // 操作完成,减少一个计数
|
|
|
|
}() |
|
|
|
|
|
|
@ -2861,7 +2861,7 @@ func (impl *CustOrderServiceImplement) InitDayModelList(dayModel *baseModel.DayM |
|
|
|
} |
|
|
|
|
|
|
|
// SelectDefectNumber dashboard右上角 查询缺陷数据
|
|
|
|
func (impl *CustOrderServiceImplement) SelectDefectNumber(user *global.User, days int) ([]model.DefectItem, error) { |
|
|
|
func (impl *CustOrderServiceImplement) SelectDefectNumber(user *global.User, days int, workLineId string) ([]model.DefectItem, error) { |
|
|
|
result := make([]model.DefectItem, 0, days) |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
@ -2869,9 +2869,11 @@ func (impl *CustOrderServiceImplement) SelectDefectNumber(user *global.User, day |
|
|
|
defectRecordDao := qmDal.NewDefectRecordDAO(session, user.PlantNr, user.UserId) |
|
|
|
repairInfoDao := baseDal.NewRepairInfoDAO(session, user.UserId) |
|
|
|
custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
serialOrderDao := omDal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
productFamilyRelateDao := meDal.NewProductFamilyRelateDAO(session, user.PlantNr, user.UserId) |
|
|
|
productFamilyMap := make(map[string]int) |
|
|
|
now := time.Now() |
|
|
|
custOrderMap := make(map[string]*model.CustOrder) |
|
|
|
for i := 0; i < days; i++ { |
|
|
|
var defectItem model.DefectItem |
|
|
|
day := now.AddDate(0, 0, -1*i).Format(grmi.DateOutFormat) |
|
|
@ -2904,6 +2906,36 @@ func (impl *CustOrderServiceImplement) SelectDefectNumber(user *global.User, day |
|
|
|
serialOrderMap[repairInfo.SerialOrderId] = nil |
|
|
|
} |
|
|
|
} |
|
|
|
// 判断缺陷的这些工单归属的
|
|
|
|
for serialOrderId := range serialOrderMap { |
|
|
|
serialOrder, err := serialOrderDao.SelectOne(serialOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询工单数据失败, 错误:" + err.Error()) |
|
|
|
} |
|
|
|
if serialOrder == nil { |
|
|
|
delete(serialOrderMap, serialOrderId) |
|
|
|
continue |
|
|
|
} |
|
|
|
if serialOrder.CustOrderId == "" { |
|
|
|
delete(serialOrderMap, serialOrderId) |
|
|
|
continue |
|
|
|
} |
|
|
|
custOrder, exist := custOrderMap[serialOrder.CustOrderId] |
|
|
|
if !exist { |
|
|
|
custOrder, err = custOrderDao.SelectOne(serialOrder.CustOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询客户订单失败, 错误:" + err.Error()) |
|
|
|
} |
|
|
|
if custOrder == nil { |
|
|
|
delete(serialOrderMap, serialOrderId) |
|
|
|
continue |
|
|
|
} |
|
|
|
custOrderMap[serialOrder.CustOrderId] = custOrder |
|
|
|
} |
|
|
|
if custOrder.WorkLineId != workLineId { |
|
|
|
delete(serialOrderMap, serialOrderId) |
|
|
|
} |
|
|
|
} |
|
|
|
defectNumber := len(serialOrderMap) |
|
|
|
custOrderLi, err := custOrderDao.JoinSelect([]grmi.Predicate{ |
|
|
|
meta.CustOrder_PlanStartTime.NewPredicate(grmi.GreaterOrEqual, start), |
|
|
@ -3091,12 +3123,11 @@ func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayMod |
|
|
|
} |
|
|
|
|
|
|
|
//图例1
|
|
|
|
func (impl *CustOrderServiceImplement) SelectPic1(user *global.User, dayModel *baseModel.DayModel) (result *model.CutLine1, err error) { |
|
|
|
func (impl *CustOrderServiceImplement) SelectPic1(user *global.User, dayModel *baseModel.DayModel, workLineId string) (result *model.CutLine1, err error) { |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
custOrderDao := dal.NewCustOrderDAO(session, user.PlantNr, user.UserId) |
|
|
|
custOrderStatusDao := dal.NewCustOrderStatusDAO(session, user.PlantNr, user.UserId) |
|
|
|
productFamilyDao := meDal.NewProductFamilyDAO(session, user.PlantNr, user.UserId) |
|
|
|
productFamilyRelateDao := meDal.NewProductFamilyRelateDAO(session, user.PlantNr, user.UserId) |
|
|
|
serialOrderDao := omDal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) |
|
|
@ -3119,22 +3150,19 @@ func (impl *CustOrderServiceImplement) SelectPic1(user *global.User, dayModel *b |
|
|
|
} |
|
|
|
timeModelList := impl.InitDayModelList(dayModel, todayStartTime) |
|
|
|
// 查询正在正在生产的客户订单
|
|
|
|
custOrderStatusLi, err := custOrderStatusDao.Select([]grmi.Predicate{meta.CustOrderStatus_Status.NewPredicate(grmi.Equal, baseModel.WO_STATUS_RUNNING)}, []grmi.Field{meta.CustOrderStatus_LastModify}) |
|
|
|
fmt.Println("--------------------------------------------") |
|
|
|
custOrderLi, err := custOrderDao.SelectRunningCustOrder(workLineId) |
|
|
|
fmt.Println("--------------------------------------------") |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询客户订单状态数据失败, 错误:" + err.Error()) |
|
|
|
return nil, grmi.NewBusinessError("查询正在生产的客户订单失败, 错误:" + err.Error()) |
|
|
|
} |
|
|
|
|
|
|
|
var currentMeter int |
|
|
|
if len(custOrderStatusLi) == 0 { |
|
|
|
if len(custOrderLi) == 0 { |
|
|
|
currentMeter = 0 |
|
|
|
} else { |
|
|
|
currentCustOrderId := custOrderStatusLi[len(custOrderStatusLi)-1].CustOrderId |
|
|
|
custOrder, err := custOrderDao.SelectOne(currentCustOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询客户订单数据失败, 错误:" + err.Error()) |
|
|
|
} |
|
|
|
if custOrder == nil { |
|
|
|
return nil, grmi.NewBusinessError("客户订单数据不存在, 订单条码:" + currentCustOrderId) |
|
|
|
} |
|
|
|
custOrder := custOrderLi[0] |
|
|
|
productFamily, err := productFamilyDao.SelectOne(custOrder.ProductFamilyId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询派生数据失败, 错误:" + err.Error()) |
|
|
@ -3164,7 +3192,7 @@ func (impl *CustOrderServiceImplement) SelectPic1(user *global.User, dayModel *b |
|
|
|
// 查询客户订单 两类:
|
|
|
|
// 1. 今天开始时间 < 实际结束时间 < 当前时间 状态 > 26 && != 98
|
|
|
|
// 2. 实际结束时间为空 实际开始时间 < 当前时间 状态 > 26 && != 98
|
|
|
|
custOrderDataLi, err := custOrderDao.SelectProduceOrder(todayStart, endTime) |
|
|
|
custOrderDataLi, err := custOrderDao.SelectProduceOrder(todayStart, endTime, workLineId) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("查询客户订单失败, 错误:" + err.Error()) |
|
|
|
} |
|
|
|