|
|
@ -465,7 +465,7 @@ func (impl *SerialOrderServiceImplement) ReplaceData(serialOrder *model.SerialOr |
|
|
|
} |
|
|
|
|
|
|
|
// SingleProductTask 聚合单个总成的工艺数据
|
|
|
|
func (impl *SerialOrderServiceImplement) SingleProductTask(user *global.User, session *xorm.Session, task *baseModel.CrossPlanTask, productId string) (*model.SerialOrder, error) { |
|
|
|
func (impl *SerialOrderServiceImplement) SingleProductTask(user *global.User, session *xorm.Session, task *baseModel.CrossPlanTaskHead, productId string) (*model.SerialOrder, error) { |
|
|
|
writeSerialOrderLi := make([]model.SerialOrder, 0) |
|
|
|
workLinePoDao := baseDal.NewWorkLineProcessLstDAO(session, user.PlantNr, user.UserId) |
|
|
|
productDao := meDal.NewProductDAO(session, user.PlantNr, user.UserId) |
|
|
@ -529,25 +529,25 @@ func (impl *SerialOrderServiceImplement) ExecuteSingleCrossPlantTask(user *globa |
|
|
|
log, _ := logger.NewLogger("跨工厂生成计划,id:"+releaseId.String(), "CrossPlant") |
|
|
|
taskDao := baseDal.NewCrossPlanTaskHeadDAO(session, user.UserId) |
|
|
|
projectDao := meDal.NewProjectDAO(session, user.PlantNr, user.UserId) |
|
|
|
//project, err := projectDao.SelectOne(task.ProjectId)
|
|
|
|
//if err != nil {
|
|
|
|
// task.Status = baseModel.CROSS_TASK_STATUS_ERROR
|
|
|
|
// task.ErrorMsg = "查询任务项目失败,错误:" + err.Error()
|
|
|
|
// innerErr := taskDao.UpdateOne(&task)
|
|
|
|
// if innerErr != nil {
|
|
|
|
// log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr))
|
|
|
|
// }
|
|
|
|
// return grmi.NewBusinessError(task.ErrorMsg)
|
|
|
|
//}
|
|
|
|
//if project == nil {
|
|
|
|
// task.Status = baseModel.CROSS_TASK_STATUS_ERROR
|
|
|
|
// task.ErrorMsg = "任务项目不存在, 项目ID:" + task.ProjectId
|
|
|
|
// innerErr := taskDao.UpdateOne(&task)
|
|
|
|
// if innerErr != nil {
|
|
|
|
// log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr))
|
|
|
|
// }
|
|
|
|
// return grmi.NewBusinessError(task.ErrorMsg)
|
|
|
|
//}
|
|
|
|
project, err := projectDao.SelectOne(task.ProjectId) |
|
|
|
if err != nil { |
|
|
|
task.Status = baseModel.CROSS_TASK_STATUS_ERROR |
|
|
|
task.ErrorMsg = "查询任务项目失败,错误:" + err.Error() |
|
|
|
innerErr := taskDao.UpdateOne(&task) |
|
|
|
if innerErr != nil { |
|
|
|
log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr)) |
|
|
|
} |
|
|
|
return grmi.NewBusinessError(task.ErrorMsg) |
|
|
|
} |
|
|
|
if project == nil { |
|
|
|
task.Status = baseModel.CROSS_TASK_STATUS_ERROR |
|
|
|
task.ErrorMsg = "任务项目不存在, 项目ID:" + task.ProjectId |
|
|
|
innerErr := taskDao.UpdateOne(&task) |
|
|
|
if innerErr != nil { |
|
|
|
log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr)) |
|
|
|
} |
|
|
|
return grmi.NewBusinessError(task.ErrorMsg) |
|
|
|
} |
|
|
|
// 获取生产的物料
|
|
|
|
productIdLi := strings.Split(task.ArtId, ";") |
|
|
|
if len(productIdLi) == 0 { |
|
|
@ -614,6 +614,21 @@ func (impl *SerialOrderServiceImplement) ExecuteSingleCrossPlantTask(user *globa |
|
|
|
} |
|
|
|
return grmi.NewBusinessError(task.ErrorMsg) |
|
|
|
} |
|
|
|
productCraftMap := make(map[string]*model.SerialOrder) |
|
|
|
for _, productId := range productIdLi { |
|
|
|
serialOrderCraft, err := impl.SingleProductTask(user, session, &task, productId) |
|
|
|
if err != nil { |
|
|
|
task.Status = baseModel.CROSS_TASK_STATUS_ERROR |
|
|
|
task.ErrorMsg = "生成工单工艺失败, 错误:" + err.Error() |
|
|
|
innerErr := taskDao.UpdateOne(&task) |
|
|
|
if innerErr != nil { |
|
|
|
log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr)) |
|
|
|
} |
|
|
|
return grmi.NewBusinessError(task.ErrorMsg) |
|
|
|
} |
|
|
|
productCraftMap[productId] = serialOrderCraft |
|
|
|
} |
|
|
|
|
|
|
|
// 记录生成计划中间的数量
|
|
|
|
type ProductQty struct { |
|
|
|
ProductId string // 物料id
|
|
|
@ -627,21 +642,8 @@ func (impl *SerialOrderServiceImplement) ExecuteSingleCrossPlantTask(user *globa |
|
|
|
} |
|
|
|
productQtyCacheLi = append(productQtyCacheLi, productQtyData) |
|
|
|
} |
|
|
|
productCraftMap := make(map[string]*model.SerialOrder) |
|
|
|
for _, taskDetail := range task.CrossPlanTaskDetailLi { |
|
|
|
for _, productId := range productIdLi { |
|
|
|
serialOrderCraft, err := impl.SingleProductTask(user, session, &task, productId) |
|
|
|
if err != nil { |
|
|
|
task.Status = baseModel.CROSS_TASK_STATUS_ERROR |
|
|
|
task.ErrorMsg = "生成工单工艺失败, 错误:" + err.Error() |
|
|
|
innerErr := taskDao.UpdateOne(&task) |
|
|
|
if innerErr != nil { |
|
|
|
log.Error("更新任务状态失败, 错误:" + innerErr.Error() + ", 任务ID:" + strconv.Itoa(task.TaskNr)) |
|
|
|
} |
|
|
|
return grmi.NewBusinessError(task.ErrorMsg) |
|
|
|
} |
|
|
|
productCraftMap[productId] = serialOrderCraft |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for { |
|
|
|