Browse Source

添加跨工厂逻辑

feature_crossplant
zhangxin 2 years ago
parent
commit
8315484d6e
1 changed files with 36 additions and 34 deletions
  1. +36
    -34
      services/om/implments/SerialOrder.Logic.impl.go

+ 36
- 34
services/om/implments/SerialOrder.Logic.impl.go View File

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


Loading…
Cancel
Save