From 2d6875c93b25d0b7336c7fa11e066d213259fe2e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 25 四月 2024 10:02:01 +0800
Subject: [PATCH] 更改定时任务时区设置

---
 docs/docs.go | 1628 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 1,589 insertions(+), 39 deletions(-)

diff --git a/docs/docs.go b/docs/docs.go
index 4b11609..b9d034b 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -16,7 +16,7 @@
     "host": "{{.Host}}",
     "basePath": "{{.BasePath}}",
     "paths": {
-        "/v1/cc/nn": {
+        "/v1/config/net": {
             "get": {
                 "produces": [
                     "application/json"
@@ -49,7 +49,7 @@
                     }
                 }
             },
-            "put": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
@@ -93,7 +93,7 @@
                 }
             }
         },
-        "/v1/config/net": {
+        "/v1/config/plc": {
             "get": {
                 "produces": [
                     "application/json"
@@ -101,7 +101,7 @@
                 "tags": [
                     "Config"
                 ],
-                "summary": "鑾峰彇缃戠粶閰嶇疆",
+                "summary": "鑾峰彇plc閰嶇疆",
                 "responses": {
                     "200": {
                         "description": "鎴愬姛",
@@ -114,10 +114,7 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/definitions/model.NetConfig"
-                                            }
+                                            "$ref": "#/definitions/model.DevicePlc"
                                         }
                                     }
                                 }
@@ -126,22 +123,174 @@
                     }
                 }
             },
-            "put": {
+            "post": {
                 "produces": [
                     "application/json"
                 ],
                 "tags": [
                     "Config"
                 ],
-                "summary": "璁剧疆缃戠粶閰嶇疆",
+                "summary": "鏇存柊plc閰嶇疆",
                 "parameters": [
                     {
-                        "description": "鍙傛暟",
+                        "description": "鏌ヨ鍙傛暟",
                         "name": "object",
                         "in": "body",
                         "required": true,
                         "schema": {
-                            "$ref": "#/definitions/model.NetConfig"
+                            "$ref": "#/definitions/request.UpdatePlc"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/dashboard/dashboard": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "椹鹃┒鑸�"
+                ],
+                "summary": "椹鹃┒鑸�",
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/model.Dashboard"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/device/config": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "璁惧"
+                ],
+                "summary": "璁剧疆璁惧涓�浜涢厤缃�",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.DeviceConfig"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/device/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "璁惧"
+                ],
+                "summary": "鑾峰彇褰撳墠闈㈡澘缁戝畾鐨勮澶囧垪琛�",
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.DeviceListResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/device/setCurrentDeviceId": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "璁惧"
+                ],
+                "summary": "璁剧疆褰撳墠璁惧id",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.SetCurrentDevice"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/plc/productProgress": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "鐢熶骇鏁伴噺"
+                ],
+                "summary": "鑾峰彇鐢熶骇杩涘害",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.GetProductProgress"
                         }
                     }
                 ],
@@ -157,14 +306,30 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/definitions/response.ProcessParams"
-                                            }
+                                            "$ref": "#/definitions/response.ProductProgress"
                                         }
                                     }
                                 }
                             ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/plc/setProductNumber": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "鐢熶骇鏁伴噺"
+                ],
+                "summary": "璁剧疆鐢熶骇鎬婚噺",
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
                         }
                     }
                 }
@@ -292,6 +457,211 @@
                 }
             }
         },
+        "/v1/processModel/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "宸ヨ壓妯″瀷"
+                ],
+                "summary": "鑾峰彇宸ヨ壓妯″瀷鍒楄〃",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "椤电爜",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "姣忛〉澶у皬",
+                        "name": "pageSize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "褰撳墠鐨勫伐搴廼d",
+                        "name": "procedureId",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "array",
+                                            "items": {
+                                                "$ref": "#/definitions/model.ProcessModel"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/reportWork/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "鎶ュ伐"
+                ],
+                "summary": "鎶ュ伐鍒楄〃",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "椤电爜",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "姣忛〉澶у皬",
+                        "name": "pageSize",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "宸ュ簭id",
+                        "name": "procedureId",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.ResponseList"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "array",
+                                            "items": {
+                                                "$ref": "#/definitions/model.ReportWork"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/reportWork/report": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "鎶ュ伐"
+                ],
+                "summary": "涓婃姤",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.ReportWork"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/system/problemList": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "绯荤粺"
+                ],
+                "summary": "闂璇婃柇/闂鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "array",
+                                            "items": {
+                                                "$ref": "#/definitions/problem.CheckResult"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/task/countdown": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "Task"
+                ],
+                "summary": "鏂颁换鍔″�掕鏃�",
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.TaskCountdown"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
         "/v1/task/finish/{id}": {
             "put": {
                 "produces": [
@@ -329,6 +699,40 @@
                     "Task"
                 ],
                 "summary": "鑾峰彇浠诲姟",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "椤电爜",
+                        "name": "page",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "姣忛〉澶у皬",
+                        "name": "pageSize",
+                        "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2,
+                            3
+                        ],
+                        "type": "integer",
+                        "x-enum-comments": {
+                            "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                            "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                            "TaskModeUnStarted": "鏈紑濮嬬殑"
+                        },
+                        "x-enum-varnames": [
+                            "TaskModeUnStarted",
+                            "TaskModeCurrent",
+                            "TaskModeLastFinished"
+                        ],
+                        "name": "taskMode",
+                        "in": "query"
+                    }
+                ],
                 "responses": {
                     "200": {
                         "description": "鎴愬姛",
@@ -341,7 +745,7 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "$ref": "#/definitions/response.TaskData"
+                                            "$ref": "#/definitions/response.TaskResponse"
                                         }
                                     }
                                 }
