关于从接口请求数据,保存至服务器数据库内的逻辑编写
【摘要】 问题描述:施工铺路建设,需要从接口请求以米为单位的施工效率,其中重点数据是,施工时间,准备时间,停工时间。相关代码://获取数据库内该线路施工效率 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)