Data Warehouse(完成)

数仓


数仓外部

<h2>泰国数仓KPI功能接口说明文档</h2> <p>[TOC]</p> <table> <thead> <tr> <th></th> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>KPI首页相关接口</td> <td>chen</td> <td>2021.11.24</td> <td>初稿</td> </tr> <tr> <td>KPI首页相关接口v1.0.1</td> <td>chen</td> <td>2021.11.24</td> <td>每个接口较大更新</td> </tr> <tr> <td></td> <td>chen</td> <td>2021.11.30</td> <td>二级页面,三级页面初稿</td> </tr> </tbody> </table> <p>email:fuchang.chen@westwell-lab.com</p> <h3>一,KPI首页相关接口</h3> <h4>1,请求时间段内KPI值</h4> <p>http GET <a href="http://serveraddr/kpi/tend">http://serveraddr/kpi/tend</a></p> <p>request</p> <pre><code class="language-json">{ "kpi_name":"CycleTime", "time": { "start_time":0, "end_time":0 } }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>kpi_name</td> <td>str</td> <td>可取值:</td> </tr> <tr> <td></td> <td></td> <td>CycleTime:作业时长</td> </tr> <tr> <td></td> <td></td> <td>StoppingTime:suspend时长</td> </tr> <tr> <td></td> <td></td> <td>Mileage:里程</td> </tr> <tr> <td></td> <td></td> <td>MoveBox:移动箱子数量</td> </tr> <tr> <td>start_time</td> <td>int</td> <td>开始时间(时间戳)</td> </tr> <tr> <td>end_time</td> <td>int</td> <td>结束时间(时间戳)</td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "result": { "kpi_name":"CycleTime", "value":1232, "tend_persent": 12.1, "tend":1, "tend_value": 33 }, "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>kpi_name</td> <td>str</td> <td>取值:CycleTime、StoppingTime、Mileage、MoveBox</td> </tr> <tr> <td>value</td> <td>int</td> <td>结果值, 时间戳(CycleTime)int时间戳(StoppingTime),int(Mileage), int(MoveBox)</td> </tr> <tr> <td>tend_persent</td> <td>float</td> <td>增长百分比</td> </tr> <tr> <td>tend</td> <td>int</td> <td>增长趋势,取值 1, 0, -1</td> </tr> <tr> <td>tend_value</td> <td>int</td> <td>增长趋势变化值</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码,正常0,其他错误非0</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误信息描述,正常为空</td> </tr> </tbody> </table> <h4>2,饼图Stopping Reason (Time Distribution)</h4> <p>http GET <a href="http://serveraddr/kpi/stopreason">http://serveraddr/kpi/stopreason</a></p> <p>request</p> <pre><code>{ "kpi_name": "StoppingReason", "time": { "start_time": 0, "end_time": 0 } }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>kpi_name</td> <td>str</td> <td>可取值:StoppingReason, TimeDIstribute</td> </tr> <tr> <td>start_time</td> <td>int</td> <td>开始时间(时间戳)</td> </tr> <tr> <td>end_time</td> <td>int</td> <td>结束时间(时间戳)</td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "kpi_name": "StoppingReason", "result":[ {"name":"No path found", "":121 }, {"name":"Obstacle", "value":212 }, {"name":"Out of path", "value":311 } ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>kpi_name</td> <td>str</td> <td>饼图kpi类型StoppingReason,TimeDistribution</td> </tr> <tr> <td>name</td> <td>str</td> <td>类型</td> </tr> <tr> <td>value</td> <td>int</td> <td>值</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码,正常0,其他错误非0</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误信息描述,正常为空</td> </tr> </tbody> </table> <h4>3,Mileage</h4> <p>http GET <a href="http://serveraddr/kpi/at">http://serveraddr/kpi/at</a></p> <p>根据AT请求时间段内的KPI数据</p> <p>move_box,speed</p> <p>request </p> <pre><code>{ "AT": [ "AT01", "AT02" ], "time": { "start_time": 0, "end_time": 0 } }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>start_time</td> <td>int</td> <td>开始时间(时间戳)</td> </tr> <tr> <td>end_time</td> <td>int</td> <td>结束时间(时间戳)</td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> <p>response</p> <pre><code>{ "result": [ {"keyname": 'AT01', "move": 32, "speed": 7.0}, {"keyname": 'AT02', "move": 40, "speed": 8.0}, {"keyname": 'AT03', "move": 25, "speed": 5.2}, {"keyname": 'AT04', "move": 20, "speed": 3.2}, {"keyname": 'AT05', "move": 32, "speed": 7.0} ], "unit": {"move":"move", "speed":"km/h"} "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th></th> <th></th> <th></th> </tr> </thead> <tbody> <tr> <td>keyname</td> <td>str</td> <td>车编号</td> </tr> <tr> <td>move</td> <td>int</td> <td>箱子数</td> </tr> <tr> <td>speed</td> <td>float</td> <td>车速度</td> </tr> <tr> <td>unit</td> <td>str</td> <td>单位</td> </tr> <tr> <td>result</td> <td>列表</td> <td>结果</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码,正常0,其他错误非0</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误信息描述,正常为空</td> </tr> </tbody> </table> <h3>二,二级页面</h3> <h4>1,请求fliter</h4> <p>request</p> <pre><code class="language-json">{ "prj": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>prj</td> <td>是</td> <td>str</td> <td>项目名</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <p>response</p> <pre><code>{ "filter": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>keyname</td> <td>str</td> <td>车编号</td> </tr> <tr> <td>move</td> <td>int</td> <td>箱子数</td> </tr> <tr> <td>speed</td> <td>float</td> <td>车速度</td> </tr> <tr> <td>unit</td> <td>str</td> <td>单位</td> </tr> <tr> <td>result</td> <td>列表</td> <td>结果</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码,正常0,其他错误非0</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误信息描述,正常为空</td> </tr> </tbody> </table> <h4>2,卡片数据</h4> <p>fms或vehicle页卡片数据</p> <p>POST <a href="http://serveraddr/total">http://serveraddr/total</a></p> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "FMS" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>FMS,Vehicle</td> </tr> </tbody> </table> <p>response</p> <pre><code>{ "err_code": 0, "err_info": "", "result": [ { "description": "Number of boxes completed per hour", "kpi_name": "Productivity", "tend": 1, "tend_persent": 13, "tend_value": 2, "value": 18 }, { "description": "", "kpi_name": "CycleTime", "tend": 1, "tend_persent": 12, "tend_value": 127, "value": 1200 }, { "description": "Time to complete moving a box", "kpi_name": "TurnaroundTime", "tend": -1, "tend_persent": 15, "tend_value": 109, "value": 1180 }, { "description": "Distance travelled, including forward and backward", "kpi_name": "Mileage", "tend": 1, "tend_persent": 7, "tend_value": 195, "value": 2854 }, { "description": "Number of boxes completed", "kpi_name": "MoveBox", "tend": 1, "tend_persent": 11, "tend_value": 25, "value": 138 }, { "description": "Ratio between the number of times waiting at TSL and total numbers of vessel discharging cycles ", "kpi_name": "TslUsage", "tend": -1, "tend_persent": 13, "tend_value": 1, "value": 5 }, { "description": "Ratio between the number of times waitg at TSD and total numbers of vessel loading cycles ", "kpi_name": "TsdUsage", "tend": -1, "tend_persent": 10, "tend_value": 2, "value": 30 }, { "description": "Ratio between the number of times waiting at EWA and total numbers of vessel discharging to FL cycles ", "kpi_name": "EwaUsage", "tend": -1, "tend_persent": 8, "tend_value": 3, "value": 25 }, { "description": "Ratio between the number of times waiting at LWA and total numbers of vessel loading cycles", "kpi_name": "LwaUsage", "tend": 1, "tend_persent": 13, "tend_value": 351, "value": 2561 }, { "description": "", "kpi_name": "Junction", "tend": -1, "tend_persent": 3, "tend_value": 3, "value": 20 } ] }</code></pre> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">err_code</td> <td style="text-align: left;">错误码</td> <td style="text-align: left;">Int</td> <td>正常0,其他错误非0</td> </tr> <tr> <td style="text-align: left;">err_info</td> <td style="text-align: left;">错误信息</td> <td style="text-align: left;">str</td> <td>正常为空</td> </tr> <tr> <td style="text-align: left;">description</td> <td style="text-align: left;">描述含义</td> <td style="text-align: left;">str</td> <td>-</td> </tr> <tr> <td style="text-align: left;">kpi_name</td> <td style="text-align: left;">卡片类型</td> <td style="text-align: left;">str</td> <td>-</td> </tr> <tr> <td style="text-align: left;">tend</td> <td style="text-align: left;">增长趋势</td> <td style="text-align: left;">Int</td> <td>取值 1, 0, -1</td> </tr> <tr> <td style="text-align: left;">tend_persent</td> <td style="text-align: left;">增长百分比</td> <td style="text-align: left;">Float</td> <td>-</td> </tr> <tr> <td style="text-align: left;">tend_value</td> <td style="text-align: left;">增长趋势变化值</td> <td style="text-align: left;">Int</td> <td>-</td> </tr> <tr> <td style="text-align: left;">value</td> <td style="text-align: left;">当前值</td> <td style="text-align: left;">Int</td> <td>时间戳(CycleTime)int时间戳(StoppingTime),int(Mileage),int(MoveBox)</td> </tr> </tbody> </table> <h4>3,FMS类</h4> <p>http POST <a href="http://serveraddr/kpi/detial/fms">http://serveraddr/kpi/detial/fms</a></p> <h5>(1)Cycle Time</h5> <p>request</p> <pre><code class="language-json">{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Cycle Time" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Cycle Time", "result":[ [{"Task": "Task 1", "Duration":"5:00"},{"Task": "Task 2", "Duration":"7:00"},{"Task": "Task 3", "Duration":"18:00"}], [{"Task": "Task 1", "Duration":"5:00"},{"Task": "Task 2", "Duration":"7:00"},{"Task": "Task 3", "Duration":"18:00"}] ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(2)Productivity</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Productivity" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Productivity", "result":[ { "AT":"AT01", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT02", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT03", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], } ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(3)Turnaround Time</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Turnaround Time" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Turnaround Time", "result":[ { "AT":"AT01", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT02", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT03", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], } ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(4)Mileage</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Mileage" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Mileage", "result":[ [{"cycle_num":1,"empty_load":0.2, "heavy_load":0.8, "mileage":2444}], [{"cycle_num":2,"empty_load":0.2, "heavy_load":0.8, "mileage":2444}] ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(5)Move Box</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "move box" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "move box", "result":[ { "AT":"AT01", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT02", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT03", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], } ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(6)TSL Usage,TSD Usage,EWA Usage,LWA Usage</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "TSL Usage" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "TSL Usage", "result":{ }, "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(7)Junction</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "TSL Usage" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Junction", "result":{ "avg_time":[ {"date": "Jun.01", "turning":221, "go_straight":122, "times":3}, {"date": "Jun.01", "turning":221, "go_straight":122, "times":3} ], "number": [ {"Junction_name": "KK11", "times":22}, {"Junction_name": "KK11", "times":22} ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(8)Stopping reason</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Stopping reason" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Stopping reason", "result":[ {"type":"No path found", "persent": 12.2, "mins_total":112, "turn_mins":2.3} ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h4>4,Vehicle类</h4> <p>http POST <a href="http://serveraddr/kpi/detial/vehicle">http://serveraddr/kpi/detial/vehicle</a></p> <h5>(1)Travelling speed,Battery Power,Fault Rate,MMBF,Recovery Time</h5> <p>request </p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Travelling speed" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Travelling speed,Battery Power,Fault Rate,MMBF,Recovery Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Travelling speed", "result":[ { "AT":"AT01", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT02", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], }, { "AT":"AT03", "data":[{"date": "Jun.01", "value":22},{"date": "Jun.02", "value":22},{"date": "Jun.03", "value":22}], } ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(2)Time Distribution</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Time Distribution" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Time Distribution", "result":[ {"time_type":"Off-Duty","percent":32},{"time_type":"Idle","percent":22} ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h5>(3)Running Hour,Mileage</h5> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Running Hour" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> </tbody> </table> <p>response</p> <pre><code class="language-json">{ "KPI_detial": "Running Hour", "result":[ {"AT":"AT01","value":32},{"AT":"AT02","value":22} ], "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> </tbody> </table> <h3>三,三级页面</h3> <h4>Cycle Time Breakdown</h4> <p>http POST <a href="http://serveraddr/cycletime/detial">http://serveraddr/cycletime/detial</a></p> <p>request</p> <pre><code>{ "filters": { "Cycle Type":[], "Twin/Single":[], "Dual Move": [], "Optional Checkpoint": [], "QC": [], "RTGC":[] }, "time":{ "start_time": 0, "end_time": 0 }, "Vessel": ["Vessel01","Vessel02"], "AT": "", "KPI_detial": "Running Hour", "page_num": 1, "page_size": 20 }</code></pre> <table> <thead> <tr> <th>字段</th> <th>是否必填</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>filters</td> <td>否</td> <td>-</td> <td>过滤器</td> <td>-</td> </tr> <tr> <td>start_time</td> <td>是</td> <td>int</td> <td>开始时间</td> <td>时间戳</td> </tr> <tr> <td>end_time</td> <td>是</td> <td>int</td> <td>结束时间</td> <td>时间戳</td> </tr> <tr> <td>Vessel</td> <td>否</td> <td>str</td> <td>选择船舶</td> <td>-</td> </tr> <tr> <td>AT</td> <td>否</td> <td>str</td> <td>车辆选择</td> <td>-</td> </tr> <tr> <td>KPI_detial</td> <td>是</td> <td>str</td> <td>请求卡片数据类型</td> <td>Cycle Time</td> </tr> <tr> <td>page_num</td> <td>是</td> <td>int</td> <td>分页查询第几页</td> <td>&gt;1</td> </tr> <tr> <td>page_size</td> <td>是</td> <td>int</td> <td>分页查询页显示量</td> <td>&gt;1</td> </tr> </tbody> </table> <p>response</p> <pre><code>{ "KPI_detial": "Running Hour", "result":[ {"AT":"AT01","value":32},{"AT":"AT02","value":22} ], "total_page": 100, "err_code": 0, "err_info": "" }</code></pre> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>描述</th> <th>可取值</th> </tr> </thead> <tbody> <tr> <td>KPI_detial</td> <td>str</td> <td>对应的类型</td> <td>Cycle Time</td> </tr> <tr> <td>result</td> <td>-</td> <td>对应的kpi结果</td> <td>-</td> </tr> <tr> <td>err_code</td> <td>int</td> <td>错误码</td> <td>-</td> </tr> <tr> <td>err_info</td> <td>str</td> <td>错误描述</td> <td>-</td> </tr> <tr> <td>total_page</td> <td>int</td> <td>总页数</td> <td>-</td> </tr> </tbody> </table> <h3>四,登录注册</h3> <h3>五,权限管理</h3>

页面列表

ITEM_HTML