@@ -351,7 +755,82 @@
                 }
             }
         },
-        "/v1/task/sendProcessParams/{id}": {
+        "/v1/task/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "Task"
+                ],
+                "summary": "鑾峰彇浠诲姟鍒楄〃2",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "閫氶亾鍙枫�備笉浼犲彇鍏ㄩ儴鐨�",
+                        "name": "channel",
+                        "in": "query"
+                    },
+                    {
+                        "type": "string",
+                        "name": "deviceID",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "榛樿3",
+                        "name": "limit",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "榛樿0",
+                        "name": "offset",
+                        "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2,
+                            3
+                        ],
+                        "type": "integer",
+                        "x-enum-varnames": [
+                            "QueryTypeUnFinish",
+                            "QueryTypeToday",
+                            "QueryTypeFinished"
+                        ],
+                        "description": "1 鏈畬鎴� 2 浠婂ぉ鏈畬鎴� 3 宸插畬鎴�",
+                        "name": "type",
+                        "in": "query"
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "type": "object",
+                                            "additionalProperties": {
+                                                "$ref": "#/definitions/response.TaskResponse"
+                                            }
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/task/sendProcessParams": {
             "post": {
                 "produces": [
                     "application/json"
@@ -359,14 +838,16 @@
                 "tags": [
                     "Task"
                 ],
-                "summary": "涓嬪彂宸ヨ壓鍙傛暟",
+                "summary": "涓嬪彂宸ヨ壓鍙傛暟锛堝紑濮嬩换鍔★級",
                 "parameters": [
                     {
-                        "type": "integer",
-                        "description": "宸ュ簭id",
-                        "name": "id",
-                        "in": "path",
-                        "required": true
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.SendProcessParams"
+                        }
                     }
                 ],
                 "responses": {
@@ -387,7 +868,7 @@
                 "tags": [
                     "Task"
                 ],
-                "summary": "浠诲姟寮�濮�",
+                "summary": "浠诲姟寮�濮嬶紙鑾峰彇宸ヨ壓鍙傛暟锛�",
                 "parameters": [
                     {
                         "type": "integer",
@@ -409,14 +890,41 @@
                                     "type": "object",
                                     "properties": {
                                         "data": {
-                                            "type": "array",
-                                            "items": {
-                                                "$ref": "#/definitions/response.ProcessParams"
-                                            }
+                                            "$ref": "#/definitions/response.ProcessParamsResponse"
                                         }
                                     }
                                 }
                             ]
+                        }
+                    }
+                }
+            }
+        },
+        "/v1/task/updateProcessParams": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "Task"
+                ],
+                "summary": "鏇存柊宸ヨ壓鍙傛暟锛堣繘琛屼腑鐨勪换鍔★級",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.SendProcessParams"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "鎴愬姛",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
                         }
                     }
                 }
@@ -464,6 +972,17 @@
         "common.ProductProcedure": {
             "type": "object",
             "properties": {
+                "allProcedureNames": {
+                    "description": "鎵�灞炲伐鍗曞伐搴忓垪琛�",
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    }
+                },
+                "channel": {
+                    "description": "閫氶亾搴忓彿",
+                    "type": "integer"
+                },
                 "deviceId": {
                     "type": "string"
                 },
@@ -480,6 +999,12 @@
                         "$ref": "#/definitions/common.ProcedureMaterial"
                     }
                 },
+                "nextProcedureId": {
+                    "type": "string"
+                },
+                "nextProcedureName": {
+                    "type": "string"
+                },
                 "outputMaterials": {
                     "description": "杈撳嚭鐗╂枡鍒楄〃",
                     "type": "array",
@@ -491,6 +1016,9 @@
                     "type": "string"
                 },
                 "procedureName": {
+                    "type": "string"
+                },
+                "productProcedureID": {
                     "type": "string"
                 },
                 "startTime": {
@@ -508,6 +1036,136 @@
                 }
             }
         },
