| | |
| | | *.test |
| | | apsClient |
| | | aps.db |
| | | .idea |
| | | .idea |
| | | logs |
| | |
| | | ctx.Fail(code) |
| | | return |
| | | } |
| | | order, err := service.NewTaskService().GetOrderByOrderId(procedure.OrderID) |
| | | order, err := service.NewTaskService().GetOrderByWorkOrderId(procedure.WorkOrderID) |
| | | if err != nil { |
| | | ctx.Fail(ecode.UnknownErr) |
| | | return |
| | | } |
| | | |
| | | params := service.GetProcessModelParams{ |
| | | WorkOrder: "", |
| | | WorkOrder: procedure.WorkOrderID, |
| | | OrderId: procedure.OrderID, |
| | | Product: order.ProductName, |
| | | Procedure: procedure.ProceduresInfo.ProcedureName, |
| | | Device: procedure.ProceduresInfo.DeviceID, |
| | | Device: procedure.ProceduresInfo.DeviceName, |
| | | } |
| | | |
| | | resp, err := service.ProcessModel{}.GetProcessModel(params) |
| | |
| | | ctx.Fail(code) |
| | | return |
| | | } |
| | | order, err := service.NewTaskService().GetOrderByOrderId(procedure.OrderID) |
| | | order, err := service.NewTaskService().GetOrderByWorkOrderId(procedure.WorkOrderID) |
| | | if err != nil { |
| | | ctx.Fail(ecode.UnknownErr) |
| | | return |
| | |
| | | Procedures struct { |
| | | gorm.Model `json:"-"` |
| | | ID int `gorm:"primarykey"` |
| | | WorkOrderID string `gorm:"index;type:varchar(191);not null;comment:工单ID" json:"-"` |
| | | OrderID string `gorm:"index;type:varchar(191);not null;comment:订单ID" json:"-"` |
| | | Status ProcedureStatus `json:"-"` |
| | | ProcedureData string `json:"-"` //request.ProductProcedure json串 |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProceduresSearch) SetOrderId(orderId string) *ProceduresSearch { |
| | | slf.OrderID = orderId |
| | | func (slf *ProceduresSearch) SetWorkOrderId(orderId string) *ProceduresSearch { |
| | | slf.WorkOrderID = orderId |
| | | return slf |
| | | } |
| | | func (slf *ProceduresSearch) SetStartTimeMax(ts int64) *ProceduresSearch { |
| | |
| | | db = db.Order(slf.Order) |
| | | } |
| | | |
| | | if slf.OrderID != "" { |
| | | db = db.Where("order_id = ?", slf.OrderID) |
| | | if slf.WorkOrderID != "" { |
| | | db = db.Where("work_order_id = ?", slf.WorkOrderID) |
| | | } |
| | | |
| | | if slf.Preload { |
| | |
| | | |
| | | // 排程任务下发 |
| | | type ( |
| | | Order struct { |
| | | WorkOrder struct { |
| | | WorkOrderID string `json:"workOrderId"` |
| | | OrderID string `gorm:"index;type:varchar(191);not null;comment:订单ID" json:"orderId"` |
| | | ProductID string `gorm:"type:varchar(191);comment:产品ID" json:"productId"` |
| | | ProductName string `gorm:"type:varchar(191);comment:产品名称" json:"productName"` |
| | |
| | | WorkerID string `gorm:"type:varchar(2048);comment:人员ID" json:"workerId"` |
| | | WorkerName string `gorm:"unique;type:varchar(191);not null;comment:人员姓名" json:"workerName"` |
| | | PhoneNum string `gorm:"type:varchar(191);comment:手机号" json:"phoneNum"` |
| | | StartTime int64 `gorm:"comment:开始时间" json:"startTime"` |
| | | EndTime int64 `gorm:"comment:结束时间" json:"endTime"` |
| | | } |
| | | |
| | | ProductProcedure struct { |
| | | ProcedureID string `gorm:"uniqueIndex:idx_product_procedure;type:varchar(191);comment:工序ID" json:"procedureId"` |
| | | ProcedureName string `gorm:"type:varchar(191);comment:工序名称,仅查询用" json:"procedureName"` |
| | | DeviceID string `gorm:"type:varchar(191);not null;comment:设备ID" json:"deviceId"` |
| | | DeviceName string `gorm:"type:varchar(191);not null;comment:设备名称" json:"deviceName"` |
| | | StartTime int64 `gorm:"comment:计划开始时间" json:"startTime"` |
| | | EndTime int64 `gorm:"comment:计划结束时间" json:"endTime"` |
| | | WorkHours decimal.Decimal `gorm:"type:decimal(35,18);comment:工时" json:"workHours"` |
| | |
| | | } |
| | | |
| | | DeliverScheduleTask struct { |
| | | Order Order `json:"order"` |
| | | WorkOrder WorkOrder `json:"workOrder"` |
| | | Procedures []*ProductProcedure `json:"procedures"` // 工序列表 |
| | | } |
| | | ) |
File was renamed from model/order.go |
| | |
| | | type ( |
| | | Order struct { |
| | | gorm.Model `json:"-"` |
| | | WorkOrderID string `gorm:"index;type:varchar(191);not null;comment:工单ID" json:"workOrderId"` |
| | | OrderID string `gorm:"index;type:varchar(191);not null;comment:订单ID" json:"orderId"` |
| | | ProductID string `gorm:"type:varchar(191);comment:产品ID" json:"productId"` |
| | | ProductName string `gorm:"type:varchar(191);comment:产品名称" json:"productName"` |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *OrderSearch) SetOrderId(orderId string) *OrderSearch { |
| | | slf.OrderID = orderId |
| | | func (slf *OrderSearch) SetWorkOrderId(workOrderId string) *OrderSearch { |
| | | slf.WorkOrderID = workOrderId |
| | | return slf |
| | | } |
| | | |
| | |
| | | db = db.Order(slf.OrderBy) |
| | | } |
| | | |
| | | if slf.OrderID != "" { |
| | | db = db.Where("order_id = ?", slf.OrderID) |
| | | if slf.WorkOrderID != "" { |
| | | db = db.Where("work_order_id = ?", slf.OrderID) |
| | | } |
| | | |
| | | if slf.Status != 0 { |
| | |
| | | import ( |
| | | "apsClient/conf" |
| | | "apsClient/model" |
| | | "apsClient/model/request" |
| | | "apsClient/pkg/logx" |
| | | "apsClient/pkg/structx" |
| | | "encoding/json" |
| | |
| | | func (slf *ScheduleTask) HandleMessage(data []byte) (err error) { |
| | | fmt.Println(string(data)) |
| | | |
| | | var tasks = make([]*DeliverScheduleTask, 0) |
| | | var tasks = make([]*request.DeliverScheduleTask, 0) |
| | | |
| | | err = json.Unmarshal(data, &tasks) |
| | | if err != nil { |
| | |
| | | for _, procedure := range task.Procedures { |
| | | if procedure.DeviceID == conf.Conf.System.DeviceId { //只存储本设备的工序 |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | _, err := model.NewOrderSearch(db).SetOrderId(task.Order.OrderID).First() |
| | | _, err := model.NewOrderSearch(db).SetWorkOrderId(task.WorkOrder.WorkOrderID).First() |
| | | if err == gorm.ErrRecordNotFound { |
| | | var orderRecord model.Order |
| | | err = structx.AssignTo(task.Order, &orderRecord) |
| | | err = structx.AssignTo(task.WorkOrder, &orderRecord) |
| | | orderRecord.Status = model.OrderStatusUnFinished |
| | | if err != nil { |
| | | logx.Errorf(" structx.Assign task.Order to orderRecord err: %v", err.Error()) |
| | |
| | | } |
| | | } |
| | | procedureRecord := model.Procedures{ |
| | | OrderID: task.Order.OrderID, |
| | | Status: model.ProcedureStatusUnFinished, |
| | | WorkOrderID: task.WorkOrder.WorkOrderID, |
| | | OrderID: task.WorkOrder.OrderID, |
| | | Status: model.ProcedureStatusUnFinished, |
| | | } |
| | | procedureData, err := json.Marshal(procedure) |
| | | procedureRecord.ProcedureData = string(procedureData) |
| | |
| | | return nil, ecode.DBErr |
| | | } |
| | | procedure, err := model.NewProceduresSearch(nil). |
| | | SetOrderId(order.OrderID). |
| | | SetWorkOrderId(order.WorkOrderID). |
| | | SetStartTimeMax(nowTs). |
| | | SetStatus(model.ProcedureStatusUnFinished). |
| | | First() |
| | | if err == gorm.ErrRecordNotFound { //该订单本设备全部工序完成,把订单置为完成状态(只是对本设备完成) |
| | | err = nil |
| | | err = model.NewOrderSearch(nil).SetOrderId(order.OrderID).UpdateByMap(map[string]interface{}{ |
| | | err = model.NewOrderSearch(nil).SetWorkOrderId(order.WorkOrderID).UpdateByMap(map[string]interface{}{ |
| | | "status": model.OrderStatusFinished, |
| | | }) |
| | | if err != nil { |
| | |
| | | }) |
| | | } |
| | | |
| | | func (slf TaskService) GetOrderByOrderId(orderId string) (order *model.Order, err error) { |
| | | return model.NewOrderSearch(nil).SetOrderId(orderId).First() |
| | | func (slf TaskService) GetOrderByWorkOrderId(workOrderId string) (order *model.Order, err error) { |
| | | return model.NewOrderSearch(nil).SetWorkOrderId(workOrderId).First() |
| | | } |