using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using DSWeb.Areas.CommMng.DAL; using DSWeb.Areas.RptMng.Comm; using DSWeb.TruckMng.Comm.Cookie; using DSWeb.TruckMng.Helper; using DSWeb.TruckMng.Helper.Repository; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.EntityDA; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using HcUtility.Core; using System.IO; using System.Data.OleDb; using DSWeb.MvcShipping.Models.MsOpAirn; using DSWeb.MvcShipping.DAL.MsOpAirnDAL; using System.Web.Configuration; namespace DSWeb.MvcShipping.Controllers { /// /// 内贸空运报价单 /// [JsonRequestBehavior] public class MsOpAirn_FreightController : Controller { public ActionResult Index() { return View(); } public ActionResult Edit() { return View(); } public static string GetRangDAStr(string tb, string userid, string usercode, string orgcode) { string str = ""; var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" VISIBLERANGE,OPERATERANGE "); strSql.Append(" from VW_User_Authority "); strSql.Append(" where [NAME]='modTruckBs' and USERID='" + userid + "' and ISDELETE=0"); string visiblerange = "4"; string operaterange = "4"; Database db = DatabaseFactory.CreateDatabase(); DataSet ds = new DataSet(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { visiblerange = Convert.ToString(reader["VISIBLERANGE"]); operaterange = Convert.ToString(reader["OPERATERANGE"]); break; } reader.Close(); } if (visiblerange == "4") { str = "1=2"; } else if (visiblerange == "3") { if (tb == "index") { str = " A.UserCode='" + usercode + "'"; } else { str = " UPPER(A.OrgCode)='" + orgcode + "'"; } } else if (visiblerange == "2") { if (tb == "index") { var rangeDa = new RangeDA(); var companyid = rangeDa.GetCORPID(userid); var deptname = rangeDa.GetDEPTNAME(userid); var userstr = new StringBuilder(); userstr.Append(" select codename from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { str = ""; while (reader.Read()) { if (str == "") { str = "(A.usercode='" + Convert.ToString(reader["codename"]) + "'"; } else { str = str+ " or A.usercode='" + Convert.ToString(reader["codename"]) + "'"; }; } str =str+ ")"; reader.Close(); } } else { str = " UPPER(A.OrgCode)='" + orgcode + "'"; } } else if (visiblerange == "1") { str = " UPPER(A.OrgCode)='" + orgcode + "'"; } return str; } public ContentResult GetDataList(int start, int limit, string sort, string condition) { var dataList = MsOpAirn_FreightDAL.GetDataList(condition, sort); var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } public ContentResult GetData(string handle,string condition) { MsOpAirn_FreightPLANmb head = null; if (handle == "add") { head = new MsOpAirn_FreightPLANmb(); head.GID = System.Guid.NewGuid().ToString(); head.ENTEROPERATOR = Convert.ToString(Session["SHOWNAME"]); head.ENTERDATE = DateTime.Now.ToString(); } else { var _t = ""; var list = MsOpAirn_FreightDAL.GetDataList(condition, _t); if (list.Count > 0) head = list[0]; if (head == null) { head = new MsOpAirn_FreightPLANmb(); } } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } public ContentResult GetBodyList ( int start, int limit, string sort, string condition ) { var dataList = MsOpAirn_FreightDAL.GetBodyList(condition, sort); var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } public ContentResult Save ( string opstatus, string data, string CargoBody, string CargoDelBody ) { var head = JsonConvert.Deserialize(data); var CargobodyList = JsonConvert.Deserialize>(CargoBody); var CargodelbodyList = JsonConvert.Deserialize>(CargoDelBody); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; //head.Mainstate = "0"; head.GID = System.Guid.NewGuid().ToString(); } else if (opstatus == "edit") { head.DbOperationType = DbOperationType.DbotUpd; head.ModelUIStatus = "E"; } else { head.DbOperationType = DbOperationType.DbotDel; } var modb = new ModelObjectRepository(); DBResult result = modb.Save(head, ModelObjectConvert.ToModelObjectList(CargobodyList), ModelObjectConvert.ToModelObjectList(CargodelbodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsOpAirn_FreightDAL.GetData("GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } [HttpPost] public ContentResult File2 ( ) { var jsonRespose = new JsonResponse { Success = false, Message = "" }; if (Request.Files.Count != 1) { jsonRespose.Success = false; jsonRespose.Message = "请选择上传的文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var file = Request.Files["file"]; var PLAN_GID = Request.Form["GID"].ToString().Trim(); var AIRLINES = Request.Form["AIRLINES"].ToString().Trim(); if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "") { var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) }; } string ext = Path.GetExtension(file.FileName).ToLower(); if (ext == ".asp" || ext == ".aspx") { jsonRespose.Success = false; jsonRespose.Message = "不允许上传ASP或ASPX文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var path = Server.MapPath("../../UploadFiles/CtnTkDetail"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var size = file.ContentLength; var name = Path.GetFileName(file.FileName); //var bsno = Request.Form["bsno"]; var usercode = CookieConfig.GetCookie_UserCode(Request); string filename = path + "\\" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + name; if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } file.SaveAs(filename); if (!System.IO.File.Exists(filename)) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据01"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var ExcelExt = ""; try { ExcelExt = WebConfigurationManager.AppSettings["ExcelExt"].ToString(); } catch { } if (ExcelExt == "" || ExcelExt == null) ExcelExt = "Excel 8.0;HDR=Yes;IMEX=1"; List sheets = ExcelSheetName(filename, ExcelExt); if (sheets.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据02"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } try { var sheetname = sheets[0]; string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties="+ ExcelExt; if (filename.ToLower().IndexOf(".xlsx") > 0) { excelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes\""; } OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "A1:X]", excelConn); DataSet ds = new DataSet(); oada.Fill(ds); if (ds.Tables.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据03"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var table = ds.Tables[0]; if (table.Rows.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据04"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var message = string.Empty; List headList; //if (customerFieldName == "委托单位") //{ var InsertCount = 0; var UpdateCount = 0; var UnKnowenTruckNo = ""; var isSucess = MsOpAirn_FreightDAL.ImportExcelData(Request, table, out message, out InsertCount, out UpdateCount, PLAN_GID, AIRLINES, out UnKnowenTruckNo, out headList); if (!isSucess) { jsonRespose.Success = false; jsonRespose.Message = message; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var json = JsonConvert.Serialize(new { success = true, Message = "上传成功,共处理" + Convert.ToString(headList.Count) + "条记录,其中新增" + Convert.ToString(InsertCount) + "个,更新" + Convert.ToString(UpdateCount) + "个。" + UnKnowenTruckNo, data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception e) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错:<"+e.Message+">,请确认文件正确性"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } } [HttpPost] public ContentResult File() { var jsonRespose = new JsonResponse { Success = false, Message = "" }; if (Request.Files.Count != 1) { jsonRespose.Success = false; jsonRespose.Message = "请选择上传的文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var file = Request.Files["file"]; var PLAN_GID = Request.Form["GID"].ToString().Trim(); var AIRLINES = Request.Form["AIRLINES"].ToString().Trim(); if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "") { var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) }; } string ext = Path.GetExtension(file.FileName).ToLower(); if (ext == ".asp" || ext == ".aspx") { jsonRespose.Success = false; jsonRespose.Message = "不允许上传ASP或ASPX文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var path = Server.MapPath("../../UploadFiles/Bs"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var size = file.ContentLength; var name = Path.GetFileName(file.FileName); var usercode = CookieConfig.GetCookie_UserCode(Request); string filename = path + "\\" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + name; if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } file.SaveAs(filename); if (!System.IO.File.Exists(filename)) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据01"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var ExcelExt = ""; try { ExcelExt = WebConfigurationManager.AppSettings["ExcelExt"].ToString(); } catch { } if (ExcelExt == "" || ExcelExt == null) ExcelExt = "Excel 8.0;HDR=Yes;IMEX=1"; List sheets = ExcelSheetName(filename, ExcelExt); if (sheets.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = filename + " 上传的Excel不包含数据02"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } try { var sheetname = sheets[0]; string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=" + ExcelExt; if (filename.ToLower().IndexOf(".xlsx") > 0) { excelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes\""; } OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "A2:AA]", excelConn); DataSet ds = new DataSet(); oada.Fill(ds); if (ds.Tables.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据03"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var table = ds.Tables[0]; if (table.Rows.Count == 0 || table.Rows.Count == 1) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据04"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var message = string.Empty; List headList; //if (customerFieldName == "委托单位") //{ var InsertCount = 0; var UpdateCount = 0; var UnKnowenTruckNo = ""; var isSucess = MsOpAirn_FreightDAL.ImportExcelData(Request, table, out message, out InsertCount, out UpdateCount, PLAN_GID, AIRLINES, out UnKnowenTruckNo, out headList); if (!isSucess) { jsonRespose.Success = false; jsonRespose.Message = message; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var json = JsonConvert.Serialize(new { success = true, Message = "上传成功,共处理" + Convert.ToString(headList.Count) + "条记录,其中新增" + Convert.ToString(InsertCount) + "个,更新" + Convert.ToString(UpdateCount) + "个。" + UnKnowenTruckNo, data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception e) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错 "+e.Message; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } } public List ExcelSheetName ( string filepath,string excelext ) { var al = new List(); try { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties="+ excelext; if (filepath.ToLower().IndexOf(".xlsx") > 0) { strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes\""; } OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.DataTable sheetNames = conn.GetOleDbSchemaTable (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); conn.Close(); foreach (DataRow dr in sheetNames.Rows) { al.Add(dr[2].ToString()); } } catch (Exception e) { BasicDataRefDAL.SaveLog(e.Message, "", "内贸空运", "导入费用方案"); return new List(); } return al; } public ContentResult Delete ( string data, string USERID ) { var head = JsonConvert.Deserialize(data); var modb = new ModelObjectDB(); DBResult result = modb.Delete(head, "delete from OpAirn_Freight_Detail where plan_gid='"+head.GID+"'"); //var ContractNo = head.ContractNo; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; //为了清除用证信息 //var _count = 0; //_count = XXHDAL.DELUseApp(ContractNo); //_count = _count + XXHDAL.ClearHTH(ContractNo); return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult COPYNEW ( string data ) { var head = JsonConvert.Deserialize(data); var OLDGID = head.GID; head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = System.Guid.NewGuid().ToString(); head.ENTERDATE = System.DateTime.Now.ToString(); head.ENTEROPERATOR = Session["SHOWNAME"].ToString(); var modb = new ModelObjectRepository(); DBResult result = modb.Save(head ); var _count = MsOpAirn_FreightDAL.COPYNEW(OLDGID,head.GID); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsOpAirn_FreightDAL.GetData("GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #region 参照部分 #endregion } }