+        "conf.Prompt": {
+            "type": "object",
+            "properties": {
+                "plcNotConnected": {
+                    "type": "string"
+                },
+                "safeProduce": {
+                    "type": "string"
+                }
+            }
+        },
+        "constvar.Parity": {
+            "type": "integer",
+            "enum": [
+                1,
+                2,
+                3
+            ],
+            "x-enum-comments": {
+                "ParityEven": "濂囨牎楠�",
+                "ParityNull": "鏃犳牎楠�",
+                "ParityOdd": "鍋舵牎楠�"
+            },
+            "x-enum-varnames": [
+                "ParityEven",
+                "ParityOdd",
+                "ParityNull"
+            ]
+        },
+        "constvar.PlcMethod": {
+            "type": "string",
+            "enum": [
+                "modbusTCP",
+                "modbusRTU",
+                "serial",
+                "缃戠粶",
+                "涓插彛"
+            ],
+            "x-enum-varnames": [
+                "PlcMethodModbusTCP",
+                "PlcMethodModbusRTU",
+                "PlcMethodSerial",
+                "PlcMethodModbusTCPChinese",
+                "PlcMethodSerialChinese"
+            ]
+        },
+        "constvar.PlcStartAddressType": {
+            "type": "integer",
+            "enum": [
+                1,
+                2
+            ],
+            "x-enum-varnames": [
+                "PlcStartAddressTypeFinishNumber",
+                "PlcStartAddressTypeTotalNumber"
+            ]
+        },
+        "constvar.PlcStartAddressValueType": {
+            "type": "string",
+            "enum": [
+                "string",
+                "int16",
+                "int32"
+            ],
+            "x-enum-varnames": [
+                "PlcStartAddressValueTypeString",
+                "PlcStartAddressValueTypeInt16",
+                "PlcStartAddressValueTypeInt32"
+            ]
+        },
+        "constvar.ProblemCode": {
+            "type": "string",
+            "enum": [
+                "service",
+                "network",
+                "db",
+                "serf",
+                "cloud",
+                "device",
+                "process_model",
+                "plc_config",
+                "plc_address_list",
+                "plc_process_model_address_list",
+                "plc_connect"
+            ],
+            "x-enum-comments": {
+                "ProblemCodeCloud": "鏈繛鎺ヤ簯绔�",
+                "ProblemCodeDB": "鏁版嵁搴撹繛鎺ラ敊璇�",
+                "ProblemCodeDevice": "鏈粦瀹氳澶�",
+                "ProblemCodeNetwork": "缃戠粶閿欒",
+                "ProblemCodePlcAddressList": "plc鍦板潃琛ㄧ己澶�",
+                "ProblemCodePlcConfig": "plc閰嶇疆缂哄け",
+                "ProblemCodePlcConnect": "plc杩炴帴澶辫触",
+                "ProblemCodePlcProcessModelAddressList": "plc鍦板潃琛ㄧ己澶�",
+                "ProblemCodeProcessModel": "宸ヨ壓鍙傛暟缂哄け",
+                "ProblemCodeSerf": "鏈姞鍏erf闆嗙兢",
+                "ProblemCodeService": "鏈嶅姟涓嶅彲鐢�"
+            },
+            "x-enum-varnames": [
+                "ProblemCodeService",
+                "ProblemCodeNetwork",
+                "ProblemCodeDB",
+                "ProblemCodeSerf",
+                "ProblemCodeCloud",
+                "ProblemCodeDevice",
+                "ProblemCodeProcessModel",
+                "ProblemCodePlcConfig",
+                "ProblemCodePlcAddressList",
+                "ProblemCodePlcProcessModelAddressList",
+                "ProblemCodePlcConnect"
+            ]
+        },
+        "constvar.TaskMode": {
+            "type": "integer",
+            "enum": [
+                1,
+                2,
+                3
+            ],
+            "x-enum-comments": {
+                "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                "TaskModeUnStarted": "鏈紑濮嬬殑"
+            },
+            "x-enum-varnames": [
+                "TaskModeUnStarted",
+                "TaskModeCurrent",
+                "TaskModeLastFinished"
+            ]
+        },
         "contextx.Response": {
             "type": "object",
             "properties": {
@@ -520,6 +1178,305 @@
                 }
             }
         },
