|
|
@ -407,7 +407,7 @@ func (impl *DefectRecordServiceImplement) Insert(user *global.User, entities mod |
|
|
|
if reason == nil { |
|
|
|
return grmi.NewBusinessError(fmt.Sprintf("没有找到缺陷原因:%s!", entity.DefectReasonId)) |
|
|
|
} |
|
|
|
area, err := areaDAO.SelectOne(entity.ViewId, entity.AreaId) |
|
|
|
area, err := areaDAO.SelectOne("public", entity.AreaId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
@ -610,31 +610,7 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int, p |
|
|
|
return grmi.NewBusinessError("不存在指定记录!") |
|
|
|
} |
|
|
|
|
|
|
|
//查询订单状态
|
|
|
|
statusInfo, err := statusDao.SelectOne(record.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
if statusInfo == nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单查询错误!") |
|
|
|
} |
|
|
|
if statusInfo.Status != common.WO_STATUS_FINISHED { |
|
|
|
return grmi.NewBusinessError("该工单前序未完成!") |
|
|
|
} |
|
|
|
|
|
|
|
OrderInfo, err := sdao.SelectOne(record.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单查询错误!") |
|
|
|
} |
|
|
|
OrderInfo.Status = common.CHECK_STATUS_CLOSED |
|
|
|
err = sdao.UpdateOne(OrderInfo) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单更新失败!") |
|
|
|
} |
|
|
|
record.Status = strconv.Itoa(common.ORDER_STATUS_CLOSED) |
|
|
|
record.InspectTime = grmi.DateTime(time.Now()) |
|
|
|
record.Inspector = user.UserId |
|
|
@ -643,120 +619,155 @@ func (impl *DefectRecordServiceImplement) Rework(user *global.User, recNr int, p |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//查询缺陷是否已经都修复
|
|
|
|
records, err := dao.Select([]grmi.Predicate{ |
|
|
|
meta.DefectRecord_SerialOrderId.NewPredicate(grmi.Equal, seriInfo.SerialOrderId), |
|
|
|
meta.DefectRecord_Status.NewPredicate(grmi.LessThen, common.ORDER_STATUS_CLOSED), |
|
|
|
}, nil) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
if len(records) == 0{ |
|
|
|
//查询订单状态
|
|
|
|
statusInfo, err := statusDao.SelectOne(record.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
if statusInfo == nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单查询错误!") |
|
|
|
} |
|
|
|
if statusInfo.Status != common.WO_STATUS_FINISHED { |
|
|
|
return grmi.NewBusinessError("该工单前序未完成!") |
|
|
|
} |
|
|
|
|
|
|
|
//添加返修打印记录
|
|
|
|
OrderInfo, err := sdao.SelectOne(record.SerialOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单查询错误!") |
|
|
|
} |
|
|
|
OrderInfo.Status = common.CHECK_STATUS_CLOSED |
|
|
|
err = sdao.UpdateOne(OrderInfo) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("序列订单更新失败!") |
|
|
|
} |
|
|
|
//添加返修打印记录
|
|
|
|
|
|
|
|
var nextNumberStr string |
|
|
|
var nextNumberStr string |
|
|
|
|
|
|
|
orderId := record.SerialOrderId |
|
|
|
orderId := record.SerialOrderId |
|
|
|
|
|
|
|
if len(orderId) < 11 { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("订单号长度不合法!") |
|
|
|
} |
|
|
|
//获取机器码
|
|
|
|
machineCode := orderId[0:4] |
|
|
|
ColorValue := orderId[10:11] |
|
|
|
now := time.Now() |
|
|
|
year := now.Year() |
|
|
|
month := int(now.Month()) |
|
|
|
day := now.Day() |
|
|
|
yearStr := common.YEAR_MAP[year] |
|
|
|
monthStr := common.MONTH_MAP[month] |
|
|
|
dayStr := common.DAY_MAP[day] |
|
|
|
temOrderId := machineCode + yearStr + monthStr + dayStr |
|
|
|
//计算map反转
|
|
|
|
seriMap := make(map[int]string) |
|
|
|
for k, v := range common.ReworkMap { |
|
|
|
key := v |
|
|
|
val := k |
|
|
|
seriMap[key] = val |
|
|
|
} |
|
|
|
//查询当天的机器码对应的返修流水号
|
|
|
|
reworkData, err := recDao.SelectOneRework(temOrderId) |
|
|
|
if reworkData != nil { |
|
|
|
lastOrderId := reworkData.ReclinerNr |
|
|
|
serialNumber := lastOrderId[7:9] |
|
|
|
|
|
|
|
nowNumber, ok := common.ReworkMap[serialNumber] |
|
|
|
nextNumber := utils.ValueToInt((nowNumber + 1), 0) |
|
|
|
if ok { |
|
|
|
if nextNumber <= 102 { |
|
|
|
nextNumberStr, ok = seriMap[nextNumber] |
|
|
|
if !ok { |
|
|
|
if len(orderId) < 11 { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("订单号长度不合法!") |
|
|
|
} |
|
|
|
//获取机器码
|
|
|
|
machineCode := orderId[0:4] |
|
|
|
ColorValue := orderId[10:11] |
|
|
|
now := time.Now() |
|
|
|
year := now.Year() |
|
|
|
month := int(now.Month()) |
|
|
|
day := now.Day() |
|
|
|
yearStr := common.YEAR_MAP[year] |
|
|
|
monthStr := common.MONTH_MAP[month] |
|
|
|
dayStr := common.DAY_MAP[day] |
|
|
|
temOrderId := machineCode + yearStr + monthStr + dayStr |
|
|
|
//计算map反转
|
|
|
|
seriMap := make(map[int]string) |
|
|
|
for k, v := range common.ReworkMap { |
|
|
|
key := v |
|
|
|
val := k |
|
|
|
seriMap[key] = val |
|
|
|
} |
|
|
|
//查询当天的机器码对应的返修流水号
|
|
|
|
reworkData, err := recDao.SelectOneRework(temOrderId) |
|
|
|
if reworkData != nil { |
|
|
|
lastOrderId := reworkData.ReclinerNr |
|
|
|
serialNumber := lastOrderId[7:9] |
|
|
|
|
|
|
|
nowNumber, ok := common.ReworkMap[serialNumber] |
|
|
|
nextNumber := utils.ValueToInt((nowNumber + 1), 0) |
|
|
|
if ok { |
|
|
|
if nextNumber <= 102 { |
|
|
|
nextNumberStr, ok = seriMap[nextNumber] |
|
|
|
if !ok { |
|
|
|
return grmi.NewBusinessError("流水号生成超出范围!") |
|
|
|
} |
|
|
|
} else { |
|
|
|
return grmi.NewBusinessError("流水号生成超出范围!") |
|
|
|
} |
|
|
|
} else { |
|
|
|
return grmi.NewBusinessError("流水号生成超出范围!") |
|
|
|
} |
|
|
|
} else { |
|
|
|
nextNumberStr = seriMap[1] |
|
|
|
} |
|
|
|
if len(nextNumberStr) != 2 { |
|
|
|
session.Rollback() |
|
|
|
return grmi.NewBusinessError("流水号生成错误!") |
|
|
|
} |
|
|
|
} else { |
|
|
|
nextNumberStr = seriMap[1] |
|
|
|
} |
|
|
|
if len(nextNumberStr) != 2 { |
|
|
|
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 |
|
|
|
entity.Status = "N" |
|
|
|
err = recDao.InsertOne(entity) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//更新原来的flag标识
|
|
|
|
seriInfo.GenerateFlag = true |
|
|
|
err = seriDao.UpdateOne(seriInfo) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//插入新的seriorder条码
|
|
|
|
insertSeriOrder := omModel.SerialOrder{} |
|
|
|
insertSeriOrder = *seriInfo |
|
|
|
insertSeriOrder.QualityCheck = common.QualityCheck_STATUS_OK |
|
|
|
insertSeriOrder.SerialOrderId = serialOrderId |
|
|
|
insertSeriOrder.LinkSerialOrderId = seriInfo.SerialOrderId |
|
|
|
if seriInfo.OrderType == common.ODER_TYPE_REODER { |
|
|
|
insertSeriOrder.OriginSerialOrderId = seriInfo.OriginSerialOrderId |
|
|
|
} else { |
|
|
|
insertSeriOrder.OriginSerialOrderId = seriInfo.SerialOrderId |
|
|
|
} |
|
|
|
insertSeriOrder.OrderType = common.ODER_TYPE_REODER |
|
|
|
insertSeriOrder.GenerateFlag = false |
|
|
|
err = seriDao.InsertOne(&insertSeriOrder) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//插入新的条码状态
|
|
|
|
insertSeriOrderStatus := new(omModel.SerialOrderStatus) |
|
|
|
insertSeriOrderStatus.SerialOrderId = insertSeriOrder.SerialOrderId |
|
|
|
insertSeriOrderStatus.Status = common.WO_STATUS_FINISHED |
|
|
|
err = statusDao.InsertOne(insertSeriOrderStatus) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
//根据工位查询打印机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 |
|
|
|
entity.Status = "N" |
|
|
|
err = recDao.InsertOne(entity) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//更新原来的flag标识
|
|
|
|
seriInfo.GenerateFlag = true |
|
|
|
err = seriDao.UpdateOne(seriInfo) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//插入新的seriorder条码
|
|
|
|
insertSeriOrder := omModel.SerialOrder{} |
|
|
|
insertSeriOrder = *seriInfo |
|
|
|
insertSeriOrder.QualityCheck = common.QualityCheck_STATUS_OK |
|
|
|
insertSeriOrder.SerialOrderId = serialOrderId |
|
|
|
insertSeriOrder.LinkSerialOrderId = seriInfo.SerialOrderId |
|
|
|
if seriInfo.OrderType == common.ODER_TYPE_REODER { |
|
|
|
insertSeriOrder.OriginSerialOrderId = seriInfo.OriginSerialOrderId |
|
|
|
} else { |
|
|
|
insertSeriOrder.OriginSerialOrderId = seriInfo.SerialOrderId |
|
|
|
} |
|
|
|
insertSeriOrder.OrderType = common.ODER_TYPE_REODER |
|
|
|
insertSeriOrder.GenerateFlag = false |
|
|
|
err = seriDao.InsertOne(&insertSeriOrder) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
//插入新的条码状态
|
|
|
|
insertSeriOrderStatus := new(omModel.SerialOrderStatus) |
|
|
|
insertSeriOrderStatus.SerialOrderId = insertSeriOrder.SerialOrderId |
|
|
|
insertSeriOrderStatus.Status = common.WO_STATUS_FINISHED |
|
|
|
err = statusDao.InsertOne(insertSeriOrderStatus) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
session.Commit() |
|
|
|
return nil |
|
|
|