fix
zhangqian
2023-12-01 8324f872ef3a4d0c978a9b1d062800c6a1701c12
service/process_model.go
@@ -2,41 +2,51 @@
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
}