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.TruckMng.Models.MsWl_Port; using DSWeb.Areas.TruckMng.DAL.MsWl_Port; using DSWeb.Areas.CommMng.Models; using DSWeb.TruckMng.Helper; using DSWeb.TruckMng.Helper.Repository; using Microsoft.Practices.EnterpriseLibrary.Data; using HcUtility.Comm; using HcUtility.Core; using DSWeb.Areas.CommMng.DAL; using System.IO; using System.Data.OleDb; using DSWeb.TruckMng.Comm.Cookie; namespace DSWeb.Areas.TruckMng.Controllers { /// /// 项目信息明细 /// public class MsWl_PortController : Controller { // // GET: /Import/RptImportFeedetail/ public ActionResult Index() { return View(); } public ActionResult Edit() { return View(); } public ActionResult Ctn() { return View(); } public ActionResult Other() { return View(); } public ActionResult RO() { return View(); } public ActionResult MovCtn() { return View(); } public ActionResult GJ() { return View(); } #region 码头业务主表 public ContentResult GetDataList(int start, int limit, string sort, string condition) { var dataList = MsWl_PortDAL.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) { MsWl_Portmb head = null; if (handle == "edit") { var _t = ""; var list = MsWl_PortDAL.GetDataList(condition, _t); if (list.Count > 0) head = list[0]; } if (head == null) { head = new MsWl_Portmb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion #region 分表—集装箱 public ContentResult GetCtn(int start, int limit, string sort, string GID) { var dataList = MsWl_PortDAL.GetCtn(GID, 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 GetCtnData(string handle, string condition) { PortCtnmb head = null; if (handle == "edit") { var list = MsWl_PortDAL.GetCtn(condition, ""); if (list.Count > 0) head = list[0]; } if (head == null) { head = new PortCtnmb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion #region 分表—杂项 public ContentResult GetOther(int start, int limit, string sort, string GID) { var dataList = MsWl_PortDAL.GetOther(GID, 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 GetOtherData(string handle, string condition) { PortOthermb head = null; if (handle == "edit") { var list = MsWl_PortDAL.GetOther(condition, ""); if (list.Count > 0) head = list[0]; } if (head == null) { head = new PortOthermb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion #region 分表—滚装 public ContentResult GetRO(int start, int limit, string sort, string GID) { var dataList = MsWl_PortDAL.GetRO(GID, 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 GetROData(string handle, string condition) { PortROmb head = null; if (handle == "edit") { var list = MsWl_PortDAL.GetRO(condition, ""); if (list.Count > 0) head = list[0]; } if (head == null) { head = new PortROmb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion #region 分表—外部拖箱 public ContentResult GetMovCtn(int start, int limit, string sort, string GID) { var dataList = MsWl_PortDAL.GetMovCtn(GID, 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 GetMovCtnData(string handle, string condition) { PortMovCtnmb head = null; if (handle == "edit") { var list = MsWl_PortDAL.GetMovCtn(condition, ""); if (list.Count > 0) head = list[0]; } if (head == null) { head = new PortMovCtnmb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion #region 分表—国检业务 public ContentResult GetGJ(int start, int limit, string sort, string GID) { var dataList = MsWl_PortDAL.GetGJ(GID, 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 GetGJData(string handle, string condition) { PortGJmb head = null; if (handle == "edit") { var list = MsWl_PortDAL.GetGJ(condition, ""); if (list.Count > 0) head = list[0]; } if (head == null) { head = new PortGJmb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } #endregion public ContentResult SaveCtn(string opstatus, string data, string Ctn, string CtnDel) { var head = JsonConvert.Deserialize(data); var CtnList = JsonConvert.Deserialize>(Ctn); var CtnDelBodyList = JsonConvert.Deserialize>(CtnDel); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0120"); //获取合同号 //20131011 应客户要求,将合同号改为接单人手动填写的必填项目。不再自动生成合同号 /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } 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(CtnList), ModelObjectConvert.ToModelObjectList(CtnDelBodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsWl_PortDAL.GetData("P.GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SaveOther(string opstatus, string data, string Other, string OtherDel) { var head = JsonConvert.Deserialize(data); var CtnList = JsonConvert.Deserialize>(Other); var CtnDelBodyList = JsonConvert.Deserialize>(OtherDel); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0120"); //获取合同号 //20131011 应客户要求,将合同号改为接单人手动填写的必填项目。不再自动生成合同号 /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } 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(CtnList), ModelObjectConvert.ToModelObjectList(CtnDelBodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsWl_PortDAL.GetData("P.GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SaveRO(string opstatus, string data, string RO, string RODel) { var head = JsonConvert.Deserialize(data); var CtnList = JsonConvert.Deserialize>(RO); var CtnDelBodyList = JsonConvert.Deserialize>(RODel); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0120"); //获取合同号 //20131011 应客户要求,将合同号改为接单人手动填写的必填项目。不再自动生成合同号 /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } 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(CtnList), ModelObjectConvert.ToModelObjectList(CtnDelBodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsWl_PortDAL.GetData("P.GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SaveMovCtn(string opstatus, string data, string MovCtn, string MovCtnDel) { var head = JsonConvert.Deserialize(data); var CtnList = JsonConvert.Deserialize>(MovCtn); var CtnDelBodyList = JsonConvert.Deserialize>(MovCtnDel); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0120"); //获取合同号 //20131011 应客户要求,将合同号改为接单人手动填写的必填项目。不再自动生成合同号 /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } 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(CtnList), ModelObjectConvert.ToModelObjectList(CtnDelBodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsWl_PortDAL.GetData("P.GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SaveGJ(string opstatus, string data, string GJ, string GJDel) { var head = JsonConvert.Deserialize(data); var CtnList = JsonConvert.Deserialize>(GJ); var CtnDelBodyList = JsonConvert.Deserialize>(GJDel); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; head.GID = PubSysDAL.GetBillNo("0120"); //获取合同号 //20131011 应客户要求,将合同号改为接单人手动填写的必填项目。不再自动生成合同号 /*自动填写接单审单人id headData.UserCode = CookieConfig.GetCookie_UserCode(Request); headData.UserName = CookieConfig.GetCookie_UserName(Request); headData.OrgCode = CookieConfig.GetCookie_OrgCode(Request); headData.OrgName = CookieConfig.GetCookie_OrgName(Request);*/ //headData.LrDate = DateTime.Now; } 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(CtnList), ModelObjectConvert.ToModelObjectList(CtnDelBodyList) ); //刷新父窗口上的父节点 var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsWl_PortDAL.GetData("P.GID='" + head.GID + "'") }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public int Lock(string GIDList,string Type) { var strSql = new StringBuilder(); var userid = Convert.ToString(Session["USERID"]); var _GIDList = JsonConvert.Deserialize>(GIDList); var _count = 0; if (Type == "1") { foreach (var GID in _GIDList) { strSql.Append(" update tMsWl_Port set Locked=1 where GID ='"+GID+"' "); _count = _count + Lock(strSql); } } else if (Type == "0") { foreach (var GID in _GIDList) { strSql.Append(" update tMsWl_Port set Locked=0 where GID ='" + GID + "' "); _count = _count + Lock(strSql); } } return _count;//ExecuteNonQuery } private static int Lock(StringBuilder strSql) { var _count = 0; Database db = DatabaseFactory.CreateDatabase(); _count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString()); return _count; } //获取油价 public ContentResult GetFuelPrice(string DATE, string TruckNo) { FuelPricemb head = null; var list = MsWl_PortDAL.GetFuelPrice_Truck(DATE, TruckNo); if (list.Count > 0) head = list[0]; if (head == null) { head = new FuelPricemb(); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } [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"]; ExcelCtnmb _EC = new ExcelCtnmb(); _EC.LINKID= Request.Form["BSNO"].ToString().Trim(); _EC.priceAdd = Request.Form["priceAdd"].ToString().Trim(); _EC.priceCut = Request.Form["priceCut"].ToString().Trim(); _EC.priceMul = Request.Form["priceMul"].ToString().Trim(); _EC._20GPMul = Request.Form["_20GPMul"].ToString().Trim(); _EC._40GPMul = Request.Form["_40GPMul"].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) }; } List sheets = ExcelSheetName(filename); 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=Excel 8.0;"; OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "B4:K]", 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 customerFieldName = table.Columns[0].ColumnName; //if (customerFieldName != "订单列表") //{ // jsonRespose.Success = false; // jsonRespose.Message = "上传的Excel不是标准的格式,请重新选择"; // 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 = MsWl_PortDAL.ImportExcelData(Request, table, out message, out InsertCount, out UpdateCount,_EC, 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 ) { var al = new List(); try { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); 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) { return new List(); } return al; } } }