关于从接口请求数据,保存至服务器数据库内的逻辑编写

举报
王阿毛 发表于 2019/02/01 16:57:12 2019/02/01
【摘要】 问题描述:施工铺路建设,需要从接口请求以米为单位的施工效率,其中重点数据是,施工时间,准备时间,停工时间。相关代码://获取数据库内该线路施工效率 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。