+        "contextx.ResponseList": {
+            "type": "object",
+            "properties": {
+                "code": {
+                    "type": "integer"
+                },
+                "data": {},
+                "msg": {
+                    "type": "string"
+                },
+                "total": {
+                    "type": "integer"
+                }
+            }
+        },
+        "model.CommonStats": {
+            "type": "object",
+            "properties": {
+                "name": {
+                    "type": "string"
+                },
+                "value": {
+                    "type": "string"
+                }
+            }
+        },
+        "model.Dashboard": {
+            "type": "object",
+            "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "delayWorkOrderAmount": {
+                    "description": "寤舵湡浜や粯宸ュ崟鏁�",
+                    "type": "integer"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "deviceLoad": {
+                    "description": "璁惧璐熻嵎瀵规瘮鍒嗘瀽",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "deviceLoadData": {
+                    "description": "璁惧璐熻嵎瀵规瘮鍒嗘瀽",
+                    "type": "string"
+                },
+                "deviceRunningAmount": {
+                    "description": "寮�鏈哄彴鏁�",
+                    "type": "integer"
+                },
+                "externalDeviceRunningAmount": {
+                    "description": "澶栧姞宸ュ彴鏁�",
+                    "type": "integer"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "inMaintenanceDeviceAmount": {
+                    "description": "缁翠慨涓澶囨暟",
+                    "type": "integer"
+                },
+                "internalDeviceRunningAmount": {
+                    "description": "鑷湁寮�鏈哄彴鏁�",
+                    "type": "integer"
+                },
+                "materialMissWorkOrderAmount": {
+                    "description": "鐗╂枡涓嶈冻宸ュ崟鏁�",
+                    "type": "integer"
+                },
+                "materialRequirement": {
+                    "description": "鐗╂枡闇�姹傜粺璁�",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "materialRequirementData": {
+                    "description": "鐗╂枡闇�姹傜粺璁�",
+                    "type": "string"
+                },
+                "orderFinishRate": {
+                    "description": "璁㈠崟瀹屾垚姣旂巼",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "orderFinishRateData": {
+                    "description": "璁㈠崟瀹屾垚姣旂巼",
+                    "type": "string"
+                },
+                "outPlanProductionAmount": {
+                    "description": "璁″垝澶栧姞宸ユ暟",
+                    "type": "integer"
+                },
+                "personnelProductivity": {
+                    "description": "浜哄憳鐢熶骇鏁堢巼",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "personnelProductivityData": {
+                    "description": "浜哄憳鐢熶骇鏁堢巼",
+                    "type": "string"
+                },
+                "personnelSkillPercent": {
+                    "description": "浜哄憳鎶�鑳藉崰姣�",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "personnelSkillPercentData": {
+                    "description": "浜哄憳鎶�鑳藉崰姣�",
+                    "type": "string"
+                },
+                "planOrderFinishRate": {
+                    "description": "璁″垝杈炬垚鐜�",
+                    "type": "integer"
+                },
+                "planProductionAmount": {
+                    "description": "璁″垝鍔犲伐鏁�",
+                    "type": "integer"
+                },
+                "realExternalProductionAmount": {
+                    "description": "瀹為檯澶栧姞宸ユ暟",
+                    "type": "integer"
+                },
+                "realProductionAmount": {
+                    "description": "瀹為檯鐢熶骇鏁�",
+                    "type": "integer"
+                },
+                "todayFinishAmount": {
+                    "description": "杞﹂棿褰撴棩鍚堣鐢熶骇",
+                    "type": "integer"
+                },
+                "todayQualifiedRate": {
+                    "description": "杞﹂棿褰撴棩姝e搧鐜�",
+                    "type": "string"
+                },
+                "totalDeviceAmount": {
+                    "description": "鎬昏澶囨暟",
+                    "type": "integer"
+                },
+                "totalProductionAmount": {
+                    "description": "鎬讳骇閲�",
+                    "type": "integer"
+                },
+                "updatedAt": {
+                    "type": "string"
+                },
+                "version": {
+                    "type": "string"
+                },
+                "workOrderAmount": {
+                    "description": "鐢熶骇宸ュ崟鏁�",
+                    "type": "integer"
+                },
+                "workOrderStats": {
+                    "description": "宸ュ崟杩涘害缁熻",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.WorkOrderStats"
+                    }
+                },
+                "workOrderStatsData": {
+                    "description": "宸ュ崟杩涘害缁熻",
+                    "type": "string"
+                },
+                "workerTypeStats": {
+                    "description": "浜哄憳宸ョ鍒嗘瀽",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.CommonStats"
+                    }
+                },
+                "workerTypeStatsData": {
+                    "description": "浜哄憳宸ョ鍒嗘瀽",
+                    "type": "string"
+                },
+                "workshopStats": {
+                    "description": "杞﹂棿缁熻",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.WorkshopStats"
+                    }
+                },
+                "workshopStatsData": {
+                    "description": "杞﹂棿缁熻",
+                    "type": "string"
+                }
+            }
+        },
+        "model.DevicePlc": {
+            "type": "object",
+            "properties": {
+                "address": {
+                    "description": "plc ip鍦板潃锛� method = modbusTCP鐢�",
+                    "type": "string"
+                },
+                "baudRate": {
+                    "description": "涓插彛娉㈢壒鐜囷紝 method = serial鏃� 鐢�",
+                    "type": "integer"
+                },
+                "brand": {
+                    "type": "string"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "dataBit": {
+                    "description": "鏁版嵁浣嶏紝method = modbusRTU 鐢�",
+                    "type": "integer"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "details": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.DevicePlcAddress"
+                    }
+                },
+                "deviceID": {
+                    "description": "璁惧缂栧彿",
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "isOpen": {
+                    "type": "boolean"
+                },
+                "method": {
+                    "$ref": "#/definitions/constvar.PlcMethod"
+                },
+                "parity": {
+                    "description": "鏍¢獙鏂瑰紡锛宮ethod = modbusRTU 鐢�",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.Parity"
+                        }
+                    ]
+                },
+                "port": {
+                    "description": "plc 绔彛鍙凤紝  method =  modbusTCP鐢�",
+                    "type": "integer"
+                },
+                "serialName": {
+                    "description": "涓插彛鍚嶇О锛宮ethod = serial鏃� 鐢�",
+                    "type": "string"
+                },
+                "stopBit": {
+                    "description": "鍋滄浣嶏紝method = modbusRTU 鐢�",
+                    "type": "integer"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
+        "model.DevicePlcAddress": {
+            "type": "object",
+            "properties": {
+                "channel": {
+                    "description": "鏁版嵁璧峰鍦板潃",
+                    "type": "integer"
+                },
+                "fieldName": {
+                    "description": "瀵瑰簲绯荤粺瀛楁",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.PlcStartAddressType"
+                        }
+                    ]
+                },
+                "length": {
+                    "description": "鏁版嵁闀垮害",
+                    "type": "integer"
+                },
+                "startAddress": {
+                    "description": "鏁版嵁璧峰鍦板潃",
+                    "type": "integer"
+                },
+                "type": {
+                    "description": "鏁版嵁绫诲瀷",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.PlcStartAddressValueType"
+                        }
+                    ]
+                }
+            }
+        },
         "model.NetConfig": {
             "type": "object",
             "required": [
@@ -529,6 +1486,12 @@
                 "networkCard"
             ],
             "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
                 "dns": {
                     "description": "dns",
                     "type": "string"
@@ -559,6 +1522,9 @@
                             "$ref": "#/definitions/model.NetConfigStatus"
                         }
                     ]
