|
|
using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NFine.Code; using NFine.Data.Extensions; using NFine.Domain._03_Entity.SRM; using NFine.Repository; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Common; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Net; using System.Net.Mail; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; using NFine.Domain._03_Entity.SRM;
namespace NFine.Application.SRM { public class BicDoc_PublishApp : RepositoryFactory<ICSVendor> { string GUID = Guid.NewGuid().ToString(); //列表查询
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>();
string sql = @" SELECT
a.ID, a.BidCode , a.BidName , a.BidUser UserName , a.StarTime , a.EndTime , a.BidStatus , a.BidStatus AS BidStatuss, a.Remark , c.F_RealName UserName1 , a.OpenTime ,a.MTIME, a.WorkPoint, a.BidTime FROM ICSBidDoc a LEFT JOIN Sys_SRM_User b ON a.BidUser=b.F_Account LEFT JOIN Sys_SRM_User c ON a.Tenders=c.F_Account WHERE 1=1 and a.Status<>'0' ";
if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["BidCode"].ToString())) { sql += " and a.BidCode like '%" + queryParam["BidCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString())) { sql += " and a.StarTime >= '" + queryParam["TimeFrom"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString())) { sql += " and a.EndTime <= '" + queryParam["TimeTo"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["BidStatus"].ToString())) { //if (queryParam["BidStatus"].ToString() == "已结束")
//{
sql += " and a.BidStatus ='" + queryParam["BidStatus"].ToString() + "'"; //}
//else if (queryParam["BidStatus"].ToString() == "已保存" || queryParam["BidStatus"].ToString() == "招标中" || queryParam["BidStatus"].ToString() == "已关闭")
//{
// sql += " and (a.BidStatus ='" + queryParam["BidStatus"].ToString() + "'and a.BidTime IS NOT NULL) ";
//}
//else if (queryParam["BidStatus"].ToString() == "已决标")
//{
// sql += " and (a.BidStatus ='" + queryParam["BidStatus"].ToString() + "' and a.BidTime IS NOT NULL) ";
//}
} } if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin") { sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")"; } //if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
//{
// sql += " and a.SupplierCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
//}
sql += " group by a.ID,a.MTIME, a.BidCode ,a.BidName , a.BidUser,a.StarTime ,a.EndTime ,a.BidStatus ,a.Remark , c.F_RealName ,a.OpenTime ,a.WorkPoint,a.BidTime"; return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //查询招标人列表
public DataTable GetBidUser(string WorkPoint) { string ItemCode = string.Empty; string F_EnCode = string.Empty; string sqlItem = @"SELECT '' as F_ItemCode,'' as F_ItemName
Union select F_ItemCode,b.F_ItemName from [dbo].[Sys_SRM_Items] a LEFT JOIN [dbo].[Sys_SRM_ItemsDetail] b on a.F_Id=b.F_itemID where F_EnCode like '%{0}%'";
sqlItem = string.Format(sqlItem, WorkPoint); DataTable table = SqlHelper.GetDataTableBySql(sqlItem); return table; } //获取招标书标的列表
public DataTable GetBidDocBDInfoByCode(string ID, ref Pagination jqgridparam) { string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; DataTable dt = new DataTable(); List<DbParameter> parameter = new List<DbParameter>(); ID = ID.TrimStart('"').TrimEnd('"'); string sql = @" SELECT b.ID ,b.InvCode INVCODE,b.Quantity,b.DeliveryTime,b.RowNO
,c.INVNAME , c.InvUnit ,case when isnull(b.cCode,'')='' then 'ERP' else '请购单' end as Source,b.Remark,c.InvStd,b.cCode FROM ICSBidDoc a LEFT JOIN ICSBidDocBD b ON a.BidCode = b.BidCode and b.WorkPoint=b.WorkPoint left JOIN ICSINVENTORY c on b.InvCode = c.INVCODE and b.WorkPoint=c.WorkPoint WHERE a.ID= '{0}' and a.WorkPoint in ({1})and b.BidCode !='' ";
sql = string.Format(sql, ID, WorkPoint.TrimEnd(',')); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetBidDocBDInfoByBidCode(string BidCode, ref Pagination jqgridparam, string WorkPoint) { //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable(); List<DbParameter> parameter = new List<DbParameter>(); BidCode = BidCode.TrimStart('"').TrimEnd('"'); string sql = @"SELECT a.ID ,a.InvCode INVCODE,a.Quantity,a.DeliveryTime,a.RowNO
,b.INVNAME , b.INVUOM ,a.Remark,b.InvStd , case when isnull(a.cCode,'')='' then 'ERP' else '请购单' end as Source from ICSBidDocBD a LEFT JOIN ICSINVENTORY b ON a.InvCode = b.INVCODE and a.WorkPoint=b.WorkPoint LEFT JOIN ICSBidDoc c ON a.BidCode = c.BidCode and b.WorkPoint=c.WorkPoint WHERE a.BidCode= '{0}' and a.WorkPoint in ('{1}')";
sql = string.Format(sql, BidCode, WorkPoint); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //获取招标书供应商列表
public DataTable GetBidDocGYSInfoByCode(string ID, ref Pagination jqgridparam, string WorkPoint) { DataTable dt = new DataTable(); List<DbParameter> parameter = new List<DbParameter>(); ID = ID.TrimStart('"').TrimEnd('"'); string sql = @"SELECT a.ID,a.SupplierCode cVenCode,b.VenName AS cVenName ,'ERP' Source,a.RowNO--,case when EarnestMoney='1' Then '是'Else'否' End as EarnestMoney
FROM ICSBidDocGYS a LEFT JOIN ICSVendor b on a.SupplierCode=b.VenCode and a.WorkPoint=b.WorkPoint LEFT JOIN ICSBidDoc c ON a.BidCode = c.BidCode and b.WorkPoint=c.WorkPoint WHERE c.ID = '{0}' and a.WorkPoint = '{1}' ";
sql = string.Format(sql, ID, WorkPoint); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } //选择物料列表
public DataTable GetItemList(string queryJson, ref Pagination jqgridparam, string WorkPoint) { var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @"SELECT ID,INVCODE ,INVNAME , InvUnit ,'ERP' Source,InvStd
FROM ICSINVENTORY WHERE 1=1 and ISNULL(ClassName,'')!='生产类型' ";
if (!string.IsNullOrEmpty(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["INVCODE"].ToString())) sql += " and INVCODE like '%" + queryParam["INVCODE"].ToString() + "%'"; if (!string.IsNullOrWhiteSpace(queryParam["INVNAME"].ToString())) sql += " and INVNAME like '%" + queryParam["INVNAME"].ToString() + "%'"; } //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
sql += " and WorkPoint=('" + WorkPoint + "')";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
//获取主表信息
public DataRow GetFormDetail(string tmpID, string WorkPoint) { DataRow dr = null; string sql = string.Empty; try { sql = @"SELECT * FROM ICSBidDoc
WHERE ID='" + tmpID + "' and WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
dr = SqlHelper.GetDataRowBySql(sql); return dr; } catch (Exception ex) { throw new Exception(ex.Message); } } //选择供应商列表
public DataTable GetVendorList(string queryJson, ref Pagination jqgridparam, string WorkPoint) { var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @" SELECT DISTINCT VenCode AS cVenCode ,VenName AS cVenName ,'ERP' Source--,case when EarnestMoney='1' Then '是'Else'否' End as EarnestMoney
FROM ICSVendor WHERE 1=1";
if (!string.IsNullOrEmpty(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["cVenCode"].ToString())) sql += " and VenCode like '%" + queryParam["cVenCode"].ToString() + "%'"; if (!string.IsNullOrWhiteSpace(queryParam["cVenName"].ToString())) sql += " and VenName like '%" + queryParam["cVenName"].ToString() + "%'"; } sql += " and WorkPoint in ('" + WorkPoint + "')"; //权限设置
if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin") { sql = SqlHelper.OrganizeByVendor_F_ParentId(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode); } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
//保存
public void SaveDetail(ICSBicDoc details) { string sql = string.Empty; try { List<ICSBidDocBD> list_BD = JsonConvert.DeserializeObject<List<ICSBidDocBD>>(details.arrayBidDocBD); List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; try { string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
sql = "select * from ICSBidDoc where BidCode='" + details.BidCode + "' and ID!='" + details.ID + "' and WorkPoint='" + details.WorkPoint + "'"; DataTable dt = SqlCommandHelper.SQlReturnData(sql, cmd); if (dt != null && dt.Rows.Count > 0) { throw new Exception("招标书编号已存在"); }
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidDoc WHERE ID=@ID)
BEGIN INSERT INTO dbo.ICSBidDoc ( ID, BidCode, BidName, BidUser, StarTime, EndTime, BidStatus, BidType, Remark, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME,Status) VALUES ( @ID, @BidCode, @BidName , @BidUser , @StarTime , @EndTime , @BidStatus , @BidType , @Remark , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate(),@Status) INSERT INTO dbo.ICSBidLog ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME ) VALUES ( newid(), @BidCode, '企业' , '招标书-新增' , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate()) END ELSE BEGIN UPDATE dbo.ICSBidDoc SET BidCode=@BidCode , BidName=@BidName ,BidUser=@BidUser, StarTime=@StarTime , EndTime=@EndTime , Remark=@Remark , BidStatus=@BidStatus, BidType=@BidType , LogUser=@LogUser , LogTime=GETDATE(),Status=@Status WHERE ID=@ID INSERT INTO dbo.ICSBidLog ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME ) VALUES ( newid(), @BidCode, '企业' , '招标书-变更' , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate()) END";
SqlParameter[] sp_Detail = { new SqlParameter("@ID",details.ID), new SqlParameter("@BidCode",details.BidCode), new SqlParameter("@BidName",details.BidName), new SqlParameter("@BidUser",details.BidUser), new SqlParameter("@StarTime",details.StarTime), new SqlParameter("@EndTime",details.EndTime), //new SqlParameter("@ZTBCount",details.ZTBCount),
new SqlParameter("@BidStatus","已保存"), new SqlParameter("@BidType","企业"), new SqlParameter("@Remark",details.Remark), new SqlParameter("@LogUser",Muser), new SqlParameter("@WorkPoint",details.WorkPoint), new SqlParameter("@Status","1"), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName) }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
#region 标的
foreach (ICSBidDocBD BD in list_BD) { sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidDocBD WHERE BidCode=@BidCode and InvCode=@InvCode)
BEGIN INSERT INTO dbo.ICSBidDocBD( ID, BidCode, InvCode, ItemType, Remark, Quantity, DeliveryTime, RowNo, WorkPoint, MUSER, MUSERName, MTIME,cCode) VALUES ( @ID, @BidCode, @InvCode, @ItemType, @Remark, @Quantity, @DeliveryTime, @RowNo, @WorkPoint, @MUSER, @MUSERName, GETDATE(),@cCode) --UPDATE ICSPU_AppVouch SET BidCode=@BidCode WHERE cCode=@cCode and cInvCode=@InvCode and WorkPoint=@WorkPoint END ELSE BEGIN UPDATE dbo.ICSBidDocBD SET BidCode=@BidCode,InvCode=@InvCode,ItemType=@ItemType, Remark=@Remark,Quantity=@Quantity , DeliveryTime=@DeliveryTime,RowNo=@RowNo,cCode=@cCode WHERE ID=@ID --UPDATE ICSPU_AppVouch SET BidCode=@BidCode WHERE cCode=@cCode and cInvCode=@InvCode and WorkPoint=@WorkPoint END";
SqlParameter[] sp_BD = { new SqlParameter("@ID",BD.ID), new SqlParameter("@BidCode",details.BidCode), new SqlParameter("@InvCode",BD.InvCode), new SqlParameter("@ItemType",BD.ItemType), new SqlParameter("@Remark",BD.Remark), new SqlParameter("@Quantity",BD.Quantity), new SqlParameter("@DeliveryTime",BD.DeliveryTime), new SqlParameter("@RowNo",BD.RowNo), new SqlParameter("@WorkPoint",details.WorkPoint), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName), new SqlParameter("@cCode",BD.cCode) }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BD, cmd); }
#endregion
#region 临时物料
foreach (ICSBidDocBD BD in list_BD) { if (BD.Source == "手工") { sql = @"INSERT INTO dbo.ICSINVENTORY
( ID ,INVCODE ,INVNAME ,InvUnit ,INVSTD ,ClassCode ,ClassName ,MUSER ,MUSERName ,MTIME ,WorkPoint ) VALUES ( @ID ,@INVCODE ,@INVNAME ,@InvUnit ,@INVSTD ,@ClassCode ,@ClassName ,@MUSER ,@MUSERName ,Getdate() ,@WorkPoint ) ";
SqlParameter[] sp_INv = { new SqlParameter("@ID",BD.ID), new SqlParameter("@INVCODE",BD.InvCode), new SqlParameter("@INVNAME",BD.INVNAME), new SqlParameter("@InvUnit",BD.INVUOM), new SqlParameter("@INVSTD",BD.InvStd), //new SqlParameter("@INVTYPE","生产类型"),
new SqlParameter("@ClassCode","生产类型"), new SqlParameter("@ClassName","生产类型"), new SqlParameter("@WorkPoint",details.WorkPoint), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName), //new SqlParameter("@WorkPoint",BD.cCode)
}; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_INv, cmd); } } #endregion
#region 供应商
foreach (ICSBidDocGYS GYS in list_GYS) { sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidDocGYS WHERE ID=@ID)
BEGIN INSERT INTO dbo.ICSBidDocGYS (ID, BidCode, SupplierCode, RowNo, ResultConfirmed, WorkPoint, MUSER, MUSERName, MTIME ) VALUES (@ID, @BidCode, @SupplierCode, @RowNo, @ResultConfirmed, @WorkPoint, @MUSER, @MUSERName,GETDATE()) END ELSE BEGIN UPDATE dbo.ICSBidDocGYS SET BidCode=@BidCode, SupplierCode=@SupplierCode, RowNo=@RowNo, ResultConfirmed=@ResultConfirmed WHERE ID=@ID END";
SqlParameter[] sp_GYS = {
new SqlParameter("@ID",GYS.ID), new SqlParameter("@BidCode",details.BidCode), new SqlParameter("@SupplierCode",GYS.SupplierCode), new SqlParameter("@RowNo",GYS.RowNo), new SqlParameter("@ResultConfirmed",GYS.ResultConfirmed), new SqlParameter("@WorkPoint",details.WorkPoint), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName), }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_GYS, cmd);
//投标信息
sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidInfo WHERE BidCode=@BidCode and SupplierCode=@SupplierCode)
BEGIN INSERT INTO dbo.ICSBidInfo (ID, BidCode, SupplierCode, IsSub, WorkPoint, MUSER, MUSERName, MTIME) VALUES (@ID, @BidCode, @SupplierCode, 0, @WorkPoint, @MUSER, @MUSERName,GETDATE()) END ELSE BEGIN UPDATE dbo.ICSBidInfo SET BidCode=@BidCode, SupplierCode=@SupplierCode, IsSub=0 WHERE BidCode=@BidCode and SupplierCode=@SupplierCode END";
SqlParameter[] sp_BidInfo = {
new SqlParameter("@ID",GYS.ID), //new SqlParameter("@TBCount",details.ZTBCount),
new SqlParameter("@BidCode",details.BidCode), new SqlParameter("@SupplierCode",GYS.SupplierCode), new SqlParameter("@WorkPoint",details.WorkPoint), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName), }; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidInfo, cmd); #region 是否付定金
//sql = @"Update ICSVendor set EarnestMoney=@EarnestMoney Where cVenCode=@VenCode ";
//SqlParameter[] paras = new SqlParameter[]
// {
// new SqlParameter("@EarnestMoney",SqlDbType.NVarChar),
// new SqlParameter("@VenCode", SqlDbType.NVarChar)
// };
//paras[0].Value = GYS.IsDid;
//paras[1].Value = GYS.VenCode;
//SqlCommandHelper.CmdExecuteNonQuery(sql, paras, cmd);
#endregion
} #endregion
cmd.Transaction.Commit(); } catch (Exception ex) { cmd.Transaction.Rollback(); throw new Exception(ex.Message); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } } catch (Exception ex) { throw new Exception(ex.Message); } }
//开标
public int UpDateByDocNo(string ID, string BidCode, string WorkPoint) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
ID = ID.TrimStart('"').TrimEnd('"').TrimEnd(',');
BidCode = BidCode.TrimStart('"').TrimEnd('"').TrimEnd(','); string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString; if (MailOpen == "true") { string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString; string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString; int SendPort = 25; if (!string.IsNullOrEmpty(StrSendPort)) SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString); string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString; string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString; string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString; string sqlEmail = @"SELECT SupplierCode,c.F_Email,c.F_RealName,a.StarTime,a.EndTime,a.BidCode FROM ICSBidDoc a
LEFT JOIN ICSBidInfo b ON b.BidCode=a.BidCode and a.WorkPoint=b.WorkPoint LEFT JOIN SYS_SRM_USER c ON b.SupplierCode=c.F_VenCode AND b.WorkPoint=c.F_location WHERE a.BIdCode=" + BidCode + " and a.WorkPoint='" + WorkPoint + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sqlEmail); foreach (DataRow dr in dt.Rows) {
string cVenCode = dr["SupplierCode"].ToString(); string TOAddress = dr["F_Email"].ToString(); string[] Partint = TOAddress.Split(';'); if (!string.IsNullOrEmpty(TOAddress)) { foreach (var p in Partint) { string CCAddress = ""; string Subject = "有来自佑伦SRM平台新发布的标书信息"; bool isBodyHtml = false; string F_RealName = dr["F_RealName"].ToString(); //string StarTime = dr["StarTime"].ToString();
string EndTime = dr["EndTime"].ToString(); string BidCodeName = dr["BidCode"].ToString(); string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString(); string body = F_RealName + ":"; body += "\r\n"; body += " \r\n\r\n\r\n 您有一个 招投书 待投标 ,招标书编号:" + BidCodeName + ",投标截止时间:" + EndTime + ",请尽快登录SRM进行投标!"; body += "\r\n"; body += " 顺颂商祺!"; body += "\r\n"; body += " 佑伦真空设备科技有限公司"; body += "\r\n"; body += " " + NowDate; string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
if (!string.IsNullOrEmpty(TOAddress)) { try { SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, p.ToString(), CCAddress, Subject, isBodyHtml, body); } catch (Exception ex) { throw new Exception("供应商:" + cVenCode + "邮件发送失败! \r\n" + ex.Message); } } } } } } string sql = string.Empty; sql = @"UPDATE dbo.ICSBidDoc SET OpenTime=GETDATE() ,
Tenders='{0}', BidStatus='招标中' , LogUser='{0}' , LogTime=GETDATE() WHERE ID in ({1}) INSERT INTO dbo.ICSBidLog ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME ) SELECT newid(), BidCode, '企业', '招标书-开标', GETDATE(), '{0}', '{3}', '{0}', '{4}', GETDATE() FROM ICSBidLog WHERE BidCode in ({2}) and LogDes='招标书-新增'";
sql = string.Format(sql, MUSER, ID, BidCode, WorkPoint, MUSERName); return SqlHelper.ExecuteNonQuery(sql); } public static void SendEmail(string ConnectionString, string SendHost, int SendPort, string SendDisplayName, string SendAddress, string SendPassword, string TOAddress, string CCAddress, string Subject, bool IsBodyHtml, string Body) { try { SmtpClient smtpClient = new SmtpClient { //EnableSsl = false,
UseDefaultCredentials = false, Host = SendHost, Port = SendPort, Credentials = new NetworkCredential(SendAddress, SendPassword) };
MailMessage mailMessage = new MailMessage { Subject = Subject, SubjectEncoding = Encoding.GetEncoding("utf-8"), BodyEncoding = Encoding.GetEncoding("utf-8"), From = new MailAddress(SendAddress, SendDisplayName), IsBodyHtml = IsBodyHtml, Body = Body }; string[] array = TOAddress.Split(new char[] { ',' }); string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string text = array2[i]; if (!string.IsNullOrEmpty(text)) { mailMessage.To.Add(text); } } string[] array3 = CCAddress.Split(new char[] { ',' }); array2 = array3; for (int i = 0; i < array2.Length; i++) { string text2 = array2[i]; if (!string.IsNullOrEmpty(text2)) { mailMessage.CC.Add(text2); } } ServicePointManager.ServerCertificateValidationCallback = ((object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) => true); smtpClient.Send(mailMessage); // InsertData(ConnectionString, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, IsBodyHtml, Body, "1", null);
} catch (Exception ex) { //InsertData(ConnectionString, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, IsBodyHtml, Body, "2", ex.Message);
throw; } }
//删除招标书
public string DeleteBidDoc(string BidCode, string WorkPoint) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
BidCode = BidCode.TrimStart('"').TrimEnd('"').TrimEnd(',');
string sql = string.Empty; sql = @"INSERT INTO dbo.ICSBidLog
( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME ) SELECT newid(), BidCode, '企业', '招标书-删除', GETDATE(), '{0}', '{2}', '{0}', '{3}', GETDATE() FROM ICSBidLog WHERE BidCode in ({1}) and LogDes='招标书-新增'
delete FROM ICSBidInfo where BidCode in ({1}) delete FROM ICSBidDocBD where BidCode in ({1}) delete FROM ICSBidDocGYS where BidCode in ({1}) delete FROM ICSBidDoc where BidCode in ({1}) delete FROM ICSPU_AppVouch where BidCode in ({1})";
sql = string.Format(sql, MUSER, BidCode, WorkPoint, MUSERName); string msg = ""; try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { msg = ex.Message; } return msg;
}
//关闭
public int CloseBidding(string ID, string BidCode, string WorkPoint) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
ID = ID.TrimStart('"').TrimEnd('"').TrimEnd(',');
BidCode = BidCode.TrimStart('"').TrimEnd('"').TrimEnd(',');
string sql = string.Empty; sql = @"UPDATE dbo.ICSBidDoc SET OpenTime=GETDATE() ,
Tenders='{0}', BidStatus='已关闭' , LogUser='{0}' , LogTime=GETDATE() WHERE ID in ({1}) update ICSBidInfo set IsLock=0 where BidCode in ({2}) INSERT INTO dbo.ICSBidLog ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME ) SELECT newid(), BidCode, '企业', '招标书-关闭', GETDATE(), '{0}', '{3}', '{0}', '{4}', GETDATE() FROM ICSBidLog WHERE BidCode in ({2}) and LogDes='招标书-新增'";
sql = string.Format(sql, MUSER, ID, BidCode, WorkPoint, MUSERName); return SqlHelper.ExecuteNonQuery(sql); }
/// <summary>
/// 删除招标书供应商数据
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteSup(string ID, string WorkPoint) { ID = ID.TrimStart('"').TrimEnd('"').TrimEnd(','); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = ""; string sql = string.Format(@"DELETE
FROM dbo.ICSBidDocGYS WHERE ID IN ('{0}') and WorkPoint ='{1}' ", ID, WorkPoint);
try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { msg = ex.Message; } return msg; }
/// <summary>
/// 删除招标书供应商数据
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteBD(string ID, string WorkPoint) { //ID = ID.TrimStart('"').TrimEnd('"').TrimEnd(',');
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = ""; string sql = string.Format(@"DELETE
FROM dbo.ICSBidDocBD WHERE ID IN ('{0}') and WorkPoint ='{1}' ", ID, WorkPoint);
try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { msg = ex.Message; } return msg; }
/// <summary>
/// 上传招标文件
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public int UpLoadFile(string FilePath, string FileName, string BidCode, string ID) { DataTable dt = new DataTable(); string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = ""; sql += string.Format(@"update ICSBidDoc set FileName='{0}'
where ID='{1}'",
FilePath, ID); sql += "\r\n"; StringBuilder Str = new StringBuilder(sql); return Repository().ExecuteBySql(Str); } public string ISHave(string InvCode) { string sql = @"SELECT * FROM ICSInventory WHERE InvCode='" + InvCode + "'"; DataTable dt = SqlHelper.GetDataTableBySql(sql); if (dt != null && dt.Rows.Count > 0) { return "0"; } else { return "1"; } } public string SetData_PR(String savePath, string ID, string BidCode, string WorkPoint) { string msg = ""; string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn;
//数据获取
try { if (BidCode != "") { string sqls = "Delete ICSBidDocBD Where BidCode='" + BidCode + "'"; int count = SqlHelper.ExecuteNonQuery(sqls); } string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sql = ""; int rowNO = 0; DataTable data = FileToExcel.ExcelToTable(savePath); var parent = data.DefaultView.ToTable(true, "物料编码", "物料名称", "计划采购数量", "单位", "交期", "备注"); foreach (DataRow dr in parent.Rows) { rowNO = rowNO + 1; string GUID = Guid.NewGuid().ToString(); if (string.IsNullOrWhiteSpace(dr["物料编码"].ToString())) throw new Exception("物料编码不能为空!"); if (string.IsNullOrWhiteSpace(dr["物料名称"].ToString())) throw new Exception("物料名称不能为空!"); if (string.IsNullOrWhiteSpace(dr["计划采购数量"].ToString())) throw new Exception("计划采购数量不能为空!"); if (string.IsNullOrWhiteSpace(dr["单位"].ToString())) throw new Exception("单位不能为空!"); if (string.IsNullOrWhiteSpace(dr["交期"].ToString())) throw new Exception("交期不能为空!"); string ishave = ISHave(dr["物料编码"].ToString()); if (ishave == "1") { msg += "物料" + dr["物料编码"].ToString() + "不存在!"; continue; } else { sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidDocBD WHERE ID=@ID)
BEGIN INSERT INTO dbo.ICSBidDocBD( ID, BidCode, InvCode, ItemType, Remark, Quantity, DeliveryTime, RowNo, WorkPoint, MUSER, MUSERName, MTIME) VALUES ( @ID, @BidCode, @InvCode, @ItemType, @Remark, @Quantity, @DeliveryTime, @RowNo, @WorkPoint, @MUSER, @MUSERName, GETDATE()) END ELSE BEGIN UPDATE dbo.ICSBidDocBD SET BidCode=@BidCode,InvCode=@InvCode,ItemType=@ItemType, Remark=@Remark,Quantity=@Quantity , DeliveryTime=@DeliveryTime,RowNo=@RowNo WHERE ID=@ID END";
SqlParameter[] sp_BD = { new SqlParameter("@ID",GUID), new SqlParameter("@BidCode",BidCode), new SqlParameter("@InvCode",dr["物料编码"].ToString()), new SqlParameter("@ItemType",""), new SqlParameter("@Remark",dr["备注"].ToString()), new SqlParameter("@Quantity",dr["计划采购数量"].ToString()), new SqlParameter("@DeliveryTime",dr["交期"].ToString()), new SqlParameter("@RowNo",rowNO), new SqlParameter("@WorkPoint",WorkPoint), new SqlParameter("@MUSER",Muser), new SqlParameter("@MUSERName",MuserName),
//sql += "Insert Into ICSFManger Values('{0}','{1}','{2}','{3}','{4}','','{9}',CONVERT(varchar(100), '{10}', 23))";
//DataRow[] drs = data.Select("供应商编码+供应商名称+物料编码+物料名称='" + dr["供应商编码"].ToString() + dr["供应商名称"].ToString() + dr["物料编码"].ToString() + dr["物料名称"].ToString() + "'");
//foreach (DataRow de in drs)
//{
// foreach (DataColumn dc in data.Columns)
// {
// if (dc.Caption == "供应商编码" || dc.Caption == "供应商名称" || dc.Caption == "物料编码" || dc.Caption == "物料名称" || dc.Caption == "交货量" || dc.Caption == "排程日期")
// continue;
// sql += @"Insert INto ICSFMangerDetail Values ('{5}','{6}','','{7}',{8},CONVERT(varchar(100), '{10}', 23),'{9}')";
// sql = string.Format(sql, GUID, dr["供应商编码"].ToString(), dr["供应商名称"].ToString(), dr["物料编码"].ToString(), dr["物料名称"].ToString(), GUID, dc.Caption, de["交货量"].ToString(), de[dc.Caption].ToString(), MUSERNAME, DateTime.Now);
// }
//}
}; SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BD, cmd); }
} cmd.Transaction.Commit(); msg += "导入成功"; } catch (Exception ex) { throw new Exception("" + ex.Message + "!"); } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Dispose(); } return msg; } public string InsertID(string ID,string WorkPoints) { string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sql = @" INSERT INTO dbo.ICSBidDoc
( ID, BidCode, BidName, BidUser, StarTime, EndTime, BidStatus, BidType, Remark, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME,Status ) VALUES ( '" + ID + "', '', '' ,'','' , '' , '' , '', '' , getdate() , '' , "+ WorkPoint.Trim(',') + ", '" + Muser + "' , '" + MuserName + "', getdate(),0)";
int count = SqlHelper.ExecuteNonQuery(sql); return ID; } public DataTable GetSubGridJsonBid(string queryJson, ref Pagination jqgridparam, string WorkPoint) { DataTable dt = new DataTable(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
List<DbParameter> parameter = new List<DbParameter>(); string sql = @" SELECT a.ID,b.INVCODE, b.INVNAME AS InvName,b.INVStd AS InvStd,b.INVUOM AS Unit,a.Quantity ,a.DeliveryTime,'ERP'as Source,a.ENTTRIBUTE1,d.cVenCode,d.cVenName
FROM ICSBidDocBD a LEFT JOIN ICSInventory b ON a.InvCode = b.INVCODE and a.WorkPoint=b.WorkPoint left join ICSBidDocGYS c on a.BidCode=c.BidCode and b.WorkPoint=c.WorkPoint LEFT JOIN ICSVendor d on c.SupplierCode=d.cVenCode and c.WorkPoint=d.WorkPoint WHERE a.BidCode = '{0}' and a.WorkPoint = ({1})";
sql = string.Format(sql, queryJson, WorkPoint); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } /// <summary>
/// 请购单信息
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <param name="WorkPoint"></param>
/// <returns></returns>
public DataTable GetBicDocByPU(string queryJson, ref Pagination jqgridparam, string WorkPoint) { var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); DataTable dt = new DataTable(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string sql = @" SELECT
'请购单'as Source, ID, cCode, ivouchrowno, CONVERT(NVARCHAR(20),dDate,23) AS dDate, cInvCode, cInvName, cInvStd, INVUOM, CONVERT(NVARCHAR(20),dRequirDate,23) AS dRequirDate, CONVERT(NVARCHAR(20),dArriveDate,23) AS dArriveDate, fQuantity, WorkPoint, Free1 FROM dbo.ICSPU_AppVouch WHERE BidCode is NUll ";
if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["cCode"].ToString())) { sql += " and cCode like '%" + queryParam["cCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BegiondDate"].ToString())) { sql += " and dDate >= '" + queryParam["BegiondDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["EnddDate"].ToString())) { sql += " and dDate <= '" + queryParam["EnddDate"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { sql += " and cInvCode ='" + queryParam["InvCode"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { sql += " and cInvName ='" + queryParam["InvName"].ToString() + "' "; } if (!string.IsNullOrWhiteSpace(WorkPoint)) { sql += " and WorkPoint ='" + WorkPoint + "' "; } } return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); } public DataTable GetWorkPointByUser() { DataRow dr = null; string sql = string.Empty; string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; try { sql = @"SELECT F_Location FROM sys_SRM_USer
WHERE F_Account='" + Muser + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sql); return dt; } catch (Exception ex) { throw new Exception(ex.Message); } } public string GetBidCode(string WorkPoint, string Vendor) { string BidCide = string.Empty; string sqlGetBidCide = @"SELECT a.F_ItemCode,a.F_ItemName,a.F_Description FROM Sys_SRM_ItemsDetail a
LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id WHERE b.F_EnCode = 'ZTBGZ01'";
if (!string.IsNullOrWhiteSpace(WorkPoint)) { sqlGetBidCide += "and a.F_ItemCode='" + WorkPoint + "'"; } DataTable dtGetBidCide = SqlHelper.GetDataTableBySql(sqlGetBidCide); if (dtGetBidCide.Rows.Count <= 0 || dtGetBidCide.Rows[0]["F_Description"].ToString() == null) { throw new Exception("请先维护数据字典!"); } string F_Description = dtGetBidCide.Rows.Count <= 0 || dtGetBidCide.Rows[0]["F_Description"].ToString() == null ? "" : dtGetBidCide.Rows[0]["F_Description"].ToString(); //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
if (!string.IsNullOrEmpty(WorkPoint)) { string Date = DateTime.Now.ToString("yyyy"); string Muoth = DateTime.Now.ToString("MM"); string Day = DateTime.Now.ToString("dd"); string Pre = F_Description + Date + Muoth + Day; BidCide = GetSerialCode(WorkPoint, "ICSBidDoc", "BidCode", Pre, 2); } if (!string.IsNullOrWhiteSpace(BidCide)) { string sqlISHave = @"SELECT BidCode FROM ICSBidDoc a
WHERE a.BidCode = '{0}'";
sqlISHave = string.Format(sqlISHave, BidCide); DataTable dtIsHave = SqlHelper.GetDataTableBySql(sqlISHave); if (dtIsHave.Rows.Count > 0) { throw new Exception("标书已存在!"); } } return BidCide; }
public string GetBidItemCode(string WorkPoint, string Vendor) { string BidItemCode = string.Empty; //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
if (!string.IsNullOrEmpty(WorkPoint)) { string Date = DateTime.Now.ToString("yy"); string Muoth = DateTime.Now.ToString("MM"); string Day = DateTime.Now.ToString("dd"); string Pre = "SRM" + WorkPoint; BidItemCode = GetSerialCode(WorkPoint, "ICSBidDoc", "BidCode", Pre, 5); } if (!string.IsNullOrWhiteSpace(BidItemCode)) { string sqlISHave = @"SELECT InvCode FROM ICSINVENTORY a
WHERE a.InvCode = '{0}'";
sqlISHave = string.Format(sqlISHave, BidItemCode); DataTable dtIsHave = SqlHelper.GetDataTableBySql(sqlISHave); if (dtIsHave.Rows.Count > 0) { throw new Exception("正式物料已存在!"); } } return BidItemCode; } public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen) { string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}"; sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen }); return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString(); } public string SubmitOARejict(string BidCode, string WorkPoint) { string sql = ""; string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string msg = ""; DataTable dt = new DataTable(); var reqInterNme = "http://172.16.8.33/seeyon/rest/token/SRMTEST/25eba5c2-95e9-4bf8-92f5-0f42595255ba?loginName="+UserCode; var responseStr = httpGet(reqInterNme); try { string Pre = "HH-SRM" + WorkPoint; string BIDCodes = GetSerialCode(WorkPoint, "ICSBidDoc", "code", Pre, 3);
//JObject res = (JObject)JsonConvert.DeserializeObject(dtsql.Rows[0]["searchKey"].ToString());
JObject res = (JObject)JsonConvert.DeserializeObject(responseStr); string ID = res["id"].ToString();//获取Tockn
JObject resultbidUser = (JObject)JsonConvert.DeserializeObject(res["bindingUser"].ToString()); string id = resultbidUser["id"].ToString(); //用户ID
string departmentId = resultbidUser["departmentId"].ToString(); //部门ID
string postId = resultbidUser["postId"].ToString(); //岗位ID
//string Message = res["Message"].ToString();
if (!string.IsNullOrWhiteSpace(ID)) { NFine.Domain._03_Entity.SRM.ICSBidDocOA.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSBidDocOA.thirdAttachments(); List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.thirdAttachments> thirdAttachments = new List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.thirdAttachments>(); NFine.Domain._03_Entity.SRM.ICSBidDocOA.datadetail dat = new NFine.Domain._03_Entity.SRM.ICSBidDocOA.datadetail(); NFine.Domain._03_Entity.SRM.ICSBidDocOA.datass dds = new NFine.Domain._03_Entity.SRM.ICSBidDocOA.datass();
string sqlFile = "SELECT FileName FROM ICSBidDoc Where BidCode='" + BidCode + "'and WorkPoint='" + WorkPoint + "'"; DataTable dts = SqlHelper.GetDataTableBySql(sqlFile); string fileName = dts.Rows[0]["FileName"].ToString().TrimEnd(';'); string[] PrintParas = fileName.Split(';'); int subReference=0; Random rd = new Random(); //无参即为使用系统时钟为种子
subReference=rd.Next(); int sort = 1; string fileUrl = ""; if (!string.IsNullOrWhiteSpace(fileName)) { foreach (var p in PrintParas) { string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\ZTBFile\\" + BidCode + "\\" + p.ToString()); string APIURL = "http://172.16.8.33/seeyon/rest/attachment?token=" + ID; var IDFile = UploadLog(filePath, APIURL); JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile); JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
foreach (var item in result) { JObject jo = (JObject)item; fileUrl = jo["fileUrl"].ToString(); //地址
} //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
ths.subReference = subReference; ths.fileUrl = fileUrl; ths.sort = sort; thirdAttachments.Add(ths); sort++; } dds.thirdAttachments.Add(ths); } ICSBidDocOA da = new ICSBidDocOA(); da.appName = "collaboration"; List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.attachments> attachmentsdetail = new List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.attachments>(); NFine.Domain._03_Entity.SRM.ICSBidDocOA.attachments attachments = new NFine.Domain._03_Entity.SRM.ICSBidDocOA.attachments();
attachments.ID = ""; attachmentsdetail.Add(attachments); dat.templateCode = "SRM01"; dat.draft = "0"; dat.relateDoc = "";//(OA 公文附件 ID,默认为空,不使用)
dat.subject = "";//(OA 流程标题,默认为空,OA 端自动生成标题)
sql = @"SELECT a.SupplierCode,b.cVenName,b.cVenRegCode,b.Free1 FROM dbo.ICSBidDocGYS a
LEFT JOIN dbo.ICSVendor b ON a.SupplierCode=b.cVenCode AND a.WorkPoint=b.WorkPoint WHERE BidCode='" + BidCode + "'and a.WorkPoint='" + WorkPoint + "'";
DataTable dtVenDor = SqlHelper.GetDataTableBySql(sql); for (int i = 0; i < dtVenDor.Rows.Count; i++) { List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.formson_0023> formson_0023 = new List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.formson_0023>(); Domain._03_Entity.SRM.ICSBidDocOA.formson_0023 dm0023 = new Domain._03_Entity.SRM.ICSBidDocOA.formson_0023(); dm0023.邀标供应商编码 = dtVenDor.Rows[i]["SupplierCode"].ToString(); dm0023.邀标供应商税号 = dtVenDor.Rows[i]["cVenRegCode"].ToString(); dm0023.邀标供应商名称 = dtVenDor.Rows[i]["cVenName"].ToString(); dm0023.邀标供应商备注 = ""; dds.formson_0023.Add(dm0023); } sql = @"SELECT a.InvCode,b.INVNAME,b.INVSTD,b.INVUOM,a.Quantity,a.DeliveryTime,a.Remark FROM dbo.ICSBidDocBD a
LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint WHERE BidCode='" + BidCode + "' and a.WorkPoint='" + WorkPoint + "'";
DataTable dtDB =SqlHelper.GetDataTableBySql(sql) ; for (int i = 0; i < dtDB.Rows.Count; i++) { List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.formson_0022> formson_0022 = new List<NFine.Domain._03_Entity.SRM.ICSBidDocOA.formson_0022>(); Domain._03_Entity.SRM.ICSBidDocOA.formson_0022 dm0022 = new Domain._03_Entity.SRM.ICSBidDocOA.formson_0022(); dm0022.物料编码 = dtDB.Rows[i]["InvCode"].ToString(); dm0022.物料名称 = dtDB.Rows[i]["INVNAME"].ToString(); dm0022.规格型号 = dtDB.Rows[i]["INVSTD"].ToString(); dm0022.物料单位 = dtDB.Rows[i]["INVUOM"].ToString(); dm0022.采购数量 = Convert.ToDecimal(dtDB.Rows[i]["Quantity"].ToString()); dm0022.交期 = Convert.ToDateTime(dtDB.Rows[i]["DeliveryTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff"); dm0022.备注 = dtDB.Rows[i]["Remark"].ToString(); dds.formson_0022.Add(dm0022); } sql = @"SELECT BidCode,BidName,StarTime,EndTime,b.ID,a.Remark FROM dbo.ICSBidDoc a
LEFT JOIN ICSOAEnum b ON a.WorkPoint=b.WorkPoint WHERE a.BidCode='" + BidCode + "' and a.WorkPoint='" + WorkPoint + "'";
DataTable dtDBDoc = SqlHelper.GetDataTableBySql(sql); Domain._03_Entity.SRM.ICSBidDocOA.formmain_0021 dm0021 = new Domain._03_Entity.SRM.ICSBidDocOA.formmain_0021(); dm0021.日期 = DateTime.Now.ToString("yyyy-MM-dd"); dm0021.公司 = dtDBDoc.Rows[0]["ID"].ToString(); dm0021.编号 = BIDCodes; dm0021.姓名 = id; dm0021.部门 = departmentId; dm0021.岗位 = postId; dm0021.招标编号 = dtDBDoc.Rows[0]["BidCode"].ToString(); dm0021.标案名称 = dtDBDoc.Rows[0]["BidName"].ToString(); dm0021.招标公司 = dtDBDoc.Rows[0]["ID"].ToString(); dm0021.招标负责人 = id; dm0021.招标开始时间 = Convert.ToDateTime(dtDBDoc.Rows[0]["StarTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff"); dm0021.招标结束时间 = Convert.ToDateTime(dtDBDoc.Rows[0]["EndTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff"); dm0021.是否缴纳保证金 = ""; dm0021.保证金额 = ""; dm0021.备注说明 = dtDBDoc.Rows[0]["Remark"].ToString(); dm0021.附件 = subReference; dds.formmain_0021 = dm0021; dat.data = dds; da.data = dat; string input = JsonConvert.SerializeObject(da); //}
string APIURLBid = "http://172.16.8.33/seeyon/rest/bpm/process/start?token=" + ID; string resultBid = HttpPost(APIURLBid, input); JObject resBId = (JObject)JsonConvert.DeserializeObject(resultBid); string Code = resBId["code"].ToString();//获取Tockn
if (Code=="0") { sql = "Update ICSBidDoc set BidStatus='OA审核中' Where BidCode='" + BidCode + "'"; SqlHelper.CmdExecuteNonQueryLi(sql); } else { msg = "OA上传OA失败!"; } } else { msg="获取Token失败"; } } catch (Exception ex) { msg=ex.Message; } return msg;
} /// <summary>
/// Http Get请求
/// </summary>
/// <param name="url"></param>
/// <param name="headerValue"></param>
/// <returns></returns>
static String httpGet(string url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
WebHeaderCollection headers = new WebHeaderCollection(); //headers.Add("Token", headerValue[0]);
//headers.Add("Timespan", headerValue[1]);
request.UserAgent = null; request.Headers = headers; request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); var httpStatusCode = (int)response.StatusCode; Console.WriteLine("返回码为 {0}", httpStatusCode); if (httpStatusCode == 200) { Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); return retString; } else { Console.WriteLine("未返回数据 {0}", httpStatusCode); throw new Exception("no data response"); }
}
/// <summary>
/// Http P0st请求
/// </summary>
/// <param name="url"></param>
/// <param name="headerValue"></param>
/// <returns></returns>
public static string UploadLog(string file, string fileippath) { var uploadUrl = fileippath; HttpWebRequest request = WebRequest.Create(uploadUrl) as HttpWebRequest; request.AllowAutoRedirect = true; request.Method = "POST"; //这段代码不是必须,请求头传输内容,看业务情况
//request.Headers.Add("iauth", ia);//加鉴权
string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary; byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n"); byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
int pos = file.LastIndexOf("\\"); string fileName = file.Substring(pos + 1);
//请求头部信息
StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName));
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read); byte[] bArr = new byte[fs.Length]; fs.Read(bArr, 0, bArr.Length); fs.Close();
Stream postStream = request.GetRequestStream(); postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length); postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); postStream.Write(bArr, 0, bArr.Length); postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); postStream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse; Stream instream = response.GetResponseStream(); StreamReader sr = new StreamReader(instream, Encoding.UTF8); string content = sr.ReadToEnd(); return content; } public class ASn { public byte[] File { get; set; } //public string warehouseCode { get; set; }
} public class DeleteICSAsndet { public List<ASn> icsasn = new List<ASn>(); } public static string HttpPost(string url, string body) { try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { return reader.ReadToEnd(); } } catch (WebException ex) { throw new Exception(ex.Message); } } /// <summary>
/// 创建临时物料
/// </summary>
/// <param name="queryJson"></param>
/// <returns></returns>
// public string SubmitFormCFType(string queryJson)
// {
// string msg = string.Empty;
// try
// {
// DataTable dt = new DataTable();
// List<DbParameter> parameter = new List<DbParameter>();
// ICSBicItemFSC[] list = JsonConvert.DeserializeObject<ICSBicItemFSC[]>(queryJson);
// string sql = string.Empty;
// string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
// SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
// conn.Open();
// SqlTransaction sqlTran = conn.BeginTransaction();
// SqlCommand cmd = new SqlCommand();
// cmd.Transaction = sqlTran;
// cmd.Connection = conn;
// try
// {
// string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
// string UserCodeName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
// foreach (var obj in list)
// {
// sql = @"
// INSERT INTO dbo.ICSINVENTORY
// (
// ID
// ,INVCODE
// ,INVNAME
// ,INVUOM
// ,INVSTD
// ,INVTYPE
// ,INVCLASS
// ,INVEXPORTIMPORT
// ,MUSER
// ,MUSERName
// ,MTIME
// ,WorkPoint
// )
// VALUES
// (
// NEWID()
// ,@INVCODE
// ,@INVNAME
// ,@INVUOM
// ,@INVSTD
// ,@INVTYPE
// ,@INVCLASS
// ,@INVEXPORTIMPORT
// ,@MUSER
// ,@MUSERName
// ,GetDate()
// ,@WorkPoint
// ) ";
// SqlParameter[] sp_Detail = {
// //new SqlParameter("@ID",obj.ID),
// new SqlParameter("@INVCODE",obj.INVCODE),
// new SqlParameter("@INVNAME",obj.INVCODE),
// new SqlParameter("@INVSTD",obj.INVSTD),
// new SqlParameter("@INVUOM",obj.INVUOM),
// new SqlParameter("@INVTYPE","非生产物料"),
// new SqlParameter("@INVCLASS","非生产物料"),
// new SqlParameter("@INVEXPORTIMPORT","非生产物料"),
// new SqlParameter("@MUSER",UserCode),
// new SqlParameter("@MUSERName",UserCodeName),
// new SqlParameter("@WorkPoint",obj.WorkPoint),
// };
// SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
// }
// cmd.Transaction.Commit();
// }
// catch (Exception ex)
// {
// cmd.Transaction.Rollback();
// msg = ex.Message;
// }
// finally
// {
// if (conn.State == ConnectionState.Open)
// {
// conn.Close();
// }
// conn.Dispose();
// }
// }
// catch (Exception ex)
// {
// msg=ex.Message;
// }
// return msg;
// }
} }
|