zhangqian
2023-09-13 0457f96716de8125560f332fcf718100b9f754eb
适应性改动
11个文件已修改
121 ■■■■ 已修改文件
api/v1/plc.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/task.go 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
conf/apsClient.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/docs.go 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.json 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/swagger.yaml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/common/common.go 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/response/common.go 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
nsq/msg_handler.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/index.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/task.go 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/plc.go
@@ -19,9 +19,9 @@
// @Produce   application/json
// @Param     object  body    request.SendProcessParams true  "查询参数"
// @Success   200   {object}  contextx.Response{data=response.ProductProgress}  "成功"
// @Router    /v1/plc/productProgress [get]
// @Router    /v1/plc/productProgress [post]
func (slf *PlcApi) GetProductProgress(c *gin.Context) {
    var params request.SendProcessParams
    var params request.GetProductProgress
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
api/v1/task.go
@@ -65,14 +65,10 @@
        params.PageSize = 1
    }
    taskDataList, count, code := service.NewTaskService().GetTask(params.Page, params.PageSize)
    taskResponse, code := service.NewTaskService().GetTask(params.Page, params.PageSize)
    if code != ecode.OK {
        ctx.Fail(code)
        return
    }
    taskResponse := &response.TaskResponse{
        Tasks:     taskDataList,
        TaskCount: count,
    }
    ctx.OkWithDetailed(taskResponse)
}
conf/apsClient.json
@@ -2,7 +2,7 @@
  "system": {
    "env": "develop",
    "port": 8003,
    "deviceId": "111",
    "deviceId": "qwwt",
    "netSetShellPath": "/data/network/",
    "netUpShellName": "up.sh",
    "netDownShellName": "down.sh"
docs/docs.go
@@ -153,7 +153,7 @@
            }
        },
        "/v1/plc/productProgress": {
            "get": {
            "post": {
                "produces": [
                    "application/json"
                ],
@@ -551,6 +551,13 @@
        "common.ProductProcedure": {
            "type": "object",
            "properties": {
                "allProcedureNames": {
                    "description": "所属工单工序列表",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deviceId": {
                    "type": "string"
                },
@@ -1050,6 +1057,13 @@
                },
                "procedure": {
                    "$ref": "#/definitions/model.Procedures"
                },
                "workers": {
                    "description": "人员列表",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.ProcedureWorker"
                    }
                }
            }
        }
docs/swagger.json
@@ -141,7 +141,7 @@
            }
        },
        "/v1/plc/productProgress": {
            "get": {
            "post": {
                "produces": [
                    "application/json"
                ],
@@ -539,6 +539,13 @@
        "common.ProductProcedure": {
            "type": "object",
            "properties": {
                "allProcedureNames": {
                    "description": "所属工单工序列表",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "deviceId": {
                    "type": "string"
                },
@@ -1038,6 +1045,13 @@
                },
                "procedure": {
                    "$ref": "#/definitions/model.Procedures"
                },
                "workers": {
                    "description": "人员列表",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/common.ProcedureWorker"
                    }
                }
            }
        }
docs/swagger.yaml
@@ -25,6 +25,11 @@
    type: object
  common.ProductProcedure:
    properties:
      allProcedureNames:
        description: 所属工单工序列表
        items:
          type: string
        type: array
      deviceId:
        type: string
      deviceName:
@@ -367,6 +372,11 @@
        type: integer
      procedure:
        $ref: '#/definitions/model.Procedures'
      workers:
        description: 人员列表
        items:
          $ref: '#/definitions/common.ProcedureWorker'
        type: array
    type: object
info:
  contact: {}
@@ -451,7 +461,7 @@
      tags:
      - Config
  /v1/plc/productProgress:
    get:
    post:
      parameters:
      - description: 查询参数
        in: body
model/common/common.go
@@ -44,9 +44,10 @@
        StartTime         int64                `gorm:"comment:计划开始时间" json:"startTime"`
        EndTime           int64                `gorm:"comment:计划结束时间" json:"endTime"`
        WorkHours         decimal.Decimal      `gorm:"type:decimal(35,18);comment:工时" json:"workHours"`
        InputMaterials    []*ProcedureMaterial `json:"inputMaterials"`  // 输入物料列表
        OutputMaterials   []*ProcedureMaterial `json:"outputMaterials"` // 输出物料列表
        Workers           []*ProcedureWorker   `json:"workers"`         // 人员列表
        InputMaterials    []*ProcedureMaterial `json:"inputMaterials"`    // 输入物料列表
        OutputMaterials   []*ProcedureMaterial `json:"outputMaterials"`   // 输出物料列表
        Workers           []*ProcedureWorker   `json:"workers"`           // 人员列表
        AllProcedureNames []string             `json:"allProcedureNames"` // 所属工单工序列表
    }
    DeliverScheduleTask struct {
model/response/common.go
@@ -2,6 +2,7 @@
import (
    "apsClient/model"
    "apsClient/model/common"
)
type PageResult struct {
@@ -19,8 +20,9 @@
}
type TaskData struct {
    Order                 *model.Order
    Procedure             *model.Procedures
    Order     *model.Order
    Procedure *model.Procedures
    Position              int //当前任务在设备第几个位置
    AllProcedures         []string
    CurrentProcedureIndex int
@@ -29,6 +31,7 @@
type TaskResponse struct {
    Tasks     []*TaskData
    TaskCount int64
    Workers   []*common.ProcedureWorker `json:"workers"` // 人员列表
}
type Config struct {
nsq/msg_handler.go
@@ -49,7 +49,6 @@
        }
        procedureRecords := make([]*model.Procedures, 0, len(task.Procedures))
        procedureIds := make([]string, 0, len(task.Procedures))
        for _, procedure := range task.Procedures {
            procedureRecord := model.Procedures{
                WorkOrderID:    task.WorkOrder.WorkOrderID,
@@ -67,7 +66,6 @@
            }
            procedureRecord.ProcedureData = string(procedureData)
            procedureRecords = append(procedureRecords, &procedureRecord)
            procedureIds = append(procedureIds, procedure.ProcedureID)
        }
        var orderRecord model.Order
router/index.go
@@ -54,8 +54,8 @@
    plcApi := new(v1.PlcApi)
    plcGroup := v1Group.Group("plc")
    {
        plcGroup.GET("productProgress", plcApi.GetProductProgress) // 获取网络配置
        plcGroup.POST("setProductNumber", plcApi.SetProductNumber) // 下发生产总量
        plcGroup.POST("productProgress", plcApi.GetProductProgress) // 获取网络配置
        plcGroup.POST("setProductNumber", plcApi.SetProductNumber)  // 下发生产总量
    }
    InitPlcBrandRouter(v1Group)
service/task.go
@@ -24,7 +24,10 @@
}
// GetTask 获取任务,未完成的开始时间最早的任务
func (slf TaskService) GetTask(page, pageSize int) (taskDataList []*response.TaskData, count int64, code int) {
func (slf TaskService) GetTask(page, pageSize int) (taskResp *response.TaskResponse, code int) {
    var taskList []*response.TaskData
    var count int64
    var workers []*common.ProcedureWorker
    nowTs := time.Now().Unix()
    var (
        err          error
@@ -39,17 +42,17 @@
        SetPage(page, pageSize).
        FindNotTotal()
    if err != nil {
        return nil, 0, ecode.DBErr
        return nil, ecode.DBErr
    }
    count, err = model.NewProceduresSearch(nil).
        SetDeviceId(conf.Conf.System.DeviceId).
        SetStatusNot(model.ProcedureStatusFinished).
        Count()
    if err != nil {
        return nil, 0, ecode.DBErr
        return nil, ecode.DBErr
    }
    if len(procedures) == 0 {
        return nil, 0, ecode.OK
        return nil, ecode.OK
    }
    for _, procedure := range procedures {
@@ -57,7 +60,7 @@
    }
    orders, err = model.NewOrderSearch(nil).SetWorkOrderIds(workOrderIds).FindNotTotal() //由工序反推工单
    if err != nil {
        return nil, 0, ecode.DBErr
        return nil, ecode.DBErr
    }
    orderMap := make(map[string]*model.Order, len(workOrderIds))
@@ -68,13 +71,39 @@
        taskData := response.TaskData{
            Order:                 orderMap[procedure.WorkOrderID],
            Procedure:             procedure,
            AllProcedures:         nil,
            AllProcedures:         procedure.ProceduresInfo.AllProcedureNames,
            CurrentProcedureIndex: 0,
            Position:              procedure.Position,
        }
        taskDataList = append(taskDataList, &taskData)
        index := 0
        for _, name := range procedure.ProceduresInfo.AllProcedureNames {
            if name == procedure.ProceduresInfo.ProcedureName {
                break
            }
            index++
        }
        taskData.CurrentProcedureIndex = index
        taskList = append(taskList, &taskData)
        workers = append(workers, procedure.ProceduresInfo.Workers...)
    }
    return taskDataList, count, ecode.OK
    taskResp = &response.TaskResponse{
        Tasks:     taskList,
        TaskCount: count,
        Workers:   slf.WorkerDistinct(workers),
    }
    return taskResp, ecode.OK
}
func (slf TaskService) WorkerDistinct(workers []*common.ProcedureWorker) (NoRepeatedWorkers []*common.ProcedureWorker) {
    exists := make(map[string]bool, 0)
    for _, worker := range workers {
        key := fmt.Sprintf("%v%v", worker.WorkerID, worker.StartTime)
        if !exists[key] {
            NoRepeatedWorkers = append(NoRepeatedWorkers, worker)
            exists[key] = true
        }
    }
    return NoRepeatedWorkers
}
func (slf TaskService) GetProcedureById(id int) (*model.Procedures, int) {