+                },
+                "updatedAt": {
+                    "type": "string"
                 }
             }
         },
@@ -583,13 +1549,22 @@
                 "amount": {
                     "type": "number"
                 },
+                "createdAt": {
+                    "type": "string"
+                },
                 "customer": {
+                    "type": "string"
+                },
+                "deletedAt": {
                     "type": "string"
                 },
                 "deliverDate": {
                     "type": "string"
                 },
                 "endTime": {
+                    "type": "integer"
+                },
+                "id": {
                     "type": "integer"
                 },
                 "orderAttr": {
@@ -617,6 +1592,9 @@
                 "unit": {
                     "type": "string"
                 },
+                "updatedAt": {
+                    "type": "string"
+                },
                 "workOrderId": {
                     "type": "string"
                 }
@@ -626,20 +1604,31 @@
             "type": "integer",
             "enum": [
                 1,
-                2
+                2,
+                3
             ],
             "x-enum-varnames": [
-                "OrderStatusUnFinished",
+                "OrderStatusWaitProcess",
+                "OrderStatusProcessing",
                 "OrderStatusFinished"
             ]
         },
         "model.PlcBrand": {
             "type": "object",
             "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
                 "id": {
                     "type": "integer"
                 },
                 "name": {
+                    "type": "string"
+                },
+                "updatedAt": {
                     "type": "string"
                 }
             }
