|
|
@ -6,9 +6,14 @@ import ( |
|
|
|
dal "LAPP_GAAS_GFrame_BACKEND/dao/om" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/db" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/grmi" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/infra/logger" |
|
|
|
meta "LAPP_GAAS_GFrame_BACKEND/meta/om" |
|
|
|
baseModel "LAPP_GAAS_GFrame_BACKEND/models/base" |
|
|
|
model "LAPP_GAAS_GFrame_BACKEND/models/om" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/utils" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/web/models" |
|
|
|
"strconv" |
|
|
|
"time" |
|
|
|
) |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
@ -120,23 +125,54 @@ func NewWorkOrderServiceImplement() *WorkOrderServiceImplement { |
|
|
|
* @Reference LAPP_GAAS_GFrame_BACKEND/services/om/WorkOrderService.InsertOne |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *model.WorkOrder) error { |
|
|
|
|
|
|
|
func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *model.WorkOrderJoin) error { |
|
|
|
log, _ := logger.NewLogger(user.Userid, "OM") |
|
|
|
grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "InsertOneWorkOrder", "插入一个WorkOrder") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
err := session.Begin() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
defer session.Close() |
|
|
|
|
|
|
|
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) |
|
|
|
record, err := dao.SelectOne(entity.WorkOrderId) |
|
|
|
statusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid) |
|
|
|
qtyDao := dal.NewWorkOrderQtyDAO(session, user.Pid, user.Userid) |
|
|
|
workOrder := entity.WorkOrder |
|
|
|
workQty := entity.WorkOrderQty |
|
|
|
workStatus := entity.WorkOrderStatus |
|
|
|
if workStatus.Status != baseModel.WO_STATUS_UNPLANNED && workStatus.Status != baseModel.WO_STATUS_INTERRUPT { |
|
|
|
return grmi.NewBusinessError("创建的订单状态不合规,status:" + strconv.Itoa(entity.Status)) |
|
|
|
} |
|
|
|
snr := new(models.Snrtab) |
|
|
|
snr.Finr = user.Pid |
|
|
|
workOrderId, err := snr.GetNextSnr("WorkOrder") |
|
|
|
if err != nil { |
|
|
|
log.Error("workOrder InsertOne get work order id failed, error: " + err.Error()) |
|
|
|
|
|
|
|
return err |
|
|
|
} |
|
|
|
if record != nil { |
|
|
|
return grmi.NewBusinessError("已经存在相同主键的记录!") |
|
|
|
workOrder.WorkOrderId = workOrderId |
|
|
|
workQty.WorkOrderId = workOrderId |
|
|
|
workStatus.WorkOrderId = workOrderId |
|
|
|
err = dao.InsertOne(workOrder) |
|
|
|
if err != nil { |
|
|
|
log.Error("workOrder InsertOne insert workOrder failed, error: "+ err.Error()) |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = dao.InsertOne(entity) |
|
|
|
err = statusDao.InsertOne(workStatus) |
|
|
|
if err != nil { |
|
|
|
log.Error("workOrder InsertOne insert workOrder status failed, error: "+ err.Error()) |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = qtyDao.InsertOne(workQty) |
|
|
|
if err != nil { |
|
|
|
log.Error("workOrder InsertOne insert workOrder qty failed, error: "+ err.Error()) |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
@ -148,22 +184,67 @@ func (impl *WorkOrderServiceImplement) InsertOne(user *models.Usertab, entity *m |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *WorkOrderServiceImplement) DeleteOne(user *models.Usertab, workOrderId string) error { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "DeleteOneWorkOrder", "删除一个WorkOrder") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
err := session.Begin() |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
defer session.Close() |
|
|
|
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) |
|
|
|
statusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid) |
|
|
|
qtyDao := dal.NewWorkOrderQtyDAO(session, user.Pid, user.Userid) |
|
|
|
statusRecDao := dal.NewWorkOrderStatusRecLstDAO(session, user.Pid, user.Userid) |
|
|
|
qtyRecDao := dal.NewWorkOrderQtyRecLstDAO(session, user.Pid, user.Userid) |
|
|
|
record, err := dao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if record == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定记录!") |
|
|
|
return grmi.NewBusinessError("不存在指定workOrder记录!") |
|
|
|
} |
|
|
|
statusRecord, err := statusDao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if statusRecord == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定workOrderStatus记录!") |
|
|
|
} |
|
|
|
qtyRecord, err := qtyDao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if qtyRecord == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定workOrderQty记录!") |
|
|
|
} |
|
|
|
if statusRecord.Status != baseModel.WO_STATUS_UNPLANNED { |
|
|
|
return grmi.NewBusinessError("该workOrder不可以删除, status:" + strconv.Itoa(statusRecord.Status)) |
|
|
|
} |
|
|
|
err = dao.DeleteOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = statusDao.DeleteOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = qtyDao.DeleteOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = qtyRecDao.DeleteWhere([]grmi.Predicate{meta.WorkOrderQtyRecLst_WorkOrderId.NewPredicate(grmi.Equal, workOrderId)}) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
err = statusRecDao.DeleteWhere([]grmi.Predicate{meta.WorkOrderStatusRecLst_WorkOrderId.NewPredicate(grmi.Equal, workOrderId)}) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
@ -174,7 +255,7 @@ func (impl *WorkOrderServiceImplement) DeleteOne(user *models.Usertab, workOrder |
|
|
|
* @Reference LAPP_GAAS_GFrame_BACKEND/services/om/WorkOrderService.SelectOne |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *WorkOrderServiceImplement) SelectOne(user *models.Usertab, workOrderId string) (*model.WorkOrder, error) { |
|
|
|
func (impl *WorkOrderServiceImplement) SelectOne(user *models.Usertab, workOrderId string) (*model.WorkOrderJoin, error) { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "SelectOneWorkOrder", "查询一个WorkOrder") |
|
|
|
|
|
|
@ -182,11 +263,30 @@ func (impl *WorkOrderServiceImplement) SelectOne(user *models.Usertab, workOrder |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) |
|
|
|
result, err := dao.SelectOne(workOrderId) |
|
|
|
statusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid) |
|
|
|
qtyDao := dal.NewWorkOrderQtyDAO(session, user.Pid, user.Userid) |
|
|
|
workOrder, err := dao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
if workOrder == nil { |
|
|
|
return nil, grmi.NewBusinessError("workOrder不存在") |
|
|
|
} |
|
|
|
workOrderStatus, err := statusDao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
workOrderQty, err := qtyDao.SelectOne(workOrderId) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
data := &model.WorkOrderJoin{ |
|
|
|
WorkOrder: workOrder, |
|
|
|
WorkOrderQty: workOrderQty, |
|
|
|
WorkOrderStatus: workOrderStatus, |
|
|
|
} |
|
|
|
|
|
|
|
return data, nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
@ -194,25 +294,57 @@ func (impl *WorkOrderServiceImplement) SelectOne(user *models.Usertab, workOrder |
|
|
|
* @Reference LAPP_GAAS_GFrame_BACKEND/services/om/WorkOrderService.UpdateOne |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (impl *WorkOrderServiceImplement) UpdateOne(user *models.Usertab, entity *model.WorkOrder) error { |
|
|
|
func (impl *WorkOrderServiceImplement) UpdateOne(user *models.Usertab, entity *model.WorkOrderJoin) error { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "UpdateOneWorkOrder", "修改一个WorkOrder") |
|
|
|
|
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
if err := session.Begin(); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
defer session.Close() |
|
|
|
workOrder := entity.WorkOrder |
|
|
|
workOrderStatus := entity.WorkOrderStatus |
|
|
|
workOrderQty := entity.WorkOrderQty |
|
|
|
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) |
|
|
|
record, err := dao.SelectOne(entity.WorkOrderId) |
|
|
|
statusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid) |
|
|
|
qtyDao := dal.NewWorkOrderQtyDAO(session, user.Pid, user.Userid) |
|
|
|
workOrderRecord, err := dao.SelectOne(workOrder.WorkOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if record == nil { |
|
|
|
if workOrderRecord == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定记录!") |
|
|
|
} |
|
|
|
err = dao.UpdateOne(entity) |
|
|
|
statusRecord, err := statusDao.SelectOne(workOrder.WorkOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if statusRecord == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定的WorkOrderStatus") |
|
|
|
} |
|
|
|
qtyRecord, err := qtyDao.SelectOne(workOrder.WorkOrderId) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if qtyRecord == nil { |
|
|
|
return grmi.NewBusinessError("不存在指定的WorkOrderQty") |
|
|
|
} |
|
|
|
if workOrderStatus.Status != statusRecord.Status { |
|
|
|
return grmi.NewBusinessError("workOrderStatus不允许修改") |
|
|
|
} |
|
|
|
err = dao.UpdateOne(workOrder) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
workOrderQty.WorkOrderId = qtyRecord.WorkOrderId |
|
|
|
err = qtyDao.UpdateOne(workOrderQty) |
|
|
|
if err != nil { |
|
|
|
session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
@ -286,29 +418,53 @@ func (impl *WorkOrderServiceImplement) Delete(user *models.Usertab, entities *[] |
|
|
|
func (impl *WorkOrderServiceImplement) Select(user *models.Usertab, urlParameters map[string]string) (interface{}, error) { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/om/implments/WorkOrder.service.impl.go", "SelectWorkOrder", "查询WorkOrder") |
|
|
|
|
|
|
|
condition := DefaultConditionOfWorkOrderAndPaging |
|
|
|
engine := db.Eloquent.Master() |
|
|
|
session := engine.NewSession() |
|
|
|
defer session.Close() |
|
|
|
predicates, err := condition.BuildPredicates(urlParameters) |
|
|
|
var projectId string |
|
|
|
var artId string |
|
|
|
var timeStart string |
|
|
|
var timeEnd string |
|
|
|
var workOrderId string |
|
|
|
var orderType string |
|
|
|
var statusStr string |
|
|
|
var pageNumberStr string |
|
|
|
var pageSizeStr string |
|
|
|
projectId, _ = urlParameters["projectid"] |
|
|
|
artId, _ = urlParameters["artid"] |
|
|
|
workOrderId, _ = urlParameters["workorderid"] |
|
|
|
timeStart, _ = urlParameters["start"] |
|
|
|
timeEnd, _ = urlParameters["end"] |
|
|
|
orderType, _ = urlParameters["ordertype"] |
|
|
|
statusStr, _ = urlParameters["status"] |
|
|
|
pageNumberStr, _ = urlParameters["pageNumber"] |
|
|
|
pageSizeStr, _ = urlParameters["pageSize"] |
|
|
|
status, err := strconv.Atoi(statusStr) |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("status类型错误,error:" + err.Error()) |
|
|
|
} |
|
|
|
_, err = time.ParseInLocation("2006-01-02 15:04:05", timeStart, utils.TimezoneLocation) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
_, err = time.ParseInLocation("2006-01-02 15:04:05", timeEnd, utils.TimezoneLocation) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
pageNumber, err := strconv.Atoi(pageNumberStr) |
|
|
|
if err != nil { |
|
|
|
pageNumber = 1 |
|
|
|
} |
|
|
|
pageSize, err := strconv.Atoi(pageSizeStr) |
|
|
|
if err != nil { |
|
|
|
pageSize = 10 |
|
|
|
} |
|
|
|
dao := dal.NewWorkOrderDAO(session, user.Pid, user.Userid) |
|
|
|
if condition.Fill(urlParameters) { |
|
|
|
result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} else { |
|
|
|
result, err := dao.Select(predicates, condition.OrderByFields) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
result, err := dao.SelectByPage(projectId, artId, timeStart, timeEnd, workOrderId, orderType, status, pageNumber, pageSize) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
@ -341,3 +497,6 @@ func (impl *WorkOrderServiceImplement) Update(user *models.Usertab, entities *[] |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|