예제 #1
0
        /// <summary>
        /// 线编码
        /// </summary>
        private void CjpllCode()
        {
            //try
            //{
            Maticsoft.BLL.cjplp cjplpBLL = new Maticsoft.BLL.cjplp();

            #region 线表编码

            //街道的编码
            streetno streetnoBLL = new streetno();
            List <Maticsoft.Model.streetno> streetnoModeList = streetnoBLL.GetModelList("shortname is not NULL");

            //顺序编码表
            recordtable recordtableModel             = new recordtable();
            Maticsoft.BLL.recordtable recordtableBll = new Maticsoft.BLL.recordtable();

            //获取待拆分的线表数据
            cjpll cjpllBLL = new cjpll();
            List <Maticsoft.Model.cjpll> cjpllModelList = cjpllBLL.GetModelList("");


            for (int i = 0; i < cjpllModelList.Count; i++)
            {
                for (int j = 0; j < streetnoModeList.Count; j++)
                {
                    if (!String.IsNullOrEmpty(cjpllModelList[i].Exp_No0) &&
                        !String.IsNullOrEmpty(cjpllModelList[i].Exp_No1) &&
                        !String.IsNullOrEmpty(cjpllModelList[i].Type) &&
                        !String.IsNullOrEmpty(cjpllModelList[i].Sdate) &&
                        cjpllModelList[i].FileName.Contains(streetnoModeList[j].shortname))
                    {
                        cjplp exp_No0Model = cjplpBLL.GetModel(cjpllModelList[i].Exp_No0);
                        cjplp exp_No1Model = cjplpBLL.GetModel(cjpllModelList[i].Exp_No1);


                        if (exp_No0Model != null && exp_No1Model != null && !string.IsNullOrEmpty(exp_No0Model.Exp_No) && !string.IsNullOrEmpty(exp_No1Model.Exp_No))
                        {
                            // string tmp = "type like '" + cjpllModelList[i].Type.Substring(0, 2) +
                            //              "%' and Lno like '" +
                            //              cjpllModelList[i].Type.Substring(0, 2) +
                            //              cjpllModelList[i].Sdate.Substring(0, 4) +
                            //              streetnoModeList[j].strnolast5 + "__" +
                            //              exp_No0Model.Exp_No.Substring(13) +
                            //              exp_No1Model.Exp_No.Substring(13) + "'";
                            //查询街道编码不为空的列
                            List <recordtable> recordtablesModelList =
                                recordtableBll.GetModelList("type like '" + cjpllModelList[i].Type.Substring(0, 2) +
                                                            "%' and Lno like '" +
                                                            cjpllModelList[i].Type.Substring(0, 2) +
                                                            cjpllModelList[i].Sdate.Substring(0, 4) +
                                                            streetnoModeList[j].strnolast5 + "__" +
                                                            exp_No0Model.Exp_No.Substring(13) +
                                                            exp_No1Model.Exp_No.Substring(13) + "'");
                            //1.填充起点、终点编码
                            cjpllModelList[i].S_Point = exp_No0Model.Exp_No;
                            cjpllModelList[i].E_Point = exp_No1Model.Exp_No;
                            //2.计算管线编码
                            if (recordtablesModelList.Count == 0)
                            {
                                //计算管线编号
                                cjpllModelList[i].Lno = cjpllModelList[i].Type.Substring(0, 2) +
                                                        cjpllModelList[i].Sdate.Substring(0, 4) +
                                                        streetnoModeList[j].strnolast5 + "01" +
                                                        exp_No0Model.Exp_No.Substring(13) +
                                                        exp_No1Model.Exp_No.Substring(13);

                                //2.插入记录表
                                recordtableModel.type       = cjpllModelList[i].Type.Substring(0, 2);
                                recordtableModel.year       = cjpllModelList[i].Sdate.Substring(0, 4);
                                recordtableModel.strnolast5 = streetnoModeList[j].strnolast5;
                                recordtableModel.inteno     = 1;
                                recordtableModel.serino     = Convert.ToInt32(exp_No0Model.Exp_No.Substring(13)) +
                                                              Convert.ToInt32(exp_No1Model.Exp_No.Substring(13));
                                recordtableModel.typeYear = cjpllModelList[i].Type.Substring(0, 2) +
                                                            cjpllModelList[i].Sdate.Substring(0, 4);
                                recordtableModel.typeYearStrnolast5 = cjpllModelList[i].Type.Substring(0, 2) +
                                                                      cjpllModelList[i].Sdate.Substring(0, 4) +
                                                                      streetnoModeList[j].strnolast5;
                                recordtableModel.typeYearStrnolast5Inteno = cjpllModelList[i].Type.Substring(0, 2) +
                                                                            cjpllModelList[i].Sdate.Substring(0, 4) +
                                                                            streetnoModeList[j].strnolast5 + "01";
                                recordtableModel.inteserino = exp_No0Model.Exp_No.Substring(13) +
                                                              exp_No1Model.Exp_No.Substring(13);
                                recordtableModel.Lno = cjpllModelList[i].Type.Substring(0, 2) +
                                                       cjpllModelList[i].Sdate.Substring(0, 4) +
                                                       streetnoModeList[j].strnolast5 + "01" +
                                                       exp_No0Model.Exp_No.Substring(13) +
                                                       exp_No1Model.Exp_No.Substring(13);
                                recordtableBll.Add(recordtableModel);
                                // Console.WriteLine("线线线添加" + recordtableModel.Lno);
                            }
                            else
                            {
                                List <int> seriaList = new List <int>();

                                for (int k = 0; k < recordtablesModelList.Count; k++)
                                {
                                    seriaList.Add(Convert.ToInt16(recordtablesModelList[k].Lno.Substring(11, 2)));
                                }

                                //计算管线编号
                                cjpllModelList[i].Lno = cjpllModelList[i].Type.Substring(0, 2) +
                                                        cjpllModelList[i].Sdate.Substring(0, 4) +
                                                        streetnoModeList[j].strnolast5 +
                                                        seriaList.Max().ToString().PadLeft(2, '0') +
                                                        exp_No0Model.Exp_No.Substring(13) +
                                                        exp_No1Model.Exp_No.Substring(13);

                                //2.插入记录表
                                recordtableModel.inteno = seriaList.Max();
                                recordtableModel.typeYearStrnolast5Inteno = cjpllModelList[i].Type.Substring(0, 2) +
                                                                            cjpllModelList[i].Sdate.Substring(0, 4) +
                                                                            streetnoModeList[j].strnolast5 +
                                                                            seriaList.Max().ToString().PadLeft(2, '0');
                                recordtableModel.Lno = cjpllModelList[i].Type.Substring(0, 2) +
                                                       cjpllModelList[i].Sdate.Substring(0, 4) +
                                                       streetnoModeList[j].strnolast5 +
                                                       seriaList.Max().ToString().PadLeft(2, '0') +
                                                       exp_No0Model.Exp_No.Substring(13) +
                                                       exp_No1Model.Exp_No.Substring(13);
                                recordtableBll.Update(recordtableModel);
                                // Console.WriteLine("线线线更新" + recordtableModel.Lno);
                            }

                            //3.计算管线长度
                            if (!String.IsNullOrEmpty(exp_No0Model.X.ToString()) &&
                                !String.IsNullOrEmpty(exp_No0Model.Y.ToString()) &&
                                !String.IsNullOrEmpty(exp_No1Model.X.ToString()) &&
                                !String.IsNullOrEmpty(exp_No1Model.Y.ToString()))
                            {
                                cjpllModelList[i].PipeLength =
                                    (decimal)calculatePipeLength(exp_No0Model, exp_No1Model);
                            }

                            cjpllModelList[i].LnoTime =
                                DateTime.Now.ToString() + "." + DateTime.Now.Millisecond.ToString();
                            //更新管线计算内容
                            cjpllBLL.Update(cjpllModelList[i]);
                            break;
                        }
                    }
                }
            }

            #endregion
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e);
            //    throw;
            //}
        }
