using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Text; using HcUtility.Comm; using System.Data.SqlClient; using WebSqlHelper; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.EntityDA; using DSWeb.DsWebService.XmlManifest; using System.IO; using ICSharpCode.SharpZipLib.Zip; using System.Xml; using System.Xml.Serialization; namespace DSWeb.DsWebService.DAL.DsWebService { public class DsWebServiceDAL { public static DBResult AddBill(Manifest XObj, string Senderop, string companyid, string SenderHandphone, string SenderEmail, string SenderFax,string filename,bool AfterDoc) { var result = new DBResult(); var MessageID = ""; Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdInsert = db.GetSqlStringCommand( "insert into op_custom_manifest(GID,CORPID,XmlMessageID,XmlFunctionCode,XmlMessageType,XmlSenderID,XmlReceiverID,XmlSendTime," +"XmlVersion,XmlSenderName,XmlExitCustomsOffice,Agent,Carrier,Voyno,TransType,TransID,Vessel,PORTDISCHAGEID,ETADATETIME" +",ETDDATETIME,MBLNO,CHANGEREASON1,CHANGEREASON2,CHANGEREASON3,TRANSTERMS,HBLNO,KGS,LOADPORTID,LOADPORTDATE,UNLOADPORTID," +"UNLOADPORTDATE,RECEIPTPLACEID,RECEIPTPLACE,TRANSHIPMENTID,TRANSITDESTINATION,ROUNTCOUNTRYID,GOODCONSIGNEPLACE,FREIGHTPAYMENT," +"PKGS,KINDPKGS,GROSSWEIGHT,CONSIGNEE,CONSIGNEEADDR,CONSIGNEECITY,CONSIGNEEPRIVEID,CONSIGNEEPRIVENAME,CONSIGNEEPOST," +"CONSINGEECOUNTRY,SHIPPER,SHIPPERADDR,SHIPPERCITY,SHIPPERPRIVEID,SHIPPERPRIVENAME,SHIPPERPOST,SHIPPERCOUNTRY" +",NOTIFYPARTY,NOTIFYPARTYADDR,NOTIFYPARTYCITY,NOTIFYPARTYPRIVEID,NOTIFYPARTYPRIVENAME,NOTIFYPARTYPOST,NOTIFYPARTYCOUNTRY," + "UNDGContact,UNDGContactNum,UNDGContactCommType,REMARKS,BsStatus,SenderOp,SenderHANDPHONE,SENDERFAX,SENDEREMAIL,ErrorText,RESAVETIME,ZipFileName) " +"values (@GID,@CORPID,@XmlMessageID,@XmlFunctionCode,@XmlMessageType,@XmlSenderID,@XmlReceiverID,@XmlSendTime," +"@XmlVersion,@XmlSenderName,@XmlExitCustomsOffice,@Agent,@Carrier,@Voyno,@TransType,@TransID,@Vessel,@PORTDISCHAGEID,@ETADATETIME" +",@ETDDATETIME,@MBLNO,@CHANGEREASON1,@CHANGEREASON2,@CHANGEREASON3,@TRANSTERMS,@HBLNO,@KGS,@LOADPORTID,@LOADPORTDATE,@UNLOADPORTID," +"@UNLOADPORTDATE,@RECEIPTPLACEID,@RECEIPTPLACE,@TRANSHIPMENTID,@TRANSITDESTINATION,@ROUNTCOUNTRYID,@GOODCONSIGNEPLACE,@FREIGHTPAYMENT," +"@PKGS,@KINDPKGS,@GROSSWEIGHT,@CONSIGNEE,@CONSIGNEEADDR,@CONSIGNEECITY,@CONSIGNEEPRIVEID,@CONSIGNEEPRIVENAME,@CONSIGNEEPOST," +"@CONSINGEECOUNTRY,@SHIPPER,@SHIPPERADDR,@SHIPPERCITY,@SHIPPERPRIVEID,@SHIPPERPRIVENAME,@SHIPPERPOST,@SHIPPERCOUNTRY" +",@NOTIFYPARTY,@NOTIFYPARTYADDR,@NOTIFYPARTYCITY,@NOTIFYPARTYPRIVEID,@NOTIFYPARTYPRIVENAME,@NOTIFYPARTYPOST,@NOTIFYPARTYCOUNTRY," + "@UNDGContact,@UNDGContactNum,@UNDGContactCommType,@REMARKS,@BsStatus,@SenderOp,@SenderHANDPHONE,@SENDERFAX,@SENDEREMAIL,@ErrorText,@RESAVETIME,@ZipFileName) "); var cmdInsertctn = db.GetSqlStringCommand( @"insert into op_custom_manifest_ctn(GID,BSNO,CNTRNO,CNTRSIZE,CNTRCONSIGNOR,ISEMPTY,SEALNO) values (@GID,@BSNO,@CNTRNO,@CNTRSIZE,@CNTRCONSIGNOR,@ISEMPTY,@SEALNO) "); var cmdInsertcargo = db.GetSqlStringCommand( @"insert into op_custom_manifest_cargo(GID,BSNO,ITEMNO,PKGS,PKGSTYPE,MARKS,GOODSNAME,UNDGCode,HSCODE,REMARKS,GROSSWEIGHT,CNTRNO) values (@GID,@BSNO,@ITEMNO,@PKGS,@PKGSTYPE,@MARKS,@GOODSNAME,@UNDGCode,@HSCODE,@REMARKS,@GROSSWEIGHT,@CNTRNO) "); if (XObj != null) { XmlConsignment[] Consignment = XObj.Declaration.Consignment; for (int i = 0; i < Consignment.Length; i++) { var BSNO = Guid.NewGuid().ToString(); cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, BSNO); db.AddInParameter(cmdInsert, "@CORPID", DbType.String, companyid); MessageID = XObj.Head.MessageID; db.AddInParameter(cmdInsert, "@XmlMessageID", DbType.String, MessageID); db.AddInParameter(cmdInsert, "@XmlFunctionCode", DbType.String, XObj.Head.FunctionCode); db.AddInParameter(cmdInsert, "@XmlMessageType", DbType.String, XObj.Head.MessageType); db.AddInParameter(cmdInsert, "@XmlSenderID", DbType.String, XObj.Head.SenderID); db.AddInParameter(cmdInsert, "@XmlReceiverID", DbType.String, XObj.Head.ReceiverID); db.AddInParameter(cmdInsert, "@XmlSendTime", DbType.String, XObj.Head.FunctionCode); db.AddInParameter(cmdInsert, "@XmlVersion", DbType.String, XObj.Head.Version); db.AddInParameter(cmdInsert, "@XmlSenderName", DbType.String, XObj.Declaration.RepresentativePerson.Name); db.AddInParameter(cmdInsert, "@XmlExitCustomsOffice", DbType.String, XObj.Declaration.ExitCustomsOffice.ID); db.AddInParameter(cmdInsert, "@Agent", DbType.String, XObj.Declaration.Agent.ID); db.AddInParameter(cmdInsert, "@Carrier", DbType.String, XObj.Declaration.Carrier.ID); db.AddInParameter(cmdInsert, "@Voyno", DbType.String, XObj.Declaration.BorderTransportMeans.JourneyID); db.AddInParameter(cmdInsert, "@TransType", DbType.String, XObj.Declaration.BorderTransportMeans.TypeCode); db.AddInParameter(cmdInsert, "@TransID", DbType.String, XObj.Declaration.BorderTransportMeans.ID); db.AddInParameter(cmdInsert, "@Vessel", DbType.String, XObj.Declaration.BorderTransportMeans.Name); db.AddInParameter(cmdInsert, "@PORTDISCHAGEID", DbType.String, XObj.Declaration.BorderTransportMeans.FirstArrivalLocationID); db.AddInParameter(cmdInsert, "@ETADATETIME", DbType.String, XObj.Declaration.BorderTransportMeans.ArrivalDateTime); db.AddInParameter(cmdInsert, "@ETDDATETIME", DbType.String, XObj.Declaration.BorderTransportMeans.DepartureDateTime); db.AddInParameter(cmdInsert, "@MBLNO", DbType.String, Consignment[i].TransportContractDocument.ID); List ChangeReasonCode = Consignment[i].TransportContractDocument.ChangeReasonCode; var z = 1; if (ChangeReasonCode.Count != 0) { foreach (string s in ChangeReasonCode) { if (z == 1) { db.AddInParameter(cmdInsert, "@CHANGEREASON1", DbType.String, s); } if (z == 2) { db.AddInParameter(cmdInsert, "@CHANGEREASON2", DbType.String, s); } if (z == 3) { db.AddInParameter(cmdInsert, "@CHANGEREASON3", DbType.String, s); } z = z + 1; } } if (z == 1) { db.AddInParameter(cmdInsert, "@CHANGEREASON1", DbType.String, ""); db.AddInParameter(cmdInsert, "@CHANGEREASON2", DbType.String, ""); db.AddInParameter(cmdInsert, "@CHANGEREASON3", DbType.String, ""); } if (z == 2) { db.AddInParameter(cmdInsert, "@CHANGEREASON2", DbType.String, ""); db.AddInParameter(cmdInsert, "@CHANGEREASON3", DbType.String, ""); } if (z == 3) { db.AddInParameter(cmdInsert, "@CHANGEREASON3", DbType.String, ""); } db.AddInParameter(cmdInsert, "@TRANSTERMS", DbType.String, Consignment[i].TransportContractDocument.ConditionCode); if (Consignment[i].AssociatedTransportDocument!=null) db.AddInParameter(cmdInsert, "@HBLNO", DbType.String, Consignment[i].AssociatedTransportDocument.ID); else db.AddInParameter(cmdInsert, "@HBLNO", DbType.String,""); db.AddInParameter(cmdInsert, "@KGS", DbType.String, Consignment[i].GrossVolumeMeasure); db.AddInParameter(cmdInsert, "@LOADPORTID", DbType.String, Consignment[i].LoadingLocation.ID); db.AddInParameter(cmdInsert, "@LOADPORTDATE", DbType.String, Consignment[i].LoadingLocation.LoadingDate); db.AddInParameter(cmdInsert, "@UNLOADPORTID", DbType.String, Consignment[i].UnloadingLocation.ID); db.AddInParameter(cmdInsert, "@UNLOADPORTDATE", DbType.String, Consignment[i].UnloadingLocation.ArrivalDate); db.AddInParameter(cmdInsert, "@RECEIPTPLACEID", DbType.String, Consignment[i].GoodsReceiptPlace.ID); db.AddInParameter(cmdInsert, "@RECEIPTPLACE", DbType.String, Consignment[i].GoodsReceiptPlace.Name); if (Consignment[i].TranshipmentLocation!=null) db.AddInParameter(cmdInsert, "@TRANSHIPMENTID", DbType.String, Consignment[i].TranshipmentLocation.ID); else db.AddInParameter(cmdInsert, "@TRANSHIPMENTID", DbType.String,""); if (Consignment[i].TransitDestination!=null) db.AddInParameter(cmdInsert, "@TRANSITDESTINATION", DbType.String, Consignment[i].TransitDestination.ID); else db.AddInParameter(cmdInsert, "@TRANSITDESTINATION", DbType.String, ""); db.AddInParameter(cmdInsert, "@ROUNTCOUNTRYID", DbType.String,""); if (Consignment[i].GoodsConsignedPlace!=null) db.AddInParameter(cmdInsert, "@GOODCONSIGNEPLACE", DbType.String, Consignment[i].GoodsConsignedPlace.ID); else db.AddInParameter(cmdInsert, "@GOODCONSIGNEPLACE", DbType.String,""); db.AddInParameter(cmdInsert, "@FREIGHTPAYMENT", DbType.String, Consignment[i].FreightPayment.MethodCode); db.AddInParameter(cmdInsert, "@PKGS", DbType.String, Consignment[i].ConsignmentPackaging.QuantityQuantity); db.AddInParameter(cmdInsert, "@KINDPKGS", DbType.String, Consignment[i].ConsignmentPackaging.TypeCode); db.AddInParameter(cmdInsert, "@GROSSWEIGHT", DbType.String, Consignment[i].GrossVolumeMeasure); db.AddInParameter(cmdInsert, "@CONSIGNEE", DbType.String, Consignment[i].Consignee.Name); db.AddInParameter(cmdInsert, "@CONSIGNEEADDR", DbType.String, Consignment[i].Consignee.Address.Line); db.AddInParameter(cmdInsert, "@CONSIGNEECITY", DbType.String, Consignment[i].Consignee.Address.CityName); db.AddInParameter(cmdInsert, "@CONSIGNEEPRIVEID", DbType.String, Consignment[i].Consignee.Address.CountrySubEntityID); db.AddInParameter(cmdInsert, "@CONSIGNEEPRIVENAME", DbType.String, Consignment[i].Consignee.Address.CountrySubEntityName); db.AddInParameter(cmdInsert, "@CONSIGNEEPOST", DbType.String, Consignment[i].Consignee.Address.PostcodeID); db.AddInParameter(cmdInsert, "@CONSINGEECOUNTRY", DbType.String, Consignment[i].Consignee.Address.CountryCode); db.AddInParameter(cmdInsert, "@SHIPPER", DbType.String, Consignment[i].Consignor.Name); db.AddInParameter(cmdInsert, "@SHIPPERADDR", DbType.String, Consignment[i].Consignor.Address.Line); db.AddInParameter(cmdInsert, "@SHIPPERCITY", DbType.String, Consignment[i].Consignor.Address.CityName); db.AddInParameter(cmdInsert, "@SHIPPERPRIVEID", DbType.String, Consignment[i].Consignor.Address.CountrySubEntityID); db.AddInParameter(cmdInsert, "@SHIPPERPRIVENAME", DbType.String, Consignment[i].Consignor.Address.CountrySubEntityName); db.AddInParameter(cmdInsert, "@SHIPPERPOST", DbType.String, Consignment[i].Consignor.Address.PostcodeID); db.AddInParameter(cmdInsert, "@SHIPPERCOUNTRY", DbType.String, Consignment[i].Consignor.Address.CountryCode); db.AddInParameter(cmdInsert, "@NOTIFYPARTY", DbType.String, Consignment[i].NotifyParty.Name); db.AddInParameter(cmdInsert, "@NOTIFYPARTYADDR", DbType.String, Consignment[i].NotifyParty.Address.Line); db.AddInParameter(cmdInsert, "@NOTIFYPARTYCITY", DbType.String, Consignment[i].NotifyParty.Address.CityName); db.AddInParameter(cmdInsert, "@NOTIFYPARTYPRIVEID", DbType.String, Consignment[i].NotifyParty.Address.CountrySubEntityID); db.AddInParameter(cmdInsert, "@NOTIFYPARTYPRIVENAME", DbType.String, Consignment[i].NotifyParty.Address.CountrySubEntityName); db.AddInParameter(cmdInsert, "@NOTIFYPARTYPOST", DbType.String, Consignment[i].NotifyParty.Address.PostcodeID); db.AddInParameter(cmdInsert, "@NOTIFYPARTYCOUNTRY", DbType.String, Consignment[i].NotifyParty.Address.CountryCode); if (Consignment[i].UNDGContact != null) { db.AddInParameter(cmdInsert, "@UNDGContact", DbType.String, Consignment[i].UNDGContact.Name); db.AddInParameter(cmdInsert, "@UNDGContactNum", DbType.String, Consignment[i].UNDGContact.Communication.ID); db.AddInParameter(cmdInsert, "@UNDGContactCommType", DbType.String, Consignment[i].UNDGContact.Communication.TypeID); } else { db.AddInParameter(cmdInsert, "@UNDGContact", DbType.String, ""); db.AddInParameter(cmdInsert, "@UNDGContactNum", DbType.String,""); db.AddInParameter(cmdInsert, "@UNDGContactCommType", DbType.String, ""); } if ( XObj.Declaration.AdditionalInformation!=null) db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, XObj.Declaration.AdditionalInformation.Content); else db.AddInParameter(cmdInsert, "@REMARKS", DbType.String, ""); db.AddInParameter(cmdInsert, "@BsStatus", DbType.String,"已发送"); db.AddInParameter(cmdInsert, "@SenderOp", DbType.String, Senderop); db.AddInParameter(cmdInsert, "@SenderHANDPHONE", DbType.String,SenderHandphone); db.AddInParameter(cmdInsert, "@SENDERFAX", DbType.String, SenderFax); db.AddInParameter(cmdInsert, "@SENDEREMAIL", DbType.String, SenderEmail); db.AddInParameter(cmdInsert, "@ErrorText", DbType.String, ""); db.AddInParameter(cmdInsert, "@RESAVETIME", DbType.DateTime,DateTime.Now); db.AddInParameter(cmdInsert, "@ZipFileName", DbType.String, filename); db.ExecuteNonQuery(cmdInsert, tran); XmlTransportEquipment[] TransportEquipment = Consignment[i].TransportEquipment; for (int j = 0; j < TransportEquipment.Length; j++) { cmdInsertctn.Parameters.Clear(); db.AddInParameter(cmdInsertctn, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsertctn, "@BSNO", DbType.String, BSNO); db.AddInParameter(cmdInsertctn, "@CNTRNO", DbType.String, TransportEquipment[j].EquipmentIdentification.ID); db.AddInParameter(cmdInsertctn, "@CNTRSIZE", DbType.String, TransportEquipment[j].CharacteristicCode); db.AddInParameter(cmdInsertctn, "@CNTRCONSIGNOR", DbType.String, TransportEquipment[j].SupplierPartyTypeCode); db.AddInParameter(cmdInsertctn, "@ISEMPTY", DbType.String, TransportEquipment[j].FullnessCode); db.AddInParameter(cmdInsertctn, "@SEALNO", DbType.String, TransportEquipment[j].SealID); db.ExecuteNonQuery(cmdInsertctn, tran); } XmlConsignmentItem[] ConsignmentItem = Consignment[i].ConsignmentItem; for (int m = 0; m < ConsignmentItem.Length; m++) { cmdInsertcargo.Parameters.Clear(); db.AddInParameter(cmdInsertcargo, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsertcargo, "@BSNO", DbType.String, BSNO); db.AddInParameter(cmdInsertcargo, "@ITEMNO", DbType.Int16, ConsignmentItem[m].SequenceNumeric); db.AddInParameter(cmdInsertcargo, "@PKGS", DbType.Decimal, ConsignmentItem[m].ConsignmentItemPackaging.QuantityQuantity); db.AddInParameter(cmdInsertcargo, "@PKGSTYPE", DbType.String, ConsignmentItem[m].ConsignmentItemPackaging.TypeCode); db.AddInParameter(cmdInsertcargo, "@MARKS", DbType.String, ConsignmentItem[m].ConsignmentItemPackaging.MarksNumbers); db.AddInParameter(cmdInsertcargo, "@GOODSNAME", DbType.String, ConsignmentItem[m].Commodity.CargoDescription); db.AddInParameter(cmdInsertcargo, "@UNDGCode", DbType.String, ConsignmentItem[m].Commodity.UNDGCode); db.AddInParameter(cmdInsertcargo, "@HSCODE", DbType.String, ConsignmentItem[m].Commodity.TariffClassificationCode); if (ConsignmentItem[m].AdditionalInformation!=null) db.AddInParameter(cmdInsertcargo, "@REMARKS", DbType.String, ConsignmentItem[m].AdditionalInformation.Content); else db.AddInParameter(cmdInsertcargo, "@REMARKS", DbType.String, ""); db.AddInParameter(cmdInsertcargo, "@GROSSWEIGHT", DbType.Decimal, ConsignmentItem[m].GoodsMeasure.GrossMassMeasure); db.AddInParameter(cmdInsertcargo, "@CNTRNO", DbType.String, ConsignmentItem[m].EquipmentIdentification.ID); db.ExecuteNonQuery(cmdInsertcargo, tran); } if (AfterDoc) { var cmdInsertAft = db.GetSqlStringCommand( "insert into op_custom_manifest(GID,CORPID,XmlMessageID,XmlFunctionCode,XmlMessageType,XmlSenderID,XmlReceiverID,XmlSendTime," + "XmlVersion,XmlSenderName,XmlExitCustomsOffice,Agent,Carrier,Voyno,TransType,TransID,Vessel,PORTDISCHAGEID,ETADATETIME" + ",ETDDATETIME,MBLNO,CHANGEREASON1,CHANGEREASON2,CHANGEREASON3,TRANSTERMS,HBLNO,KGS,LOADPORTID,LOADPORTDATE,UNLOADPORTID," + "UNLOADPORTDATE,RECEIPTPLACEID,RECEIPTPLACE,TRANSHIPMENTID,TRANSITDESTINATION,ROUNTCOUNTRYID,GOODCONSIGNEPLACE,FREIGHTPAYMENT," + "PKGS,KINDPKGS,GROSSWEIGHT,CONSIGNEE,CONSIGNEEADDR,CONSIGNEECITY,CONSIGNEEPRIVEID,CONSIGNEEPRIVENAME,CONSIGNEEPOST," + "CONSINGEECOUNTRY,SHIPPER,SHIPPERADDR,SHIPPERCITY,SHIPPERPRIVEID,SHIPPERPRIVENAME,SHIPPERPOST,SHIPPERCOUNTRY" + ",NOTIFYPARTY,NOTIFYPARTYADDR,NOTIFYPARTYCITY,NOTIFYPARTYPRIVEID,NOTIFYPARTYPRIVENAME,NOTIFYPARTYPOST,NOTIFYPARTYCOUNTRY," + "UNDGContact,UNDGContactNum,UNDGContactCommType,REMARKS,BsStatus,SenderOp,SenderHANDPHONE,SENDERFAX,SENDEREMAIL,ErrorText,RESAVETIME,ZipFileName) " + " Select '" + Guid.NewGuid().ToString() + "',CORPID,'A" +MessageID+ "','0',XmlMessageType,XmlSenderID,XmlReceiverID,XmlSendTime," + "XmlVersion,XmlSenderName,XmlExitCustomsOffice,Agent,Carrier,Voyno,TransType,TransID,Vessel,PORTDISCHAGEID,ETADATETIME" + ",ETDDATETIME,MBLNO,CHANGEREASON1,CHANGEREASON2,CHANGEREASON3,TRANSTERMS,HBLNO,KGS,LOADPORTID,LOADPORTDATE,UNLOADPORTID," + "UNLOADPORTDATE,RECEIPTPLACEID,RECEIPTPLACE,TRANSHIPMENTID,TRANSITDESTINATION,ROUNTCOUNTRYID,GOODCONSIGNEPLACE,FREIGHTPAYMENT," + "PKGS,KINDPKGS,GROSSWEIGHT,CONSIGNEE,CONSIGNEEADDR,CONSIGNEECITY,CONSIGNEEPRIVEID,CONSIGNEEPRIVENAME,CONSIGNEEPOST," + "CONSINGEECOUNTRY,SHIPPER,SHIPPERADDR,SHIPPERCITY,SHIPPERPRIVEID,SHIPPERPRIVENAME,SHIPPERPOST,SHIPPERCOUNTRY" + ",NOTIFYPARTY,NOTIFYPARTYADDR,NOTIFYPARTYCITY,NOTIFYPARTYPRIVEID,NOTIFYPARTYPRIVENAME,NOTIFYPARTYPOST,NOTIFYPARTYCOUNTRY," + "UNDGContact,UNDGContactNum,UNDGContactCommType,REMARKS,BsStatus,SenderOp,SenderHANDPHONE,SENDERFAX,SENDEREMAIL,ErrorText,RESAVETIME,ZipFileName" + " from op_custom_manifest where GID='" + BSNO + "' "); db.ExecuteNonQuery(cmdInsertAft, tran); } } } result = new DBResult(); result.Success = true; result.Message = "成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } public static String LoadBillStatus(string Mblno) { var strSql = new StringBuilder(); strSql.Append("SELECT CH_ID,MBLNO,CNTRNO,SEALNO,DATESTR,VOYNO,[STATUS],[FILENAME],ISPOSTED,CREATETIME"); strSql.Append(" FROM op_custom_status "); strSql.Append(" Where MBLNO='" + Mblno + "' and (ISPOSTED=0 or ISPOSTED is null) "); strSql.Append(" order by CREATETIME "); DataSet ds = new DataSet(); Database db = DatabaseFactory.CreateDatabase(); ManifestStatus ManifestStatus = new ManifestStatus(); var billstatuslist =new List(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { const string UpdateSql = "update op_custom_status set IsPosted=1 where CH_ID=@CH_ID"; var cmdUpdate = db.GetSqlStringCommand(UpdateSql); while (reader.Read()) { XmlBillStatus billstatus = new XmlBillStatus(); billstatus.CH_ID =Convert.ToString(reader["CH_ID"]); billstatus.MBLNO = Convert.ToString(reader["MBLNO"]); if (reader["CNTRNO"] != DBNull.Value) billstatus.CNTRNO = Convert.ToString(reader["CNTRNO"]); else billstatus.CNTRNO = " "; billstatus.SEALNO = Convert.ToString(reader["SEALNO"]); billstatus.DATESTR = Convert.ToString(reader["DATESTR"]); billstatus.VOYNO = Convert.ToString(reader["VOYNO"]); billstatus.STATUS = Convert.ToString(reader["STATUS"]); billstatus.FILENAME = Convert.ToString(reader["FILENAME"]); billstatuslist.Add(billstatus); cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@CH_ID", DbType.Int32, reader["CH_ID"]); db.ExecuteNonQuery(cmdUpdate); } reader.Close(); } ManifestStatus.BillStatus = billstatuslist; if (ManifestStatus != null) { var filename = Guid.NewGuid().ToString(); var FileToZip = @"d:\Manifest\" + filename + ".XML"; using (StreamWriter sw = new StreamWriter(FileToZip)) { XmlSerializer xs = new XmlSerializer(ManifestStatus.GetType()); xs.Serialize(sw, ManifestStatus); } XmlDocument xobj = new XmlDocument(); xobj.Load(FileToZip); if (File.Exists(FileToZip)) { File.Delete(FileToZip); } return Xml2String(xobj); } else return ""; } public static SeaiManifest LoadSeaiBs(string LoginName, string LoginPass, string Mobile, string Mblno,int start, int limit) { SeaiManifest SeaiManifest = new SeaiManifest(); if (LoginName != "qdtaize" || LoginPass != "EBBE3242-D49E-4398-BBFE-0133CA655EB5") { SeaiManifest.ERROMSG = "账号密码不正确"; return SeaiManifest; } T_ALL_DA T_ALL_DA = new T_ALL_DA(); var CUSTOMERNAME = T_ALL_DA.GetStrSQL("SHOWNAME", "SELECT top 1 SHORTNAME SHOWNAME FROM info_client Where GID IN (SELECT LINKID FROM info_client_contact WHERE MOBILE='" + Mobile + "' AND ISNULL(ISSTOP,0)=0 ) "); if (CUSTOMERNAME == "") { SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; return SeaiManifest; } var ispc=false; if (Mblno != "") { var MBLNOSTR = T_ALL_DA.GetStrSQL("MBLNO", "SELECT TOP 1 MBLNO FROM OP_SEAI B LEFT JOIN op_apply_detail D ON (D.BSNO=B.BSNO) WHERE (B.MBLNO='" + Mblno + "' OR D.PONO='" + Mblno + "') AND B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); if (MBLNOSTR == "") { SeaiManifest.ERROMSG = "查询不到相关业务信息"; return SeaiManifest; } else { if (MBLNOSTR != Mblno) ispc = true; } } var strSql = new StringBuilder(); if (Mblno != "") { strSql.Append("SELECT BSNO,MBLNO,CUSTOMERNAME,VESSEL,VOYNO,ETD,ETA "); strSql.Append(" FROM OP_SEAI "); if (ispc) strSql.Append(" Where CUSTOMERNAME='" + CUSTOMERNAME + "' AND BSNO IN (SELECT BSNO FROM op_apply_detail WHERE PONO='" + Mblno + "' ) "); else strSql.Append(" Where CUSTOMERNAME='" + CUSTOMERNAME + "' AND MBLNO='" + Mblno + "' "); } else { strSql.Append("SELECT top 10 BSNO,MBLNO,CUSTOMERNAME,VESSEL,VOYNO,ETD,ETA "); strSql.Append(" FROM OP_SEAI "); strSql.Append(" Where CUSTOMERNAME='" + CUSTOMERNAME + "' order by ETD DESC "); } // Database db = DatabaseFactory.CreateDatabase(); // var XmlSeaiBsList = new List(); // using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) // { // while (reader.Read()) // { // XmlSeaiBs SeaiBs = new XmlSeaiBs(); // SeaiBs.MBLNO = Convert.ToString(reader["MBLNO"]); // SeaiBs.VESSEL = Convert.ToString(reader["VESSEL"]); // SeaiBs.VOYNO = Convert.ToString(reader["VOYNO"]); // if (reader["ETA"] != DBNull.Value) // SeaiBs.ETD= Convert.ToString(reader["ETA"]); // else // SeaiBs.ETD= " "; // if (reader["ETD"] != DBNull.Value) // SeaiBs.ETA = Convert.ToString(reader["ETD"]); // else // SeaiBs.ETA = " "; // SeaiBs.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); // var SeaiBsGoodsDetailList = new List(); // var strGoodsSql = new StringBuilder(); // strGoodsSql.Append("SELECT GOODSCODE,GOODSNAME,PKGS,PICINO,PONO,GOODSSTANDARD,KINDPKGS,KGS FROM op_apply_detail "); // strGoodsSql.Append(" WHERE BSNO='" + Convert.ToString(reader["BSNO"]) + "' "); // using (IDataReader Goodsreader = db.ExecuteReader(CommandType.Text, strGoodsSql.ToString())) // { // while (Goodsreader.Read()) // { // XmlSeaiBsGoodsDetail SeaiBsGoodsDetail = new XmlSeaiBsGoodsDetail(); // SeaiBsGoodsDetail.GOODSCODE = Convert.ToString(Goodsreader["GOODSCODE"]); // SeaiBsGoodsDetail.GOODSNAME = Convert.ToString(Goodsreader["GOODSNAME"]); // SeaiBsGoodsDetail.PKGS = Convert.ToString(Goodsreader["PKGS"]); // SeaiBsGoodsDetail.PICINO = Convert.ToString(Goodsreader["PICINO"]); // SeaiBsGoodsDetail.PONO = Convert.ToString(Goodsreader["PONO"]); // SeaiBsGoodsDetail.GOODSSTANDARD = Convert.ToString(Goodsreader["GOODSSTANDARD"]); // SeaiBsGoodsDetail.KINDPKGS = Convert.ToString(Goodsreader["KINDPKGS"]); // SeaiBsGoodsDetail.KGS = Convert.ToString(Goodsreader["KGS"]); // SeaiBsGoodsDetailList.Add(SeaiBsGoodsDetail); // } // Goodsreader.Close(); // } // SeaiBs.GOODSDETAIL = SeaiBsGoodsDetailList; // var BSSTATUSList = new List(); // var strStatusSql = new StringBuilder(); // strStatusSql.Append("SELECT STATUS,COMPTIME FROM op_status "); // strStatusSql.Append(" WHERE BSNO='" + Convert.ToString(reader["BSNO"]) + "' "); // using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strStatusSql.ToString())) // { // while (Statusreader.Read()) // { // XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); // BSSTATUS.BSSTATUS = Convert.ToString(Statusreader["STATUS"]); // BSSTATUS.BSSTATUSTIME = Convert.ToString(Statusreader["COMPTIME"]); // BSSTATUSList.Add(BSSTATUS); // } // Statusreader.Close(); // } // SeaiBs.BSSTATUS = BSSTATUSList; // var wmsinlist = new List(); // var strwmsinSql = new StringBuilder(); // strwmsinSql.Append("select w.WMSNO,W.WMSDATE,W.CUSTOMERNAME,W.BLNO MBLNO,w.STORAGENAME,i.GOODSCODE,i.GOODSNAME,i.GOODSMODEL,i.GOODSPACK,i.GOODSRKSL,i.GOODSSTOCK,i.GOODSPACKSTOCK,i.PICIHAO PICINO,i.CONTRACTNO PONO "); // strwmsinSql.Append(" from wms_in i left join wms w on (w.ASSOCIATEDNO=i.ASSOCIATEDNO) "); // strwmsinSql.Append(" WHERE w.BLNO='" + Convert.ToString(reader["MBLNO"]) + "' AND W.CUSTOMERNAME='" + CUSTOMERNAME + "' "); // if (ispc) // strwmsinSql.Append(" and i.CONTRACTNO='" + Mblno + "' "); // using (IDataReader Wmsinreader = db.ExecuteReader(CommandType.Text, strwmsinSql.ToString())) // { // while (Wmsinreader.Read()) // { // XmlSeaiBsGoodsWmsIn WMSIN = new XmlSeaiBsGoodsWmsIn(); // WMSIN.PONO = Convert.ToString(Wmsinreader["PONO"]); // WMSIN.PICINO = Convert.ToString(Wmsinreader["PICINO"]); // WMSIN.WMSDATE = Convert.ToString(Wmsinreader["WMSDATE"]); // WMSIN.WMSNO = Convert.ToString(Wmsinreader["WMSNO"]); // WMSIN.GOODSNAME = Convert.ToString(Wmsinreader["GOODSNAME"]); // WMSIN.GOODSCODE = Convert.ToString(Wmsinreader["GOODSCODE"]); // WMSIN.GOODSPACK = Convert.ToString(Wmsinreader["GOODSPACK"]); // WMSIN.GOODSPACKSTOCK = Convert.ToString(Wmsinreader["GOODSPACKSTOCK"]); // WMSIN.GOODSRKSL = Convert.ToString(Wmsinreader["GOODSRKSL"]); // WMSIN.GOODSSTOCK = Convert.ToString(Wmsinreader["GOODSSTOCK"]); // WMSIN.STORAGENAME = Convert.ToString(Wmsinreader["STORAGENAME"]); // wmsinlist.Add(WMSIN); // } // Wmsinreader.Close(); // } // SeaiBs.WMSIN = wmsinlist; // var wmsoutlist = new List(); // var strwmsoutSql = new StringBuilder(); // strwmsoutSql.Append("select w.WMSNO,W.WMSDATE,W.CUSTOMERNAME,W.BLNO MBLNO,w.STORAGENAME,i.GOODSCODE,i.GOODSNAME,i.GOODSMODEL,i.GOODSPACK,i.GOODSRKSL,i.GOODSSTOCK,i.GOODSPACKSTOCK,i.PICIHAO PICINO,i.CONTRACTNO PONO "); // strwmsoutSql.Append(" from wms_in i left join wms w on (w.ASSOCIATEDNO=i.ASSOCIATEDNO) "); // strwmsoutSql.Append(" WHERE w.BLNO='111111' AND W.CUSTOMERNAME='" + CUSTOMERNAME + "' "); // if (ispc) // strwmsoutSql.Append(" and i.CONTRACTNO='" + Mblno + "' "); // using (IDataReader Wmsoutreader = db.ExecuteReader(CommandType.Text, strwmsoutSql.ToString())) // { // while (Wmsoutreader.Read()) // { // XmlSeaiBsGoodsWmsOut WMSOUT = new XmlSeaiBsGoodsWmsOut(); // WMSOUT.PONO = Convert.ToString(Wmsoutreader["PONO"]); // WMSOUT.PICINO = Convert.ToString(Wmsoutreader["PICINO"]); // WMSOUT.OUTDATE = Convert.ToString(Wmsoutreader["OUTDATE"]); // WMSOUT.WMSOUTNO = Convert.ToString(Wmsoutreader["WMSOUTNO"]); // WMSOUT.GOODSNAME = Convert.ToString(Wmsoutreader["GOODSNAME"]); // WMSOUT.GOODSCODE = Convert.ToString(Wmsoutreader["GOODSCODE"]); // WMSOUT.GOODSPFSL = Convert.ToString(Wmsoutreader["GOODSPFSL"]); //// WMSOUT.GOODSPACKSTOCK = Convert.ToString(Wmsoutreader["GOODSPACKSTOCK"]); // WMSOUT.GOODSPACKPFSL = Convert.ToString(Wmsoutreader["GOODSPACKPFSL"]); // WMSOUT.TRUCKNO = Convert.ToString(Wmsoutreader["TRUCKNO"]); // wmsoutlist.Add(WMSOUT); // } // Wmsoutreader.Close(); // } // SeaiBs.WMSOUT = wmsoutlist; // XmlSeaiBsList.Add(SeaiBs); // } // reader.Close(); // } // SeaiManifest.SeaiBs = XmlSeaiBsList; return SeaiManifest; } #region 海运出口数据 public static SeaeManifest GetSeaeBsDataList(string LoginName, string LoginPass, string Mobile, string Mblno, int start, int limit) { SeaeManifest SeaeManifest = new SeaeManifest(); if (LoginName != "qdtaize" || LoginPass != "EBBE3242-D49E-4398-BBFE-0133CA655EB5") { SeaeManifest.ERROMSG = "账号密码不正确"; return SeaeManifest; } T_ALL_DA T_ALL_DA = new T_ALL_DA(); var CUSTOMERNAME = ""; var COMPANYEMPOLYEE = T_ALL_DA.GetStrSQL("GID", "SELECT top 1 GID FROM user_action Where ACTIONID='4B19971E-FA7F-4528-89F3-4F740CE3D8D5' AND USERID IN (SELECT USERID FROM user_baseinfo WHERE MOBILE='" + Mobile + "' ) "); if (COMPANYEMPOLYEE == "") { // SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; // return SeaiManifest; CUSTOMERNAME = T_ALL_DA.GetStrSQL("SHOWNAME", "SELECT top 1 SHORTNAME SHOWNAME FROM info_client Where GID IN (SELECT LINKID FROM info_client_contact WHERE MOBILE='" + Mobile + "' AND ISNULL(ISSTOP,0)=0 ) "); if (CUSTOMERNAME == "") { SeaeManifest.ERROMSG = "查询不到此联系人的相关信息"; return SeaeManifest; } } var ispc = false; if (Mblno != "") { var MBLNOSTR = T_ALL_DA.GetStrSQL("MBLNO", "SELECT TOP 1 MBLNO FROM OP_SEAE B WHERE (B.MBLNO like '%" + Mblno + "%' ) "); if (MBLNOSTR == "") { SeaeManifest.ERROMSG = "查询不到相关业务信息"; return SeaeManifest; } else { if (MBLNOSTR != Mblno) ispc = true; } } var strSql = new StringBuilder(); strSql.Append(@"SELECT * from (SELECT row_number() over ("); strSql.Append(" order by B.ETD desc"); strSql.Append(@") as num , "); strSql.Append(" B.BSNO,B.MBLNO,(SELECT DESCRIPTION FROM info_client WHERE SHORTNAME=B.CUSTOMERNAME) CUSTOMERNAME,B.VESSEL,B.VOYNO,B.CARRIER,B.CNTRTOTAL,B.ETD,B.ETA, "); strSql.Append(" B.BLFRT,B.DESTINATION,B.ISSUETYPE,B.YARD,B.YARDATTN,B.YARDTEL,B.CLOSEDOCDATE,B.CLOSINGDATE,B.OP,B.SALE,B.SHIPAGENCY,B.PKGS,B.KGS,B.CBM,B.KINDPKGS,B.CUSTSERVICE "); strSql.Append(",(SELECT TOP 1 OFFICEPHONE FROM user_baseinfo WHERE USERID IN (SELECT GID FROM [USER] WHERE SHOWNAME=B.OP)) as OPTEL"); strSql.Append(",(SELECT TOP 1 OFFICEPHONE FROM user_baseinfo WHERE USERID IN (SELECT GID FROM [USER] WHERE SHOWNAME=B.SALE)) as SALETEL"); strSql.Append(",(SELECT TOP 1 OFFICEPHONE FROM user_baseinfo WHERE USERID IN (SELECT GID FROM [USER] WHERE SHOWNAME=B.CUSTSERVICE)) as CUSTSERVICETEL"); strSql.Append(",(SELECT TOP 1 STATUS FROM OP_STATUS WHERE [STATUS] in ('重箱返场','海关放行','装船出运') and ISNULL(ISOPEN,0)=1 and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",(SELECT TOP 1 COMPTIME FROM OP_STATUS WHERE [STATUS] in ('重箱返场','海关放行','装船出运') and ISNULL(ISOPEN,0)=1 and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as COMPTIME"); strSql.Append(" FROM OP_SEAE B "); strSql.Append(" Where 1=1 "); if (COMPANYEMPOLYEE == "") { strSql.Append(" and B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); } if (Mblno != "") { //if (ispc) // strSql.Append(" AND D.PONO='" + Mblno + "' "); //else strSql.Append(" AND (B.MBLNO like '%" + Mblno + "%' )"); } strSql.Append(@")as t "); strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); Database db = DatabaseFactory.CreateDatabase(); var XmlSeaeBsList = new List(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { XmlSeaeBs SeaiBs = new XmlSeaeBs(); SeaiBs.MBLNO = Convert.ToString(reader["MBLNO"]); SeaiBs.VESSEL = Convert.ToString(reader["VESSEL"]); SeaiBs.VOYNO = Convert.ToString(reader["VOYNO"]); if (reader["ETD"] != DBNull.Value) SeaiBs.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd"); else SeaiBs.ETD = " "; if (reader["ETA"] != DBNull.Value) SeaiBs.ETA = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd"); else SeaiBs.ETA = " "; if (SeaiBs.ETD == "1900-01-01") SeaiBs.ETD = ""; if (SeaiBs.ETA == "1900-01-01") SeaiBs.ETA = ""; SeaiBs.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); SeaiBs.CARRIER = Convert.ToString(reader["CARRIER"]); SeaiBs.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]); SeaiBs.BLFRT = Convert.ToString(reader["BLFRT"]); SeaiBs.DESTINATION = Convert.ToString(reader["DESTINATION"]); SeaiBs.ISSUETYPE = Convert.ToString(reader["ISSUETYPE"]); SeaiBs.YARD = Convert.ToString(reader["YARD"]); SeaiBs.YARDATTN = Convert.ToString(reader["YARDATTN"]) + '-' + Convert.ToString(reader["YARDTEL"]); if (reader["CLOSINGDATE"] != DBNull.Value) SeaiBs.CLOSINGDATE = Convert.ToDateTime(reader["CLOSINGDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); if (reader["CLOSEDOCDATE"] != DBNull.Value) SeaiBs.CLOSEDOCDATE = Convert.ToDateTime(reader["CLOSEDOCDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); SeaiBs.OPATTN = Convert.ToString(reader["OP"]) + '-' + Convert.ToString(reader["OPTEL"]); SeaiBs.SALEATTN = Convert.ToString(reader["SALE"]) + '-' + Convert.ToString(reader["SALETEL"]); SeaiBs.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]); SeaiBs.CUSTSERVICETEL = Convert.ToString(reader["CUSTSERVICETEL"]); SeaiBs.SHIPAGENCY = Convert.ToString(reader["SHIPAGENCY"]); SeaiBs.PKGS = Convert.ToString(reader["PKGS"]); //SeaiBs.PICINO = Convert.ToString(reader["PICINO"]); //SeaiBs.PONO = Convert.ToString(reader["PONO"]); //SeaiBs.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); SeaiBs.KINDPKGS = Convert.ToString(reader["KINDPKGS"]); SeaiBs.KGS = Convert.ToString(reader["KGS"]); SeaiBs.CBM = Convert.ToString(reader["CBM"]); if (Convert.ToString(reader["OPSTATUS"]) == "重箱返场") { SeaiBs.BSSTATUS = "回箱"; } if (Convert.ToString(reader["OPSTATUS"]) == "海关放行") { SeaiBs.BSSTATUS = "放行"; } if (Convert.ToString(reader["OPSTATUS"]) == "装船出运") { SeaiBs.BSSTATUS = "开船"; } SeaiBs.BSSTATUSTIME = Convert.ToString(reader["COMPTIME"]); SeaiBs.BSSTATUSDESCRIPTION = Convert.ToString(reader["OPSTATUS"]); if (SeaiBs.BSSTATUS == "") SeaiBs.BSSTATUSDESCRIPTION = "未收到货物状态信息"; XmlSeaeBsList.Add(SeaiBs); } reader.Close(); } SeaeManifest.SeaeBs = XmlSeaeBsList; var strSql2 = new StringBuilder(); strSql2.Append("SELECT COUNT(*) "); strSql2.Append(" FROM OP_SEAE B "); strSql2.Append(" Where 1=1 "); if (COMPANYEMPOLYEE == "") { strSql2.Append(" and B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); } if (Mblno != "") { //if (ispc) // strSql.Append(" AND D.PONO='" + Mblno + "' "); //else strSql2.Append(" AND (B.MBLNO like '%" + Mblno + "%' )"); } int cnt = 0; using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql2.ToString())) { while (reader.Read()) { cnt = Convert.ToInt32(reader[0]); } } SeaeManifest.SeaeBs = XmlSeaeBsList; SeaeManifest.RECCOUNT = cnt; return SeaeManifest; } public static SeaeManifest GetSeaeBsData(string LoginName, string LoginPass, string Mobile, string Mblno) { SeaeManifest SeaeManifest = new SeaeManifest(); if (LoginName != "qdtaize" || LoginPass != "EBBE3242-D49E-4398-BBFE-0133CA655EB5") { SeaeManifest.ERROMSG = "账号密码不正确"; return SeaeManifest; } if (Mblno == "") { SeaeManifest.ERROMSG = "提单号号不能为空"; return SeaeManifest; } T_ALL_DA T_ALL_DA = new T_ALL_DA(); var CUSTOMERNAME = ""; var COMPANYEMPOLYEE = T_ALL_DA.GetStrSQL("GID", "SELECT top 1 GID FROM user_action Where ACTIONID='4B19971E-FA7F-4528-89F3-4F740CE3D8D5' AND USERID IN (SELECT USERID FROM user_baseinfo WHERE MOBILE='" + Mobile + "' ) "); if (COMPANYEMPOLYEE == "") { // SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; // return SeaiManifest; CUSTOMERNAME = T_ALL_DA.GetStrSQL("SHOWNAME", "SELECT top 1 SHORTNAME SHOWNAME FROM info_client Where GID IN (SELECT LINKID FROM info_client_contact WHERE MOBILE='" + Mobile + "' AND ISNULL(ISSTOP,0)=0 ) "); if (CUSTOMERNAME == "") { SeaeManifest.ERROMSG = "查询不到此联系人的相关信息"; return SeaeManifest; } } var ispc = false; if (Mblno != "") { var MBLNOSTR = T_ALL_DA.GetStrSQL("MBLNO", "SELECT TOP 1 MBLNO FROM OP_SEAE B WHERE (B.MBLNO like '%" + Mblno + "%' ) AND B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); if (MBLNOSTR == "") { SeaeManifest.ERROMSG = "查询不到相关业务信息"; return SeaeManifest; } else { if (MBLNOSTR != Mblno) ispc = true; } } var strSql = new StringBuilder(); strSql.Append("SELECT TOP 1 B.BSNO,B.MBLNO,(SELECT DESCRIPTION FROM info_client WHERE SHORTNAME=B.CUSTOMERNAME) CUSTOMERNAME,B.VESSEL,B.VOYNO,B.CARRIER,B.CNTRTOTAL,B.ETD,B.ETA, "); strSql.Append(" B.BLFRT,B.DESTINATION,B.ISSUETYPE,B.YARD,B.YARDATTN,B.YARDTEL,B.CLOSEDOCDATE,B.CLOSINGDATE,B.OP,B.CUSTSERVICE,B.SHIPAGENCY,B.PKGS,B.KGS,B.CBM,B.KINDPKGS "); strSql.Append(",(SELECT TOP 1 OFFICEPHONE FROM user_baseinfo WHERE USERID IN (SELECT GID FROM [USER] WHERE SHOWNAME=B.OP)) as OPTEL"); strSql.Append(",(SELECT TOP 1 OFFICEPHONE FROM user_baseinfo WHERE USERID IN (SELECT GID FROM [USER] WHERE SHOWNAME=B.CUSTSERVICE)) as CUSTSERVICETEL"); strSql.Append(",(SELECT TOP 1 STATUS FROM OP_STATUS WHERE ISNULL(ISOPEN,0)=1 and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",(SELECT TOP 1 COMPTIME FROM OP_STATUS WHERE ISNULL(ISOPEN,0)=1 and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as COMPTIME"); strSql.Append(" FROM OP_SEAE B "); strSql.Append(" Where B.MBLNO='" + Mblno + "' "); if (COMPANYEMPOLYEE == "") { strSql.Append(" and B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); } Database db = DatabaseFactory.CreateDatabase(); var XmlSeaeBsList = new List(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { XmlSeaeBs SeaiBs = new XmlSeaeBs(); SeaiBs.MBLNO = Convert.ToString(reader["MBLNO"]); SeaiBs.VESSEL = Convert.ToString(reader["VESSEL"]); SeaiBs.VOYNO = Convert.ToString(reader["VOYNO"]); if (reader["ETD"] != DBNull.Value) SeaiBs.ETD =Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd"); else SeaiBs.ETD = " "; if (reader["ETA"] != DBNull.Value) SeaiBs.ETA = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd"); else SeaiBs.ETA = " "; if (SeaiBs.ETD == "1900-01-01") SeaiBs.ETD = ""; if (SeaiBs.ETA == "1900-01-01") SeaiBs.ETA = ""; SeaiBs.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); SeaiBs.CARRIER = Convert.ToString(reader["CARRIER"]); SeaiBs.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]); SeaiBs.BLFRT = Convert.ToString(reader["BLFRT"]); SeaiBs.DESTINATION = Convert.ToString(reader["DESTINATION"]); SeaiBs.ISSUETYPE = Convert.ToString(reader["ISSUETYPE"]); SeaiBs.YARD = Convert.ToString(reader["YARD"]); SeaiBs.YARDATTN = Convert.ToString(reader["YARDATTN"]) + '-' + Convert.ToString(reader["YARDTEL"]); if (reader["CLOSINGDATE"] != DBNull.Value) SeaiBs.CLOSINGDATE = Convert.ToDateTime(reader["CLOSINGDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); if (reader["CLOSEDOCDATE"] != DBNull.Value) SeaiBs.CLOSEDOCDATE = Convert.ToDateTime(reader["CLOSEDOCDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); SeaiBs.OPATTN = Convert.ToString(reader["OP"]) + '-' + Convert.ToString(reader["OPTEL"]); SeaiBs.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]); SeaiBs.CUSTSERVICETEL =Convert.ToString(reader["CUSTSERVICETEL"]); SeaiBs.SHIPAGENCY = Convert.ToString(reader["SHIPAGENCY"]); SeaiBs.PKGS = Convert.ToString(reader["PKGS"]); //SeaiBs.PICINO = Convert.ToString(reader["PICINO"]); //SeaiBs.PONO = Convert.ToString(reader["PONO"]); //SeaiBs.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); SeaiBs.KINDPKGS = Convert.ToString(reader["KINDPKGS"]); SeaiBs.KGS = Convert.ToString(reader["KGS"]); SeaiBs.CBM = Convert.ToString(reader["CBM"]); SeaiBs.BSSTATUS = Convert.ToString(reader["OPSTATUS"]); SeaiBs.BSSTATUSTIME = Convert.ToString(reader["COMPTIME"]); SeaiBs.BSSTATUSDESCRIPTION = Convert.ToString(reader["OPSTATUS"]); if (SeaiBs.BSSTATUS == "") SeaiBs.BSSTATUSDESCRIPTION = "未收到货物状态信息"; var BSSTATUSList = new List(); var strStatusSql = new StringBuilder(); strStatusSql.Append("SELECT STATUS,COMPTIME FROM op_status "); strStatusSql.Append(" WHERE ISNULL(ISOPEN,0)=1 and BSNO='" + Convert.ToString(reader["BSNO"]) + "' ORDER BY COMPTIME "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strStatusSql.ToString())) { while (Statusreader.Read()) { if (Convert.ToString(Statusreader["STATUS"]) == "重箱返场") { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS ="回箱"; BSSTATUS.BSSTATUSTIME = Convert.ToString(Statusreader["COMPTIME"]); BSSTATUS.BSSTATUSDESCRIPTION = Convert.ToString(Statusreader["STATUS"]); BSSTATUSList.Add(BSSTATUS); } if (Convert.ToString(Statusreader["STATUS"]) == "海关放行") { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS = "放行"; BSSTATUS.BSSTATUSTIME = Convert.ToString(Statusreader["COMPTIME"]); BSSTATUS.BSSTATUSDESCRIPTION = Convert.ToString(Statusreader["STATUS"]); BSSTATUSList.Add(BSSTATUS); } if (Convert.ToString(Statusreader["STATUS"]) == "装船出运") { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS = "开船"; BSSTATUS.BSSTATUSTIME = Convert.ToString(Statusreader["COMPTIME"]); BSSTATUS.BSSTATUSDESCRIPTION = Convert.ToString(Statusreader["STATUS"]); BSSTATUSList.Add(BSSTATUS); } } Statusreader.Close(); } SeaiBs.BSSTATUSLIST = BSSTATUSList; XmlSeaeBsList.Add(SeaiBs); } reader.Close(); } SeaeManifest.SeaeBs = XmlSeaeBsList; return SeaeManifest; } #endregion #region 进口数据 public static SeaiManifest GetSeaiBsDataList(string LoginName, string LoginPass, string Mobile, string Mblno, int start, int limit) { SeaiManifest SeaiManifest = new SeaiManifest(); if (LoginName != "qdtaize" || LoginPass != "EBBE3242-D49E-4398-BBFE-0133CA655EB5") { SeaiManifest.ERROMSG = "账号密码不正确"; return SeaiManifest; } T_ALL_DA T_ALL_DA = new T_ALL_DA(); var CUSTOMERNAME = ""; var COMPANYEMPOLYEE = T_ALL_DA.GetStrSQL("GID", "SELECT top 1 GID FROM user_action Where ACTIONID='4B19971E-FA7F-4528-89F3-4F740CE3D8D5' AND USERID IN (SELECT USERID FROM user_baseinfo WHERE MOBILE='" + Mobile + "' ) "); if (COMPANYEMPOLYEE == "") { // SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; // return SeaiManifest; CUSTOMERNAME = T_ALL_DA.GetStrSQL("SHOWNAME", "SELECT top 1 SHORTNAME SHOWNAME FROM info_client Where GID IN (SELECT LINKID FROM info_client_contact WHERE MOBILE='" + Mobile + "' AND ISNULL(ISSTOP,0)=0 ) "); if (CUSTOMERNAME == "") { CUSTOMERNAME = "演示公司"; // SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; // return SeaiManifest; } } var ispc = false; if (Mblno != "") { var MBLNOSTR = T_ALL_DA.GetStrSQL("MBLNO", "SELECT TOP 1 MBLNO FROM OP_SEAI B LEFT JOIN op_apply_detail D ON (D.BSNO=B.BSNO) WHERE (B.MBLNO like '%" + Mblno + "%' OR D.PONO like '%" + Mblno + "%' OR D.GOODSNAME LIKE '%"+Mblno+"%' ) "); if (MBLNOSTR == "") { SeaiManifest.ERROMSG = "查询不到相关业务信息"; return SeaiManifest; } else { if (MBLNOSTR != Mblno) ispc = true; } } var strSql = new StringBuilder(); strSql.Append(@"SELECT * from (SELECT row_number() over ("); strSql.Append(" order by B.ETD desc"); strSql.Append(@") as num , "); strSql.Append(" B.BSNO,B.MBLNO,(SELECT DESCRIPTION FROM info_client WHERE SHORTNAME=B.CUSTOMERNAME) CUSTOMERNAME,B.VESSEL,B.VOYNO,B.ETD,B.ETA,D.GOODSCODE,D.GOODSNAME,D.GOODSNUM PKGS,D.PICINO,D.PONO,D.GOODSSTANDARD,D.KINDPKGS,isnull(D.KGS,0) KGS "); strSql.Append(",(SELECT TOP 1 STATUS FROM OP_STATUS WHERE STATUS in ('已到港','海关放行','商检放行') and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",(SELECT TOP 1 COMPTIME FROM OP_STATUS WHERE STATUS in ('已到港','海关放行','商检放行') and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as COMPTIME"); // strSql.Append(",(select w.STORAGENAME from wms_in i left join wms w on (w.ASSOCIATEDNO=i.ASSOCIATEDNO) where w.blno=B.MBLNO and w.customername=B.CUSTOMERNAME and i.CONTRACTNO=D.PONO ) AS STORAGENAME"); strSql.Append(",(select TOP 1 w.STORAGENAME from wms_in i left join wms w on (w.ASSOCIATEDNO=i.ASSOCIATEDNO) where i.blno=B.MBLNO and i.CONTRACTNO=D.PONO and w.customername=B.CUSTOMERNAME ) AS STORAGENAME"); strSql.Append(",ISNULL((select SUM(isnull(GOODSPFSL_OUT,0)) from VW_WMS_DETAIL where CONTRACTNO=d.PONO ),0) AS GOODSSTOCK"); strSql.Append(" FROM op_apply_detail d left join OP_SEAI B ON (B.BSNO=D.BSNO)"); strSql.Append(" Where 1=1 "); if (COMPANYEMPOLYEE == "") { strSql.Append(" and B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); } if (Mblno != "") { //if (ispc) // strSql.Append(" AND D.PONO='" + Mblno + "' "); //else strSql.Append(" AND (B.MBLNO like '%" + Mblno + "%' or D.PONO like '%" + Mblno + "%' or D.GOODSNAME like '%"+Mblno+"%' )"); } strSql.Append(@")as t "); strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); Database db = DatabaseFactory.CreateDatabase(); var XmlSeaiBsList = new List(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { XmlSeaiBs SeaiBs = new XmlSeaiBs(); SeaiBs.MBLNO = Convert.ToString(reader["MBLNO"]); SeaiBs.VESSEL = Convert.ToString(reader["VESSEL"]); SeaiBs.VOYNO = Convert.ToString(reader["VOYNO"]); if (reader["ETA"] != DBNull.Value) SeaiBs.ETD = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd"); else SeaiBs.ETD = " "; if (reader["ETD"] != DBNull.Value) SeaiBs.ETA = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd"); else SeaiBs.ETA = " "; if (SeaiBs.ETD == "1900-01-01") SeaiBs.ETD = ""; SeaiBs.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); SeaiBs.GOODSCODE = Convert.ToString(reader["GOODSCODE"]); SeaiBs.GOODSNAME = Convert.ToString(reader["GOODSNAME"]); SeaiBs.PKGS = Convert.ToString(reader["PKGS"]); SeaiBs.PICINO = Convert.ToString(reader["PICINO"]); SeaiBs.PONO = Convert.ToString(reader["PONO"]); SeaiBs.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); SeaiBs.KINDPKGS = Convert.ToString(reader["KINDPKGS"]); SeaiBs.KGS = (Convert.ToDecimal(reader["KGS"]) - Convert.ToDecimal(reader["GOODSSTOCK"])).ToString(); SeaiBs.BSSTATUS = Convert.ToString(reader["OPSTATUS"]); if (reader["COMPTIME"] != DBNull.Value) SeaiBs.BSSTATUSTIME = Convert.ToDateTime(reader["COMPTIME"]).ToString("yyyy-MM-dd") + " 00:00:00"; SeaiBs.STORAGENAME = Convert.ToString(reader["STORAGENAME"]); if (SeaiBs.BSSTATUS=="") SeaiBs.BSSTATUSDESCRIPTION = "未收到货物到港信息"; if (SeaiBs.BSSTATUS == "已到港") SeaiBs.BSSTATUSDESCRIPTION = "货物已到港"; if (SeaiBs.BSSTATUS == "海关放行") SeaiBs.BSSTATUSDESCRIPTION = "货物已海关放行"; if (SeaiBs.BSSTATUS == "商检放行") { SeaiBs.BSSTATUSDESCRIPTION = "货物已商检放行"; if (reader["COMPTIME"] != DBNull.Value) SeaiBs.BSSTATUSTIME = Convert.ToDateTime(reader["COMPTIME"]).ToString("yyyy-MM-dd")+" 00:00:00"; } //if (SeaiBs.BSSTATUS == "已入库") // SeaiBs.BSSTATUSDESCRIPTION = "货物已入" + Convert.ToString(reader["STORAGENAME"]) + "库"; //if (SeaiBs.BSSTATUS == "已出库") // SeaiBs.BSSTATUSDESCRIPTION = "货物已出库"; var strwmsStatusSql = new StringBuilder(); strwmsStatusSql.Append("SELECT GOODSRKSL,STORAGENAME,WMSDATE FROM VW_WMS_DETAIL_NULL "); strwmsStatusSql.Append(" WHERE BLNO='" + SeaiBs.MBLNO + "' and CONTRACTNO='" + SeaiBs.PONO + "' ORDER BY WMSDATE "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsStatusSql.ToString())) { while (Statusreader.Read()) { if (Statusreader["WMSDATE"] != DBNull.Value) { SeaiBs.BSSTATUS = "已入库"; SeaiBs.BSSTATUSTIME = Convert.ToDateTime(Statusreader["WMSDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); SeaiBs.BSSTATUSDESCRIPTION = "货物已入" + Convert.ToString(Statusreader["STORAGENAME"]) + "库"; } } Statusreader.Close(); } var strwmsoutStatusSql = new StringBuilder(); strwmsoutStatusSql.Append("SELECT SUM(GOODSPFSL_OUT) GOODSPFSL_OUT,MAX(DODATE_OUT) AS DODATE_OUT FROM VW_WMS_DETAIL "); strwmsoutStatusSql.Append(" WHERE BLNO='" + SeaiBs.MBLNO + "' and CONTRACTNO='" + SeaiBs.PONO + "' ORDER BY DODATE_OUT DESC"); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsoutStatusSql.ToString())) { while (Statusreader.Read()) { if (Statusreader["DODATE_OUT"] != DBNull.Value) { SeaiBs.BSSTATUS = "已出库"; if (Statusreader["DODATE_OUT"] != DBNull.Value) { SeaiBs.BSSTATUSTIME = Convert.ToDateTime(Statusreader["DODATE_OUT"]).ToString("yyyy-MM-dd HH:mm:ss"); } SeaiBs.BSSTATUSDESCRIPTION = "已提货" + Math.Round(Convert.ToDecimal(Statusreader["GOODSPFSL_OUT"]), 3, MidpointRounding.AwayFromZero) + "吨。"; } } Statusreader.Close(); } XmlSeaiBsList.Add(SeaiBs); } reader.Close(); } SeaiManifest.SeaiBs = XmlSeaiBsList; return SeaiManifest; } public static SeaiManifest GetSeaiBsData(string LoginName, string LoginPass, string Mobile, string Mblno) { SeaiManifest SeaiManifest = new SeaiManifest(); if (LoginName != "qdtaize" || LoginPass != "EBBE3242-D49E-4398-BBFE-0133CA655EB5") { SeaiManifest.ERROMSG = "账号密码不正确"; return SeaiManifest; } if (Mblno == "") { SeaiManifest.ERROMSG = "PO号不能为空"; return SeaiManifest; } T_ALL_DA T_ALL_DA = new T_ALL_DA(); var CUSTOMERNAME = ""; var COMPANYEMPOLYEE= T_ALL_DA.GetStrSQL("GID", "SELECT top 1 GID FROM user_action Where ACTIONID='4B19971E-FA7F-4528-89F3-4F740CE3D8D5' AND USERID IN (SELECT USERID FROM user_baseinfo WHERE MOBILE='" + Mobile + "' ) "); if (COMPANYEMPOLYEE == "") { // SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; // return SeaiManifest; CUSTOMERNAME = T_ALL_DA.GetStrSQL("SHOWNAME", "SELECT top 1 SHORTNAME SHOWNAME FROM info_client Where GID IN (SELECT LINKID FROM info_client_contact WHERE MOBILE='" + Mobile + "' AND ISNULL(ISSTOP,0)=0 ) "); if (CUSTOMERNAME == "") { CUSTOMERNAME = "演示公司"; //SeaiManifest.ERROMSG = "查询不到此联系人的相关信息"; //return SeaiManifest; } } var ispc = false; var MBLNOSTR = ""; if (Mblno != "") { MBLNOSTR = T_ALL_DA.GetStrSQL("MBLNO", "SELECT TOP 1 MBLNO FROM OP_SEAI B LEFT JOIN op_apply_detail D ON (D.BSNO=B.BSNO) WHERE D.PONO='" + Mblno + "' "); if (MBLNOSTR == "") { SeaiManifest.ERROMSG = "查询不到相关业务信息"; return SeaiManifest; } else { if (MBLNOSTR != Mblno) ispc = true; } } var strSql = new StringBuilder(); strSql.Append("SELECT TOP 1 B.BSNO,B.MBLNO,(SELECT DESCRIPTION FROM info_client WHERE SHORTNAME=B.CUSTOMERNAME) CUSTOMERNAME,B.VESSEL,B.VOYNO,B.ETD,B.ETA,D.GOODSCODE,D.GOODSNAME,D.GOODSNUM PKGS,D.PICINO,D.PONO,D.GOODSSTANDARD,D.KINDPKGS,isnull(D.KGS,0) KGS "); strSql.Append(",(SELECT TOP 1 STATUS FROM OP_STATUS WHERE STATUS in ('已到港','海关放行','商检放行') and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as OPSTATUS"); strSql.Append(",(SELECT TOP 1 COMPTIME FROM OP_STATUS WHERE STATUS in ('已到港','海关放行','商检放行') and BSNO=B.BSNO ORDER BY COMPTIME DESC,INPUTTIME DESC) as COMPTIME"); strSql.Append(",(select TOP 1 w.STORAGENAME from wms_in i left join wms w on (w.ASSOCIATEDNO=i.ASSOCIATEDNO) where i.blno=B.MBLNO and i.CONTRACTNO=D.PONO and w.customername=B.CUSTOMERNAME ) AS STORAGENAME"); strSql.Append(",ISNULL((select SUM(isnull(GOODSPFSL_OUT,0)) from VW_WMS_DETAIL where CONTRACTNO=d.PONO ),0) AS GOODSSTOCK"); strSql.Append(" FROM op_apply_detail d left join OP_SEAI B ON (B.BSNO=D.BSNO)"); strSql.Append(" Where D.PONO='" + Mblno + "' "); if (COMPANYEMPOLYEE == "") { strSql.Append(" AND B.CUSTOMERNAME='" + CUSTOMERNAME + "' "); } Database db = DatabaseFactory.CreateDatabase(); var XmlSeaiBsList = new List(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { XmlSeaiBs SeaiBs = new XmlSeaiBs(); SeaiBs.MBLNO = Convert.ToString(reader["MBLNO"]); SeaiBs.VESSEL = Convert.ToString(reader["VESSEL"]); SeaiBs.VOYNO = Convert.ToString(reader["VOYNO"]); if (reader["ETA"] != DBNull.Value) SeaiBs.ETD = Convert.ToDateTime(reader["ETA"]).ToString("yyyy-MM-dd"); else SeaiBs.ETD = " "; if (reader["ETD"] != DBNull.Value) SeaiBs.ETA = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd"); else SeaiBs.ETA = " "; if (SeaiBs.ETD == "1900-01-01") SeaiBs.ETD = ""; SeaiBs.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); SeaiBs.GOODSCODE = Convert.ToString(reader["GOODSCODE"]); SeaiBs.GOODSNAME = Convert.ToString(reader["GOODSNAME"]); SeaiBs.PKGS = Convert.ToString(reader["PKGS"]); SeaiBs.PICINO = Convert.ToString(reader["PICINO"]); SeaiBs.PONO = Convert.ToString(reader["PONO"]); SeaiBs.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); SeaiBs.KINDPKGS = Convert.ToString(reader["KINDPKGS"]); SeaiBs.KGS = (Convert.ToDecimal(reader["KGS"]) - Convert.ToDecimal(reader["GOODSSTOCK"])).ToString(); SeaiBs.BSSTATUS = Convert.ToString(reader["OPSTATUS"]); if (reader["COMPTIME"] != DBNull.Value) SeaiBs.BSSTATUSTIME = Convert.ToDateTime(reader["COMPTIME"]).ToString("yyyy-MM-dd") + " 00:00:00"; SeaiBs.STORAGENAME = Convert.ToString(reader["STORAGENAME"]); if (SeaiBs.BSSTATUS == "") SeaiBs.BSSTATUSDESCRIPTION = "未收到货物到港信息"; if (SeaiBs.BSSTATUS == "已到港") SeaiBs.BSSTATUSDESCRIPTION = "货物已到港"; if (SeaiBs.BSSTATUS == "海关放行") SeaiBs.BSSTATUSDESCRIPTION = "货物已海关放行"; if (SeaiBs.BSSTATUS == "商检放行") SeaiBs.BSSTATUSDESCRIPTION = "货物已商检放行"; var strwmsStatusSql = new StringBuilder(); strwmsStatusSql.Append("SELECT GOODSRKSL,STORAGENAME,WMSDATE FROM VW_WMS_DETAIL_NULL "); strwmsStatusSql.Append(" WHERE BLNO='" + SeaiBs.MBLNO + "' and CONTRACTNO='" + SeaiBs.PONO + "' ORDER BY WMSDATE "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsStatusSql.ToString())) { while (Statusreader.Read()) { if (Statusreader["WMSDATE"] != DBNull.Value) { SeaiBs.BSSTATUS = "已入库"; SeaiBs.BSSTATUSTIME = Convert.ToDateTime(Statusreader["WMSDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); SeaiBs.BSSTATUSDESCRIPTION = "货物已入" + Convert.ToString(Statusreader["STORAGENAME"]) + "库"; } } Statusreader.Close(); } var strwmsoutStatusSql = new StringBuilder(); strwmsoutStatusSql.Append("SELECT SUM(GOODSPFSL_OUT) GOODSPFSL_OUT,MAX(DODATE_OUT) AS DODATE_OUT FROM VW_WMS_DETAIL "); strwmsoutStatusSql.Append(" WHERE BLNO='" + SeaiBs.MBLNO + "' and CONTRACTNO='" + SeaiBs.PONO + "' ORDER BY DODATE_OUT DESC"); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsoutStatusSql.ToString())) { while (Statusreader.Read()) { if (Statusreader["DODATE_OUT"] != DBNull.Value) { SeaiBs.BSSTATUS = "已出库"; SeaiBs.BSSTATUSTIME = Convert.ToDateTime(Statusreader["DODATE_OUT"]).ToString("yyyy-MM-dd HH:mm:ss"); SeaiBs.BSSTATUSDESCRIPTION = "已提货" + Math.Round(Convert.ToDecimal(Statusreader["GOODSPFSL_OUT"]), 3, MidpointRounding.AwayFromZero) + "吨。"; } } Statusreader.Close(); } //if (SeaiBs.BSSTATUS == "已入库") // SeaiBs.BSSTATUSDESCRIPTION = "货物已入" + Convert.ToString(reader["STORAGENAME"])+"库"; //if (SeaiBs.BSSTATUS == "已出库") // SeaiBs.BSSTATUSDESCRIPTION = "货物已出库"; var BSSTATUSList = new List(); var strStatusSql = new StringBuilder(); strStatusSql.Append("SELECT STATUS,COMPTIME FROM op_status "); strStatusSql.Append(" WHERE STATUS in ('已到港','海关放行','商检放行') and BSNO='" + Convert.ToString(reader["BSNO"]) + "' ORDER BY COMPTIME "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strStatusSql.ToString())) { while (Statusreader.Read()) { if (Statusreader["COMPTIME"] != DBNull.Value) { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS = Convert.ToString(Statusreader["STATUS"]); BSSTATUS.BSSTATUSTIME = Convert.ToDateTime(Statusreader["COMPTIME"]).ToString("yyyy-MM-dd") + " 00:00:00"; if (BSSTATUS.BSSTATUS == "") BSSTATUS.BSSTATUSDESCRIPTION = "未收到货物到港信息"; if (BSSTATUS.BSSTATUS == "已到港") BSSTATUS.BSSTATUSDESCRIPTION = "货物已到港"; if (BSSTATUS.BSSTATUS == "海关放行") BSSTATUS.BSSTATUSDESCRIPTION = "货物已海关放行"; if (BSSTATUS.BSSTATUS == "商检放行") BSSTATUS.BSSTATUSDESCRIPTION = "货物已商检放行"; //if (BSSTATUS.BSSTATUS == "已入库") // BSSTATUS.BSSTATUSDESCRIPTION = "货物已入" + Convert.ToString(reader["STORAGENAME"]) + "库"; //if (BSSTATUS.BSSTATUS == "已出库") // BSSTATUS.BSSTATUSDESCRIPTION = "货物已出库"; BSSTATUSList.Add(BSSTATUS); } } Statusreader.Close(); } var strwmsStatusSql2 = new StringBuilder(); strwmsStatusSql2.Append("SELECT GOODSRKSL,STORAGENAME,WMSDATE FROM VW_WMS_DETAIL_NULL "); strwmsStatusSql2.Append(" WHERE BLNO='" + MBLNOSTR + "' and CONTRACTNO='" + Mblno + "' ORDER BY WMSDATE "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsStatusSql2.ToString())) { while (Statusreader.Read()) { if (Statusreader["WMSDATE"] != DBNull.Value) { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS ="已入库"; BSSTATUS.BSSTATUSTIME = Convert.ToDateTime(Statusreader["WMSDATE"]).ToString("yyyy-MM-dd HH:mm:ss"); BSSTATUS.BSSTATUSDESCRIPTION = "货物已入库,入库吨数" + Math.Round(Convert.ToDecimal(Statusreader["GOODSRKSL"]),3,MidpointRounding.AwayFromZero) + "吨.已入" + Convert.ToString(Statusreader["STORAGENAME"]) + "库"; BSSTATUSList.Add(BSSTATUS); } } Statusreader.Close(); } var strwmsoutStatusSql2 = new StringBuilder(); strwmsoutStatusSql2.Append("SELECT GOODSSTOCK,STORAGENAME_OUT,GOODSPFSL_OUT,DODATE_OUT,TRUCKNO_OUT FROM VW_WMS_DETAIL "); strwmsoutStatusSql2.Append(" WHERE BLNO='" + MBLNOSTR + "' and CONTRACTNO='" + Mblno + "' ORDER BY DODATE_OUT "); using (IDataReader Statusreader = db.ExecuteReader(CommandType.Text, strwmsoutStatusSql2.ToString())) { while (Statusreader.Read()) { if (Statusreader["DODATE_OUT"] != DBNull.Value) { XmlSeaiBsStatus BSSTATUS = new XmlSeaiBsStatus(); BSSTATUS.BSSTATUS = "已出库"; BSSTATUS.BSSTATUSTIME = Convert.ToDateTime(Statusreader["DODATE_OUT"]).ToString("yyyy-MM-dd HH:mm:ss"); if (Convert.ToString(Statusreader["TRUCKNO_OUT"])!="") BSSTATUS.BSSTATUSDESCRIPTION = "车牌号" + Convert.ToString(Statusreader["TRUCKNO_OUT"]) + ","; BSSTATUS.BSSTATUSDESCRIPTION = BSSTATUS.BSSTATUSDESCRIPTION + "提货" + Math.Round(Convert.ToDecimal(Statusreader["GOODSPFSL_OUT"]), 3, MidpointRounding.AwayFromZero) + "吨。"; if (reader["GOODSSTOCK"] != DBNull.Value) { if (Convert.ToDecimal(reader["GOODSSTOCK"]) <= 0) BSSTATUS.BSSTATUSDESCRIPTION = BSSTATUS.BSSTATUSDESCRIPTION + " 已清库"; } BSSTATUSList.Add(BSSTATUS); } } Statusreader.Close(); } SeaiBs.BSSTATUSLIST = BSSTATUSList; XmlSeaiBsList.Add(SeaiBs); } reader.Close(); } SeaiManifest.SeaiBs = XmlSeaiBsList; return SeaiManifest; } #endregion public static string Xml2String(XmlDocument XDoc) { MemoryStream Stream= new MemoryStream(); XmlTextWriter Writer = new XmlTextWriter(Stream, null); Writer.Formatting = Formatting.Indented; XDoc.Save(Writer); StreamReader sr = new StreamReader(Stream,System.Text.Encoding.UTF8); Stream.Position = 0; string XmlString = sr.ReadToEnd(); sr.Close(); Stream.Close(); return XmlString; } /**/ /// /// 压缩文件 /// /// 要进行压缩的文件名 /// 压缩后生成的压缩文件名 /// public static bool ZipFile(string FileToZip, string ZipedFile, String Password) { //如果文件没有找到,则报错 if (!File.Exists(FileToZip)) { throw new System.IO.FileNotFoundException("指定要压缩的文件: " + FileToZip + " 不存在!"); } //FileStream fs = null; FileStream ZipFile = null; ZipOutputStream ZipStream = null; ZipEntry ZipEntry = null; bool res = true; try { ZipFile = File.OpenRead(FileToZip); byte[] buffer = new byte[ZipFile.Length]; ZipFile.Read(buffer, 0, buffer.Length); ZipFile.Close(); ZipFile = File.Create(ZipedFile); ZipStream = new ZipOutputStream(ZipFile); //ZipStream.Password = Password; ZipEntry = new ZipEntry(Path.GetFileName(FileToZip)); ZipEntry.DateTime = DateTime.Now; ZipStream.PutNextEntry(ZipEntry); ZipStream.SetLevel(6); ZipStream.Write(buffer, 0, buffer.Length); } catch { res = false; } finally { if (ZipEntry != null) { ZipEntry = null; } if (ZipStream != null) { ZipStream.Finish(); ZipStream.Close(); } if (ZipFile != null) { ZipFile.Close(); ZipFile = null; } GC.Collect(); GC.Collect(1); } return res; } public static bool ZipFile2(string FileToZip, string ZipedFile ,int CompressionLevel, int BlockSize){ //如果文件没有找到,则报错 if (! System.IO.File.Exists(FileToZip)) { throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd"); } System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip,System.IO.FileMode.Open , System.IO.FileAccess.Read); System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile); ZipOutputStream ZipStream = new ZipOutputStream(ZipFile); ZipEntry ZipEntry = new ZipEntry("ZippedFile"); ZipStream.PutNextEntry(ZipEntry); ZipStream.SetLevel(CompressionLevel); byte[] buffer = new byte[BlockSize]; System.Int32 size =StreamToZip.Read(buffer,0,buffer.Length); ZipStream.Write(buffer,0,size); try { while (size < StreamToZip.Length) { int sizeRead =StreamToZip.Read(buffer,0,buffer.Length); ZipStream.Write(buffer,0,sizeRead); size += sizeRead; } return true; } catch(System.Exception ex) { throw ex; } ZipStream.Finish(); ZipStream.Close(); StreamToZip.Close(); } /**/ /// /// 压缩文件 和 文件夹 /// /// 待压缩的文件或文件夹,全路径格式 /// 压缩后生成的压缩文件名,全路径格式 /// //public static bool Zip(String FileToZip, String ZipedFile, String Password) //{ // if (Directory.Exists(FileToZip)) // { // return ZipFileDictory(FileToZip, ZipedFile, Password); // } // else if (File.Exists(FileToZip)) // { // return ZipFile(FileToZip, ZipedFile, Password); // } // else // { // return false; // } //} } }