Browse Source

大屏展示及其返修逻辑

pull/201/head
娄文智 2 years ago
parent
commit
703caf32a7
7 changed files with 139 additions and 45 deletions
  1. +1
    -0
      services/base/implments/WorkPlace.service.impl.go
  2. +32
    -29
      services/pln/implments/CustOrder.service.impl.go
  3. +1
    -1
      services/qm/DefectRecord.service.go
  4. +26
    -9
      services/qm/implments/DefectRecord.service.impl.go
  5. +30
    -2
      services/qm/implments/ReclinerReclst.service.impl.go
  6. +48
    -3
      web/controllers/qm/DefectRecord.rest.go
  7. +1
    -1
      web/controllers/qm/qm.go

+ 1
- 0
services/base/implments/WorkPlace.service.impl.go View File

@ -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),


+ 32
- 29
services/pln/implments/CustOrder.service.impl.go View File

@ -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
}


+ 1
- 1
services/qm/DefectRecord.service.go View File

@ -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
}
/******************************************************************************


+ 26
- 9
services/qm/implments/DefectRecord.service.impl.go View File

@ -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
}


+ 30
- 2
services/qm/implments/ReclinerReclst.service.impl.go View File

@ -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
}


+ 48
- 3
web/controllers/qm/DefectRecord.rest.go View File

@ -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


+ 1
- 1
web/controllers/qm/qm.go View File

@ -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")


Loading…
Cancel
Save