예제 #2
0
        /// <summary>
        /// 点编码
        /// </summary>
        private static void CjplpCode()
        {
            try
            {
                //街道的编码
                streetno streetnoBLL = new streetno();
                List <Maticsoft.Model.streetno> streetnoModeList = streetnoBLL.GetModelList("shortname is not NULL");

                //顺序编码表
                recordtable recordtableModel             = new recordtable();
                Maticsoft.BLL.recordtable recordtableBll = new Maticsoft.BLL.recordtable();

                #region 点表编码

                //1.获取到待拆分的数据
                Maticsoft.BLL.cjplp cjplpBLL       = new Maticsoft.BLL.cjplp();
                List <cjplp>        cjplpModelList = cjplpBLL.GetModelList("");

                for (int i = 0; i < cjplpModelList.Count; i++)
                {
                    //编码不存在的情况下才进行编码,否则不进行编码
                    if (cjplpModelList[i] != null && String.IsNullOrEmpty(cjplpModelList[i].Exp_No))
                    {
                        //字段类型为空,加了条件判断
                        if (!string.IsNullOrEmpty(cjplpModelList[i].Type) && cjplpModelList[i].Type.Length >= 2)
                        {
                            //查询街道编码不为空的列
                            List <recordtable> recordtablesModelList =
                                recordtableBll.GetModelList("type like '" + cjplpModelList[i].Type.Substring(0, 2) + "%'");
                            //如果数据库中没有此编码,则进行第一次编码
                            if (recordtablesModelList.Count == 0)
                            {
                                for (int j = 0; j < streetnoModeList.Count; j++)
                                {
                                    if (!String.IsNullOrEmpty(cjplpModelList[i].FileName) &&
                                        !String.IsNullOrEmpty(cjplpModelList[i].Type) &&
                                        !String.IsNullOrEmpty(cjplpModelList[i].Sdate) &&
                                        cjplpModelList[i].FileName.Contains(streetnoModeList[j].shortname))
                                    {
                                        //更新:给原始管点编号
                                        cjplpModelList[i].Exp_No = cjplpModelList[i].Type.Substring(0, 2) +
                                                                   cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                   streetnoModeList[j].strnolast5 + "0100001";
                                        cjplpModelList[i].ExpNoTime =
                                            DateTime.Now.ToString() + "." + DateTime.Now.Millisecond.ToString();
                                        cjplpBLL.Update(cjplpModelList[i]);

                                        //添加:数据库记录文件
                                        recordtableModel.type       = cjplpModelList[i].Type.Substring(0, 2);
                                        recordtableModel.year       = cjplpModelList[i].Sdate.Substring(0, 4);
                                        recordtableModel.strnolast5 = streetnoModeList[j].strnolast5;
                                        recordtableModel.inteno     = 1;
                                        recordtableModel.serino     = 1;
                                        recordtableModel.typeYear   = cjplpModelList[i].Type.Substring(0, 2) +
                                                                      cjplpModelList[i].Sdate.Substring(0, 4);
                                        recordtableModel.typeYearStrnolast5 = cjplpModelList[i].Type.Substring(0, 2) +
                                                                              cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                              streetnoModeList[j].strnolast5;
                                        recordtableModel.typeYearStrnolast5Inteno = cjplpModelList[i].Type.Substring(0, 2) +
                                                                                    cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                                    streetnoModeList[j].strnolast5 + "01";
                                        recordtableModel.inteserino = "0100001";
                                        recordtableModel.Exp_No     = cjplpModelList[i].Type.Substring(0, 2) +
                                                                      cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                      streetnoModeList[j].strnolast5 + "0100001";
                                        recordtableBll.Add(recordtableModel);
                                        // Console.WriteLine("点点点添加" + recordtableModel.Exp_No);
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                for (int j = 0; j < streetnoModeList.Count; j++)
                                {
                                    if (!String.IsNullOrEmpty(cjplpModelList[i].FileName) &&
                                        !String.IsNullOrEmpty(cjplpModelList[i].Type) &&
                                        !String.IsNullOrEmpty(cjplpModelList[i].Sdate) &&
                                        cjplpModelList[i].FileName.Contains(streetnoModeList[j].shortname))
                                    {
                                        string temptypeYearStrnolast5 =
                                            cjplpModelList[i].Type.Substring(0, 2) +
                                            cjplpModelList[i].Sdate.Substring(0, 4) +
                                            streetnoModeList[j].strnolast5;

                                        // string temptypeYear =
                                        //     cjplpModelList[i].Type.Substring(0, 2) +
                                        //     cjplpModelList[i].Sdate.Substring(0, 4);


                                        for (int k = 0; k < recordtablesModelList.Count; k++)
                                        {
                                            //如果前3段相同,则更新最后的交汇顺序号和排水管点顺序号
                                            if (recordtablesModelList[k].typeYearStrnolast5 == temptypeYearStrnolast5)
                                            {
                                                //获取数据库信息
                                                string dbInteserino  = recordtablesModelList[k].inteserino;
                                                string newInteserino = string.Empty;
                                                if (Convert.ToInt32(dbInteserino.Substring(2)) != 99999)
                                                {
                                                    //排水管点顺序号变化
                                                    newInteserino =
                                                        dbInteserino.Substring(0, 2) +
                                                        ((Convert.ToInt32(dbInteserino.Substring(2)) + 1).ToString()
                                                         .PadLeft(5, '0'));

                                                    //recordTableModelList表的变化
                                                    // recordtablesModelList[k].inteno = 1;
                                                    recordtablesModelList[k].serino =
                                                        (Convert.ToInt32(dbInteserino.Substring(2)) + 1);

                                                    // recordtablesModelList[k].typeYearStrnolast5Inteno = cjplpModelList[i].Type.Substring(0, 2) +
                                                    //                                                     cjplpModelList[i].Sdate.Substring(0, 4) +
                                                    //                                                     streetnoModeList[j].strnolast5 + "01";
                                                    recordtablesModelList[k].inteserino = newInteserino;
                                                }
                                                else
                                                {
                                                    //交汇点顺序号变化
                                                    newInteserino =
                                                        (Convert.ToInt32(dbInteserino.Substring(0, 2)) + 1).ToString()
                                                        .PadLeft(2, '0') +
                                                        "00001";

                                                    //recordTableModelList表的变化
                                                    recordtablesModelList[k].inteno =
                                                        Convert.ToInt32(dbInteserino.Substring(0, 2)) + 1;
                                                    recordtablesModelList[k].serino = 1;

                                                    recordtablesModelList[k].typeYearStrnolast5Inteno =
                                                        temptypeYearStrnolast5 +
                                                        (Convert.ToInt32(dbInteserino.Substring(0, 2)) + 1).ToString()
                                                        .PadLeft(2, '0');

                                                    recordtablesModelList[k].inteserino = newInteserino;
                                                }

                                                //更新:给原始管点编号并添加进数据库
                                                cjplpModelList[i].Exp_No    = temptypeYearStrnolast5 + newInteserino;
                                                cjplpModelList[i].ExpNoTime =
                                                    DateTime.Now.ToString() + "." + DateTime.Now.Millisecond.ToString();
                                                cjplpBLL.Update(cjplpModelList[i]);

                                                //更新recordtable表
                                                recordtablesModelList[k].Exp_No = temptypeYearStrnolast5 + newInteserino;
                                                recordtableBll.Update(recordtablesModelList[k]);
                                                // Console.WriteLine("点点点更新" + recordtablesModelList[k].Exp_No);
                                            }
                                            else
                                            {
                                                //如果前2段相同,街道不同,则更新最后三段(后3端需要进行重新编码,然后写入数据库中
                                                for (int m = 0; m < streetnoModeList.Count; m++)
                                                {
                                                    if (!String.IsNullOrEmpty(cjplpModelList[i].FileName) &&
                                                        !String.IsNullOrEmpty(cjplpModelList[i].Type) &&
                                                        !String.IsNullOrEmpty(cjplpModelList[i].Sdate) &&
                                                        cjplpModelList[i].FileName.Contains(streetnoModeList[m].shortname))
                                                    {
                                                        //更新给原始管点编号
                                                        cjplpModelList[i].Exp_No = cjplpModelList[i].Type.Substring(0, 2) +
                                                                                   cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                                   streetnoModeList[m].strnolast5 + "0100001";
                                                        cjplpModelList[i].ExpNoTime =
                                                            DateTime.Now.ToString() + "." + DateTime.Now.Millisecond.ToString();
                                                        cjplpBLL.Update(cjplpModelList[i]);

                                                        //添加数据库记录文件
                                                        recordtableModel.type       = cjplpModelList[i].Type.Substring(0, 2);
                                                        recordtableModel.year       = cjplpModelList[i].Sdate.Substring(0, 4);
                                                        recordtableModel.strnolast5 = streetnoModeList[m].strnolast5;
                                                        recordtableModel.inteno     = 1;
                                                        recordtableModel.serino     = 1;
                                                        recordtableModel.typeYear   = cjplpModelList[i].Type.Substring(0, 2) +
                                                                                      cjplpModelList[i].Sdate.Substring(0, 4);
                                                        recordtableModel.typeYearStrnolast5 =
                                                            cjplpModelList[i].Type.Substring(0, 2) +
                                                            cjplpModelList[i].Sdate.Substring(0, 4) +
                                                            streetnoModeList[m].strnolast5;
                                                        recordtableModel.typeYearStrnolast5Inteno =
                                                            cjplpModelList[i].Type.Substring(0, 2) +
                                                            cjplpModelList[i].Sdate.Substring(0, 4) +
                                                            streetnoModeList[m].strnolast5 + "01";
                                                        recordtableModel.inteserino = "0100001";
                                                        recordtableModel.Exp_No     = cjplpModelList[i].Type.Substring(0, 2) +
                                                                                      cjplpModelList[i].Sdate.Substring(0, 4) +
                                                                                      streetnoModeList[m].strnolast5 + "0100001";
                                                        recordtableBll.Add(recordtableModel);
                                                        // Console.WriteLine("点点点添加" + recordtableModel.Exp_No);

                                                        break;
                                                    }
                                                }
                                            }


                                            break;
                                        }

                                        break;
                                    }
                                }
                            }
                        }
                    }
                }

                #endregion
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }