关于从接口请求数据,保存至服务器数据库内的逻辑编写
【摘要】 问题描述:施工铺路建设,需要从接口请求以米为单位的施工效率,其中重点数据是,施工时间,准备时间,停工时间。相关代码://获取数据库内该线路施工效率 var consDatas = QueryConstructiondList(); //判断当前线路最小米数值是否有效,否则取当前环int MileNo = consData.Count > 0 ? consData.Min(x =...
问题描述:
施工铺路建设,需要从接口请求以米为单位的施工效率,其中重点数据是,施工时间,准备时间,停工时间。
相关代码:
//获取数据库内该线路施工效率 var consDatas = QueryConstructiondList(); //判断当前线路最小米数值是否有效,否则取当前环 int MileNo = consData.Count > 0 ? consData.Min(x => x.RingNo) > 0 ? consData.Min(x => x.RingNo) : line.MileNo : line.MileNo ; var resList = new List<Construction>(); for (int i = 0; i < cycleT; i++) { string ring = (currentRingNo - i).ToString(); //请求接口数据 string content = GetConstruction(ring); if (!string.IsNullOrEmpty(content)) { var mod = new Construction(); ConstructionTimeDataView dataView = null; dataView = JsonHelper.ToConstructionTimeDataView(content); double TunnellingTimeTotal = dataView.data.Sum(m => m.TunnellingTime); double AssembleTimeTotal = dataView.data.Sum(m => m.AssembleTime); double StandbyTimeTotal = dataView.data.Sum(m => m.StandbyTime); mod.TunnellingTime = TunnellingTimeTotal; mod.AssembleTime = AssembleTimeTotal; mod.StandbyTime = StandbyTimeTotal; mod.RingNo = currentRingNo - i; resList.Add(mod); } } if (resList.Count > 0) { InsertConstruction(resList); } else { log.Info("未能插入线路相关数据,数据为空"); }
待优化问题:
假设当前施工到10米,施工工效表内存储了1,2,3,5,7,10米的数据。
此时按照代码逻辑无法查询出缺失米数数据。
解决方法:
查询施工工效表内数据,按照米数排序,得到按米数排列的List,判断List[i]-List[i-1]的值是否大于1
否则i+1为当前缺失米数,记录到List内
循环求情接口数据。
待优化问题2:
假设当前施工到10米,施工工效表内存储了1,2,3,4,5,7,8,10米的数据。
第9米的数据接口一直返回为空数据。
为了优化系统,如何在请求了特此次数,且数据一直为空时,跳过该米的数据。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)