using System; using System.Linq; using System.Web.Mvc; using DSWeb.MvcContainer.Models.MsCodeCtnTk; using DSWeb.MvcContainer.DAL.MsCodeCtnTk; using DSWeb.MvcShipping.Helper; using DSWeb.MvcShipping.Comm.Cookie; using System.Collections.Generic; using HcUtility.Comm; using HcUtility.Core; using System.IO; using System.Data; using System.Data.OleDb; using DSWeb.EntityDA; using DSWeb.Areas.CommMng.DAL; using DSWeb.MvcShipping.DAL.MsOpReceiptDAL; using DSWeb.Areas.Import.DAL.ReceiptDoc; using ICSharpCode.SharpZipLib.Zip; namespace DSWeb.MvcContainer.Controllers { [JsonRequestBehavior] public class MsCodeCtnTkController : Controller { // // GET: public ActionResult Index() { return View(); } // // GET: / public ActionResult Edit() { return View(); } public ActionResult AddIndex() { return View(); } public ActionResult RptDateIndex() { return View(); } public ActionResult CtnView() { return View(); } [HttpGet] public ActionResult UploadEdiFile() { return View(); } // // GET: public ContentResult GetDataList(int start, int limit, string sort, string condition) { int total = 0; var dataList = MsCodeCtnTkDAL.GetDataList(start,limit,condition, Convert.ToString(Session["COMPANYID"]),out total,sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = total, data = dataList.ToList() }); return new ContentResult() { Content = json }; } //罐箱超期提醒 列表方法 public ContentResult GetDatadDateList(int start, int limit, string sort, string condition) { var dataList = MsCodeCtnTkDAL.GetDataDateList(condition, Convert.ToString(Session["COMPANYID"]), 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 GetDatadDateListStr(string sort, string condition) { var dataListStr = MsCodeCtnTkDAL.GetDataDateListStr(condition, Convert.ToString(Session["COMPANYID"]), sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", data = dataListStr }); return new ContentResult() { Content = json }; } public ContentResult GetDataListStr(string sort, string condition) { var dataListStr = MsCodeCtnTkDAL.GetDataListStr(condition, Convert.ToString(Session["COMPANYID"]), sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", data = dataListStr }); return new ContentResult() { Content = json }; } // // GET:/TruckMng/MsWlTyreAcc/GetData/ public ContentResult GetData(string handle, string condition) { CodeCtnTk head = null; int total = 0; if (handle == "edit") { var list = MsCodeCtnTkDAL.GetDataList(0,1,condition, Convert.ToString(Session["COMPANYID"]),out total); if (list.Count > 0) head = list[0]; } if (head == null) { head = new CodeCtnTk(); head.COMPANYID = Convert.ToString(Session["COMPANYID"]); } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } public ContentResult Save(string opstatus, string data, string body, string Inspectbody, string Insurancebody, string beforebody) { var headData = JsonConvert.Deserialize(data); var bodyList = JsonConvert.Deserialize>(body); var InspectbodyList = JsonConvert.Deserialize>(Inspectbody); var InsurancebodyList = JsonConvert.Deserialize>(Insurancebody); var BeforebodyList = JsonConvert.Deserialize>(beforebody); var errorstr = ""; var isPost = true; var ct = MsCodeCtnTkDAL.GetRdCount("GID<>'" + headData.GID + "' AND CTNNO='" + headData.CTNNO + "' and CTNNO<>''"); if (ct != 0) { isPost = false; errorstr = "罐号重复!"; } var isnotctnno = MsCodeCtnTkDAL.ValidateContainerNumber(headData.CTNNO); if (!isnotctnno) { isPost = false; errorstr = "罐号验证不通过!"; } if (opstatus == "add") { headData.DbOperationType = DbOperationType.DbotIns; headData.COMPANYID = Convert.ToString(Session["COMPANYID"]); headData.INPUTBY = Convert.ToString(Session["USERID"]); headData.INPUTTIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } else if (opstatus == "edit") { headData.DbOperationType = DbOperationType.DbotUpd; headData.ModelUIStatus = "E"; } else { headData.DbOperationType = DbOperationType.DbotDel; } if (headData.MADEDATE == "") headData.MADEDATE = null; var GID = headData.GID; if (InsurancebodyList != null) { var insurance = InsurancebodyList.Find(x => x.LINKGID == "*"); if (insurance!=null&&insurance.LINKGID == "*") { foreach (var enumValue in InsurancebodyList) { if (enumValue.GID != insurance.GID) { if ((Convert.ToDateTime(insurance.BEGINDATE) >= Convert.ToDateTime(enumValue.BEGINDATE)) && (Convert.ToDateTime(insurance.BEGINDATE) <= Convert.ToDateTime(enumValue.ENDDATE)) || ((Convert.ToDateTime(insurance.ENDDATE) >= Convert.ToDateTime(enumValue.BEGINDATE)) && (Convert.ToDateTime(insurance.ENDDATE) <= Convert.ToDateTime(enumValue.ENDDATE)))) { isPost = false; var jsonRespose = new JsonResponse { Success = false, Message = "保险信息存在重叠区间,不允许保存!" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } } } } } if (isPost) { var modb = new ModelObjectDB(); var result = modb.Save(headData); if (result.Success == true) { result = MsCodeCtnTkDAL.SaveCodeCtnTkNoLaneItems(bodyList, GID, Convert.ToString(Session["USERID"])); result = MsCodeCtnTkDAL.SaveCodeCtnTkINSPECTItems(InspectbodyList, GID, Convert.ToString(Session["USERID"])); result = MsCodeCtnTkDAL.SaveCodeCtnTkInsuranceItems(InsurancebodyList, GID, Convert.ToString(Session["USERID"])); result = MsCodeCtnTkDAL.SaveCodeCtnTkBeforeItems(BeforebodyList, GID, Convert.ToString(Session["USERID"])); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string blUpSQL = "update op_ctnbscard set CTNPROP='"+headData.CTNPROP+ "' where CTNGID='" + headData.GID + "'"; bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL); } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = MsCodeCtnTkDAL.GetData(" c.GID='" + GID + "'", Convert.ToString(Session["COMPANYID"])) }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } else { var jsonRespose = new JsonResponse { Success = false, Message = errorstr }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } } public ContentResult Delete(string data) { var headData = JsonConvert.Deserialize>(data); var ctnnos = ""; T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); if (headData != null) { foreach (var enumValue in headData) { var BLCOUNT2 = T_ALL_DA.GetStrSQL("BLCOUNT", "select count(*) BLCOUNT from op_ctnbscard WHERE CTNNO='" + enumValue.CTNNO + "'"); if (BLCOUNT2 != "0") { ctnnos = ctnnos + enumValue.CTNNO + " "; } } } if (ctnnos != "") { var jsonRespose2 = new JsonResponse { Success =false, Message ="箱号:"+ctnnos+" 已使用,不允许删除!" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) }; } DBResult result = MsCodeCtnTkDAL.DeleteCodeCtnTk(headData); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #region 不去航线 public ContentResult GetCodeCtnTkNoLaneItemsList(string condition, string sort) { var dataList = MsCodeCtnTkDAL.GetCodeCtnTkNoLaneItemsList(condition, sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } public ContentResult SaveCodeCtnTkNoLaneItems(string body, string PID) { // var bodyList = JsonConvert.Deserialize>(body); DBResult result = MsCodeCtnTkDAL.SaveCodeCtnTkNoLaneItems(bodyList, PID, Convert.ToString(Session["USERID"])); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult DeleteCodeCtnTkNoLaneItems(string data) { var headData = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.DeleteCodeCtnTkNoLaneItems(headData); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #endregion #region 年检 public ContentResult GetCodeCtnTkInspectItemsList(string condition, string sort) { var dataList = MsCodeCtnTkDAL.GetCodeCtnTkInspectItemsData(condition, sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } public ContentResult SaveCodeCtnTkInspectItems(string body, string PID) { // var bodyList = JsonConvert.Deserialize>(body); DBResult result = MsCodeCtnTkDAL.SaveCodeCtnTkINSPECTItems(bodyList, PID, Convert.ToString(Session["USERID"])); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult LockCodeCtnTkINSPECTItems(string data, int islock) { // var bodyList = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.LockCodeCtnTkINSPECTItems(bodyList,islock); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult DeleteCodeCtnTkInspectItems(string data) { var headData = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.DeleteCodeCtnTkINSPECTItems(headData); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #endregion public ContentResult GetCodeCtnTkBeforeItemsData(string condition, string sort) { var dataList = MsCodeCtnTkDAL.GetCodeCtnTkBeforeItemsData(condition, sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } public ContentResult DeleteCodeCtnTkBeforeItems(string data) { var headData = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.DeleteCodeCtnTkBeforeItems(headData); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #region 保险 public ContentResult GetCodeCtnTkInsuranceItemsList(string condition, string sort) { var dataList = MsCodeCtnTkDAL.GetCodeCtnTkInsuranceItemdata(condition, sort); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } public ContentResult SaveCodeCtnTkInsuranceItems(string body, string PID) { // var bodyList = JsonConvert.Deserialize>(body); DBResult result = MsCodeCtnTkDAL.SaveCodeCtnTkInsuranceItems(bodyList, PID, Convert.ToString(Session["USERID"])); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult DeleteCodeCtnTkInsuranceItems(string data) { var headData = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.DeleteCodeCtnTkInsuranceItems(headData); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult LockCodeCtnTkInsuranceItems(string data, int islock) { // var bodyList = JsonConvert.Deserialize>(data); DBResult result = MsCodeCtnTkDAL.LockCodeCtnTkInsuranceItems(bodyList, islock); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult LockCodeCtnTkInsurance(string data) { DBResult result = MsCodeCtnTkDAL.LockCodeCtnTkInsurance(data); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult modify(string data, string modifydata) { var bodyList = JsonConvert.Deserialize>(data); var amodifydata = JsonConvert.Deserialize(modifydata); var result = new DBResult(); if (bodyList != null) { result = MsCodeCtnTkDAL.Modify(bodyList, amodifydata, Convert.ToString(Session["COMPANYID"]), Convert.ToString(Session["USERID"])); } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #region 用excel批量上传罐箱保险信息 public ContentResult ImportCtnInsurance() { var jsonRespose = new JsonResponse { Success = false, Message = "" }; var dt = new DataTable(); var _r = BasicDataRefDAL.RequestExceltoDatatable(Request, out dt); var bsno = Request.Form["bsno"]; if (_r.Success) { var _rn = MsCodeCtnTkDAL.InsertCtnInsurance(bsno,Session["SHOWNAME"].ToString(), dt); if (_rn >= 0) { jsonRespose.Success = true; jsonRespose.Message = $"成功上传{ _rn.ToString()}条保险数据"; } } else { jsonRespose = new JsonResponse(_r); } return jsonRespose.getContentReult(); } #endregion #region 用excel批量上传罐箱年检信息 [HttpPost] public ContentResult InsertCtnInspect() { var jsonRespose = new JsonResponse { Success = false, Message = "" }; var dt = new DataTable(); var _r = BasicDataRefDAL.RequestExceltoDatatable(Request, out dt); var bsno = Request.Form["bsno"]; if (_r.Success) { var _rn = MsCodeCtnTkDAL.InsertCtnInspect(bsno, Convert.ToString(Session["USERID"]), dt); if (_rn >= 0) { jsonRespose.Success = true; jsonRespose.Message = $"成功上传{ _rn.ToString()}条年检数据"; } } else { jsonRespose = new JsonResponse(_r); } return jsonRespose.getContentReult(); } [HttpPost] public ContentResult ImportCtnTk() { var jsonRespose = new JsonResponse { Success = false, Message = "" }; var dt = new DataTable(); var _r = BasicDataRefDAL.RequestExceltoDatatable(Request, out dt); if (_r.Success) { var _rn = MsCodeCtnTkDAL.InsertCtnTk(dt, Convert.ToString(Session["USERID"]),Convert.ToString(Session["COMPANYID"])); jsonRespose.Success = true; jsonRespose.Message = _rn.Message; } else { jsonRespose = new JsonResponse(_r); } return jsonRespose.getContentReult(); } #endregion #endregion #region EXCEL引入 [HttpPost] public ContentResult ImportCtnTkInsurance() { 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["LoadExcel"]; if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; 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) }; } List sheets = ExcelSheetName(filename); 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=Excel 8.0;"; 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:N]", 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; bool isSucess = false; isSucess = MsCodeCtnTkDAL.ImportCtnTkInsurance(bsno, Request, table, Convert.ToString(Session["USERID"]), out message, 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) + "个托单", data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错,请确认文件正确性"; return jsonRespose.getContentReult(); } } [HttpPost] public ContentResult ImportCtnTkInspect() { 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["LoadExcel"]; if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; 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) }; } List sheets = ExcelSheetName(filename); 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=Excel 8.0;"; 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:N]", 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; bool isSucess = false; isSucess = MsCodeCtnTkDAL.ImportCtnTkInspect(bsno, Request, table, Convert.ToString(Session["USERID"]), out message, 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) + "个托单", data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错,请确认文件正确性"; 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;"; 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) { return new List(); } return al; } [HttpPost] public ContentResult ImportCtnTkInsurance_List() { 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["LoadExcel"]; if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; 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) }; } List sheets = ExcelSheetName(filename); 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=Excel 8.0;"; 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:N]", 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; bool isSucess = false; isSucess = MsCodeCtnTkDAL.ImportCtnTkInsurance_List(bsno, Request, table, Convert.ToString(Session["USERID"]), out message, 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) + "个托单", data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错,请确认文件正确性"; return jsonRespose.getContentReult(); } } #endregion [HttpPost] public ActionResult UpEdiFileParse() { DBResult resp = new DBResult(); if (Request.Files.Count > 0) { T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var filelist = ""; for (int idx = 0; idx < Request.Files.Count; idx++) { var file = Request.Files.Get(idx); var ctnno = Path.GetFileNameWithoutExtension(file.FileName); var name = Path.GetFileName(file.FileName); var bsno = T_ALL_DA.GetStrSQL("GID", "select top 1 GID from [Code_CtnTkInspect] where CTNNO='" + ctnno + "'"); if (bsno != null && bsno.Trim() != "") { var path = Server.MapPath("../../UploadFiles/MsOpFiles/" + ctnno); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var usercode = Convert.ToString(Session["USERCODE"]); var partname = usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + name; string filename = path + "\\" + partname; string filenameURL = "../../UploadFiles/MsOpFiles/" + ctnno + "/" + partname; if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } file.SaveAs(filename); var isSucess = MsOpReceiptDAL.UpdateFileData(filenameURL, name, bsno, Convert.ToString(Session["USERID"]),"罐证","",""); if (isSucess.Success) { } else { filelist = filelist + name + ";"; } } else { filelist = filelist + name+";"; } } if (filelist.Trim() != "") filelist = "其中文件名:" + filelist + "罐号未匹配未导入(文件名必须和罐号一致)"; resp.Success = true; resp.Message = "导入成功"+ filelist; } return Json(resp); } public ActionResult DownloadFileList(string data) { var headData = JsonConvert.Deserialize>(data); var ctnnos = ""; var usercode = CookieConfig.GetCookie_UserCode(Request); var pathstr = "../../UploadFiles/ViewTmp/" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff"); var filePath = Server.MapPath(pathstr); var zipfilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".zip"; var destFile = filePath + "\\" + zipfilename; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } if (headData != null) { using (ZipFile zipFile = ZipFile.Create(destFile)) { zipFile.BeginUpdate(); foreach (var enumValue in headData) { var doc = ReceiptDocDAL.GetDoc("BSNO=(select top 1 GID FROM Code_CtnTkInspect WHERE CTNNO='" + enumValue.CTNNO + "') and (RECEIPTTYPE='罐证' or isnull(RECEIPTTYPE,'')='') "); //foreach (var doc in dataList) //{ if (!string.IsNullOrEmpty(doc.Driect_URL)) { var tmpfile = Server.MapPath(doc.Driect_URL); if (System.IO.File.Exists(tmpfile)) { FileInfo fileInfo2 = new FileInfo(tmpfile); fileInfo2.CopyTo(filePath + "\\" + doc.URL); zipFile.Add(filePath + "\\" + doc.URL, doc.URL); } } else { doc = ReceiptDocDAL.GetDoc("BSNO='" + enumValue.GID + "' and (RECEIPTTYPE='罐证' or isnull(RECEIPTTYPE,'')='') "); if (!string.IsNullOrEmpty(doc.Driect_URL)) { var tmpfile = Server.MapPath(doc.Driect_URL); if (System.IO.File.Exists(tmpfile)) { FileInfo fileInfo2 = new FileInfo(tmpfile); fileInfo2.CopyTo(filePath + "\\" + doc.URL); zipFile.Add(filePath + "\\" + doc.URL, doc.URL); } } } //} } zipFile.CommitUpdate(); } } //FileStream fs = new FileStream(destFile, FileMode.Open); //byte[] datazip = new byte[fs.Length]; //fs.Read(datazip, 0, datazip.Length); //fs.Close(); //MemoryStream ms = new MemoryStream(datazip); //Response.AddHeader("Content-Disposition", "attachment;fileName=" + zipfilename); //Response.BinaryWrite(ms.ToArray()); FileInfo fileInfo = new FileInfo(destFile); Response.Clear(); //清除缓冲区流中的所有内容输出 Response.ClearContent(); //清除缓冲区流中的所有内容输出 Response.ClearHeaders(); //清除缓冲区流中的所有头 Response.Buffer = true; //该值指示是否缓冲输出,并在完成处理整个响应之后将其发送 Response.AddHeader("Content-Disposition", "attachment;filename=" + zipfilename); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/unknow"; //获取或设置输出流的 HTTP MIME 类型 Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); //获取或设置输出流的 HTTP 字符集 Response.TransmitFile(fileInfo.FullName); Response.End(); var json = JsonConvert.Serialize(new { success = true, Message = "下载完成"}); return new ContentResult() { Content = json }; } public ActionResult DownloadFileList2(string data) { var headData = JsonConvert.Deserialize>(data); var ctnnos = ""; var usercode = CookieConfig.GetCookie_UserCode(Request); var pathstr = "../../UploadFiles/ViewTmp/" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff"); var filePath = Server.MapPath(pathstr); var zipfilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".zip"; var destFile = filePath + "\\" + zipfilename; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } if (headData != null) { using (ZipFile zipFile = ZipFile.Create(destFile)) { zipFile.BeginUpdate(); foreach (var enumValue in headData) { var doc = ReceiptDocDAL.GetDoc("BSNO=(select top 1 GID FROM Code_CtnTkInspect WHERE CTNNO='" + enumValue.CTNNO + "') and (RECEIPTTYPE='罐证' or isnull(RECEIPTTYPE,'')='') "); //foreach (var doc in dataList) //{ if (!string.IsNullOrEmpty(doc.Driect_URL)) { var tmpfile = Server.MapPath(doc.Driect_URL); if (System.IO.File.Exists(tmpfile)) { FileInfo fileInfo2 = new FileInfo(tmpfile); fileInfo2.CopyTo(filePath + "\\" + doc.URL); zipFile.Add(filePath + "\\" + doc.URL, doc.URL); } } else { doc = ReceiptDocDAL.GetDoc("BSNO=(SELECT TOP 1 GID FROM CODE_CTNTK WHERE CTNNO='" + enumValue.CTNNO + "') and (RECEIPTTYPE='罐证' or isnull(RECEIPTTYPE,'')='') "); if (!string.IsNullOrEmpty(doc.Driect_URL)) { var tmpfile = Server.MapPath(doc.Driect_URL); if (System.IO.File.Exists(tmpfile)) { FileInfo fileInfo2 = new FileInfo(tmpfile); fileInfo2.CopyTo(filePath + "\\" + doc.URL); zipFile.Add(filePath + "\\" + doc.URL, doc.URL); } } } //} } zipFile.CommitUpdate(); } } //FileStream fs = new FileStream(destFile, FileMode.Open); //byte[] datazip = new byte[fs.Length]; //fs.Read(datazip, 0, datazip.Length); //fs.Close(); //MemoryStream ms = new MemoryStream(datazip); //Response.AddHeader("Content-Disposition", "attachment;fileName=" + zipfilename); //Response.BinaryWrite(ms.ToArray()); FileInfo fileInfo = new FileInfo(destFile); Response.Clear(); //清除缓冲区流中的所有内容输出 Response.ClearContent(); //清除缓冲区流中的所有内容输出 Response.ClearHeaders(); //清除缓冲区流中的所有头 Response.Buffer = true; //该值指示是否缓冲输出,并在完成处理整个响应之后将其发送 Response.AddHeader("Content-Disposition", "attachment;filename=" + zipfilename); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/unknow"; //获取或设置输出流的 HTTP MIME 类型 Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); //获取或设置输出流的 HTTP 字符集 Response.TransmitFile(fileInfo.FullName); Response.End(); var json = JsonConvert.Serialize(new { success = true, Message = "下载完成" }); return new ContentResult() { Content = json }; } #region 参照部分 #endregion } }