@@ -648,17 +1637,35 @@
             "type": "integer",
             "enum": [
                 1,
-                2
+                2,
+                3
             ],
             "x-enum-varnames": [
-                "ProcedureStatusUnFinished",
+                "ProcedureStatusWaitProcess",
+                "ProcedureStatusProcessing",
                 "ProcedureStatusFinished"
             ]
         },
         "model.Procedures": {
             "type": "object",
             "properties": {
+                "channel": {
+                    "description": "閫氶亾",
+                    "type": "integer"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "deviceId": {
+                    "type": "string"
+                },
                 "endTime": {
+                    "type": "integer"
+                },
+                "finishedQuantity": {
                     "type": "integer"
                 },
                 "id": {
@@ -672,21 +1679,391 @@
                         }
                     ]
                 },
+                "procedureId": {
+                    "type": "string"
+                },
+                "processModelNumber": {
+                    "description": "宸ヨ壓妯″瀷缂栧彿",
+                    "type": "string"
+                },
+                "productProcedureID": {
+                    "description": "浜у搧宸ュ簭id",
+                    "type": "string"
+                },
+                "realEndTime": {
+                    "type": "integer"
+                },
+                "realStartTime": {
+                    "type": "integer"
+                },
                 "startTime": {
                     "type": "integer"
                 },
                 "status": {
                     "$ref": "#/definitions/model.ProcedureStatus"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
+        "model.ProcessModel": {
+            "type": "object",
+            "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "deviceId": {
+                    "description": "鐢ㄤ簬杩囨护鑾峰彇nsq娑堟伅",
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "isUpdate": {
+                    "description": "鍓嶇鐢�",
+                    "type": "boolean"
+                },
+                "newNumber": {
+                    "type": "string"
+                },
+                "newParamsMap": {
+                    "type": "object",
+                    "additionalProperties": true
+                },
+                "number": {
+                    "description": "宸ヨ壓妯″瀷缂栧彿",
+                    "type": "string"
+                },
+                "params": {
+                    "type": "string"
+                },
+                "paramsMap": {
+                    "type": "object",
+                    "additionalProperties": true
+                },
+                "procedure": {
+                    "description": "宸ュ簭",
+                    "type": "string"
+                },
+                "product": {
+                    "description": "浜у搧鍚嶇О",
+                    "type": "string"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
+        "model.ReportWork": {
+            "type": "object",
+            "properties": {
+                "barCode": {
+                    "description": "鏉″舰鐮�",
+                    "type": "string"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "deviceId": {
+                    "type": "string"
+                },
+                "deviceName": {
+                    "type": "string"
+                },
+                "endTime": {
+                    "type": "integer"
+                },
+                "finishAmount": {
+                    "description": "鏈鎶ュ伐 - 涓婃鎶ュ伐",
+                    "type": "integer"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "procedureId": {
+                    "type": "string"
+                },
+                "proceduresId": {
+                    "description": "procedures琛ㄧ殑id",
+                    "type": "integer"
+                },
+                "productProcedureID": {
+                    "description": "浜у搧宸ュ簭id",
+                    "type": "string"
+                },
+                "reportAmount": {
+                    "description": "鎶ュ伐鏁伴噺",
+                    "type": "integer"
+                },
+                "startTime": {
+                    "type": "integer"
+                },
+                "updatedAt": {
+                    "type": "string"
+                },
+                "workOrderId": {
+                    "type": "string"
+                },
+                "workerID": {
+                    "description": "鎶ュ伐浜篿d",
+                    "type": "string"
+                },
+                "workerName": {
+                    "description": "鎶ュ伐浜哄鍚�",
+                    "type": "string"
+                },
+                "workerTime": {
+                    "description": "宸ユ椂锛屽崟浣嶇",
+                    "type": "integer"
+                }
+            }
+        },
+        "model.WorkOrderStats": {
+            "type": "object",
+            "properties": {
+                "amount": {
+                    "description": "鐢熶骇鏁伴噺",
+                    "type": "integer"
+                },
+                "delayDays": {
+                    "description": "寤舵湡澶╂暟",
+                    "type": "integer"
+                },
+                "finishProcedureNum": {
+                    "description": "宸插畬鎴愬伐搴忔暟閲�",
+                    "type": "integer"
+                },
+                "number": {
+                    "description": "缂栧彿",
+                    "type": "string"
+                },
+                "planTime": {
+                    "description": "璁″垝鏃堕棿",
+                    "type": "string"
+                },
+                "procedureNum": {
+                    "description": "宸ュ簭鏁伴噺",
+                    "type": "integer"
+                },
+                "processingProcedureNum": {
+                    "description": "杩涜涓伐搴忔暟閲�",
+                    "type": "integer"
+                },
+                "product": {
+                    "description": "浜у搧",
+                    "type": "string"
+                },
+                "scale": {
+                    "description": "瑙勬牸",
+                    "type": "string"
+                }
+            }
+        },
+        "model.WorkshopStats": {
+            "type": "object",
+            "properties": {
+                "defective": {
+                    "description": "娆″搧鏁伴噺",
+                    "type": "integer"
+                },
+                "name": {
+                    "description": "杞﹂棿鍚嶇О",
+                    "type": "string"
+                },
+                "percent": {
+                    "description": "姝e搧鐜�",
+                    "type": "integer"
+                },
+                "qualified": {
+                    "description": "姝e搧鏁伴噺",
+                    "type": "integer"
+                },
+                "total": {
+                    "description": "鐢熶骇鎬绘暟",
+                    "type": "integer"
+                }
+            }
+        },
+        "problem.CheckResult": {
+            "type": "object",
+            "properties": {
+                "checkResult": {
+                    "type": "boolean"
+                },
+                "itemCode": {
+                    "$ref": "#/definitions/constvar.ProblemCode"
+                },
+                "itemName": {
+                    "type": "string"
                 }
             }
         },
         "request.AddPlcBrand": {
             "type": "object",
             "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
                 "id": {
                     "type": "integer"
                 },
                 "name": {
+                    "type": "string"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.DeviceConfig": {
+            "type": "object",
+            "properties": {
+                "needSetProcessParams": {
+                    "description": "鏄惁闇�瑕佽缃伐鑹哄弬鏁�",
+                    "type": "boolean"
+                }
+            }
+        },
+        "request.GetProductProgress": {
+            "type": "object",
+            "properties": {
+                "channel": {
+                    "type": "integer"
+                },
+                "procedureId": {
+                    "type": "integer"
+                }
+            }
+        },
+        "request.QueryType": {
+            "type": "integer",
+            "enum": [
+                1,
+                2,
+                3
+            ],
+            "x-enum-varnames": [
+                "QueryTypeUnFinish",
+                "QueryTypeToday",
+                "QueryTypeFinished"
+            ]
+        },
+        "request.ReportWork": {
+            "type": "object",
+            "required": [
+                "procedureId",
+                "reportAmount",
+                "workerID"
+            ],
+            "properties": {
+                "procedureId": {
+                    "description": "宸ュ簭id",
+                    "type": "integer"
+                },
+                "reportAmount": {
+                    "description": "鎶ュ伐鏁伴噺",
+                    "type": "integer"
+                },
+                "workerID": {
+                    "description": "鎶ュ憡鑰卛d",
+                    "type": "string"
+                }
+            }
+        },
+        "request.SendProcessParams": {
+            "type": "object",
+            "required": [
+                "procedureId"
+            ],
+            "properties": {
+                "procedureId": {
+                    "type": "integer"
+                }
+            }
+        },
+        "request.SetCurrentDevice": {
+            "type": "object",
+            "properties": {
+                "currentDeviceID": {
+                    "description": "褰撳墠閫夊畾鐨勭敓浜ц澶�",
+                    "type": "string"
+                }
+            }
+        },
+        "request.UpdatePlc": {
+            "type": "object",
+            "properties": {
+                "address": {
+                    "description": "plc ip鍦板潃锛� method = modbusTCP鐢�",
+                    "type": "string"
+                },
+                "baudRate": {
+                    "description": "涓插彛娉㈢壒鐜囷紝 method = serial鏃� 鐢�",
+                    "type": "integer"
+                },
+                "brand": {
+                    "type": "string"
+                },
+                "createdAt": {
+                    "type": "string"
+                },
+                "dataBit": {
+                    "description": "鏁版嵁浣嶏紝method = modbusRTU 鐢�",
+                    "type": "integer"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
+                "details": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.DevicePlcAddress"
+                    }
+                },
+                "deviceID": {
+                    "description": "璁惧缂栧彿",
+                    "type": "string"
+                },
+                "id": {
+                    "type": "integer"
+                },
+                "isOpen": {
+                    "type": "boolean"
+                },
+                "method": {
+                    "$ref": "#/definitions/constvar.PlcMethod"
+                },
+                "parity": {
+                    "description": "鏍¢獙鏂瑰紡锛宮ethod = modbusRTU 鐢�",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/constvar.Parity"
+                        }
+                    ]
+                },
+                "port": {
+                    "description": "plc 绔彛鍙凤紝  method =  modbusTCP鐢�",
+                    "type": "integer"
+                },
+                "serialName": {
+                    "description": "涓插彛鍚嶇О锛宮ethod = serial鏃� 鐢�",
+                    "type": "string"
+                },
+                "stopBit": {
+                    "description": "鍋滄浣嶏紝method = modbusRTU 鐢�",
+                    "type": "integer"
+                },
+                "updatedAt": {
                     "type": "string"
                 }
             }
@@ -694,11 +2071,75 @@
         "request.UpdatePlcBrand": {
             "type": "object",
             "properties": {
+                "createdAt": {
+                    "type": "string"
+                },
+                "deletedAt": {
+                    "type": "string"
+                },
                 "id": {
                     "type": "integer"
                 },
                 "name": {
                     "type": "string"
+                },
+                "updatedAt": {
+                    "type": "string"
+                }
+            }
+        },
+        "response.Device": {
+            "type": "object",
+            "properties": {
+                "deviceID": {
+                    "type": "string"
+                },
+                "deviceName": {
+                    "type": "string"
+                },
+                "needSetProcessParams": {
+                    "description": "鏄惁闇�瑕佽缃伐鑹哄弬鏁�",
+                    "type": "boolean"
+                }
+            }
+        },
+        "response.DeviceListResponse": {
+            "type": "object",
+            "properties": {
+                "clusterNodeQuantity": {
+                    "description": "闆嗙兢鑺傜偣鏁伴噺",
+                    "type": "integer"
+                },
+                "clusterStatus": {
+                    "description": "闆嗙兢鐘舵��",
+                    "type": "string"
+                },
+                "currentDeviceID": {
+                    "description": "褰撳墠閫夊畾鐨勭敓浜ц澶�",
+                    "type": "string"
+                },
+                "deviceList": {
+                    "description": "鐢熶骇璁惧id鍒楄〃",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/response.Device"
+                    }
+                },
+                "systemDeviceID": {
+                    "description": "宸ユ帶鏈鸿澶嘔D",
+                    "type": "string"
+                },
+                "systemDeviceRunSince": {
+                    "description": "绯荤粺杩愯寮�濮嬫椂闂存埑",
+                    "type": "integer"
+                },
+                "systemDeviceStatus": {
+                    "description": "璁惧鐘舵��",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/response.SystemDeviceStatus"
+                        }
+                    ]
                 }
             }
         },
@@ -726,17 +2167,91 @@
                 "value": {}
             }
         },
