| | |
| | | |
| | | import ( |
| | | "apsClient/conf" |
| | | "apsClient/pkg/httpx" |
| | | "apsClient/model" |
| | | "apsClient/pkg/logx" |
| | | "errors" |
| | | ) |
| | | |
| | | type ProcessModel struct{} |
| | | |
| | | const ( |
| | | GetProcessModelUrl = "/api-s/v1/processParams/info" |
| | | ) |
| | | |
| | | type GetProcessModelParams struct { |
| | | WorkOrder string `json:"workOrder,omitempty" form:"workOrder"` //工序编号 |
| | | OrderId string `json:"orderId"` // 订单号 |
| | | Product string `json:"password"` // 产品 |
| | | Procedure string `json:"procedure"` // 工序 |
| | | Device string `json:"device"` // 设备 |
| | | } |
| | | type GetProcessModel struct { |
| | | Number string `json:"number"` //工艺模型编号 |
| | | OrderId string `json:"orderId"` //订单id |
| | | Product string `json:"product"` //产品名称 |
| | | Procedure string `json:"procedure"` //工序 |
| | | WorkOrder string `json:"workOrder"` //工单 |
| | | Device string `json:"device"` //设备 |
| | | ParamsMap map[string]interface{} `json:"paramsMap"` |
| | | func GetProcessModelList(offset, limit int, product, procedure string) (list []*model.ProcessModel, total int64, err error) { |
| | | device, err := model.NewDeviceSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First() |
| | | if err != nil { |
| | | return |
| | | } |
| | | list, total, err = model.NewProcessModelSearch(). |
| | | SetIsNew(true).SetOrder("id desc"). |
| | | SetProduct(product).SetProcedure(procedure). |
| | | SetPage(offset, limit).SetProcedures(device.ProceduresArr).Find() |
| | | return |
| | | } |
| | | |
| | | type GetProcessModelResponse struct { |
| | | Code int |
| | | Msg string |
| | | Data GetProcessModel |
| | | func GetOtherProcessModelList(offset, limit int, product, procedure string) (list []*model.ProcessModel, total int64, err error) { |
| | | device, err := model.NewDeviceSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First() |
| | | if err != nil { |
| | | return |
| | | } |
| | | list, total, err = model.NewProcessModelSearch(). |
| | | SetIsNew(true).SetOrder("id desc"). |
| | | SetProductAndProcedureNot(product, procedure). |
| | | SetPage(offset, limit).SetProcedures(device.ProceduresArr).Find() |
| | | return |
| | | } |
| | | |
| | | // GetProcessModel 获取工艺模型 |
| | | func (slf ProcessModel) GetProcessModel(params GetProcessModelParams) (GetProcessModel GetProcessModel, err error) { |
| | | resp := new(GetProcessModelResponse) |
| | | err = httpx.SendPostAndParseJson(conf.Conf.Services.ApsServer+GetProcessModelUrl, params, resp) |
| | | return resp.Data, err |
| | | func GetProcessModelByNumber(num string) (record *model.ProcessModel, err error) { |
| | | return model.NewProcessModelSearch().SetNumber(num).First() |
| | | } |
| | | |
| | | func GetProcessModelAddress(deviceID string) (addressMap map[string]int, err error) { |
| | | record, err := model.NewProcessModelPlcAddressSearch().SetDeviceID(deviceID).First() |
| | | if err != nil { |
| | | logx.Errorf("find process model plc address for device:%v, err:%v", deviceID, err) |
| | | return nil, err |
| | | } |
| | | if record.AddressList == nil { |
| | | return nil, errors.New("empty process model address list") |
| | | } |
| | | addressMap = make(map[string]int, len(record.AddressList)) |
| | | for _, item := range record.AddressList { |
| | | addressMap[item.Name] = item.Address |
| | | } |
| | | return addressMap, nil |
| | | } |