Browse Source

目检校验

pull/358/head
娄文智 3 years ago
parent
commit
6dd9da726c
8 changed files with 148 additions and 57 deletions
  1. +1
    -1
      container/DefaultSessionManager.go
  2. +4
    -0
      models/base/Const.go
  3. +11
    -10
      models/qm/SerialOrderRuting.model.go
  4. +66
    -19
      services/log/implments/PackOrder.service.impl.go
  5. +1
    -1
      services/qm/DefectRecord.service.go
  6. +53
    -20
      services/qm/implments/DefectRecord.service.impl.go
  7. +4
    -0
      services/qm/implments/View.service.impl.go
  8. +8
    -6
      web/controllers/qm/DefectRecord.rest.go

+ 1
- 1
container/DefaultSessionManager.go View File

@ -84,7 +84,7 @@ func (manager *DefaultSessionManager) GetSession(sessionId string, user *models.
if err != nil {
return nil, err
}
session, err := NewSession(sessionContext, sessionId, handlerManager)
session, err = NewSession(sessionContext, sessionId, handlerManager)
if err != nil {
return nil, err
}


+ 4
- 0
models/base/Const.go View File

@ -25,6 +25,10 @@ const (
PACK_STATUS_LOCKED = 95 // 锁定
PACK_STATUS_CANCELED = 98 // 取消
//校验状态
CHECK_STATUS_RUNNING = 40 // 没通过
CHECK_STATUS_CLOSED = 80 // 通过
// 工单状态
WO_STATUS_UNPLANNED = 10 // 未计划
WO_STATUS_PLANNED = 20 // 已计划


+ 11
- 10
models/qm/SerialOrderRuting.model.go View File

@ -20,16 +20,17 @@ import (
*
******************************************************************************/
type SerialOrderRuting struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"QM_SerialOrderRuting-PlantNr"`
SerialorderId string `xorm:"pk nvarchar(32) 'SerialorderId'" json:"QM_SerialOrderRuting-SerialorderId"`
ArtId string `xorm:"nvarchar(32) 'ArtId'" json:"QM_SerialOrderRuting-ArtId"`
WorkPlaceNr string `xorm:"nvarchar(10) 'WorkPlaceNr'" json:"QM_SerialOrderRuting-WorkPlaceNr"`
Status string `xorm:"nvarchar(10) 'Status'" json:"QM_SerialOrderRuting-Status"`
IsPack int `xorm:"int 'IsPack'" json:"QM_SerialOrderRuting-IsPack"`
Remark string `xorm:"nvarchar(255) 'Remark'" json:"QM_SerialOrderRuting-Remark"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"QM_SerialOrderRuting-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"QM_SerialOrderRuting-LastUser"`
CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"QM_SerialOrderRuting-CreateTime"`
PlantNr int `xorm:"pk int 'PlantNr'" json:"QM_SerialOrderRuting-PlantNr"`
SerialorderId string `xorm:"pk nvarchar(32) 'SerialorderId'" json:"QM_SerialOrderRuting-SerialorderId"`
ArtId string `xorm:"nvarchar(32) 'ArtId'" json:"QM_SerialOrderRuting-ArtId"`
WorkPlaceNr int `xorm:"int 'WorkPlaceNr'" json:"QM_SerialOrderRuting-WorkPlaceNr"`
Status int `xorm:"int 'Status'" json:"QM_SerialOrderRuting-Status"`
IsPack int `xorm:"int 'IsPack'" json:"QM_SerialOrderRuting-IsPack"`
Remark string `xorm:"nvarchar(255) 'Remark'" json:"QM_SerialOrderRuting-Remark"`
LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"QM_SerialOrderRuting-LastModify"`
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"QM_SerialOrderRuting-LastUser"`
CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"QM_SerialOrderRuting-CreateTime"`
DefectRecord []DefectRecord `xorm:"-" json:"QM_SerialOrderRuting-DefectRecord"`
}
/******************************************************************************


+ 66
- 19
services/log/implments/PackOrder.service.impl.go View File

@ -12,6 +12,7 @@ import (
//medal "LAPP_GAAS_GFrame_BACKEND/dao/me"
dal "LAPP_GAAS_GFrame_BACKEND/dao/log"
qmdal "LAPP_GAAS_GFrame_BACKEND/dao/qm"
"LAPP_GAAS_GFrame_BACKEND/db"
"LAPP_GAAS_GFrame_BACKEND/grmi"
bmeta "LAPP_GAAS_GFrame_BACKEND/meta/base"
@ -705,6 +706,44 @@ func (self *PackOrderServiceImplement) IsCreatePackOrder(user *models.Usertab, o
if len(dataList) > 0 {
return nil, grmi.NewBusinessError("该条码已经扫描过!")
}
//条件判断
slaves := db.Eloquent.Slaves()
slavesession := slaves[0].NewSession()
defer slavesession.Close()
apiDao := api.NewACCUNITSTATUSDAO(slavesession, user.Userid)
//根据唯一码查询信息
mesData, err := apiDao.SelectInfo(orderId)
if err != nil {
return nil, err
}
if mesData == nil {
return nil, grmi.NewBusinessError("该唯一码不存在!")
}
if mesData.LINE == "LaserWelding" {
//校验
if mesData.OP != "017" {
return nil, grmi.NewBusinessError("OP状态值不是017!")
}
//if mesData.STATUS != "2" {
// return nil, grmi.NewBusinessError("该唯一码状态不为2!")
//}
} else if mesData.LINE == "G-Frame Assy" {
//查询目检
//判断该条码是否是合格产品
sdao := qmdal.NewSerialOrderRutingDAO(session, user.Pid, user.Userid)
OrderInfo, err := sdao.SelectOne(orderId)
if err != nil {
return nil, grmi.NewBusinessError("序列订单查询错误!")
}
if OrderInfo == nil || OrderInfo.Status != bmodel.CHECK_STATUS_CLOSED {
return nil, grmi.NewBusinessError("该序列订单已经检测!")
}
} else {
return nil, grmi.NewBusinessError("产线信息有误!")
}
/*********************************
* 1.判断是否已经有激活的包装
*********************************/
@ -772,7 +811,7 @@ func (self *PackOrderServiceImplement) IsCreatePackOrder(user *models.Usertab, o
err = packOrderDAO.InsertOne(&model.PackOrder{
PlantNr: packTemplate.PlantNr,
PackOrderId: packOrderId,
Status: 26,
Status: bmodel.PACK_STATUS_RELEASED,
PackTemplateId: packTemplate.PackTemplateId,
PackTypeId: packTemplate.PackTypeId,
MaterialId: packTemplate.MaterialId,
@ -793,7 +832,7 @@ func (self *PackOrderServiceImplement) IsCreatePackOrder(user *models.Usertab, o
MaterialId: packTemplateItem.MaterialId,
PlanQty: float64(packTemplateItem.PlanQty),
ActQty: 0,
Status: 26,
Status: bmodel.PACK_STATUS_RELEASED,
Seq: packTemplateItem.Seq,
})
}
@ -807,7 +846,7 @@ func (self *PackOrderServiceImplement) IsCreatePackOrder(user *models.Usertab, o
}
//查询该零件对应的包装项位置
dao := dal.NewPackOrderItemlstDAO(packsession, user.Pid, user.Userid)
infoPos, err := dao.SelectOnePos(packOrderId,artId)
infoPos, err := dao.SelectOnePos(packOrderId, artId)
if err != nil {
return nil, err
}
@ -1004,7 +1043,7 @@ func (self *PackOrderServiceImplement) CreatePackOrderByTemplate(user *models.Us
err = packOrderDAO.InsertOne(&model.PackOrder{
PlantNr: packTemplate.PlantNr,
PackOrderId: packOrderId,
Status: 26,
Status: bmodel.PACK_STATUS_RELEASED,
PackTemplateId: packTemplate.PackTemplateId,
PackTypeId: packTemplate.PackTypeId,
MaterialId: packTemplate.MaterialId,
@ -1024,7 +1063,7 @@ func (self *PackOrderServiceImplement) CreatePackOrderByTemplate(user *models.Us
MaterialId: packTemplateItem.MaterialId,
PlanQty: float64(packTemplateItem.PlanQty),
ActQty: 0,
Status: 26,
Status: bmodel.PACK_STATUS_RELEASED,
Seq: packTemplateItem.Seq,
})
}
@ -1090,28 +1129,35 @@ func (self *PackOrderServiceImplement) CheckPackOrderItem(user *models.Usertab,
apiDao := api.NewACCUNITSTATUSDAO(slavesession, user.Userid)
//根据唯一码查询信息
mesData,err := apiDao.SelectInfo(orderId)
mesData, err := apiDao.SelectInfo(orderId)
if err != nil {
return "", err
}
if mesData == nil{
return "",grmi.NewBusinessError("该唯一码不存在!")
if mesData == nil {
return "", grmi.NewBusinessError("该唯一码不存在!")
}
if mesData.LINE == "G-Frame Assy"{
if mesData.LINE == "LaserWelding" {
//校验
if mesData.OP != "017"{
return "",grmi.NewBusinessError("OP状态值不是017!")
if mesData.OP != "017" {
return "", grmi.NewBusinessError("OP状态值不是017!")
}
if mesData.STATUS != "2"{
return "",grmi.NewBusinessError("该唯一码状态不为2!")
if mesData.STATUS != "2" {
return "", grmi.NewBusinessError("该唯一码状态不为2!")
}
}else if mesData.LINE == "LaserWelding"{
} else if mesData.LINE == "G-Frame Assy" {
//查询目检
}else {
return "",grmi.NewBusinessError("产线信息有误!")
//判断该条码是否是合格产品
sdao := qmdal.NewSerialOrderRutingDAO(session, user.Pid, user.Userid)
OrderInfo, err := sdao.SelectOne(orderId)
if err != nil {
return "", grmi.NewBusinessError("序列订单查询错误!")
}
if OrderInfo == nil || OrderInfo.Status != bmodel.CHECK_STATUS_CLOSED {
return "", grmi.NewBusinessError("该序列订单已经检测!")
}
} else {
return "", grmi.NewBusinessError("产线信息有误!")
}
articleDAO := base.NewArticleDAO(session, user.Pid, user.Userid)
article, err := articleDAO.SelectOne(artId)
if err != nil {
@ -1133,6 +1179,7 @@ func (self *PackOrderServiceImplement) CheckPackOrderItem(user *models.Usertab,
if len(dataLens) == 0 {
return "", grmi.NewBusinessError("该条码不符合该包装规则!")
}
//判断条码是否已经生成过包装
dataList, err := itemlstDAO.Select([]grmi.Predicate{
meta.PackOrderItemlst_SerialOrderId.NewPredicate(grmi.Equal, orderId),
@ -1152,7 +1199,7 @@ func (self *PackOrderServiceImplement) CheckPackOrderItem(user *models.Usertab,
}
//查询待检测包装位置
dao := dal.NewPackOrderItemlstDAO(packsession, user.Pid, user.Userid)
infoPos, err := dao.SelectOnePos(packOrderId,artId)
infoPos, err := dao.SelectOnePos(packOrderId, artId)
if err != nil {
return "", err
}


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

@ -113,7 +113,7 @@ type DefectRecordService interface {
* @Date : 2021-03-18 23:20:31
*
******************************************************************************/
Insert(*models.Usertab, *[]model.DefectRecord) error
Insert(*models.Usertab, model.SerialOrderRuting) error
/******************************************************************************
*
* @Function Name : Delete


+ 53
- 20
services/qm/implments/DefectRecord.service.impl.go View File

@ -231,47 +231,60 @@ func (impl *DefectRecordServiceImplement) UpdateOne(user *models.Usertab, entity
*
******************************************************************************/
// 2021-03-18 chenglei.wei@le-it.com.cn
func (impl *DefectRecordServiceImplement) Insert(user *models.Usertab, entities *[]model.DefectRecord) error {
func (impl *DefectRecordServiceImplement) Insert(user *models.Usertab, entities model.SerialOrderRuting) error {
grmi.Log(user, "/services/qm/implments/DefectRecord.service.impl.go", "InsertDefectRecord", "插入多个DefectRecord")
if entities == nil {
return grmi.NewBusinessError("没有提交记录!")
}
count := len(*entities)
if count <= 0 {
return grmi.NewBusinessError("没有提交记录!")
}
count := len(entities.DefectRecord)
engine := db.Eloquent.Master()
session := engine.NewSession()
defer session.Close()
dao := dal.NewDefectRecordDAO(session, user.Pid, user.Userid)
orderId := (*entities)[0].OrderId
sdao := dal.NewSerialOrderRutingDAO(session, user.Pid, user.Userid)
OrderInfo, err := sdao.SelectOne(entities.SerialorderId)
if err != nil {
return grmi.NewBusinessError("序列订单查询错误!")
}
if OrderInfo != nil {
return grmi.NewBusinessError("该序列订单已经检测!")
}
orderId := entities.SerialorderId
bdal := basedal.NewLabelParserHeadDAO(session, user.Pid, user.Userid)
result, err := bdal.SelectOne("Barcode")
if err != nil {
return err
return err
}
lstdao := basedal.NewLabelParserDetailLstDAO(session, user.Pid, user.Userid)
list, err := lstdao.Select([]grmi.Predicate{
bmeta.LabelParserDetailLst_ParserId.NewPredicate(grmi.Equal, "Barcode"),
}, nil)
if err != nil {
return err
return err
}
result.Valst = list
if len(orderId) < result.Length{
if len(orderId) < result.Length {
return grmi.NewBusinessError("序列订单错误!")
}
codeInfos := common.ParseBarcode(orderId,result.Valst)
codeInfos := common.ParseBarcode(orderId, result.Valst)
artID := codeInfos["artId"]
if count <= 0 {
/*******无提交记录,即为正常订单********/
entities.Status = common.CHECK_STATUS_CLOSED
entities.IsPack = 0
entities.ArtId = artID
err = sdao.InsertOne(&entities)
if err != nil {
return grmi.NewBusinessError("提交记录失败!")
}
return nil
}
dao := dal.NewDefectRecordDAO(session, user.Pid, user.Userid)
records, err := dao.Select([]grmi.Predicate{meta.DefectRecord_SerialOrderId.NewPredicate(grmi.Equal, orderId)}, nil)
if err != nil {
return err
@ -286,15 +299,23 @@ func (impl *DefectRecordServiceImplement) Insert(user *models.Usertab, entities
articleViewDAO := dal.NewArtViewDAO(session, user.Pid, user.Userid)
viewGroupDAO := dal.NewViewDefectGrplstDAO(session, user.Pid, user.Userid)
groupReasonDAO := dal.NewDefectGrpReasonLstDAO(session, user.Pid, user.Userid)
for i := 0; i < len(*entities); i++ {
entity := &(*entities)[i]
//添加记录
entities.Status = common.CHECK_STATUS_RUNNING
entities.ArtId = artID
entities.IsPack = 0
err = sdao.InsertOne(&entities)
if err != nil {
return grmi.NewBusinessError("提交记录失败!")
}
DefectRecord := make([]model.DefectRecord, 0)
for i := 0; i < len(entities.DefectRecord); i++ {
entity := entities.DefectRecord[i]
if entity.XPos == 0 {
return grmi.NewBusinessError("没有记录横坐标!")
}
if entity.YPos == 0 {
return grmi.NewBusinessError("没有记录纵坐标!")
}
entity.SerialOrderId = orderId
view, err := viewDAO.SelectOne(entity.ViewId)
if err != nil {
return err
@ -344,6 +365,7 @@ func (impl *DefectRecordServiceImplement) Insert(user *models.Usertab, entities
if groupReason == nil {
return grmi.NewBusinessError(fmt.Sprintf("没有找到缺陷分组(%s)和缺陷原因(%s)的关联!", entity.DefectGrpId, entity.DefectReasonId))
}
entity.SerialOrderId = entity.OrderId
entity.Qty = 1
entity.Status = strconv.Itoa(common.ORDER_STATUS_RELEASED)
entity.ViewCode = entity.AreaId
@ -359,9 +381,10 @@ func (impl *DefectRecordServiceImplement) Insert(user *models.Usertab, entities
entity.DefectDescr = reason.Descr
entity.InspectTime = grmi.DateTime(time.Now())
entity.Inspector = user.Userid
DefectRecord = append(DefectRecord, entity)
}
err = dao.Insert(entities)
err = dao.Insert(&DefectRecord)
if err != nil {
return err
}
@ -488,6 +511,16 @@ func (impl *DefectRecordServiceImplement) Rework(user *models.Usertab, recNr int
return grmi.NewBusinessError("状态错误!")
}
sdao := dal.NewSerialOrderRutingDAO(session, user.Pid, user.Userid)
OrderInfo, err := sdao.SelectOne(record.SerialOrderId)
if err != nil {
return grmi.NewBusinessError("序列订单查询错误!")
}
OrderInfo.Status = common.CHECK_STATUS_CLOSED
err = sdao.UpdateOne(OrderInfo)
if err != nil {
return grmi.NewBusinessError("序列订单查询错误!")
}
record.Status = strconv.Itoa(common.ORDER_STATUS_CLOSED)
record.InspectTime = grmi.DateTime(time.Now())
record.Inspector = user.Userid


+ 4
- 0
services/qm/implments/View.service.impl.go View File

@ -628,6 +628,10 @@ func (impl *ViewServiceImplement) ViewsOfArticle(context *container.RequestConte
if mesData == nil{
return nil,grmi.NewBusinessError("该唯一码不存在!")
}
//校验
if mesData.OP != "017" {
return nil, grmi.NewBusinessError("OP状态值不是017!")
}
if mesData.STATUS != "2"{
return nil,grmi.NewBusinessError("该唯一码状态不为2!")
}


+ 8
- 6
web/controllers/qm/DefectRecord.rest.go View File

@ -7,6 +7,7 @@ import (
"LAPP_GAAS_GFrame_BACKEND/web/middleware/jwts"
"LAPP_GAAS_GFrame_BACKEND/web/models"
"LAPP_GAAS_GFrame_BACKEND/web/supports"
"fmt"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/core/router"
)
@ -241,7 +242,7 @@ func RegisterUpdateOneDefectRecord(party router.Party, path string, method func(
* @Date : 2021-03-18 22:49:12
*
******************************************************************************/
func RegisterMultiDefectRecord(party router.Party, httpMethod string, path string, method func(*models.Usertab, *[]model.DefectRecord) error) {
func RegisterMultiDefectRecord(party router.Party, httpMethod string, path string, method func(*models.Usertab, model.SerialOrderRuting) error) {
party.Handle(httpMethod, path, func(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
@ -250,14 +251,15 @@ func RegisterMultiDefectRecord(party router.Party, httpMethod string, path strin
return
}
entities := make([]model.DefectRecord, 0, 10)
var entities model.SerialOrderRuting
err := ctx.ReadJSON(&entities)
if err != nil {
fmt.Println(11111)
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
err = method(user, &entities)
err = method(user, entities)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
@ -284,7 +286,7 @@ func RegisterMultiDefectRecord(party router.Party, httpMethod string, path strin
* @Date : 2021-03-18 22:49:12
*
******************************************************************************/
func RegisterInsertDefectRecord(party router.Party, path string, method func(*models.Usertab, *[]model.DefectRecord) error) {
func RegisterInsertDefectRecord(party router.Party, path string, method func(*models.Usertab, model.SerialOrderRuting) error) {
RegisterMultiDefectRecord(party, "POST", path, method)
}
@ -307,7 +309,7 @@ func RegisterInsertDefectRecord(party router.Party, path string, method func(*mo
* @Date : 2021-03-18 22:49:12
*
******************************************************************************/
func RegisterDeleteDefectRecord(party router.Party, path string, method func(*models.Usertab, *[]model.DefectRecord) error) {
func RegisterDeleteDefectRecord(party router.Party, path string, method func(*models.Usertab, model.SerialOrderRuting) error) {
RegisterMultiDefectRecord(party, "DELETE", path, method)
}
@ -366,7 +368,7 @@ func RegisterSelectDefectRecord(party router.Party, path string, method func(*mo
* @Date : 2021-03-18 22:49:12
*
******************************************************************************/
func RegisterUpdateDefectRecord(party router.Party, path string, method func(*models.Usertab, *[]model.DefectRecord) error) {
func RegisterUpdateDefectRecord(party router.Party, path string, method func(*models.Usertab, model.SerialOrderRuting) error) {
RegisterMultiDefectRecord(party, "PUT", path, method)
}

Loading…
Cancel
Save