+        "response.ProcessParamsResponse": {
+            "type": "object",
+            "properties": {
+                "number": {
+                    "type": "string"
+                },
+                "params": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/response.ProcessParams"
+                    }
+                }
+            }
+        },
+        "response.ProductProgress": {
+            "type": "object",
+            "properties": {
+                "RealEndTime": {
+                    "type": "integer"
+                },
+                "RealStartTime": {
+                    "type": "integer"
+                },
+                "finishNumber": {
+                    "type": "integer"
+                },
+                "plcStatus": {
+                    "type": "integer"
+                },
+                "totalNumber": {
+                    "type": "integer"
+                }
+            }
+        },
+        "response.SystemDeviceStatus": {
+            "type": "integer",
+            "enum": [
+                1,
+                2
+            ],
+            "x-enum-comments": {
+                "SystemDeviceStatusNormal": "姝e父",
+                "SystemDeviceStatusUnNormal": "寮傚父"
+            },
+            "x-enum-varnames": [
+                "SystemDeviceStatusNormal",
+                "SystemDeviceStatusUnNormal"
+            ]
+        },
+        "response.TaskCountdown": {
+            "type": "object",
+            "properties": {
+                "countDownHour": {
+                    "description": "鍊掕鏃� 鏃�",
+                    "type": "integer"
+                },
+                "countDownMinute": {
+                    "description": "鍊掕鏃� 鍒�",
+                    "type": "integer"
+                },
+                "showCountDown": {
+                    "description": "鏄惁灞曠ず鍊掕鏃�",
+                    "type": "boolean"
+                }
+            }
+        },
         "response.TaskData": {
             "type": "object",
             "properties": {
-                "deviceName": {
-                    "type": "string"
+                "allProcedures": {
+                    "type": "array",
+                    "items": {
+                        "type": "string"
+                    }
                 },
-                "deviceStatus": {
-                    "type": "string"
+                "canStarted": {
+                    "description": "鏄惁鍙互寮�濮嬬敓浜�",
+                    "type": "boolean"
                 },
-                "nextProcedure": {
-                    "$ref": "#/definitions/model.Procedures"
+                "channel": {
+                    "description": "褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜閫氶亾",
+                    "type": "integer"
+                },
+                "currentProcedureIndex": {
+                    "type": "integer"
                 },
                 "order": {
                     "$ref": "#/definitions/model.Order"
@@ -745,6 +2260,41 @@
                     "$ref": "#/definitions/model.Procedures"
                 }
             }
+        },
+        "response.TaskResponse": {
+            "type": "object",
+            "properties": {
+                "channelAmount": {
+                    "description": "閫氶亾鏁伴噺",
+                    "type": "integer"
+                },
+                "prompt": {
+                    "description": "鎻愮ず璇�",
+                    "allOf": [
+                        {
+                            "$ref": "#/definitions/conf.Prompt"
+                        }
+                    ]
+                },
+                "taskCount": {
+                    "description": "浠诲姟鏁伴噺",
+                    "type": "integer"
+                },
+                "tasks": {
+                    "description": "浠诲姟鍒楄〃",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/response.TaskData"
+                    }
+                },
+                "workers": {
+                    "description": "浜哄憳鍒楄〃",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/common.ProcedureWorker"
+                    }
+                }
+            }
         }
     }
 }`

--
Gitblit v1.8.0