You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1741 lines
93 KiB

4 days ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using NFine.Code;
  4. using NFine.Data.Extensions;
  5. using NFine.Domain._03_Entity.SRM;
  6. using NFine.Repository;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Configuration;
  10. using System.Data;
  11. using System.Data.Common;
  12. using System.Data.SqlClient;
  13. using System.IO;
  14. using System.Linq;
  15. using System.Net;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. namespace NFine.Application.SRM
  19. {
  20. public class BicDoc_SellerApp:RepositoryFactory<ICSVendor>
  21. {
  22. public string SellerSubmitOARejict(string BidCode, string WorkPoint)
  23. {
  24. string sql = "";
  25. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  26. string msg = "";
  27. DataTable dt = new DataTable();
  28. var reqInterNme = "http://172.16.8.33/seeyon/rest/token/SRMTEST/25eba5c2-95e9-4bf8-92f5-0f42595255ba?loginName=" + UserCode;
  29. var responseStr = httpGet(reqInterNme);
  30. try
  31. {
  32. string Pre = "HH-SRM" + WorkPoint;
  33. string BIDCodes = GetSerialCode(WorkPoint, "ICSBidDoc", "code", Pre, 3);
  34. //JObject res = (JObject)JsonConvert.DeserializeObject(dtsql.Rows[0]["searchKey"].ToString());
  35. JObject res = (JObject)JsonConvert.DeserializeObject(responseStr);
  36. string ID = res["id"].ToString();//获取Tockn
  37. JObject resultbidUser = (JObject)JsonConvert.DeserializeObject(res["bindingUser"].ToString());
  38. string id = resultbidUser["id"].ToString(); //用户ID
  39. string departmentId = resultbidUser["departmentId"].ToString(); //部门ID
  40. string postId = resultbidUser["postId"].ToString(); //岗位ID
  41. //string Message = res["Message"].ToString();
  42. if (!string.IsNullOrWhiteSpace(ID))
  43. {
  44. NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.thirdAttachments();
  45. List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.thirdAttachments> thirdAttachments = new List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.thirdAttachments>();
  46. NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.datadetail dat = new NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.datadetail();
  47. NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.datass dds = new NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.datass();
  48. string sqlFile = "SELECT FileName FROM ICSBidDoc Where BidCode='" + BidCode + "'and WorkPoint='" + WorkPoint + "'";
  49. DataTable dts = SqlHelper.GetDataTableBySql(sqlFile);
  50. string fileName = dts.Rows[0]["FileName"].ToString().TrimEnd(';');
  51. string[] PrintParas = fileName.Split(';');
  52. int subReference = 0;
  53. Random rd = new Random();  //无参即为使用系统时钟为种子
  54. subReference = rd.Next();
  55. int sort = 1;
  56. string fileUrl = "";
  57. if (!string.IsNullOrWhiteSpace(fileName))
  58. {
  59. foreach (var p in PrintParas)
  60. {
  61. string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\ZTBFile\\" + BidCode + "\\" + p.ToString());
  62. string APIURL = "http://172.16.8.33/seeyon/rest/attachment?token=" + ID;
  63. var IDFile = UploadLog(filePath, APIURL);
  64. JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile);
  65. JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
  66. foreach (var item in result)
  67. {
  68. JObject jo = (JObject)item;
  69. fileUrl = jo["fileUrl"].ToString(); //地址
  70. }
  71. //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
  72. ths.subReference = subReference;
  73. ths.fileUrl = fileUrl;
  74. ths.sort = sort;
  75. thirdAttachments.Add(ths);
  76. sort++;
  77. }
  78. dds.thirdAttachments.Add(ths);
  79. }
  80. ICSBicDocSellerOA da = new ICSBicDocSellerOA();
  81. da.appName = "collaboration";
  82. List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.attachments> attachmentsdetail = new List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.attachments>();
  83. NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.attachments attachments = new NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.attachments();
  84. attachments.ID = "";
  85. attachmentsdetail.Add(attachments);
  86. dat.templateCode = "SRM02";
  87. dat.draft = "0";
  88. dat.relateDoc = "";//(OA 公文附件 ID,默认为空,不使用)
  89. dat.subject = "";//(OA 流程标题,默认为空,OA 端自动生成标题)
  90. sql = @"SELECT c.cvencode,c.cVenName,c.cVenRegCode,'ERP' as Source,SUM(b.CastPrice) as CastPrice,
  91. (CASE d.BidStatus WHEN '' THEN (CASE b.IsDid WHEN '1' THEN '1' WHEN '0' THEN '0' ELSE '' END) ELSE '' END) AS ISDID
  92. FROM ICSBidInfo a
  93. LEFT JOIN ICSBidInfoDetail b ON a.ID = b.InfoID and a.WorkPoint=b.WorkPoint
  94. LEFT JOIN ICSVendor c ON a.SupplierCode = c.cvencode and b.WorkPoint=c.WorkPoint
  95. LEFT JOIN ICSBidDoc d ON d.BidCode = a.BidCode and c.WorkPoint=d.WorkPoint
  96. WHERE a.BidCode='" + BidCode + @"'
  97. AND b.IsCast = 1
  98. AND a.IsSub = 1
  99. AND a.WorkPoint in ('" + WorkPoint + @"')
  100. GROUP BY c.cvencode,c.cVenName,c.cVenRegCode,d.BidStatus,b.IsDid";
  101. DataTable dtVenDor = SqlHelper.GetDataTableBySql(sql);
  102. for (int i = 0; i < dtVenDor.Rows.Count; i++)
  103. {
  104. List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0033> formson_0033 = new List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0033>();
  105. Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0033 dm0023 = new Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0033();
  106. dm0023. = dtVenDor.Rows[i]["cvencode"].ToString();
  107. dm0023. = dtVenDor.Rows[i]["cVenRegCode"].ToString();
  108. dm0023. = dtVenDor.Rows[i]["cVenName"].ToString();
  109. dm0023. = "";
  110. dm0023. = Convert.ToInt32(dtVenDor.Rows[i]["ISDID"].ToString());
  111. dm0023. = Convert.ToDecimal( dtVenDor.Rows[i]["CastPrice"].ToString());
  112. dds.formson_0033.Add(dm0023);
  113. }
  114. //string sqls = " SELECT ZBVendorCode FROM ICSBidInfoDetail WHERE BidCode='" + BidCode + "' and WorkPoint='" + WorkPoint + "'";
  115. //DataTable dtZBVendor = SqlHelper.GetDataTableBySql(sqls);
  116. sql = @"SELECT distinct a.InvCode,b.INVNAME,b.INVSTD,b.INVUOM,a.Quantity,a.DeliveryTime,a.Remark,isnull(d.CastPrice,0) as CastPrice
  117. FROM ICSBidDocBD a
  118. LEFT JOIN ICSBidDoc j on a.BidCode=j.BidCode
  119. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.InvCode
  120. LEFT JOIN ICSBidInfo c ON c.BidCode = a.BidCode
  121. LEFT JOIN (
  122. SELECT X.* FROM ICSBidInfoDetail X
  123. inner JOIN (
  124. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  125. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  126. GROUP BY a.BDID,a.MUSERName
  127. ) Y
  128. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = a.ID and c.WorkPoint=d.WorkPoint
  129. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode
  130. LEFT JOIN Sys_SRM_User f ON f.F_VenCode = e.VenCode
  131. WHERE a.BidCode='" + BidCode + "' and a.WorkPoint='" + WorkPoint + "' AND e.cVenName=d.ZBVendorCode";
  132. DataTable dtDB = SqlHelper.GetDataTableBySql(sql);
  133. for (int i = 0; i < dtDB.Rows.Count; i++)
  134. {
  135. List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0032> formson_0022 = new List<NFine.Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0032>();
  136. Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0032 dm0022 = new Domain._03_Entity.SRM.ICSBicDocSellerOA.formson_0032();
  137. dm0022. = dtDB.Rows[i]["InvCode"].ToString();
  138. dm0022. = dtDB.Rows[i]["INVNAME"].ToString();
  139. dm0022. = dtDB.Rows[i]["INVSTD"].ToString();
  140. dm0022. = dtDB.Rows[i]["INVUOM"].ToString();
  141. dm0022. = Convert.ToDecimal(dtDB.Rows[i]["Quantity"].ToString());
  142. dm0022. = Convert.ToDateTime(dtDB.Rows[i]["DeliveryTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  143. dm0022. = dtDB.Rows[i]["Remark"].ToString();
  144. dm0022. = dtDB.Rows[i]["CastPrice"].ToString();
  145. dds.formson_0032.Add(dm0022);
  146. }
  147. sql = @"SELECT BidCode,BidName,StarTime,EndTime,b.ID,a.Remark FROM dbo.ICSBidDoc a
  148. LEFT JOIN ICSOAEnum b ON a.WorkPoint=b.WorkPoint
  149. WHERE a.BidCode='" + BidCode + "' and a.WorkPoint='" + WorkPoint + "'";
  150. DataTable dtDBDoc = SqlHelper.GetDataTableBySql(sql);
  151. Domain._03_Entity.SRM.ICSBicDocSellerOA.formmain_0031 dm0021 = new Domain._03_Entity.SRM.ICSBicDocSellerOA.formmain_0031();
  152. dm0021. = DateTime.Now.ToString("yyyy-MM-dd");
  153. dm0021. = dtDBDoc.Rows[0]["ID"].ToString();
  154. dm0021. = BIDCodes;
  155. dm0021. = id;
  156. dm0021. = departmentId;
  157. dm0021. = postId;
  158. dm0021. = dtDBDoc.Rows[0]["BidCode"].ToString();
  159. dm0021. = dtDBDoc.Rows[0]["BidName"].ToString();
  160. dm0021. = dtDBDoc.Rows[0]["ID"].ToString();
  161. dm0021. = id;
  162. dm0021. = Convert.ToDateTime(dtDBDoc.Rows[0]["StarTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  163. dm0021. = Convert.ToDateTime(dtDBDoc.Rows[0]["EndTime"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
  164. dm0021. = "";
  165. dm0021. = "";
  166. dm0021. = dtDBDoc.Rows[0]["Remark"].ToString();
  167. dm0021. = subReference;
  168. dds.formmain_0031 = dm0021;
  169. dat.data = dds;
  170. da.data = dat;
  171. string input = JsonConvert.SerializeObject(da);
  172. //}
  173. string APIURLBid = "http://172.16.8.33/seeyon/rest/bpm/process/start?token=" + ID;
  174. string resultBid = HttpPost(APIURLBid, input);
  175. JObject resBId = (JObject)JsonConvert.DeserializeObject(resultBid);
  176. string Code = resBId["code"].ToString();//获取Tockn
  177. if (Code == "0")
  178. {
  179. sql = "Update ICSBidDoc set BidOAStatus='OA审核中' Where BidCode='" + BidCode + "'";
  180. SqlHelper.CmdExecuteNonQueryLi(sql);
  181. }
  182. else
  183. {
  184. msg = "OA上传OA失败!";
  185. }
  186. }
  187. else
  188. {
  189. msg = "获取Token失败";
  190. }
  191. }
  192. catch (Exception ex)
  193. {
  194. msg = ex.Message;
  195. }
  196. return msg;
  197. }
  198. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  199. {
  200. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  201. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  202. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  203. }
  204. public static string HttpPost(string url, string body)
  205. {
  206. try
  207. {
  208. Encoding encoding = Encoding.UTF8;
  209. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  210. request.Method = "POST";
  211. request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  212. request.ContentType = "application/json; charset=utf-8";
  213. byte[] buffer = encoding.GetBytes(body);
  214. request.ContentLength = buffer.Length;
  215. request.GetRequestStream().Write(buffer, 0, buffer.Length);
  216. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  217. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  218. {
  219. return reader.ReadToEnd();
  220. }
  221. }
  222. catch (WebException ex)
  223. {
  224. throw new Exception(ex.Message);
  225. }
  226. }
  227. /// <summary>
  228. /// Http Get请求
  229. /// </summary>
  230. /// <param name="url"></param>
  231. /// <param name="headerValue"></param>
  232. /// <returns></returns>
  233. static String httpGet(string url)
  234. {
  235. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  236. WebHeaderCollection headers = new WebHeaderCollection();
  237. //headers.Add("Token", headerValue[0]);
  238. //headers.Add("Timespan", headerValue[1]);
  239. request.UserAgent = null;
  240. request.Headers = headers;
  241. request.Method = "GET";
  242. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  243. var httpStatusCode = (int)response.StatusCode;
  244. Console.WriteLine("返回码为 {0}", httpStatusCode);
  245. if (httpStatusCode == 200)
  246. {
  247. Stream myResponseStream = response.GetResponseStream();
  248. StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
  249. string retString = myStreamReader.ReadToEnd();
  250. myStreamReader.Close();
  251. myResponseStream.Close();
  252. return retString;
  253. }
  254. else
  255. {
  256. Console.WriteLine("未返回数据 {0}", httpStatusCode);
  257. throw new Exception("no data response");
  258. }
  259. }
  260. /// <summary>
  261. /// Http P0st请求
  262. /// </summary>
  263. /// <param name="url"></param>
  264. /// <param name="headerValue"></param>
  265. /// <returns></returns>
  266. public static string UploadLog(string file, string fileippath)
  267. {
  268. var uploadUrl = fileippath;
  269. HttpWebRequest request = WebRequest.Create(uploadUrl) as HttpWebRequest;
  270. request.AllowAutoRedirect = true;
  271. request.Method = "POST";
  272. //这段代码不是必须,请求头传输内容,看业务情况
  273. //request.Headers.Add("iauth", ia);//加鉴权
  274. string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
  275. request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
  276. byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");
  277. byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
  278. int pos = file.LastIndexOf("\\");
  279. string fileName = file.Substring(pos + 1);
  280. //请求头部信息
  281. 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));
  282. byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
  283. FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
  284. byte[] bArr = new byte[fs.Length];
  285. fs.Read(bArr, 0, bArr.Length);
  286. fs.Close();
  287. Stream postStream = request.GetRequestStream();
  288. postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);
  289. postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
  290. postStream.Write(bArr, 0, bArr.Length);
  291. postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
  292. postStream.Close();
  293. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  294. Stream instream = response.GetResponseStream();
  295. StreamReader sr = new StreamReader(instream, Encoding.UTF8);
  296. string content = sr.ReadToEnd();
  297. return content;
  298. }
  299. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  300. {
  301. DataTable dt = new DataTable();
  302. var queryParam = queryJson.ToJObject();
  303. List<DbParameter> parameter = new List<DbParameter>();
  304. string sql = @"SELECT DISTINCT
  305. a.ID,
  306. b.ID AS IID,
  307. a.BidCode,
  308. a.BidName,
  309. a.BidUser as F_RealName,
  310. --c.F_RealName,
  311. a.StarTime ,
  312. a.EndTime,
  313. a.BidStatus ,
  314. a.Remark ,
  315. a.MTIME,
  316. b.TBCount,
  317. a.ZTBCount,
  318. --b.BidUser
  319. CASE WHEN b.IsSub=1 THEN '' ELSE '' END AS Status,
  320. CASE WHEN b.IsSub=1 THEN '' ELSE '' END AS Statuss,
  321. d.VenName AS cVenName ,
  322. b.BidTime,
  323. CASE WHEN b.IsLock = 1 THEN '是' ELSE '否' END AS IsLocks,
  324. a.WorkPoint
  325. FROM ICSBidDoc a
  326. LEFT JOIN ICSBidInfo b ON b.BidCode=a.BidCode and a.WorkPoint=b.WorkPoint
  327. LEFT JOIN Sys_SRM_User c ON a.BidUser=c.F_Account and b.WorkPoint=c.F_Location
  328. LEFT JOIN ICSVendor d ON b.SupplierCode=d.VenCode and c.F_Location=d.WorkPoint
  329. WHERE 1=1 and a.Status<>'0' AND a.BidStatus<>'' AND a.BidStatus<>''";
  330. if (!string.IsNullOrWhiteSpace(queryJson))
  331. {
  332. if (!string.IsNullOrWhiteSpace(queryParam["BidCode"].ToString()))
  333. {
  334. sql += " and b.BidCode like '%" + queryParam["BidCode"].ToString() + "%' ";
  335. }
  336. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  337. {
  338. sql += " and a.StarTime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  339. }
  340. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  341. {
  342. sql += " and a.EndTime <= '" + queryParam["TimeTo"].ToString() + "' ";
  343. }
  344. if (!string.IsNullOrWhiteSpace(queryParam["BidStatus"].ToString()))
  345. {
  346. sql += "and b.IsSub='" + queryParam["BidStatus"].ToString() + "'";
  347. }
  348. }
  349. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  350. {
  351. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  352. }
  353. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  354. {
  355. sql += " and b.SupplierCode in(SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  356. }
  357. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  358. }
  359. public DataTable GetSubGridJson(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  360. {
  361. DataTable dt = new DataTable();
  362. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  363. List<DbParameter> parameter = new List<DbParameter>();
  364. string sql = @"SELECT distinct a.*,b.INVNAME AS InvName,b.INVSTD AS InvStd,b.INVUOM AS Unit,
  365. 'ERP'as Source FROM ICSBidDocBD a
  366. LEFT JOIN ICSInventory b ON a.InvCode = b.INVCODE
  367. WHERE a.BidCode = '{0}' and a.WorkPoint =({1})";
  368. sql = string.Format(sql, queryJson, WorkPoint);
  369. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  370. }
  371. public DataTable SelectColumnName(string BidCode)
  372. {
  373. string sql = @"declare @sql varchar(8000)
  374. select a.InvCode,c.VenName as SupplierCode,isnull(d.CastPrice,0) as CastPrice
  375. into #Temp
  376. from
  377. ICSBidDocBD a
  378. left join ICSBidDocGYS b on a.BidCode=b.BidCode and a.WorkPoint=b.WorkPoint
  379. left join ICSVendor c on b.SupplierCode=c.VenCode and b.WorkPoint=c.WorkPoint
  380. LEFT JOIN ICSBidInfoDetail d ON d.BDID = a.ID
  381. where a.BidCode='{0}'
  382. select distinct SupplierCode as ColCaption,SupplierCode as ColFiledName from #Temp
  383. drop table #Temp";
  384. sql = string.Format(sql, BidCode);
  385. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  386. return dt;
  387. }
  388. public DataTable GetListGridJsonTOZ(string BidCode, ref Pagination jqgridparam)
  389. {
  390. DataTable dt = new DataTable();
  391. //var queryParam = queryJson.ToJObject();
  392. List<DbParameter> parameter = new List<DbParameter>();
  393. string sql = @"
  394. declare @sql varchar(8000)
  395. SELECT distinct d.BDID,a.InvCode,b.INVNAME,e.VenName as SupplierCode,isnull(d.CastPrice,0) as CastPrice,g.VendorFileName,g.BidCode,d.isCast
  396. into #Temp
  397. FROM ICSBidDocBD a
  398. LEFT JOIN ICSBidDoc g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  399. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.InvCode and g.WorkPoint=b.WorkPoint
  400. LEFT JOIN ICSBidInfo c ON c.BidCode = a.BidCode and b.WorkPoint=c.WorkPoint
  401. LEFT JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = a.ID and c.WorkPoint=d.WorkPoint
  402. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and a.WorkPoint=e.WorkPoint
  403. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode
  404. where a.BidCode='{0}'
  405. select @sql=isnull(@sql+',','')+' ['+SupplierCode+']'
  406. from(select distinct SupplierCode from #Temp)as a
  407. set @sql='SELECT *,'''' as ZBVendor FROM #Temp PIVOT(MAX(CastPrice) FOR SupplierCode IN ('+@sql+'))a Where a.BDID<>'''' and a.iscast<>0'
  408. exec(@sql)
  409. ";
  410. sql = string.Format(sql, BidCode);
  411. DataTable dtr = SqlHelper.FindTablePageBySql_OtherTempByZTB(sql.ToString(), " " + "#Temp" + " ", " drop table #Temp", parameter.ToArray(), ref jqgridparam);
  412. string name = "";
  413. foreach (DataRow dr in dtr.Rows)
  414. {
  415. decimal qty = decimal.MaxValue;
  416. foreach (DataColumn col in dtr.Columns)
  417. {
  418. if (col.Caption == "InvCode" || col.Caption == "ZBVendor" || col.Caption == "INVNAME" || col.Caption == "BDID" || col.Caption == "VendorFileName" || col.Caption == "BidCode" || col.Caption == "isCast")
  419. continue;
  420. if (Convert.ToDecimal(string.IsNullOrWhiteSpace(dr[col.Caption].ToString()) ? 0 : dr[col.Caption]) < qty && Convert.ToDecimal(string.IsNullOrWhiteSpace(dr[col.Caption].ToString()) ? 0 : dr[col.Caption]) > 0)
  421. {
  422. qty = Convert.ToDecimal(dr[col.Caption]);
  423. name = col.Caption;
  424. }
  425. }
  426. dr["ZBVendor"] = name;
  427. }
  428. return dtr;
  429. //return SqlServerHelper.FindTablePageBySql_OtherTemp(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  430. }
  431. public DataTable GetListGridJsonTOZSUM(string BidCode, ref Pagination jqgridparam)
  432. {
  433. string msg=string.Empty;
  434. DataTable dt = new DataTable();
  435. //var queryParam = queryJson.ToJObject();
  436. List<DbParameter> parameter = new List<DbParameter>();
  437. string sql = @"
  438. declare @sql varchar(8000)
  439. SELECT distinct d.BDID,a.InvCode,b.INVNAME,e.VenName as SupplierCode,isnull(d.CastPrice,0) as CastPrice,a.Quantity,d.isCast
  440. into #Temp
  441. FROM ICSBidDocBD a
  442. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  443. LEFT JOIN ICSBidInfo c ON c.BidCode = a.BidCode and b.WorkPoint=c.WorkPoint
  444. LEFT JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = a.ID and c.WorkPoint=d.WorkPoint
  445. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and a.WorkPoint=e.WorkPoint
  446. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode
  447. where a.BidCode='{0}'
  448. select @sql=isnull(@sql+',','')+' ['+SupplierCode+']'
  449. from(select distinct SupplierCode from #Temp)as a
  450. set @sql='SELECT STUFF((select'','' + SupplierCode from (SELECT DISTINCT SupplierCode FROM #Temp where isCast=0 ) DD for xml path('''')),1,1,'''') as IsTou,* FROM #Temp PIVOT(MAX(CastPrice) FOR SupplierCode IN ('+@sql+'))a Where a.BDID<>'''' and a.iscast<>0 '
  451. exec(@sql)
  452. ";
  453. sql = string.Format(sql, BidCode);
  454. DataTable dtr = SqlHelper.FindTablePageBySql_OtherTempByZTB(sql.ToString(), " " + "#Temp" + " ", " drop table #Temp", parameter.ToArray(), ref jqgridparam);
  455. Dictionary<string, decimal> dic = new Dictionary<string, decimal>();
  456. foreach (DataRow dr in dtr.Rows)
  457. {
  458. foreach (DataColumn col in dtr.Columns)
  459. {
  460. if (col.Caption == "InvCode" || col.Caption == "ZBVendor" || col.Caption == "INVNAME" || col.Caption == "BDID" || col.Caption == "Quantity" || col.Caption == "IsTou" || col.Caption == "isCast")
  461. continue;
  462. if(dic.Keys.Contains(col.Caption))
  463. dic[col.Caption]+=Convert.ToDecimal(Convert.ToDecimal(string.IsNullOrWhiteSpace(dr[col.Caption].ToString()) ? 0 : dr[col.Caption]) * Convert.ToDecimal(dr["Quantity"]));
  464. else
  465. {
  466. dic.Add(col.Caption, Convert.ToDecimal(Convert.ToDecimal(string.IsNullOrWhiteSpace(dr[col.Caption].ToString()) ? 0 : dr[col.Caption]) * Convert.ToDecimal(dr["Quantity"])));
  467. }
  468. }
  469. }
  470. if (!string.IsNullOrWhiteSpace(msg))
  471. {
  472. throw new Exception(msg);
  473. }
  474. DataRow drNew = dtr.NewRow();
  475. string name = "";
  476. decimal qty = decimal.MaxValue;
  477. foreach (var item in dic)
  478. {
  479. drNew[item.Key] = item.Value;
  480. if (Convert.ToDecimal(item.Value) < qty && Convert.ToDecimal(item.Value) > 0)
  481. {
  482. qty = Convert.ToDecimal(item.Value);
  483. name = item.Key;
  484. }
  485. }
  486. DataColumn dataColumn = new DataColumn("ZBVendor", typeof(string));
  487. dataColumn.DefaultValue = name; //为列设置默认值
  488. dtr.Columns.Add(dataColumn);
  489. dtr.Rows.Add(drNew);
  490. return dtr;
  491. //return SqlServerHelper.FindTablePageBySql_OtherTemp(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  492. }
  493. //public DataTable GetICSBidDoc(string BidCode, string WorkPoint)
  494. //{
  495. // string sql = @"SELECT * FROM ICSBidDoc WHERE BidCode = '{0}' and WorkPoint='{1}'";
  496. // sql = string.Format(sql, BidCode, WorkPoint);
  497. // return Repository().FindTableBySql(sql.ToString());
  498. //}
  499. public DataTable SearchBidDocBDInfoByBidCodeSeller(string BidCode, string WorkPoint, ref Pagination jqgridparam)
  500. {
  501. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  502. string sql = @"SELECT distinct a.ID,a.BidCode,a.RowNo,a.Quantity,a.DeliveryTime,a.InvCode,b.INVNAME AS InvName,b.INVSTD AS InvStd,b.InvUnit AS Unit,'ERP'as Source ,
  503. case When IsCast=1 Then '是' When IsCast is null Then '是' Else '否' END as IsCast,isnull(d.CastPrice,0) as CastPrice ,c.ID AS IID,isnull(d.ID,'') AS DID,n.RowNum AS Ranking,a.ENTTRIBUTE1,d.ENTTRIBUTE1 AS Remark,a.ItemType,a.Remark as Remarks,isnull(d.CastPrice,0) as CastPriceHidd,
  504. c.TBCount,j.FileName
  505. FROM ICSBidDocBD a
  506. LEFT JOIN ICSBidDoc j on a.BidCode=j.BidCode
  507. LEFT JOIN ICSINVENTORY b ON a.InvCode=b.InvCode
  508. LEFT JOIN ICSBidInfo c ON c.BidCode = a.BidCode
  509. LEFT JOIN (
  510. SELECT X.* FROM ICSBidInfoDetail X
  511. inner JOIN (
  512. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  513. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  514. GROUP BY a.BDID,a.MUSERName
  515. ) Y
  516. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = a.ID and c.WorkPoint=d.WorkPoint
  517. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode
  518. LEFT JOIN Sys_SRM_User f ON f.F_VenCode = e.VenCode
  519. LEFT JOIN
  520. (SELECT ROW_NUMBER () OVER (partition BY m.ID ORDER BY m.CastPrice*m.Quantity) AS RowNum,m.CastPrice,m.ID FROM
  521. (
  522. SELECT DISTINCT z.CastPrice,x.ID,x.Quantity
  523. FROM ICSBidDocBD x
  524. LEFT JOIN ICSBidInfo y ON x.BidCode = y.BidCode
  525. LEFT JOIN ICSBidInfoDetail z ON x.ID = z.BDID AND y.ID = z.InfoID
  526. WHERE z.CastPrice IS NOT NULL AND z.CastPrice <> 0
  527. AND z.IsCast = 1 AND y.IsSub = 1
  528. ) m
  529. ) n ON n.CastPrice = d.CastPrice AND n.ID = a.ID
  530. WHERE a.WorkPoint = '{0}' AND c.BidCode='{2}' AND f.F_VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "') and j.WorkPoint='{0}'";
  531. sql = string.Format(sql, WorkPoint, UserCode, BidCode);
  532. return Repository().FindTablePageBySql(sql.ToString(), ref jqgridparam);
  533. }
  534. public DataTable GetGridJsonBid(string queryJson, ref Pagination jqgridparam)
  535. {
  536. DataTable dt = new DataTable();
  537. var queryParam = queryJson.ToJObject();
  538. List<DbParameter> parameter = new List<DbParameter>();
  539. string sql = @"SELECT DISTINCT
  540. a.ID,
  541. a.BidCode,
  542. a.BidName,
  543. a.BidUser AS ZUser,
  544. --b.F_RealName as ZUser,
  545. a.StarTime,
  546. a.EndTime,
  547. a.BidStatus,
  548. a.BidStatus as BidStatuss,
  549. a.Remark ,
  550. --Tenders AS ,
  551. c.F_RealName AS KUser,
  552. a.OpenTime,
  553. a.BidUser AS JUser,
  554. a.BidTime,
  555. a.WorkPoint
  556. FROM ICSBidDoc a
  557. LEFT JOIN Sys_SRM_User b ON a.BidUser=b.F_Account
  558. LEFT JOIN Sys_SRM_User c ON a.Tenders=c.F_Account
  559. LEFT JOIN ICSVendor d ON a.Bidder = d.VenCode
  560. WHERE 1=1 and a.Status<>'0' ";
  561. if (!string.IsNullOrWhiteSpace(queryJson))
  562. {
  563. if (!string.IsNullOrWhiteSpace(queryParam["BidCode"].ToString()))
  564. {
  565. sql += " and a.BidCode like '%" + queryParam["BidCode"].ToString() + "%' ";
  566. }
  567. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  568. {
  569. sql += " and a.StarTime >= '" + queryParam["TimeFrom"].ToString() + "' ";
  570. }
  571. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  572. {
  573. sql += " and a.EndTime <= '" + queryParam["TimeTo"].ToString() + "' ";
  574. }
  575. if (!string.IsNullOrWhiteSpace(queryParam["BidStatus"].ToString()))
  576. {
  577. //if (queryParam["BidStatus"].ToString() == "已结束")
  578. //{
  579. sql += " and a.BidStatus ='" + queryParam["BidStatus"].ToString()+"'";
  580. //}
  581. //else if (queryParam["BidStatus"].ToString() == "已保存" || queryParam["BidStatus"].ToString() == "招标中" || queryParam["BidStatus"].ToString() == "已关闭")
  582. //{
  583. // sql += " and (a.BidStatus ='" + queryParam["BidStatus"].ToString() + "' and a.BidTime IS NOT NULL) ";
  584. //}
  585. //else if (queryParam["BidStatus"].ToString() == "已决标")
  586. //{
  587. // sql += " and (a.BidStatus ='" + queryParam["BidStatus"].ToString() + "' and a.BidTime IS NOT NULL) ";
  588. //}
  589. }
  590. }
  591. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  592. {
  593. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  594. }
  595. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  596. {
  597. sql += " and d.UserName in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  598. }
  599. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  600. }
  601. public DataTable GetSubGridJsonBid(string queryJson, ref Pagination jqgridparam, string WorkPoint)
  602. {
  603. DataTable dt = new DataTable();
  604. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  605. List<DbParameter> parameter = new List<DbParameter>();
  606. 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.VenCode,d.VenName cVenName
  607. FROM ICSBidDocBD a
  608. LEFT JOIN ICSInventory b ON a.InvCode = b.INVCODE and a.WorkPoint=b.WorkPoint
  609. left join ICSBidDocGYS c on a.BidCode=c.BidCode and b.WorkPoint=c.WorkPoint
  610. LEFT JOIN ICSVendor d on c.SupplierCode=d.VenCode and c.WorkPoint=d.WorkPoint
  611. WHERE a.BidCode = '{0}' and a.WorkPoint = ({1})";
  612. sql = string.Format(sql, queryJson, WorkPoint);
  613. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  614. }
  615. public DataTable GetECNSubmitPerson(string BidCode)
  616. {
  617. string sql = @"SELECT distinct b.VenName as cVenName, b.VenName as SupplierCode
  618. from ICSBidInfo a
  619. LEFT JOIN ICSVendor b ON a.SupplierCode = b.VenCode
  620. where BidCode='{0}'";
  621. sql = string.Format(sql, BidCode);
  622. DataTable table = SqlHelper.GetDataTableBySql(sql);
  623. return table;
  624. }
  625. // public DataTable GetICSBidDocInfoSum(string BidCode, string WorkPoint)
  626. // {
  627. // string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  628. // DataTable dt = new DataTable();
  629. // //var queryParam = queryJson.ToJObject();
  630. // List<DbParameter> parameter = new List<DbParameter>();
  631. // string sql = @"
  632. //SELECT c.SupplierCode as SupplierCode,a.BidCode,
  633. //sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice,
  634. //ROW_NUMBER () OVER (partition BY a.BidCode ORDER BY sum( isnull(d.CastPrice,0) *g.Quantity )) AS RowNum
  635. //into #Temps
  636. //FROM ICSBidDoc a
  637. //left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  638. //left JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  639. //left JOIN ICSBidInfo c ON c.BidCode = g.BidCode and b.WorkPoint=c.WorkPoint
  640. //left JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  641. //left JOIN ICSVendor e ON e.cVenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  642. //left JOIN Sys_SRM_User f ON f.F_Account = e.cVenCode and e.WorkPoint=f.F_Location
  643. //where d.IsCast=1
  644. //group by c.SupplierCode,a.BidCode
  645. //
  646. //
  647. //SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, a.Remark,g.InvCode
  648. //,c.SupplierCode as SupplierCode,
  649. //isnull(d.CastPrice,0) as CastPrice,g.Quantity,h.RowNum,
  650. //case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  651. //case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  652. //sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  653. //,(select count(*) from (SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark,g.InvCode
  654. //,c.SupplierCode as SupplierCode,
  655. //isnull(d.CastPrice,0) as CastPrice,g.Quantity,
  656. //case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  657. //case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  658. //sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  659. //FROM ICSBidDoc a
  660. //left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  661. //LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  662. //LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and b.WorkPoint=c.WorkPoint
  663. //LEFT JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  664. //LEFT JOIN ICSVendor e ON e.cVenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  665. //LEFT JOIN Sys_SRM_User f ON f.F_Account = e.cVenCode and e.WorkPoint=f.F_Location
  666. //where a.BidCode='{0}'and c.SupplierCode ='{1}'
  667. //group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark
  668. //,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode
  669. //)aaa)RowCounts
  670. //FROM ICSBidDoc a
  671. //left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  672. //LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  673. //LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and b.WorkPoint=c.WorkPoint
  674. //LEFT JOIN ICSBidInfoDetail d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  675. //LEFT JOIN ICSVendor e ON e.cVenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  676. //LEFT JOIN Sys_SRM_User f ON f.F_Account = e.cVenCode and e.WorkPoint=f.F_Location
  677. //LEFT JOIN #Temps h on e.cVenCode=h.SupplierCode
  678. //where a.BidCode='{0}'and c.SupplierCode ='{1}'
  679. //group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, a.Remark
  680. //,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode,h.RowNum
  681. //
  682. //drop table #Temps
  683. //";
  684. // sql = string.Format(sql, BidCode,Vendor);
  685. // DataTable dtr = SqlHelper.GetDataTableBySql(sql);
  686. // decimal qty = 0;
  687. // int Count = 0;
  688. // foreach (DataRow dr in dtr.Rows)
  689. // {
  690. // foreach (DataColumn col in dtr.Columns)
  691. // {
  692. // if (col.Caption == "YBBCounrt")
  693. // {
  694. // Count += Convert.ToInt32(dr[col.Caption]);
  695. // }
  696. // else if (col.Caption == "SumPrice")
  697. // {
  698. // qty += Convert.ToDecimal(dr[col.Caption]);
  699. // }
  700. // }
  701. // }
  702. // DataRow drNew = dtr.NewRow();
  703. // DataColumn dataColumn = new DataColumn("Zong", typeof(decimal));
  704. // dataColumn.DefaultValue = qty; //为列设置默认值
  705. // dtr.Columns.Add(dataColumn);
  706. // DataColumn dataColumns = new DataColumn("YBBCount", typeof(decimal));
  707. // dataColumns.DefaultValue = Count; //为列设置默认值
  708. // dtr.Columns.Add(dataColumns);
  709. // dtr.Rows.Add(drNew);
  710. // return dtr;
  711. //// string sql = @"SELECT ID, BidCode, BidCurrenCY, BidName, BidUser, StarTime, EndTime, BidStatus,
  712. //// BidType, Remark, Tenders, OpenTime, Bidder, BidTime, LogTime,
  713. //// LogUser, WorkPoint, MUSER, MUSERName, MTIME, ENTTRIBUTE1 from dbo.ICSBidDoc
  714. //// WHERE 1=1
  715. //// and BidCode='" + BidCode + "' and WorkPoint='" + WorkPoint + "'";
  716. //// return Repository().FindTableBySql(sql.ToString());
  717. // }
  718. /// <summary>
  719. /// 两段sql不一致不可删除 某一行 modifly 2023-02-09 lacy.xu
  720. /// </summary>
  721. /// <param name="BidCode"></param>
  722. /// <param name="WorkPoint"></param>
  723. /// <param name="Status"></param>
  724. /// <returns></returns>
  725. public DataTable GetICSBidDocInfoSum(string BidCode, string WorkPoint, string Status)
  726. {
  727. string VendorName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  728. DataTable dt = new DataTable();
  729. string sql = string.Empty;
  730. //var queryParam = queryJson.ToJObject();
  731. List<DbParameter> parameter = new List<DbParameter>();
  732. if (Status == "已投标") {
  733. sql = @"
  734. SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus,
  735. CASE WHEN c.IsSub=1 THEN '' ELSE '' END AS Statuss,a.Remark,g.InvCode
  736. ,c.SupplierCode as SupplierCode,
  737. isnull(d.CastPrice,0) as CastPrice,g.Quantity,
  738. case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  739. case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  740. sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  741. ,(select count(*) from (SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark,g.InvCode
  742. ,c.SupplierCode as SupplierCode,
  743. isnull(d.CastPrice,0) as CastPrice,g.Quantity,
  744. case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  745. case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  746. sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  747. FROM ICSBidDoc a
  748. left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  749. LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  750. LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and a.WorkPoint=c.WorkPoint
  751. LEFT JOIN (
  752. SELECT X.* FROM ICSBidInfoDetail X
  753. inner JOIN (
  754. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  755. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  756. GROUP BY a.BDID,a.MUSERName
  757. ) Y
  758. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  759. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  760. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode and e.WorkPoint=f.F_Location
  761. where a.BidCode='{0}'and c.SupplierCode IN(SELECT VenCode FROM ICSVendor where VenName ='{1}' AND WorkPoint=a.WorkPoint)
  762. group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark
  763. ,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode
  764. )aaa)RowCounts
  765. into #TempOO
  766. FROM ICSBidDoc a
  767. left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  768. LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  769. LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and a.WorkPoint=c.WorkPoint
  770. LEFT JOIN (
  771. SELECT X.* FROM ICSBidInfoDetail X
  772. inner JOIN (
  773. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  774. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  775. GROUP BY a.BDID,a.MUSERName
  776. ) Y
  777. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  778. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  779. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode and e.WorkPoint=f.F_Location
  780. where a.BidCode='{0}'
  781. group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime,c.IsSub, a.BidStatus, a.Remark
  782. ,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode
  783. selecT distinct oo.SupplierCode ,(select sum(Quantity* AA.CastPrice) FROM #TempOO AA WHERE AA.SupplierCode=OO.SupplierCode) Amount
  784. into #TempZZ
  785. from #TempOO OO
  786. select zz.*,
  787. row_number() over (order by zz.amount ,gg.SupplierCode) rn
  788. into #qusiba
  789. from(
  790. select distinct oo.SupplierCode
  791. from #TempOO OO
  792. where not exists(select 1 from #TempOO xx where oo.SupplierCode=xx.SupplierCode and isnull(xx.YBBCounrt,0)!='1')
  793. ) gg
  794. left join #TempZZ zz on zz.SupplierCode=gg.SupplierCode
  795. select distinct * from #TempOO yy left join #qusiba qq on yy.SupplierCode=qq.SupplierCode WHERE yy.SupplierCode IN (SELECT VenCode FROM ICSVendor where VenName ='{1}')
  796. drop table #TempOO drop table #TempZZ drop table #qusiba
  797. ";
  798. }
  799. else
  800. {
  801. sql = @"
  802. SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus,
  803. CASE WHEN c.IsSub=1 THEN '' ELSE '' END AS Statuss,a.Remark,g.InvCode
  804. ,c.SupplierCode as SupplierCode,
  805. isnull(d.CastPrice,0) as CastPrice,g.Quantity,
  806. case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  807. case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  808. sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  809. ,(select count(*) from (SELECT distinct a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark,g.InvCode
  810. ,c.SupplierCode as SupplierCode,
  811. isnull(d.CastPrice,0) as CastPrice,g.Quantity,
  812. case when d.IsCast=1 then sum(cast(d.IsCast as int )) else 0 end as YBBCounrt,
  813. case when d.IsCast=0 then count(g.invCode)- sum(cast(d.IsCast as int)) else 0 end as WYBCounrt,
  814. sum( isnull(d.CastPrice,0) *g.Quantity )as SumPrice
  815. FROM ICSBidDoc a
  816. left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  817. LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  818. LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and a.WorkPoint=c.WorkPoint
  819. LEFT JOIN (
  820. SELECT X.* FROM ICSBidInfoDetail X
  821. inner JOIN (
  822. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  823. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  824. GROUP BY a.BDID,a.MUSERName
  825. ) Y
  826. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  827. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  828. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode and e.WorkPoint=f.F_Location
  829. where a.BidCode='{0}'and c.SupplierCode IN (SELECT VenCode FROM ICSVendor where VenName ='{1}'AND WorkPoint=a.WorkPoint)
  830. group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus, g.Remark
  831. ,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode
  832. )aaa)RowCounts
  833. into #TempOO
  834. FROM ICSBidDoc a
  835. left join ICSBidDocBD g on a.BidCode=g.BidCode and a.WorkPoint=g.WorkPoint
  836. LEFT JOIN ICSINVENTORY b ON g.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
  837. LEFT JOIN ICSBidInfo c ON c.BidCode = g.BidCode and a.WorkPoint=c.WorkPoint
  838. LEFT JOIN (
  839. SELECT X.* FROM ICSBidInfoDetail X
  840. inner JOIN (
  841. SELECT MAX(a.MTIME) AS Mtime ,a.BDID,a.MUSERName FROM ICSBidInfoDetail a
  842. --WHERE a.BDID='6e17547d-0e77-4bed-b4bf-d1fe9ed75470'
  843. GROUP BY a.BDID,a.MUSERName
  844. ) Y
  845. ON X.Mtime=Y.Mtime AND X.BDID=Y.BDID AND X.MUSERName=Y.MUSERName) d ON d.InfoID = c.ID AND d.BDID = g.ID and c.WorkPoint=d.WorkPoint
  846. LEFT JOIN ICSVendor e ON e.VenCode = c.SupplierCode and d.WorkPoint=e.WorkPoint
  847. LEFT JOIN Sys_SRM_User f ON f.F_Account = e.VenCode and e.WorkPoint=f.F_Location
  848. where a.BidCode='{0}'
  849. group by a.BidCode,a.BidName,a.BidUser, a.StarTime, a.EndTime, a.BidStatus,c.IsSub, a.Remark
  850. ,c.SupplierCode,d.CastPrice,g.Quantity,d.IsCast,g.InvCode
  851. selecT distinct oo.SupplierCode ,(select sum(Quantity* AA.CastPrice) FROM #TempOO AA WHERE AA.SupplierCode=OO.SupplierCode) Amount
  852. into #TempZZ
  853. from #TempOO OO
  854. select distinct * from #TempOO yy left join #TempZZ qq on yy.SupplierCode=qq.SupplierCode WHERE yy.SupplierCode IN (SELECT VenCode FROM ICSVendor where VenName ='{1}')
  855. drop table #TempOO drop table #TempZZ
  856. ";
  857. }
  858. sql = string.Format(sql, BidCode, VendorName);
  859. DataTable dtr = SqlHelper.GetDataTableBySql(sql);
  860. decimal qty = 0;
  861. int Count = 0;
  862. foreach (DataRow dr in dtr.Rows)
  863. {
  864. foreach (DataColumn col in dtr.Columns)
  865. {
  866. if (col.Caption == "YBBCounrt")
  867. {
  868. Count += Convert.ToInt32(dr[col.Caption]);
  869. }
  870. //else if (col.Caption == "SumPrice")
  871. //{
  872. // qty += Convert.ToDecimal(dr[col.Caption]);
  873. //}
  874. }
  875. }
  876. DataRow drNew = dtr.NewRow();
  877. //DataColumn dataColumn = new DataColumn("Zong", typeof(decimal));
  878. //dataColumn.DefaultValue = qty; //为列设置默认值
  879. //dtr.Columns.Add(dataColumn);
  880. DataColumn dataColumns = new DataColumn("YBBCount", typeof(decimal));
  881. dataColumns.DefaultValue = Count; //为列设置默认值
  882. dtr.Columns.Add(dataColumns);
  883. dtr.Rows.Add(drNew);
  884. return dtr;
  885. // string sql = @"SELECT ID, BidCode, BidCurrenCY, BidName, BidUser, StarTime, EndTime, BidStatus,
  886. // BidType, Remark, Tenders, OpenTime, Bidder, BidTime, LogTime,
  887. // LogUser, WorkPoint, MUSER, MUSERName, MTIME, ENTTRIBUTE1 from dbo.ICSBidDoc
  888. // WHERE 1=1
  889. // and BidCode='" + BidCode + "' and WorkPoint='" + WorkPoint + "'";
  890. // return Repository().FindTableBySql(sql.ToString());
  891. }
  892. public void SaveForm(ICSBidInfoDetail details)
  893. {
  894. string sql = string.Empty;
  895. bool IsDid=false;
  896. try
  897. {
  898. List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  899. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  900. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  901. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  902. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  903. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  904. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  905. conn.Open();
  906. SqlTransaction sqlTran = conn.BeginTransaction();
  907. SqlCommand cmd = new SqlCommand();
  908. cmd.Transaction = sqlTran;
  909. cmd.Connection = conn;
  910. try
  911. {
  912. for (int i = 0; i < list_BD.Count; i++)
  913. {
  914. if (!string.IsNullOrEmpty(list_BD[i].IsDid.ToString()))
  915. IsDid = details.IsDid;
  916. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidInfoDetail WHERE ID=@ID)
  917. BEGIN
  918. INSERT INTO dbo.ICSBidInfoDetail
  919. ( ID,InfoID,BDID,IsCast,CastPrice,IsDid,ENTTRIBUTE1,WorkPoint,MUSER,
  920. MUSERName,MTIME)
  921. VALUES ( NEWID(),@InfoID,@BDID,@IsCast,@CastPrice,@IsDid ,@ENTTRIBUTE1 ,@WorkPoint, @MUSER,
  922. @MUSERName,@MTIME)
  923. END
  924. ELSE
  925. BEGIN
  926. UPDATE dbo.ICSBidInfoDetail SET
  927. InfoID=@InfoID , BDID=@BDID ,IsCast=@IsCast, CastPrice=@CastPrice , IsDid=@IsDid , ENTTRIBUTE1=@ENTTRIBUTE1
  928. WHERE ID=@ID
  929. END";
  930. SqlParameter[] sp_Detail = {
  931. new SqlParameter("@ID",list_BD[i].ID),
  932. new SqlParameter("@InfoID",list_BD[i].InfoID),
  933. new SqlParameter("@BDID",list_BD[i].BDID),
  934. new SqlParameter("@IsCast",list_BD[i].IsCast),
  935. new SqlParameter("@CastPrice",list_BD[i].CastPrice),
  936. new SqlParameter("@IsDid",IsDid),
  937. new SqlParameter("@ENTTRIBUTE1",list_BD[i].Remarks),
  938. new SqlParameter("@WorkPoint",list_BD[i].WorkPoint),
  939. new SqlParameter("@MUSER",Muser),
  940. new SqlParameter("@MUSERName",MuserName),
  941. //new SqlParameter("@Remark",list_BD[i].Remarks),
  942. new SqlParameter("@MTIME",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  943. };
  944. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  945. }
  946. #region 标案状态变更记录
  947. sql = @"
  948. INSERT INTO dbo.ICSBidLog
  949. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  950. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  951. SqlParameter[] sp_BidLog = {
  952. //new SqlParameter("@ID","NEWID()"),
  953. new SqlParameter("@BidCode", list_BD[0].BidCode),
  954. new SqlParameter("@LogType", "企业"),
  955. new SqlParameter("@LogDes", "招标书-变更"),
  956. new SqlParameter("@LogUser", Muser),
  957. new SqlParameter("@WorkPoint", details.WorkPoint),
  958. new SqlParameter("@MUSER", Muser),
  959. new SqlParameter("@MUSERName", MuserName)
  960. };
  961. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  962. #endregion
  963. string sqls = @"SELECT
  964. a.BDID,
  965. a.IsCast,
  966. a.CastPrice
  967. FROM ICSBidInfoDetail a with (nolock)
  968. LEFT JOIN ICSBidInfo b with (nolock) ON a.InfoID = b.ID AND a.WorkPoint=b.WorkPoint
  969. WHERE b.BidCode = '{0}' AND b.ID = '{1}' AND a.WorkPoint ='{2}'";
  970. sqls = string.Format(sqls, list_BD[0].BidCode, list_BD[0].InfoID, list_BD[0].WorkPoint);
  971. DataTable dt = SqlHelper.GetDataTableBySql(sqls);
  972. List<ICSBidInfoLog> list = new List<ICSBidInfoLog>();
  973. //List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  974. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  975. //string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  976. //string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  977. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  978. if (dt != null && dt.Rows.Count > 0)
  979. {
  980. foreach (DataRow item in dt.Rows)
  981. {
  982. ICSBidInfoLog model = new ICSBidInfoLog();
  983. model.BidCode = list_BD[0].BidCode;
  984. model.InfoID = list_BD[0].InfoID;
  985. model.BDID = item["BDID"].ToString();
  986. if (!string.IsNullOrEmpty(item["IsCast"].ToString()))
  987. model.IsCast = bool.Parse(item["IsCast"].ToString());
  988. if (!string.IsNullOrEmpty(item["CastPrice"].ToString()))
  989. model.CastPrice = decimal.Parse(item["CastPrice"].ToString());
  990. list.Add(model);
  991. }
  992. }
  993. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidInfo WHERE ID=@ID and BidCode=@BidCode)
  994. BEGIN
  995. UPDATE dbo.ICSBidInfo SET
  996. IsSub=@IsSub , BidUser=@BidUser ,BidTime=@BidTime
  997. WHERE ID=@ID and BidCode=@BidCode
  998. END ";
  999. SqlParameter[] sp_Detailss = {
  1000. new SqlParameter("@ID",list_BD[0].InfoID),
  1001. new SqlParameter("@BidCode",list_BD[0].BidCode),
  1002. new SqlParameter("@IsSub",true),
  1003. new SqlParameter("@BidUser",Muser),
  1004. new SqlParameter("@BidTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1005. };
  1006. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detailss, cmd);
  1007. for (int i = 0; i < list.Count; i++)
  1008. {
  1009. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidInfoLog WHERE ID=@ID)
  1010. BEGIN
  1011. INSERT INTO dbo.ICSBidInfoLog
  1012. ( ID,BidCode,InfoID,BDID,IsCast,CastPrice,WorkPoint,MUSER,
  1013. MUSERName,MTIME)
  1014. VALUES ( NEWID(),@BidCode,@InfoID,@BDID,@IsCast,@CastPrice ,@WorkPoint, @MUSER,
  1015. @MUSERName,@MTIME)
  1016. END
  1017. ELSE
  1018. BEGIN
  1019. UPDATE dbo.ICSBidInfoLog SET
  1020. BidCode=@BidCode,InfoID=@InfoID ,BDID=@BDID ,IsCast=@IsCast, CastPrice=@CastPrice
  1021. WHERE ID=@ID
  1022. END";
  1023. SqlParameter[] sp_Details = {
  1024. new SqlParameter("@ID",list[i].ID),
  1025. new SqlParameter("@BidCode",list[i].BidCode),
  1026. new SqlParameter("@InfoID",list[i].InfoID),
  1027. new SqlParameter("@BDID",list[i].BDID),
  1028. new SqlParameter("@IsCast",list[i].IsCast),
  1029. new SqlParameter("@CastPrice",list[i].CastPrice),
  1030. new SqlParameter("@WorkPoint",list_BD[0].WorkPoint),
  1031. new SqlParameter("@MUSER",Muser),
  1032. new SqlParameter("@MUSERName",MuserName),
  1033. new SqlParameter("@MTIME",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1034. };
  1035. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Details, cmd);
  1036. }
  1037. cmd.Transaction.Commit();
  1038. }
  1039. catch (Exception ex)
  1040. {
  1041. cmd.Transaction.Rollback();
  1042. throw new Exception(ex.Message);
  1043. }
  1044. finally
  1045. {
  1046. if (conn.State == ConnectionState.Open)
  1047. {
  1048. conn.Close();
  1049. }
  1050. conn.Dispose();
  1051. }
  1052. }
  1053. catch (Exception ex)
  1054. {
  1055. throw new Exception(ex.Message);
  1056. }
  1057. }
  1058. public DataTable SearchBidDocBDInfoByBidCode(string BidCode, ref Pagination jqgridparam)
  1059. {
  1060. DataTable dt = new DataTable();
  1061. List<DbParameter> parameter = new List<DbParameter>();
  1062. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1063. string sql = @"SELECT a.*,b.INVNAME AS InvName,b.INVSTD AS InvStd,b.INVUOM AS Unit,'ERP' as Source FROM ICSBidDocBD a
  1064. LEFT JOIN ICSInventory b ON a.InvCode = b.INVCODE and a.WorkPoint=b.WorkPoint
  1065. WHERE a.BidCode = '{0}' and a.WorkPoint in ({1})";
  1066. sql = string.Format(sql, BidCode,WorkPoint);
  1067. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1068. }
  1069. public DataTable SearchBidDocGYSInfoByBidCode(string BidCode, ref Pagination jqgridparam)
  1070. {
  1071. DataTable dt = new DataTable();
  1072. List<DbParameter> parameter = new List<DbParameter>();
  1073. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1074. string sql = @"SELECT a.*,b.VenName cVenName,'ERP' as Source FROM ICSBidDocGYS a
  1075. LEFT JOIN ICSVendor b on a.SupplierCode=b.VenCode
  1076. WHERE a.BidCode = '{0}' and a.WorkPoint in ({1})";
  1077. sql = string.Format(sql, BidCode, WorkPoint);
  1078. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1079. }
  1080. public void SaveFormTiJiao(string keyValue, string BidCode, string TBCount,string WorkPoint)
  1081. {
  1082. string sql = string.Empty;
  1083. try
  1084. {
  1085. List<ICSBidInfoLog> list = new List<ICSBidInfoLog>();
  1086. //List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1087. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  1088. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1089. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1090. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1091. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1092. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1093. conn.Open();
  1094. SqlTransaction sqlTran = conn.BeginTransaction();
  1095. SqlCommand cmd = new SqlCommand();
  1096. cmd.Transaction = sqlTran;
  1097. cmd.Connection = conn;
  1098. try
  1099. {
  1100. string sqls = @"SELECT
  1101. a.BDID,
  1102. a.IsCast,
  1103. a.CastPrice
  1104. FROM ICSBidInfoDetail a
  1105. LEFT JOIN ICSBidInfo b ON a.InfoID = b.ID AND a.WorkPoint=b.WorkPoint
  1106. WHERE b.BidCode = '{0}' AND b.ID = '{1}' AND a.WorkPoint ='{2}'";
  1107. sqls = string.Format(sqls, BidCode, keyValue, WorkPoint);
  1108. DataTable dt = SqlHelper.GetDataTableBySql(sqls);
  1109. if (dt != null && dt.Rows.Count > 0)
  1110. {
  1111. foreach (DataRow item in dt.Rows)
  1112. {
  1113. ICSBidInfoLog model = new ICSBidInfoLog();
  1114. model.BidCode = BidCode;
  1115. model.InfoID = keyValue;
  1116. model.BDID = item["BDID"].ToString();
  1117. if (!string.IsNullOrEmpty(item["IsCast"].ToString()))
  1118. model.IsCast = bool.Parse(item["IsCast"].ToString());
  1119. if (!string.IsNullOrEmpty(item["CastPrice"].ToString()))
  1120. model.CastPrice = decimal.Parse(item["CastPrice"].ToString());
  1121. list.Add(model);
  1122. }
  1123. }
  1124. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidInfo WHERE ID=@ID and BidCode=@BidCode)
  1125. BEGIN
  1126. UPDATE dbo.ICSBidInfo SET
  1127. IsSub=@IsSub , BidUser=@BidUser ,BidTime=@BidTime
  1128. WHERE ID=@ID and BidCode=@BidCode
  1129. END ";
  1130. SqlParameter[] sp_Detail = {
  1131. new SqlParameter("@ID",keyValue),
  1132. new SqlParameter("@BidCode",BidCode),
  1133. new SqlParameter("@IsSub",true),
  1134. new SqlParameter("@BidUser",Muser),
  1135. new SqlParameter("@BidTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1136. };
  1137. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1138. for (int i = 0; i < list.Count; i++)
  1139. {
  1140. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidInfoLog WHERE ID=@ID)
  1141. BEGIN
  1142. INSERT INTO dbo.ICSBidInfoLog
  1143. ( ID,BidCode,InfoID,BDID,IsCast,CastPrice,WorkPoint,MUSER,
  1144. MUSERName,MTIME)
  1145. VALUES ( NEWID(),@BidCode,@InfoID,@BDID,@IsCast,@CastPrice ,@WorkPoint, @MUSER,
  1146. @MUSERName,@MTIME)
  1147. END
  1148. ELSE
  1149. BEGIN
  1150. UPDATE dbo.ICSBidInfoLog SET
  1151. BidCode=@BidCode,InfoID=@InfoID ,BDID=@BDID ,IsCast=@IsCast, CastPrice=@CastPrice
  1152. WHERE ID=@ID
  1153. END";
  1154. SqlParameter[] sp_Details = {
  1155. new SqlParameter("@ID",list[i].ID),
  1156. new SqlParameter("@BidCode",list[i].BidCode),
  1157. new SqlParameter("@InfoID",list[i].InfoID),
  1158. new SqlParameter("@BDID",list[i].BDID),
  1159. new SqlParameter("@IsCast",list[i].IsCast),
  1160. new SqlParameter("@CastPrice",list[i].CastPrice),
  1161. new SqlParameter("@WorkPoint",WorkPoint),
  1162. new SqlParameter("@MUSER",Muser),
  1163. new SqlParameter("@MUSERName",MuserName),
  1164. new SqlParameter("@MTIME",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1165. };
  1166. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Details, cmd);
  1167. }
  1168. //if (TBCount != "0")
  1169. //{
  1170. // //变更投标次数
  1171. // sql = @"Update ICSBidInfo set TBCount=TBCount-1 WHERE ID=@ID and BidCode=@BidCode";
  1172. // SqlParameter[] sp_UPdateDetail = {
  1173. // new SqlParameter("@ID",keyValue),
  1174. // new SqlParameter("@BidCode",BidCode),
  1175. //};
  1176. // SqlCommandHelper.CmdExecuteNonQuery(sql, sp_UPdateDetail, cmd);
  1177. //}
  1178. #region 标案状态变更记录
  1179. sql = @"
  1180. INSERT INTO dbo.ICSBidLog
  1181. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  1182. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  1183. SqlParameter[] sp_BidLog = {
  1184. //new SqlParameter("@ID","NEWID()"),
  1185. new SqlParameter("@BidCode",BidCode),
  1186. new SqlParameter("@LogType", "企业"),
  1187. new SqlParameter("@LogDes", "招标书-提交"),
  1188. new SqlParameter("@LogUser", Muser),
  1189. new SqlParameter("@WorkPoint", WorkPoint),
  1190. new SqlParameter("@MUSER", Muser),
  1191. new SqlParameter("@MUSERName", MuserName)
  1192. };
  1193. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  1194. #endregion
  1195. cmd.Transaction.Commit();
  1196. }
  1197. catch (Exception ex)
  1198. {
  1199. cmd.Transaction.Rollback();
  1200. throw new Exception(ex.Message);
  1201. }
  1202. finally
  1203. {
  1204. if (conn.State == ConnectionState.Open)
  1205. {
  1206. conn.Close();
  1207. }
  1208. conn.Dispose();
  1209. }
  1210. }
  1211. catch (Exception ex)
  1212. {
  1213. throw new Exception(ex.Message);
  1214. }
  1215. }
  1216. public void SaveFormQTiJiao(string keyValue, string BidCode)
  1217. {
  1218. string sql = string.Empty;
  1219. try
  1220. {
  1221. List<ICSBidInfoLog> list = new List<ICSBidInfoLog>();
  1222. //List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1223. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  1224. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1225. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1226. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1227. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1228. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1229. conn.Open();
  1230. SqlTransaction sqlTran = conn.BeginTransaction();
  1231. SqlCommand cmd = new SqlCommand();
  1232. cmd.Transaction = sqlTran;
  1233. cmd.Connection = conn;
  1234. try
  1235. {
  1236. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidInfo WHERE ID=@ID and BidCode=@BidCode)
  1237. BEGIN
  1238. UPDATE dbo.ICSBidInfo SET
  1239. IsSub=@IsSub , BidUser=@BidUser ,BidTime=@BidTime
  1240. WHERE ID=@ID and BidCode=@BidCode
  1241. END ";
  1242. SqlParameter[] sp_Detail = {
  1243. new SqlParameter("@ID",keyValue),
  1244. new SqlParameter("@BidCode",BidCode),
  1245. new SqlParameter("@IsSub","0"),
  1246. new SqlParameter("@BidUser",null),
  1247. new SqlParameter("@BidTime",null),
  1248. };
  1249. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1250. #region 标案状态变更记录
  1251. sql = @"
  1252. INSERT INTO dbo.ICSBidLog
  1253. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  1254. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  1255. SqlParameter[] sp_BidLog = {
  1256. //new SqlParameter("@ID","NEWID()"),
  1257. new SqlParameter("@BidCode",BidCode),
  1258. new SqlParameter("@LogType", "企业"),
  1259. new SqlParameter("@LogDes", "招标书-取消提交"),
  1260. new SqlParameter("@LogUser", Muser),
  1261. new SqlParameter("@WorkPoint", WorkPoint),
  1262. new SqlParameter("@MUSER", Muser),
  1263. new SqlParameter("@MUSERName", MuserName)
  1264. };
  1265. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  1266. #endregion
  1267. cmd.Transaction.Commit();
  1268. }
  1269. catch (Exception ex)
  1270. {
  1271. cmd.Transaction.Rollback();
  1272. throw new Exception(ex.Message);
  1273. }
  1274. finally
  1275. {
  1276. if (conn.State == ConnectionState.Open)
  1277. {
  1278. conn.Close();
  1279. }
  1280. conn.Dispose();
  1281. }
  1282. }
  1283. catch (Exception ex)
  1284. {
  1285. throw new Exception(ex.Message);
  1286. }
  1287. }
  1288. public DataTable SearchBidDocBDInfoByBidCodeAndID(string BidCode, string ID, string WorkPoint)
  1289. {
  1290. WorkPoint=NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1291. string sql = @"SELECT a.ID,a.InvCode,b.InvName AS InvName,b.InvStd AS InvStd,b.INVUOM AS InvUnit,
  1292. a.Quantity,a.DeliveryTime,a.ENTTRIBUTE1,a.ItemType,a.Remark,c.BidCode,c.BidName
  1293. FROM ICSBidDocBD a
  1294. LEFT JOIN ICSINVENTORY b ON a.InvCode = b.InvCode and a.WorkPoint=b.WorkPoint
  1295. LEFT JOIN ICSBidDoc c ON a.BidCode = c.BidCode and b.WorkPoint=c.WorkPoint
  1296. WHERE a.BidCode='{0}' AND a.ID ='{1}' AND a.WorkPoint in ({2})";
  1297. sql = string.Format(sql, BidCode, ID,WorkPoint);
  1298. return Repository().FindTableBySql(sql.ToString());
  1299. }
  1300. public DataTable GetBidInfoByBidCodeAndBDID(string BidCode, string ID, string WorkPoint)
  1301. {
  1302. WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1303. string sql = @"SELECT b.ID,c.cvencode,c.VenName cVenName,'ERP' as Source,b.CastPrice,b.IsDid,a.ID AS InfoID,b.BDID,d.BidStatus,b.ENTTRIBUTE1 AS Remark,
  1304. (CASE d.BidStatus WHEN '' THEN (CASE b.IsDid WHEN '1' THEN '' WHEN '0' THEN '' ELSE '' END) ELSE '' END) AS ISDID
  1305. FROM ICSBidInfo a
  1306. LEFT JOIN ICSBidInfoDetail b ON a.ID = b.InfoID and a.WorkPoint=b.WorkPoint
  1307. LEFT JOIN ICSVendor c ON a.SupplierCode = c.cvencode and b.WorkPoint=c.WorkPoint
  1308. LEFT JOIN ICSBidDoc d ON d.BidCode = a.BidCode and c.WorkPoint=d.WorkPoint
  1309. WHERE a.BidCode='{0}' AND b.BDID='{1}'
  1310. AND b.IsCast = 1
  1311. AND a.IsSub = 1
  1312. AND a.WorkPoint in ({2})
  1313. ORDER BY c.cvencode, b.CastPrice";//AND a.IsSub = 1
  1314. sql = string.Format(sql, BidCode, ID, WorkPoint);
  1315. return Repository().FindTableBySql(sql.ToString());
  1316. }
  1317. public void SaveFormZB(ICSBidInfoDetail details)
  1318. {
  1319. string sql = string.Empty;
  1320. bool IsDid = false;
  1321. try
  1322. {
  1323. List<ICSBidInfoDetail> list = new List<ICSBidInfoDetail>();
  1324. List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1325. //List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1326. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  1327. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1328. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1329. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',').Replace("'","");
  1330. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1331. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1332. conn.Open();
  1333. SqlTransaction sqlTran = conn.BeginTransaction();
  1334. SqlCommand cmd = new SqlCommand();
  1335. cmd.Transaction = sqlTran;
  1336. cmd.Connection = conn;
  1337. try
  1338. {
  1339. for (int i = 0; i < list_BD.Count; i++)
  1340. {
  1341. sql = @"SELECT * FROM ICSBidInfoDetail WHERE BDID = '{0}' and WorkPoint in ('{1}')";
  1342. sql = string.Format(sql, list_BD[i].ID, list_BD[i].WorkPoint);
  1343. DataTable dt = SqlHelper.GetDataSetBySql(sql,cmd);
  1344. if (dt != null && dt.Rows.Count > 0)
  1345. {
  1346. DataRow dr = dt.Rows[0];
  1347. ICSBidInfoDetail model = new ICSBidInfoDetail();
  1348. model.ID = dr["ID"].ToString();
  1349. model.InfoID = dr["InfoID"].ToString();
  1350. model.BDID = dr["BDID"].ToString();
  1351. model.IsCast = string.IsNullOrEmpty(dr["IsCast"].ToString()) ? false : Convert.ToBoolean(dr["IsCast"].ToString());
  1352. model.CastPrice = string.IsNullOrEmpty(dr["CastPrice"].ToString()) ? 0 : Convert.ToDecimal(dr["CastPrice"].ToString());
  1353. model.IsDid = string.IsNullOrEmpty(dr["IsDid"].ToString()) ? false : Convert.ToBoolean(dr["IsDid"].ToString());
  1354. model.WorkPoint = dr["WorkPoint"].ToString();
  1355. model.MUSER = dr["MUSER"].ToString();
  1356. model.MUSERName = dr["MUSERName"].ToString();
  1357. model.MTIME = Convert.ToDateTime(dr["MTIME"].ToString());
  1358. list.Add(model);
  1359. }
  1360. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidInfo WHERE ID=@ID and BidCode=@BidCode)
  1361. BEGIN
  1362. UPDATE dbo.ICSBidInfo SET
  1363. IsLock=@IsLock
  1364. WHERE ID=@ID and BidCode=@BidCode
  1365. END ";
  1366. SqlParameter[] sp_Detail = {
  1367. new SqlParameter("@ID",list[0].InfoID),
  1368. new SqlParameter("@BidCode",list_BD[0].BidCode),
  1369. new SqlParameter("@IsLock",true),
  1370. };
  1371. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1372. if (!string.IsNullOrEmpty(list_BD[i].IsDid.ToString()))
  1373. IsDid = list_BD[i].IsDid;
  1374. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSBidInfoDetail WHERE BDID=@ID)
  1375. BEGIN
  1376. INSERT INTO dbo.ICSBidInfoDetail
  1377. ( ID,InfoID,BDID,ZBVendorCode,ENTTRIBUTE1,WorkPoint,MUSER,
  1378. MUSERName,MTIME)
  1379. VALUES ( NEWID(),@InfoID,@ID,@ZBVendorCode ,@ENTTRIBUTE1 ,@WorkPoint, @MUSER,
  1380. @MUSERName,@MTIME)
  1381. END
  1382. ELSE
  1383. BEGIN
  1384. UPDATE dbo.ICSBidInfoDetail SET
  1385. ZBVendorCode=@ZBVendorCode , ENTTRIBUTE1=@ENTTRIBUTE1
  1386. WHERE BDID=@ID
  1387. END";
  1388. SqlParameter[] sp_Details = {
  1389. new SqlParameter("@ID",list_BD[i].ID),
  1390. new SqlParameter("@InfoID",list[i].InfoID),
  1391. new SqlParameter("@BDID",list[i].BDID),
  1392. //new SqlParameter("@IsCast","1"),
  1393. //new SqlParameter("@CastPrice",list_BD[i].CastPrice),
  1394. //new SqlParameter("@IsDid",IsDid),
  1395. new SqlParameter("@ZBVendorCode",list_BD[i].ZBVendorCode),
  1396. new SqlParameter("@ENTTRIBUTE1",list_BD[i].ENTTRIBUTE1),
  1397. new SqlParameter("@WorkPoint",list_BD[i].WorkPoint),
  1398. new SqlParameter("@MUSER",Muser),
  1399. new SqlParameter("@MUSERName",MuserName),
  1400. new SqlParameter("@MTIME",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1401. };
  1402. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Details, cmd);
  1403. #region 标案状态变更记录
  1404. sql = @"
  1405. INSERT INTO dbo.ICSBidLog
  1406. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  1407. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  1408. SqlParameter[] sp_BidLog = {
  1409. //new SqlParameter("@ID","NEWID()"),
  1410. new SqlParameter("@BidCode",list_BD[0].BidCode),
  1411. new SqlParameter("@LogType", "企业"),
  1412. new SqlParameter("@LogDes", "招标书-变更"),
  1413. new SqlParameter("@LogUser", Muser),
  1414. new SqlParameter("@WorkPoint", list_BD[i].WorkPoint),
  1415. new SqlParameter("@MUSER", Muser),
  1416. new SqlParameter("@MUSERName", MuserName)
  1417. };
  1418. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  1419. #endregion
  1420. }
  1421. cmd.Transaction.Commit();
  1422. }
  1423. catch (Exception ex)
  1424. {
  1425. cmd.Transaction.Rollback();
  1426. throw new Exception(ex.Message);
  1427. }
  1428. finally
  1429. {
  1430. if (conn.State == ConnectionState.Open)
  1431. {
  1432. conn.Close();
  1433. }
  1434. conn.Dispose();
  1435. }
  1436. }
  1437. catch (Exception ex)
  1438. {
  1439. throw new Exception(ex.Message);
  1440. }
  1441. }
  1442. public void SaveFormTiJiaoZB(string BidCode, ICSBidInfoDetail details)
  1443. {
  1444. string sql = string.Empty;
  1445. try
  1446. {
  1447. SaveFormZB(details);
  1448. List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1449. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  1450. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1451. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1452. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',').Replace("'", "");
  1453. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1454. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1455. conn.Open();
  1456. SqlTransaction sqlTran = conn.BeginTransaction();
  1457. SqlCommand cmd = new SqlCommand();
  1458. cmd.Transaction = sqlTran;
  1459. cmd.Connection = conn;
  1460. try
  1461. {
  1462. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidDoc WHERE BidCode=@BidCode)
  1463. BEGIN
  1464. UPDATE dbo.ICSBidDoc SET
  1465. LogUser=@LogUser , LogTime=@LogTime ,Bidder=@Bidder,BidTime=@BidTime,BidStatus=@BidStatus
  1466. WHERE BidCode=@BidCode
  1467. END ";
  1468. SqlParameter[] sp_Detail = {
  1469. new SqlParameter("@LogUser",Muser),
  1470. new SqlParameter("@LogTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1471. new SqlParameter("@Bidder",Muser),
  1472. new SqlParameter("@BidCode",list_BD[0].BidCode),
  1473. new SqlParameter("@BidTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1474. new SqlParameter("@BidStatus","已决标"),
  1475. };
  1476. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1477. #region 标案状态变更记录
  1478. sql = @"
  1479. INSERT INTO dbo.ICSBidLog
  1480. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  1481. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  1482. SqlParameter[] sp_BidLog = {
  1483. //new SqlParameter("@ID","NEWID()"),
  1484. new SqlParameter("@BidCode",list_BD[0].BidCode),
  1485. new SqlParameter("@LogType", "企业"),
  1486. new SqlParameter("@LogDes", "招标书-决标"),
  1487. new SqlParameter("@LogUser", Muser),
  1488. new SqlParameter("@WorkPoint",list_BD[0].WorkPoint),
  1489. new SqlParameter("@MUSER", Muser),
  1490. new SqlParameter("@MUSERName", MuserName)
  1491. };
  1492. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  1493. #endregion
  1494. cmd.Transaction.Commit();
  1495. }
  1496. catch (Exception ex)
  1497. {
  1498. cmd.Transaction.Rollback();
  1499. throw new Exception(ex.Message);
  1500. }
  1501. finally
  1502. {
  1503. if (conn.State == ConnectionState.Open)
  1504. {
  1505. conn.Close();
  1506. }
  1507. conn.Dispose();
  1508. }
  1509. }
  1510. catch (Exception ex)
  1511. {
  1512. throw new Exception(ex.Message);
  1513. }
  1514. }
  1515. public void SaveFormQuX(string BidCode, string WorkPoint)
  1516. {
  1517. string sql = string.Empty;
  1518. try
  1519. {
  1520. //List<ICSBidInfoDetail> list_BD = JsonConvert.DeserializeObject<List<ICSBidInfoDetail>>(details.arrayShellFabricDetail);
  1521. //List<ICSBidDocGYS> list_GYS = JsonConvert.DeserializeObject<List<ICSBidDocGYS>>(details.arrayBidDocGYS);
  1522. string Muser = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1523. string MuserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  1524. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1525. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1526. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1527. conn.Open();
  1528. SqlTransaction sqlTran = conn.BeginTransaction();
  1529. SqlCommand cmd = new SqlCommand();
  1530. cmd.Transaction = sqlTran;
  1531. cmd.Connection = conn;
  1532. try
  1533. {
  1534. sql = @"IF EXISTS(SELECT * FROM dbo.ICSBidDoc WHERE BidCode=@BidCode)
  1535. BEGIN
  1536. UPDATE dbo.ICSBidDoc SET
  1537. LogUser=@LogUser , LogTime=@LogTime,BidStatus=@BidStatus
  1538. WHERE BidCode=@BidCode
  1539. END ";
  1540. SqlParameter[] sp_Detail = {
  1541. new SqlParameter("@LogUser",Muser),
  1542. new SqlParameter("@LogTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1543. new SqlParameter("@BidCode",BidCode),
  1544. //new SqlParameter("@Bidder",Muser),
  1545. //new SqlParameter("@BidTime",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
  1546. new SqlParameter("@BidStatus","已关闭"),
  1547. };
  1548. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1549. #region 标案状态变更记录
  1550. sql = @"
  1551. INSERT INTO dbo.ICSBidLog
  1552. ( ID, BidCode, LogType, LogDes, LogTime, LogUser, WorkPoint, MUSER, MUSERName, MTIME )
  1553. VALUES ( NEWID(), @BidCode, @LogType , @LogDes , getdate() , @LogUser , @WorkPoint ,@MUSER , @MUSERName , getdate())";
  1554. SqlParameter[] sp_BidLog = {
  1555. //new SqlParameter("@ID","NEWID()"),
  1556. new SqlParameter("@BidCode",BidCode),
  1557. new SqlParameter("@LogType", "企业"),
  1558. new SqlParameter("@LogDes", "招标书-关闭"),
  1559. new SqlParameter("@LogUser", Muser),
  1560. new SqlParameter("@WorkPoint", WorkPoint),
  1561. new SqlParameter("@MUSER", Muser),
  1562. new SqlParameter("@MUSERName", MuserName)
  1563. };
  1564. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_BidLog, cmd);
  1565. #endregion
  1566. cmd.Transaction.Commit();
  1567. }
  1568. catch (Exception ex)
  1569. {
  1570. cmd.Transaction.Rollback();
  1571. throw new Exception(ex.Message);
  1572. }
  1573. finally
  1574. {
  1575. if (conn.State == ConnectionState.Open)
  1576. {
  1577. conn.Close();
  1578. }
  1579. conn.Dispose();
  1580. }
  1581. }
  1582. catch (Exception ex)
  1583. {
  1584. throw new Exception(ex.Message);
  1585. }
  1586. }
  1587. /// <summary>
  1588. /// 上传招标文件
  1589. /// </summary>
  1590. /// <param name="keyValue"></param>
  1591. /// <returns></returns>
  1592. public int UpLoadFile(string FilePath, string FileName, string BidCode)
  1593. {
  1594. DataTable dt = new DataTable();
  1595. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1596. string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  1597. string sql = "";
  1598. sql = string.Format(@"update ICSBidDoc set VendorFileName=isnull(VendorFileName,'')+'{0}'
  1599. where BidCode='{1}'",
  1600. FilePath, BidCode);
  1601. sql += string.Format(@"update ICSBidInfo set VendorFileName=isnull(VendorFileName,'')+'{0}'
  1602. where BidCode='{1}' and SupplierCode='{2}'",
  1603. FilePath, BidCode, Vendor);
  1604. StringBuilder Str = new StringBuilder(sql);
  1605. return Repository().ExecuteBySql(Str);
  1606. }
  1607. /// <summary>
  1608. /// 获取文件名
  1609. /// </summary>
  1610. /// <param name="BidCode"></param>
  1611. /// <param name="WorkPoint"></param>
  1612. /// <returns></returns>
  1613. public DataTable GetCGFile(string BidCode, string WorkPoint)
  1614. {
  1615. DataTable dt = new DataTable();
  1616. string sql = @"SELECT Filename FROM ICSBIdDoc WHERE BIdCode='{0}' and WorkPoint='{1}'";
  1617. sql = string.Format(sql, BidCode, WorkPoint);
  1618. dt = SqlHelper.GetDataTableBySql(sql);
  1619. return dt;
  1620. }
  1621. public DataTable GetVenDorFile(string BidCode, string WorkPoint)
  1622. {
  1623. DataTable dt = new DataTable();
  1624. string sql = @"SELECT VendorFileName FROM ICSBIdDoc WHERE BIdCode='{0}' and WorkPoint='{1}'";
  1625. sql = string.Format(sql, BidCode, WorkPoint);
  1626. dt = SqlHelper.GetDataTableBySql(sql);
  1627. return dt;
  1628. }
  1629. public DataTable GetVenDorFileTB(string BidCode, string WorkPoint)
  1630. {
  1631. string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  1632. DataTable dt = new DataTable();
  1633. string sql = @"SELECT VendorFileName FROM ICSBidInfo WHERE BIdCode='{0}' and WorkPoint='{1}' and SupplierCode='{2}'";
  1634. sql = string.Format(sql, BidCode, WorkPoint, Vendor);
  1635. dt = SqlHelper.GetDataTableBySql(sql);
  1636. return dt;
  1637. }
  1638. }
  1639. }