You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
286 lines
12 KiB
C#
286 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web.Mvc;
|
|
using DSWeb.MvcShipping.Comm.Cookie;
|
|
using DSWeb.MvcShipping.Helper;
|
|
using DSWeb.MvcShipping.Helper.Repository;
|
|
using DSWeb.MvcShipping.Models.MsOpBill;
|
|
using DSWeb.MvcShipping.Models.MsOpHistry;
|
|
using DSWeb.Areas.MvcShipping.DAL;
|
|
using HcUtility.Comm;
|
|
using HcUtility.Core;
|
|
using DSWeb.Areas.CommMng.DAL;
|
|
using DSWeb.Areas.RptMng.Comm;
|
|
using DSWeb.MvcShipping.DAL.MsSysParamSet;
|
|
using ICSharpCode.SharpZipLib.Zip;
|
|
using DSWeb.Areas.Import.DAL.ReceiptDoc;
|
|
|
|
namespace DSWeb.MvcShipping.Controllers
|
|
{
|
|
/// <summary>
|
|
/// 业务综合台账信息
|
|
/// </summary>
|
|
[JsonRequestBehavior]
|
|
public class MsOpBillController : Controller
|
|
{
|
|
public ActionResult MsFeeHistoryView()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ActionResult MsOpHistoryView()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ActionResult MsOpFeeView()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ActionResult MsOpQQCTBILLView()
|
|
{
|
|
return View();
|
|
}
|
|
public ActionResult CtnStatusView()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
public ContentResult GetBLListData(int start, int limit, string sort, string condition)
|
|
{
|
|
var dataList = MsOpBillDAL.GetDataList(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request));
|
|
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 GetBLData(string condition)
|
|
{
|
|
|
|
MsOpBill head = MsOpBillDAL.GetData(condition);
|
|
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", data = head });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
|
|
public ContentResult GetHistryListData(int start, int limit, string sort, string condition)
|
|
{
|
|
var dataList = MsOpBillDAL.GetHistryDataList(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request));
|
|
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 GetHistryData(string condition)
|
|
{
|
|
|
|
MsOpHistry head = MsOpBillDAL.GetHistryData(condition);
|
|
|
|
|
|
return new ContentResult() { Content = head.BSTEXT};
|
|
}
|
|
public ContentResult GetHistryDetailData(string condition)
|
|
{
|
|
|
|
MsOpHistry head = MsOpBillDAL.GetHistryDetailData(condition);
|
|
|
|
|
|
return new ContentResult() { Content = head.BSTEXT };
|
|
}
|
|
|
|
public ContentResult GetFeeDoList(string condition, string dotype)
|
|
{
|
|
var dataList = MsOpBillDAL.GetFeeDoList(condition, dotype);
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
public ContentResult GetInvHXFeeDoList(string condition)
|
|
{
|
|
var dataList = MsOpBillDAL.GetInvHXFeeDoList(condition);
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
|
|
public ContentResult GetCtnStatus(int start, int limit, string mblno, string bsno, string sort)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
var USEYDW = MsSysParamSetDAL.GetData("PARAMNAME='USEYDW'");
|
|
|
|
if (USEYDW.PARAMVALUE == "1")
|
|
{
|
|
strSql.Append("SELECT '"+ mblno + "' MBLNO,CNTRNO,SEALNO,C.TiXiangShiJian TXSJ,C.FanChangShiJian FCSJ,c.JiGangShiJian JGSJ,TRUCKNO,c.DaoGangShiJian DGSJ,c.TiHuoShiJian THSJ,c.FanKongShiJian FKSJ ");
|
|
strSql.Append(",'' AS HZSJ ");
|
|
strSql.Append(",(SELECT TOP 1 COMPTIME FROM op_status WHERE BSNO='" + bsno + "' AND [STATUS]='海关放行' ) AS HGFX ");
|
|
strSql.Append(",(SELECT TOP 1 COMPTIME FROM op_status WHERE BSNO='" + bsno + "' AND [STATUS]='装船出运' ) AS ZCCY ");
|
|
strSql.Append("FROM OP_CTN C WHERE C.MBLNO='" + mblno + "' ");
|
|
|
|
}
|
|
else
|
|
{
|
|
strSql.Append("SELECT C.MBLNO,C.XiangHao CNTRNO,C.FengHao SEALNO,C.TiXiangShiJian TXSJ,C.FanChangShiJian FCSJ,c.JiGangShiJian JGSJ,c.CheHao TRUCKNO ");
|
|
strSql.Append(",(SELECT TOP 1 Y.HZSJ FROM QdPortDanPiaoChuKouYDBG Y WHERE Y.TDH='" + mblno + "' ) AS HZSJ ");
|
|
strSql.Append(",(SELECT TOP 1 DaoGangShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS DGSJ ");
|
|
strSql.Append(",(SELECT TOP 1 TiHuoShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS THSJ ");
|
|
strSql.Append(",(SELECT TOP 1 COMPTIME FROM op_status WHERE BSNO='" + bsno + "' AND [STATUS]='海关放行' ) AS HGFX ");
|
|
strSql.Append(",(SELECT TOP 1 COMPTIME FROM op_status WHERE BSNO='" + bsno + "' AND [STATUS]='装船出运' ) AS ZCCY ");
|
|
strSql.Append(",(SELECT TOP 1 FanKongShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS FKSJ ");
|
|
strSql.Append("FROM PYChangZhanXiangHaoData C WHERE C.MBLNO='" + mblno + "' ");
|
|
}
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
paramps_sSQL.DbType = DbType.String;
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
return new ContentResult() { Content = json };
|
|
|
|
|
|
}
|
|
|
|
public ContentResult GetCtnStatus2(int start, int limit, string mblno, string bsno, string sort)
|
|
{
|
|
|
|
var strSql = new StringBuilder();
|
|
|
|
var USEYDW = MsSysParamSetDAL.GetData("PARAMNAME='USEYDW'");
|
|
|
|
if (USEYDW.PARAMVALUE == "1")
|
|
{
|
|
strSql.Append("SELECT P.CTNALL,P.PKGS,P.KGS,P.CBM,P.CNTRNO,P.SEALNO,P.TiXiangShiJian TXSJ,P.FanChangShiJian FCSJ,P.JiGangShiJian JGSJ,P.TRUCKNO,P.DaoGangShiJian DGSJ,P.TiHuoShiJian THSJ,P.FanKongShiJian FKSJ ");
|
|
strSql.Append("from OP_CTN P LEFT JOIN OP_SEAE B ON (P.BSNO=B.BSNO) WHERE B.MBLNO='" + mblno + "' ");
|
|
|
|
}
|
|
else
|
|
{
|
|
strSql.Append("SELECT CASE WHEN P.CTNALL IS NULL THEN C.Xiangxing ELSE P.CTNALL END CTNALL,P.PKGS,P.KGS,P.CBM,C.XiangHao CNTRNO,C.FengHao SEALNO,C.TiXiangShiJian TXSJ,C.FanChangShiJian FCSJ,c.JiGangShiJian JGSJ,c.CheHao TRUCKNO ");
|
|
strSql.Append(",(SELECT TOP 1 DaoGangShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS DGSJ ");
|
|
strSql.Append(",(SELECT TOP 1 TiHuoShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS THSJ ");
|
|
strSql.Append(",(SELECT TOP 1 FanKongShiJian FROM op_ctn WHERE BSNO='" + bsno + "' AND CNTRNO=c.XiangHao ) AS FKSJ ");
|
|
strSql.Append("FROM PYChangZhanXiangHaoData C ");
|
|
strSql.Append("LEFT JOIN OP_CTN P ON (P.CNTRNO=C.XiangHao) WHERE C.MBLNO='" + mblno + "' ");
|
|
}
|
|
|
|
|
|
var dbparams = new List<CustomDbParamter>();
|
|
|
|
var paramps_sSQL = new CustomDbParamter();
|
|
paramps_sSQL.ParameterName = "@sSQL";
|
|
paramps_sSQL.DbType = DbType.String;
|
|
paramps_sSQL.Direction = ParameterDirection.Input;
|
|
paramps_sSQL.Value = strSql.ToString();
|
|
dbparams.Add(paramps_sSQL);
|
|
|
|
|
|
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
|
|
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
|
|
return new ContentResult() { Content = json };
|
|
|
|
|
|
}
|
|
|
|
public ContentResult GetOpStatusData(string bsno)
|
|
{
|
|
MsOpSeaeBillTrack head = null;
|
|
head = MsOpBillDAL.GetOpStatusData(bsno);
|
|
|
|
var json = JsonConvert.Serialize(
|
|
new { Success = true, Message = "查询成功", data = head });
|
|
return new ContentResult() { Content = json };
|
|
}
|
|
|
|
public ActionResult DownloadFileList(string data,string filetype)
|
|
{
|
|
var headData = JsonConvert.Deserialize<List<MsOpBill>>(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 doclist = ReceiptDocDAL.GetDocList("BSNO='" + enumValue.BSNO + "' and RECEIPTTYPE='"+ filetype + "'");
|
|
foreach (var doc in doclist)
|
|
{
|
|
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 };
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|