Ejemplo n.º 1
0
        private void btn文件导入_Click(object sender, EventArgs e)
        {
            任务Dao dao = m_cm.Dao as 任务Dao;

            if (openFileDialog文件导入.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                IList <DataTable> dtList = Feng.Windows.Utils.ExcelHelper.ReadExcel(openFileDialog文件导入.FileName, true);
                int successCount         = 0;//成功导入的任务数量

                using (IRepository rep = ServiceProvider.GetService <IRepositoryFactory>().GenerateRepository <任务>())
                {
                    try
                    {
                        rep.BeginTransaction();
                        //System.Reflection.PropertyInfo[] properties = typeof(任务).GetProperties();

                        foreach (DataTable dt in dtList)
                        {
                            if (!dt.Columns.Contains("任务性质"))
                            {
                                continue;
                            }

                            foreach (DataRow dr in dt.Rows)
                            {
                                //if (!dr.Table.Columns.Contains("提单号") || string.IsNullOrEmpty(dr["提单号"].ToString()))
                                //    continue;
                                //if (rep.List<任务>(string.Format("提单号 = {0}", dr["提单号"].ToString()), null).Count > 0)
                                //    continue;

                                任务 rw = new 任务();
                                rw.任务来源     = 任务来源.文件;
                                rw.IsActive = false;
                                rw.是否拒绝     = false;

                                rw.任务性质    = (string.IsNullOrEmpty(dr["任务性质"].ToString()) ? 任务性质.进口拆箱 : (任务性质)Enum.Parse(typeof(任务性质), dr["任务性质"].ToString(), true));
                                rw.转关箱标志   = string.IsNullOrEmpty(dr["转关箱标志"].ToString()) ? null : (转关箱标志?)Enum.Parse(typeof(转关箱标志), dr["转关箱标志"].ToString(), true);
                                rw.委托人编号   = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_全部", dr["委托人"].ToString());
                                rw.委托时间    = ConvertHelper.ToDateTime(dr["委托时间"]);
                                rw.委托联系人   = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_全部", dr["委托联系人"].ToString());
                                rw.提单号     = ConvertHelper.ToString(dr["提单号"]);
                                rw.箱号      = ConvertHelper.ToString(dr["箱号"]);
                                rw.箱型编号    = (int?)Feng.Utils.NameValueControlHelper.GetMultiValue("备案_箱型", dr["箱型"].ToString());
                                rw.船名      = ConvertHelper.ToString(dr["船名"]);
                                rw.航次      = ConvertHelper.ToString(dr["航次"]);
                                rw.箱属船公司编号 = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_全部", dr["箱属船公司"].ToString());
                                rw.货名      = ConvertHelper.ToString(dr["货物分类"]);
                                rw.货物特征    = ConvertHelper.ToString(dr["货物特征"]);
                                rw.价值      = ConvertHelper.ToDecimal(dr["价值"]);
                                rw.重量      = ConvertHelper.ToDouble(dr["重量"]);

                                if (rw.任务性质 == 任务性质.进口拆箱 || rw.任务性质 == 任务性质.出口装箱)
                                {
                                    rw.提箱点编号 = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_全部", dr["提箱点"].ToString());

                                    if (rw.任务性质 == 任务性质.进口拆箱)
                                    {
                                        rw.提箱时间要求 = ConvertHelper.ToDateTime(dr["疏港期限"]);
                                    }

                                    rw.还箱进港点编号  = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_全部", dr["还箱/进港点"].ToString());
                                    rw.还箱进港时间要求 = ConvertHelper.ToDateTime(dr["还箱/进港期限"]);
                                }

                                if (rw.任务性质 != 任务性质.进口拆箱)
                                {
                                    rw.装货地编号   = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_装卸货地", dr["装货地"].ToString());
                                    rw.装货时间要求始 = ConvertHelper.ToDateTime(dr["装货时间要求始"]);
                                    rw.装货时间要求止 = ConvertHelper.ToDateTime(dr["装货时间要求止"]);
                                    rw.装货联系人   = ConvertHelper.ToString(dr["装货联系人"]);
                                    rw.装货联系手机  = ConvertHelper.ToString(dr["装货联系电话(手机)"]);
                                    rw.装货联系座机  = ConvertHelper.ToString(dr["装货联系电话(座机)"]);
                                    rw.装货地详细地址 = ConvertHelper.ToString(dr["装货地详细地址"]);
                                }

                                if (rw.任务性质 != 任务性质.出口装箱)
                                {
                                    rw.卸货地编号   = (string)Feng.Utils.NameValueControlHelper.GetMultiValue("人员单位_装卸货地", dr["卸货地"].ToString());
                                    rw.卸货时间要求始 = ConvertHelper.ToDateTime(dr["卸货时间要求始"]);
                                    rw.卸货时间要求止 = ConvertHelper.ToDateTime(dr["卸货时间要求止"]);
                                    rw.卸货联系人   = ConvertHelper.ToString(dr["卸货联系人"]);
                                    rw.卸货联系手机  = ConvertHelper.ToString(dr["卸货联系电话(手机)"]);
                                    rw.卸货联系座机  = ConvertHelper.ToString(dr["卸货联系电话(座机)"]);
                                    rw.卸货地详细地址 = ConvertHelper.ToString(dr["卸货地详细地址"]);
                                }

                                rw.备注 = ConvertHelper.ToString(dr["备注"]);

                                //foreach (System.Reflection.PropertyInfo property in properties)
                                //{
                                //    if (dr.Table.Columns.Contains(property.Name))
                                //    {
                                //        string excelValue = dr[property.Name].ToString();
                                //        object realValue = null;
                                //        if (string.IsNullOrEmpty(excelValue))
                                //        {
                                //            continue;
                                //        }
                                //        if (property.PropertyType.Equals(typeof(任务性质)))
                                //        {
                                //            realValue = (任务性质)Enum.Parse(typeof(任务性质), excelValue.ToString(), true);
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(string)))
                                //        {
                                //            realValue = excelValue.ToString();
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(int)))
                                //        {
                                //            realValue = Convert.ToInt32(excelValue);
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(decimal)))
                                //        {
                                //            realValue = Convert.ToDecimal(excelValue);
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(double)))
                                //        {
                                //            realValue = Convert.ToDouble(excelValue);
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(bool)))
                                //        {
                                //            realValue = excelValue == "是" ? true : false;
                                //            //realValue = Convert.ToBoolean(excelValue);
                                //        }
                                //        else if (property.PropertyType.Equals(typeof(DateTime)))
                                //        {
                                //            realValue = Convert.ToDateTime(excelValue);
                                //        }
                                //        property.SetValue(rw, realValue, null);
                                //    }
                                //}

                                if ((int)rw.任务性质 != 0)
                                {
                                    dao.Save(rep, rw);
                                    successCount++;
                                }
                            }
                        }
                        rep.CommitTransaction();

                        MessageForm.ShowInfo("成功导入 " + successCount + " 条任务。");
                        m_rightGrid.ReloadData();
                    }
                    catch (Exception ex)
                    {
                        rep.RollbackTransaction();
                        ExceptionProcess.ProcessWithNotify(ex);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void btn网上委托导入_Click(object sender, EventArgs e)
        {
            任务Dao dao = m_cm.Dao as 任务Dao;

            using (IRepository rep = ServiceProvider.GetService <IRepositoryFactory>().GenerateRepository <网上委托任务>())
            {
                IList <网上委托任务> wswtrwList = rep.List <网上委托任务>("from 网上委托任务 where 是否受理 = 'false'", null);

                if (wswtrwList != null && wswtrwList.Count > 0)
                {
                    int successCount = 0;//成功导入的任务数量
                    foreach (网上委托任务 wswtrw in wswtrwList)
                    {
                        using (IRepository rep1 = ServiceProvider.GetService <IRepositoryFactory>().GenerateRepository <任务>())
                        {
                            try
                            {
                                rep1.BeginTransaction();
                                任务 rw = new 任务();
                                rw.任务来源     = 任务来源.网上;
                                rw.IsActive = true;
                                rw.备注       = wswtrw.备注;
                                rw.船名       = wswtrw.船名;
                                rw.航次       = wswtrw.航次;
                                rw.封志号      = wswtrw.封志号;
                                rw.还箱进港点编号  = wswtrw.还箱进港点编号;
                                rw.还箱进港时间要求 = wswtrw.还箱进港时间要求;
                                rw.货名       = wswtrw.货名;
                                rw.货物特征     = wswtrw.货物特征;
                                rw.价值       = wswtrw.价值;
                                rw.提单号      = wswtrw.提单号;
                                rw.任务性质     = wswtrw.任务性质;
                                rw.是否小箱     = wswtrw.是否小箱;
                                rw.提示性箱号    = wswtrw.提示性箱号;
                                rw.提箱点编号    = wswtrw.提箱点编号;
                                rw.提箱时间要求   = wswtrw.提箱时间要求;
                                rw.委托联系人    = wswtrw.委托联系人;
                                rw.委托人编号    = wswtrw.委托人编号;
                                rw.委托时间     = wswtrw.委托时间;
                                rw.箱号       = wswtrw.箱号;
                                rw.箱属船公司编号  = wswtrw.箱属船公司编号;
                                rw.箱型编号     = wswtrw.箱型编号;
                                rw.卸货地编号    = wswtrw.卸货地编号;
                                rw.卸货联系手机   = wswtrw.卸货联系手机;
                                rw.卸货联系座机   = wswtrw.卸货联系座机;
                                rw.卸货联系人    = wswtrw.卸货联系人;
                                rw.卸货时间要求始  = wswtrw.卸货时间要求始;
                                rw.卸货时间要求止  = wswtrw.卸货时间要求止;
                                rw.重量       = wswtrw.重量;
                                rw.转关箱标志    = wswtrw.转关箱标志;
                                rw.装货地编号    = wswtrw.装货地编号;
                                rw.卸货联系手机   = wswtrw.卸货联系手机;
                                rw.卸货联系座机   = wswtrw.卸货联系座机;
                                rw.装货联系人    = wswtrw.装货联系人;
                                rw.装货时间要求始  = wswtrw.装货时间要求始;
                                rw.装货时间要求止  = wswtrw.装货时间要求止;
                                dao.Save(rep1, rw);
                                rep1.CommitTransaction();

                                rep.BeginTransaction();
                                wswtrw.是否受理 = true;
                                rep.Update(wswtrw);
                                rep.CommitTransaction();
                                successCount++;
                            }
                            catch (Exception ex)
                            {
                                rep1.RollbackTransaction();
                                rep.RollbackTransaction();
                                if (MessageForm.ShowYesNo("网上委托任务\"" + wswtrw.ID + "\"有备案错误。" + Environment.NewLine + "\"是\"跳过任务,\"否\"显示错误"))
                                {
                                    continue;
                                }
                                else
                                {
                                    ServiceProvider.GetService <IExceptionProcess>().ProcessWithNotify(ex);
                                }
                            }
                        }
                    }
                    m_rightGrid.ReloadData();
                    MessageForm.ShowInfo("成功导入 " + successCount + " 条任务。");
                }
            }
        }