diff --git a/services/base/implments/WorkPlace.service.impl.go b/services/base/implments/WorkPlace.service.impl.go index 6b1ebb3..20f6a74 100644 --- a/services/base/implments/WorkPlace.service.impl.go +++ b/services/base/implments/WorkPlace.service.impl.go @@ -43,6 +43,7 @@ var DefaultConditionOfWorkPlace = grmi.NewCondition( meta.WorkPlace_TriggerDependOn.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_TriggerDependOn, grmi.Equal, false), meta.WorkPlace_FunctionType.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_FunctionType, grmi.Equal, false), meta.WorkPlace_BKFlag.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_BKFlag, grmi.Equal, false), + meta.WorkPlace_PrinterId.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_PrinterId, grmi.Equal, false), meta.WorkPlace_LastModify.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_LastModify, grmi.Approximate, false), meta.WorkPlace_LastUser.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_LastUser, grmi.Equal, false), meta.WorkPlace_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.WorkPlace_CreateTime, grmi.Approximate, false), diff --git a/services/pln/implments/CustOrder.service.impl.go b/services/pln/implments/CustOrder.service.impl.go index e289955..529ce6a 100644 --- a/services/pln/implments/CustOrder.service.impl.go +++ b/services/pln/implments/CustOrder.service.impl.go @@ -14,13 +14,11 @@ import ( "LAPP_ACURA_MOM_BACKEND/grmi" "LAPP_ACURA_MOM_BACKEND/infra/logger" baseMeta "LAPP_ACURA_MOM_BACKEND/meta/base" - jitMeta "LAPP_ACURA_MOM_BACKEND/meta/jit" meMeta "LAPP_ACURA_MOM_BACKEND/meta/me" omMeta "LAPP_ACURA_MOM_BACKEND/meta/om" meta "LAPP_ACURA_MOM_BACKEND/meta/pln" qmMeta "LAPP_ACURA_MOM_BACKEND/meta/qm" baseModel "LAPP_ACURA_MOM_BACKEND/models/base" - jitModel "LAPP_ACURA_MOM_BACKEND/models/jit" meModel "LAPP_ACURA_MOM_BACKEND/models/me" omModel "LAPP_ACURA_MOM_BACKEND/models/om" model "LAPP_ACURA_MOM_BACKEND/models/pln" @@ -2269,10 +2267,10 @@ func (impl *CustOrderServiceImplement) Dashboard(user *global.User, workLineId s if err != nil { return nil, err } - var personNum int //当班人数 - var timeBeat float64 //节拍 - var days int //展示天数 - var ippmTarge int //IPPM + var personNum int //当班人数 + var timeBeat float64 //节拍 + var days int //展示天数 + var ippmTarge int //IPPM for _, v := range dashlist { if v.ParamName == "TimeBeat" { timeBeat = v.FloatParam1 @@ -2533,19 +2531,19 @@ func (impl *CustOrderServiceImplement) Dashboard(user *global.User, workLineId s //图例003 go func() { - DashboardData.DashboardDataPic3, err3 = impl.SelectPic3(user, DayModelHours, dayModelStartHour, dayModelEndHour, startDayTime, endDayTime, timeBeat, personNum) + DashboardData.DashboardDataPic3, err3 = impl.SelectPic3(user, DayModelHours, dayModelStartHour, dayModelEndHour, startDayTime, endDayTime, timeBeat, personNum, workLineId) wg.Done() // 操作完成,减少一个计数 }() //图例004 go func() { - DashboardData.DashboardDataPic4, err4 = impl.CountTarget(user) + DashboardData.DashboardDataPic4, err4 = impl.CountTarget(user, workLineId) wg.Done() // 操作完成,减少一个计数 }() //计算当前节拍,及其平均 go func() { - DashboardData.TeamTemPo, DashboardData.PerHourTemPo, err5 = impl.SelectTeamTemPo(user, dayModel, personNum, startDayTime, WorkShift) + DashboardData.TeamTemPo, DashboardData.PerHourTemPo, err5 = impl.SelectTeamTemPo(user, dayModel, personNum, startDayTime, WorkShift, workLineId) wg.Done() // 操作完成,减少一个计数 }() @@ -2970,7 +2968,7 @@ func (impl *CustOrderServiceImplement) SelectDefectNumber(user *global.User, day return result, nil } -func (impl *CustOrderServiceImplement) CountTarget(user *global.User) (model.TargetItem, error) { +func (impl *CustOrderServiceImplement) CountTarget(user *global.User, workLineId string) (model.TargetItem, error) { engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() @@ -2983,6 +2981,7 @@ func (impl *CustOrderServiceImplement) CountTarget(user *global.User) (model.Tar start := today + " " + "00:00:00" end := today + " " + "23:59:59" custOrderLi, err := custOrderDao.JoinSelect([]grmi.Predicate{ + meta.CustOrder_WorkLineId.NewPredicate(grmi.Equal, workLineId), meta.CustOrder_PlanStartTime.NewPredicate(grmi.GreaterOrEqual, start), meta.CustOrder_PlanStartTime.NewPredicate(grmi.LessThen, end), }, []grmi.Field{meta.CustOrder_PlanStartTime}) @@ -3048,7 +3047,7 @@ func (impl *CustOrderServiceImplement) CountTarget(user *global.User) (model.Tar } //计算当班节拍数量 -func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayModel *baseModel.DayModel, num int, startDayTime time.Time, WorkShift int) (TeamTemPoNumber float64, PerTeamTemPoNumber float64, err error) { +func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayModel *baseModel.DayModel, num int, startDayTime time.Time, WorkShift int, workLineId string) (TeamTemPoNumber float64, PerTeamTemPoNumber float64, err error) { engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() @@ -3059,10 +3058,14 @@ func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayMod //查询当班开始和结束时间 WorkShift1StartTime := startDayTime.Add(time.Duration(dayModel.S1Beg) * time.Second) WorkShift1EndTime := startDayTime.Add(time.Duration(dayModel.S1End) * time.Second) - packData, err := packOrderDao.Select([]grmi.Predicate{ - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.GreaterOrEqual, WorkShift1StartTime), - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.LessOrEqual, WorkShift1EndTime), - }, nil) + + startTime := utils.TimeFormat(WorkShift1StartTime, "yyyy-MM-dd HH:mm:ss") + endTime := utils.TimeFormat(WorkShift1EndTime, "yyyy-MM-dd HH:mm:ss") + + packData, err := packOrderDao.SelectUserClosePackOrder(startTime, endTime, workLineId) + if err != nil { + return 0, 0, err + } if err != nil { return 0, 0, err } @@ -3078,12 +3081,14 @@ func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayMod return TeamTemPoNumber, PerTeamTemPoNumber, nil case 2: //查询当班开始和结束时间 + WorkShift2StartTime := startDayTime.Add(time.Duration(dayModel.S2Beg) * time.Second) WorkShift2EndTime := startDayTime.Add(time.Duration(dayModel.S2End) * time.Second) - packData, err := packOrderDao.Select([]grmi.Predicate{ - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.GreaterOrEqual, WorkShift2StartTime), - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.LessOrEqual, WorkShift2EndTime), - }, nil) + + startTime := utils.TimeFormat(WorkShift2StartTime, "yyyy-MM-dd HH:mm:ss") + endTime := utils.TimeFormat(WorkShift2EndTime, "yyyy-MM-dd HH:mm:ss") + + packData, err := packOrderDao.SelectUserClosePackOrder(startTime, endTime, workLineId) if err != nil { return 0, 0, err } @@ -3099,12 +3104,14 @@ func (impl *CustOrderServiceImplement) SelectTeamTemPo(user *global.User, dayMod return TeamTemPoNumber, PerTeamTemPoNumber, nil case 3: //查询当班开始和结束时间 + WorkShift3StartTime := startDayTime.Add(time.Duration(dayModel.S3Beg) * time.Second) WorkShift3EndTime := startDayTime.Add(time.Duration(dayModel.S3End) * time.Second) - packData, err := packOrderDao.Select([]grmi.Predicate{ - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.GreaterOrEqual, WorkShift3StartTime), - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.LessOrEqual, WorkShift3EndTime), - }, nil) + + startTime := utils.TimeFormat(WorkShift3StartTime, "yyyy-MM-dd HH:mm:ss") + endTime := utils.TimeFormat(WorkShift3EndTime, "yyyy-MM-dd HH:mm:ss") + + packData, err := packOrderDao.SelectUserClosePackOrder(startTime, endTime, workLineId) if err != nil { return 0, 0, err } @@ -3354,7 +3361,7 @@ func (impl *CustOrderServiceImplement) GetUsefulTime(start, end time.Time, timeL } //图例3 -func (impl *CustOrderServiceImplement) SelectPic3(user *global.User, DayModelHours []string, dayModelStartHour time.Time, dayModelEndHour time.Time, startDayTime time.Time, endDayTime time.Time, timeBeat float64, personNum int) (model.PerDashboardData, error) { +func (impl *CustOrderServiceImplement) SelectPic3(user *global.User, DayModelHours []string, dayModelStartHour time.Time, dayModelEndHour time.Time, startDayTime time.Time, endDayTime time.Time, timeBeat float64, personNum int, workLineId string) (model.PerDashboardData, error) { engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() @@ -3363,11 +3370,7 @@ func (impl *CustOrderServiceImplement) SelectPic3(user *global.User, DayModelHou DashboardData3 := model.PerDashboardData{} //图例001 //查询当天所有的包装单情况 - jitData, err := packDao.Select([]grmi.Predicate{ - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.GreaterOrEqual, startDayTime), - jitMeta.PackOrder_OpenTime.NewPredicate(grmi.LessThen, endDayTime), - jitMeta.PackOrder_PackTypeId.NewPredicate(grmi.Equal, jitModel.PACK_TYPE_STD), - }, nil) + jitData, err := packDao.SelectUserClosePackOrder(utils.TimeFormat(startDayTime, "yyyy-MM-dd HH:mm:ss"), utils.TimeFormat(endDayTime, "yyyy-MM-dd HH:mm:ss"), workLineId) if err != nil { return DashboardData3, err } diff --git a/services/qm/DefectRecord.service.go b/services/qm/DefectRecord.service.go index 5fc9638..f637585 100644 --- a/services/qm/DefectRecord.service.go +++ b/services/qm/DefectRecord.service.go @@ -189,7 +189,7 @@ type DefectRecordService interface { * @Date : 2021-03-18 23:20:31 * ******************************************************************************/ - Rework(*global.User, int) error + Rework(*global.User, int, int) error } /****************************************************************************** diff --git a/services/qm/implments/DefectRecord.service.impl.go b/services/qm/implments/DefectRecord.service.impl.go index 84be840..e7a4826 100644 --- a/services/qm/implments/DefectRecord.service.impl.go +++ b/services/qm/implments/DefectRecord.service.impl.go @@ -267,7 +267,7 @@ func (impl *DefectRecordServiceImplement) Insert(user *global.User, entities mod if result == nil { return grmi.NewBusinessError("序列订单不存在!") } - if result.OrderType == common.ORDER_TYPE_PRE{ + if result.OrderType == common.ORDER_TYPE_PRE { return grmi.NewBusinessError("该订单是预装工单!") } artId := result.ArtId @@ -280,7 +280,7 @@ func (impl *DefectRecordServiceImplement) Insert(user *global.User, entities mod if info == nil { return grmi.NewBusinessError("该记录不存在!") } - if info.Status != common.WO_STATUS_FINISHED{ + if info.Status != common.WO_STATUS_FINISHED { return grmi.NewBusinessError("该工单前序未完成!") } if count <= 0 { @@ -451,6 +451,7 @@ func (impl *DefectRecordServiceImplement) Insert(user *global.User, entities mod entity.DefectDescr = reason.Descr entity.InspectTime = grmi.DateTime(time.Now()) entity.Inspector = user.UserId + entity.WorkPlaceNr = entities.WorkPlaceNr DefectRecord = append(DefectRecord, entity) } //更新目检质量状态 @@ -567,7 +568,7 @@ func (impl *DefectRecordServiceImplement) Update(user *global.User, entities *[] * @Reference LAPP_ACURA_MOM_BACKEND/services/qm/DefectRecordService.Rework * ******************************************************************************/ -func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) error { +func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int, placeId int) error { grmi.Log(user, "/services/qm/implments/QM_DefectRecord.service.impl.go", "Rework", "返工") @@ -582,6 +583,8 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) e recDao := dal.NewReclinerReclstDAO(session, user.PlantNr, user.UserId) seriDao := omdal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) statusDao := omdal.NewSerialOrderStatusDAO(session, user.PlantNr, user.UserId) + sdao := dal.NewSerialOrderRutingDAO(session, user.PlantNr, user.UserId) + placeDao := baseDal.NewWorkPlaceDAO(session, user.PlantNr, user.UserId) record, err := dao.SelectOne(recNr) if err != nil { @@ -621,7 +624,6 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) e return grmi.NewBusinessError("该工单前序未完成!") } - sdao := dal.NewSerialOrderRutingDAO(session, user.PlantNr, user.UserId) OrderInfo, err := sdao.SelectOne(record.SerialOrderId) if err != nil { session.Rollback() @@ -695,9 +697,24 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) e session.Rollback() return grmi.NewBusinessError("流水号生成错误!") } + + //根据工位查询打印机Id + placeInfo, err := placeDao.SelectOne(placeId) + if err != nil { + session.Rollback() + return err + } + if placeInfo == nil { + session.Rollback() + return grmi.NewBusinessError("工位信息不存在!") + } + serialOrderId := machineCode + yearStr + monthStr + dayStr + nextNumberStr + "0" + ColorValue entity := new(model.ReclinerReclst) + entity.SerialOrderId = seriInfo.SerialOrderId entity.ReclinerNr = serialOrderId + entity.PrinterId = placeInfo.PrinterId + entity.WorkPlaceNr = placeId entity.ArtId = seriInfo.ArtId entity.Line = seriInfo.PlanResourceId entity.RecType = model.QM_SERI_TYPE @@ -720,15 +737,15 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) e insertSeriOrder.QualityCheck = common.QualityCheck_STATUS_OK insertSeriOrder.SerialOrderId = serialOrderId insertSeriOrder.LinkSerialOrderId = seriInfo.SerialOrderId - if seriInfo.OrderType == common.ODER_TYPE_REODER{ + if seriInfo.OrderType == common.ODER_TYPE_REODER { insertSeriOrder.OriginSerialOrderId = seriInfo.OriginSerialOrderId - }else{ - insertSeriOrder.OriginSerialOrderId = seriInfo.SerialOrderId + } else { + insertSeriOrder.OriginSerialOrderId = seriInfo.SerialOrderId } insertSeriOrder.OrderType = common.ODER_TYPE_REODER insertSeriOrder.GenerateFlag = false err = seriDao.InsertOne(&insertSeriOrder) - if err != nil{ + if err != nil { session.Rollback() return err } @@ -737,7 +754,7 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int) e insertSeriOrderStatus.SerialOrderId = insertSeriOrder.SerialOrderId insertSeriOrderStatus.Status = common.WO_STATUS_FINISHED err = statusDao.InsertOne(insertSeriOrderStatus) - if err != nil{ + if err != nil { session.Rollback() return err } diff --git a/services/qm/implments/ReclinerReclst.service.impl.go b/services/qm/implments/ReclinerReclst.service.impl.go index 073f39d..7df2884 100644 --- a/services/qm/implments/ReclinerReclst.service.impl.go +++ b/services/qm/implments/ReclinerReclst.service.impl.go @@ -44,6 +44,7 @@ var DefaultConditionOfReclinerReclst = grmi.NewCondition( meta.ReclinerReclst_SerialOrderId.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_SerialOrderId, grmi.Equal, false), meta.ReclinerReclst_ReclinerNr.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_ReclinerNr, grmi.Equal, false), meta.ReclinerReclst_ItemPartNr.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_ItemPartNr, grmi.Equal, false), + meta.ReclinerReclst_PrinterId.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_PrinterId, grmi.Equal, false), meta.ReclinerReclst_Status.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_Status, grmi.Equal, false), meta.ReclinerReclst_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_LastModify, grmi.Approximate, false), meta.ReclinerReclst_LastUser.UrlParameterName: grmi.NewConditionItem(meta.ReclinerReclst_LastUser, grmi.Equal, false), @@ -474,6 +475,7 @@ func (impl *ReclinerReclstServiceImplement) InsertSeriOne(user *global.User, ent dao := dal.NewReclinerReclstDAO(session, user.PlantNr, user.UserId) seriDao := omDal.NewSerialOrderDAO(session, user.PlantNr, user.UserId) statusDao := omDal.NewSerialOrderStatusDAO(session, user.PlantNr, user.UserId) + placeDao := baseDal.NewWorkPlaceDAO(session, user.PlantNr, user.UserId) seriInfo, err := seriDao.SelectBySerialOrder(entity.SerialOrderId) if err != nil { return err @@ -548,7 +550,19 @@ func (impl *ReclinerReclstServiceImplement) InsertSeriOne(user *global.User, ent } serialOrderId := machineCode + yearStr + monthStr + dayStr + nextNumberStr + "0" + ColorValue + //根据工位查询打印机Id + placeInfo, err := placeDao.SelectOne(entity.WorkPlaceNr) + if err != nil { + session.Rollback() + return err + } + if placeInfo == nil { + session.Rollback() + return grmi.NewBusinessError("工位信息不存在!") + } + entity.SerialOrderId = orderId entity.ReclinerNr = serialOrderId + entity.PrinterId = placeInfo.PrinterId entity.ArtId = seriInfo.ArtId entity.Line = seriInfo.PlanResourceId entity.RecType = model.QM_SERI_TYPE @@ -804,7 +818,7 @@ func (impl *ReclinerReclstServiceImplement) CreateRecPrintInfo(entity model.Recl head.LabelId = headId head.Status = 0 head.LabelTemplateId = result.LabelTemplateId - head.PrinterId = result.PrinterId + head.PrinterId = entity.PrinterId if plantProject == baseModel.PROJECT_NANSHA { head.PrintQty = 1 } else { @@ -1749,10 +1763,24 @@ func (impl *ReclinerReclstServiceImplement) InsertSeriByAssembly(user *global.Us session := engine.NewSession() defer session.Close() dao := dal.NewReclinerReclstDAO(session, user.PlantNr, user.UserId) + placeDao := baseDal.NewWorkPlaceDAO(session, user.PlantNr, user.UserId) + + //根据工位查询打印机Id + placeInfo, err := placeDao.SelectOne(entity.WorkPlaceNr) + if err != nil { + session.Rollback() + return err + } + if placeInfo == nil { + session.Rollback() + return grmi.NewBusinessError("工位信息不存在!") + } + entity.ReclinerNr = entity.SerialOrderId entity.RecType = model.QM_REPIR_TYPE + entity.PrinterId = placeInfo.PrinterId entity.Status = "N" - err := dao.InsertOne(entity) + err = dao.InsertOne(entity) if err != nil { return err } diff --git a/web/controllers/qm/DefectRecord.rest.go b/web/controllers/qm/DefectRecord.rest.go index 8ec0046..0d96bd0 100644 --- a/web/controllers/qm/DefectRecord.rest.go +++ b/web/controllers/qm/DefectRecord.rest.go @@ -83,7 +83,7 @@ func RegisterOneDefectRecord(party router.Party, httpMethod string, path string, * @Date : 2021-03-18 22:49:12 * ******************************************************************************/ -func RegisterIDOfDefectRecord(party router.Party, httpMethod string, path string, method func(*global.User, int) error) { +func RegisterReworkDefectRecord(party router.Party, httpMethod string, path string, method func(*global.User, int, int) error) { party.Handle(httpMethod, path, func(ctx iris.Context) { user, ok := jwts.ParseToken(ctx) @@ -97,8 +97,12 @@ func RegisterIDOfDefectRecord(party router.Party, httpMethod string, path string supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) return } - - err = method(user, recNr) + placeId, err := ctx.Params().GetInt("placeId") + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + err = method(user, recNr, placeId) if err != nil { supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) return @@ -152,7 +156,48 @@ func RegisterDeleteOneDefectRecord(party router.Party, path string, method func( RegisterIDOfDefectRecord(party, "DELETE", path+"/{recNr:int}", method) } +/****************************************************************************** + * + * @Function Name : RegisterIDOfDefectRecord + *----------------------------------------------------------------------------- + * + * @Description : 为一个通过主键处理单条DefectRecord的方法注册路由 + * + * @Function Parameters : 路由分组 + * + * @Function Parameters : HTTP方法 + * + * @Function Parameters : 路径 + * + * @Function Parameters : 实际处理请求的方法 + * + * @Author : 代码生成器创建 + * + * @Date : 2021-03-18 22:49:12 + * + ******************************************************************************/ +func RegisterIDOfDefectRecord(party router.Party, httpMethod string, path string, method func(*global.User, int) error) { + + party.Handle(httpMethod, path, func(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + if !ok { + return + } + var err error = nil + recNr, err := ctx.Params().GetInt("recNr") + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + err = method(user, recNr) + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } + supports.Ok(ctx, supports.OptionSuccess, nil) + }) +} /****************************************************************************** * * @Function Name : RegisterSelectOneDefectRecord diff --git a/web/controllers/qm/qm.go b/web/controllers/qm/qm.go index 803345e..c26845d 100644 --- a/web/controllers/qm/qm.go +++ b/web/controllers/qm/qm.go @@ -89,7 +89,7 @@ func RegisterRoutes() { // DefectRecord修改多条 // RegisterUpdateDefectRecord(defectrecord, "/update", serviceOfDefectRecord.Update) // 返工 - RegisterIDOfDefectRecord(defectrecord, "POST", "/rework"+"/{recNr:int}", serviceOfDefectRecord.Rework) + RegisterReworkDefectRecord(defectrecord, "POST", "/rework"+"/{recNr:int}/{placeId:int}", serviceOfDefectRecord.Rework) // ViewValst的路由组 viewvalst := party.Party("/viewvalst")