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.

3426 lines
186 KiB

3 days ago
  1. using ICSSoft.SendMail;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using NFine.Code;
  5. using NFine.Data.Extensions;
  6. using NFine.Domain._03_Entity.SRM;
  7. using NFine.Repository;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Configuration;
  11. using System.Data;
  12. using System.Data.Common;
  13. using System.Data.SqlClient;
  14. using System.IO;
  15. using System.Linq;
  16. using System.Net;
  17. using System.Net.Mail;
  18. using System.Net.Security;
  19. using System.Security.Cryptography.X509Certificates;
  20. using System.Text;
  21. using System.Threading.Tasks;
  22. using System.Xml.Linq;
  23. namespace NFine.Application.SRM
  24. {
  25. public class CertifiCationApp : RepositoryFactory<ICSVendor>
  26. {
  27. private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  28. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  29. {
  30. DataTable dt = new DataTable();
  31. var queryParam = queryJson.ToJObject();
  32. List<DbParameter> parameter = new List<DbParameter>();
  33. string sql = @"select
  34. ID
  35. ,CERTIFICATETPYECODE
  36. ,CERTIFICATETYPENAME
  37. ,CERTIFICATEITEMCODE
  38. ,CERTIFICATEITEMNAME
  39. ,PLANFINISHDAYS
  40. ,Case When ISKEYTASK=0 Then '是' Else '否' END as ISKEYTASK
  41. ,Case When NEEDUPLOADFILE=0 Then '是' Else '否' END as NEEDUPLOADFILE
  42. ,CREATEDATE
  43. ,WorkPoint
  44. from ICSCERTIFICATE a
  45. WHERE 1=1";
  46. if (!string.IsNullOrWhiteSpace(queryJson))
  47. {
  48. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeCode"].ToString()))
  49. {
  50. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CertifiCateTpyeCode"].ToString() + "%' ";
  51. }
  52. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeName"].ToString()))
  53. {
  54. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CertifiCateTpyeName"].ToString() + "%' ";
  55. }
  56. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMCODE"].ToString()))
  57. {
  58. sql += " and a.CERTIFICATEITEMCODE like '%" + queryParam["CERTIFICATEITEMCODE"].ToString() + "%' ";
  59. }
  60. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMNAME"].ToString()))
  61. {
  62. sql += " and a.CERTIFICATEITEMNAME like '%" + queryParam["CERTIFICATEITEMNAME"].ToString() + "%' ";
  63. }
  64. }
  65. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  66. {
  67. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  68. }
  69. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  70. }
  71. public DataTable GetGridJsonICSCERTIFICATE2(string queryJson, ref Pagination jqgridparam)
  72. {
  73. DataTable dt = new DataTable();
  74. var queryParam = queryJson.ToJObject();
  75. List<DbParameter> parameter = new List<DbParameter>();
  76. string sql = @"select
  77. ID
  78. ,CERTIFICATEITEMCODE
  79. ,CERTIFICATEITEMNAME
  80. ,PLANFINISHDAYS
  81. ,Case When ISKEYTASK=0 Then '是' Else '否' END as ISKEYTASK
  82. ,Case When NEEDUPLOADFILE=0 Then '是' Else '否' END as NEEDUPLOADFILE
  83. ,CREATEDATE
  84. ,WorkPoint
  85. ,CERTIFICATEITEMFileName
  86. from ICSCERTIFICATE2 a
  87. WHERE 1=1";
  88. if (!string.IsNullOrWhiteSpace(queryJson))
  89. {
  90. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMCODE"].ToString()))
  91. {
  92. sql += " and a.CERTIFICATEITEMCODE like '%" + queryParam["CERTIFICATEITEMCODE"].ToString() + "%' ";
  93. }
  94. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMNAME"].ToString()))
  95. {
  96. sql += " and a.CERTIFICATEITEMNAME like '%" + queryParam["CERTIFICATEITEMNAME"].ToString() + "%' ";
  97. }
  98. }
  99. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  100. {
  101. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  102. }
  103. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  104. }
  105. /// <summary>
  106. /// 认证资料维护查询
  107. /// </summary>
  108. /// <param name="queryJson"></param>
  109. /// <param name="jqgridparam"></param>
  110. /// <returns></returns>
  111. public DataTable GetICSCertifiiCateItemDetail(string queryJson, ref Pagination jqgridparam)
  112. {
  113. DataTable dt = new DataTable();
  114. var queryParam = queryJson.ToJObject();
  115. List<DbParameter> parameter = new List<DbParameter>();
  116. #region 旧sql
  117. //string sql = @"select
  118. // distinct
  119. // a.ID,
  120. // b.GGUID,
  121. // b.ID as ItemID,
  122. // a.VENDORCODE,
  123. // c.cVenName,
  124. // case When a.AUDITRESULT='NEW' Then '新增' When a.AUDITRESULT='Check' Then '审核中' When a.AUDITRESULT='REJECT' Then '审核拒绝' else '审核通过' ENd as AUDITRESULT,
  125. // case When a.AUDITRESULT='NEW' Then '新增' When a.AUDITRESULT='Check' Then '审核中' When a.AUDITRESULT='REJECT' Then '审核拒绝' else '审核通过' ENd as AUDITRESULTS,
  126. // a.CERTIFICATETPYECODE,
  127. // a.CERTIFICATETYPENAME,
  128. // a.CERTIFICATEITEMCODE,
  129. // b.CERTIFICATENO,
  130. // d.CERTIFICATEITEMFileName,
  131. // a.CERTIFICATEITEMNAME,
  132. // b.CERTIFICATIONINSTITUTIONS,
  133. // case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK,
  134. // case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE ,
  135. // b.BEGINDATE,
  136. // b.ENDDATE,
  137. // a.Remark,
  138. // b.CERTIFICATETYPENFileName,
  139. // a.PLANFINISHDATE,
  140. // b.CREATEDATE,
  141. // a.WorkPoint,
  142. // b.ADDITION1
  143. // from ICSCERTIFICATEITEM a
  144. // LEFT JOIN ICSCERTIFICATE d on a.CERTIFICATEITEMCODE=d.CERTIFICATEITEMCODE and a.WorkPoint=d.WorkPoint
  145. // LEFT JOIN ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and d.WorkPoint=b.WorkPoint and b.STATUS='有效'
  146. // LEFT JOIN ICSVendor c on a.VENDORCODE =c.cVenCode and b.WorkPoint=c.WorkPoint
  147. // WHERE 1=1 and a.PLANFINISHDATE>Getdate()";
  148. #endregion
  149. //2022/12/29 LS Add
  150. string sql = @"select
  151. distinct
  152. a.ID,
  153. b.GGUID,
  154. b.ID as ItemID,
  155. a.VENDORCODE,
  156. c.VenName cVenName,
  157. case when isnull(b.STATUS,'')='' then b.STATUS when (getdate()>a.PLANFINISHDATE and a.AUDITRESULT='NEW' )or a.AUDITRESULT='' then '' When a.AUDITRESULT='NEW' Then '' When a.AUDITRESULT='Check' Then '' When a.AUDITRESULT='REJECT' Then '' When a.AUDITRESULT='PurchasingPass' Then '' else b.STATUS end as AUDITRESULT,
  158. case when isnull(b.STATUS,'')='' then b.STATUS when (getdate()>a.PLANFINISHDATE and a.AUDITRESULT='NEW' )or a.AUDITRESULT='' then '' When a.AUDITRESULT='NEW' Then '' When a.AUDITRESULT='Check' Then '' When a.AUDITRESULT='REJECT' Then '' When a.AUDITRESULT='PurchasingPass' Then '' else b.STATUS end as AUDITRESULTS,
  159. a.CERTIFICATETPYECODE,
  160. a.CERTIFICATETYPENAME,
  161. a.CERTIFICATEITEMCODE,
  162. b.CERTIFICATENO,
  163. d.CERTIFICATEITEMFileName,
  164. a.CERTIFICATEITEMNAME,
  165. b.CERTIFICATIONINSTITUTIONS,
  166. case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK,
  167. case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE ,
  168. b.BEGINDATE,
  169. b.ENDDATE,
  170. a.Remark,
  171. b.CERTIFICATETYPENFileName,
  172. a.PLANFINISHDATE,
  173. b.CREATEDATE,
  174. a.WorkPoint,
  175. b.ADDITION1,
  176. f.RegistrationStatus--
  177. from ICSCERTIFICATEITEM a
  178. LEFT JOIN ICSCERTIFICATE d on a.CERTIFICATEITEMCODE=d.CERTIFICATEITEMCODE and a.WorkPoint=d.WorkPoint
  179. LEFT JOIN ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and d.WorkPoint=b.WorkPoint
  180. LEFT JOIN ICSVendor c on a.VENDORCODE =c.VenCode and b.WorkPoint=c.WorkPoint
  181. LEFT JOIN ICSPREVENDOR f ON a.VendorCode=f.VenCode AND a.WorkPoint=f.WorkPoint
  182. WHERE 1=1 and isnull(b.ADDITION2,'')<>'1'";
  183. if (!string.IsNullOrWhiteSpace(queryJson))
  184. {
  185. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeCode"].ToString()))
  186. {
  187. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CertifiCateTpyeCode"].ToString() + "%' ";
  188. }
  189. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeName"].ToString()))
  190. {
  191. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CertifiCateTpyeName"].ToString() + "%' ";
  192. }
  193. if (!string.IsNullOrWhiteSpace(queryParam["VENDORCODE"].ToString()))
  194. {
  195. sql += " and a.VENDORCODE like '%" + queryParam["VENDORCODE"].ToString() + "%' ";
  196. }
  197. if (!string.IsNullOrWhiteSpace(queryParam["cVenName"].ToString()))
  198. {
  199. sql += " and a.cVenName like '%" + queryParam["cVenName"].ToString() + "%' ";
  200. }
  201. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEBegion"].ToString()))
  202. {
  203. sql += " and a.CREATEDATE >= '" + queryParam["CREATEDATEBegion"].ToString() + "' ";
  204. }
  205. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEEnd"].ToString()))
  206. {
  207. sql += " and a.CREATEDATE <= '" + queryParam["CREATEDATEEnd"].ToString() + "' ";
  208. }
  209. if (!string.IsNullOrWhiteSpace(queryParam["status"].ToString()))
  210. {
  211. sql += " and case when isnull(b.STATUS,'')='失效' then b.STATUS when (getdate()>a.PLANFINISHDATE and a.AUDITRESULT='NEW' )or a.AUDITRESULT='未通过' then '待通过' When a.AUDITRESULT='NEW' Then '新增' When a.AUDITRESULT='Check' Then '审核中' When a.AUDITRESULT='REJECT' Then '审核拒绝' else b.STATUS end in (" + queryParam["status"].ToString().TrimEnd(',') + ") ";
  212. }
  213. }
  214. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  215. {
  216. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  217. }
  218. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  219. {
  220. sql += " and a.VENDORCODE in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  221. }
  222. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  223. }
  224. /// <summary>
  225. /// 修改时获取主表信息
  226. /// </summary>
  227. /// <param name="tmpID"></param>
  228. /// <param name="WorkPoint"></param>
  229. /// <returns></returns>
  230. public DataRow GetCertifiCateTpye(string CERTIFICATETPYECODE, string WorkPoint)
  231. {
  232. DataRow dr = null;
  233. string sql = string.Empty;
  234. try
  235. {
  236. sql = @"SELECT * FROM ICSCERTIFICATE2
  237. WHERE CERTIFICATEITEMCODE='" + CERTIFICATETPYECODE + "' and WorkPoint = '" + WorkPoint + "'";
  238. dr = SqlHelper.GetDataRowBySql(sql);
  239. return dr;
  240. }
  241. catch (Exception ex)
  242. {
  243. throw new Exception(ex.Message);
  244. }
  245. }
  246. /// <summary>
  247. /// 获取认证类型名称
  248. /// </summary>
  249. /// <returns></returns>
  250. public DataTable GetCertiFicateTypeName(string WorkPoint)
  251. {
  252. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  253. string sql = @"
  254. select '' as CERTIFICATETPYECODE,'' as CERTIFICATETYPENAME
  255. union all
  256. SELECT DISTINCT a.CERTIFICATETPYECODE,isnull(a.CERTIFICATETYPENAME,'') as CERTIFICATETYPENAME FROM dbo.ICSCERTIFICATETYPE a
  257. WHERE a.CERTIFICATETPYECODE IS NOT NULL AND a.CERTIFICATETPYECODE <>''";
  258. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  259. if (role != "admin")
  260. {
  261. sql += " and a.WorkPoint in(" + WorkPoint + ")";
  262. }
  263. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  264. return dt;
  265. }
  266. /// <summary>
  267. /// 获取认证类型名称
  268. /// </summary>
  269. /// <returns></returns>
  270. public DataTable GetCertiFicateTypeNameRZ(string queryJson, string WorkPoint)
  271. {
  272. var queryParam = queryJson.ToJObject();
  273. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  274. string sql = @"
  275. SELECT DISTINCT
  276. a.CERTIFICATETPYECODE,
  277. isnull(a.CERTIFICATETYPENAME,'') as CERTIFICATETYPENAME
  278. FROM dbo.ICSCERTIFICATE a
  279. WHERE 1=1
  280. ";
  281. if (!string.IsNullOrWhiteSpace(queryJson))
  282. {
  283. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATETPYECODE"].ToString()))
  284. {
  285. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CERTIFICATETPYECODE"].ToString() + "%' ";
  286. }
  287. }
  288. //string role = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  289. //if (role != "admin")
  290. //{
  291. sql += " and a.WorkPoint in('" + WorkPoint + "')";
  292. //}
  293. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  294. return dt;
  295. }
  296. /// <summary>
  297. /// 创建认证项目
  298. /// </summary>
  299. /// <param name="queryJson"></param>
  300. /// <returns></returns>
  301. public void SubmitFormCFType(string queryJson, string ID)
  302. {
  303. try
  304. {
  305. DataTable dt = new DataTable();
  306. List<DbParameter> parameter = new List<DbParameter>();
  307. ICSCERTIFICATE[] list = JsonConvert.DeserializeObject<ICSCERTIFICATE[]>(queryJson);
  308. string sql = string.Empty;
  309. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  310. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  311. conn.Open();
  312. SqlTransaction sqlTran = conn.BeginTransaction();
  313. SqlCommand cmd = new SqlCommand();
  314. cmd.Transaction = sqlTran;
  315. cmd.Connection = conn;
  316. try
  317. {
  318. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  319. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  320. sql = "select * from ICSCERTIFICATE2 where CERTIFICATEITEMCODE='" + list[0].CERTIFICATEITEMCODE + "'and ID!='" + ID + "'";
  321. dt = SqlCommandHelper.SQlReturnData(sql, cmd);
  322. if (dt != null && dt.Rows.Count > 0)
  323. {
  324. throw new Exception("认证项目代码已存在");
  325. }
  326. // sql = string.Format(@"SELECT * FROM dbo.ICSCERTIFICATE2
  327. // WHERE CERTIFICATEITEMCODE IN (SELECT CERTIFICATEITEMCODE FROM dbo.ICSCERTIFICATE WHERE CERTIFICATEITEMCODE IN ('{0}'))", list[0].CERTIFICATEITEMCODE);
  328. // DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  329. // if (dtASN != null && dtASN.Rows.Count > 0)
  330. // {
  331. // throw new Exception("该认证项目已和认证类型关联,请先删除关联关系!");
  332. // }
  333. foreach (var obj in list)
  334. {
  335. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSCERTIFICATE2 WHERE CERTIFICATEITEMCODE=@CERTIFICATEITEMCODE and WorkPoint=@WorkPoint)
  336. BEGIN
  337. INSERT INTO dbo.ICSCERTIFICATE2
  338. (ID
  339. ,CERTIFICATEITEMCODE
  340. ,CERTIFICATEITEMNAME
  341. ,ISKEYTASK
  342. , NEEDUPLOADFILE
  343. ,PLANFINISHDAYS
  344. ,CREATEDATE
  345. ,CREATETIME
  346. ,CREATEUSER
  347. ,WorkPoint
  348. ,CERTIFICATEITEMFileName
  349. ,MODIFIEDDATE
  350. ,MODIFIEDTIME
  351. ,MODIFIEDUSER)
  352. VALUES
  353. (
  354. NEWID()
  355. ,@CERTIFICATEITEMCODE
  356. ,@CERTIFICATEITEMNAME
  357. ,@ISKEYTASK
  358. ,@NEEDUPLOADFILE
  359. ,@PLANFINISHDAYS
  360. ,GETDATE()
  361. ,CONVERT(varchar,GETDATE(),120)
  362. ,@CREATEUSER
  363. ,@WorkPoint
  364. ,@CERTIFICATEITEMFileName
  365. ,''
  366. ,''
  367. ,'')
  368. END
  369. ELSE
  370. BEGIN
  371. UPDATE dbo.ICSCERTIFICATE2 SET
  372. CERTIFICATEITEMCODE=@CERTIFICATEITEMCODE
  373. ,CERTIFICATEITEMNAME=@CERTIFICATEITEMNAME
  374. ,ISKEYTASK=@ISKEYTASK
  375. ,NEEDUPLOADFILE=@NEEDUPLOADFILE
  376. ,PLANFINISHDAYS=@PLANFINISHDAYS
  377. ,MODIFIEDDATE=GETDATE()
  378. ,MODIFIEDTIME=CONVERT(varchar,GETDATE(),120)
  379. ,MODIFIEDUSER=@MODIFIEDUSER
  380. ,CERTIFICATEITEMFileName=@CERTIFICATEITEMFileName
  381. WHERE CERTIFICATEITEMCODE=@CERTIFICATEITEMCODE
  382. END";
  383. SqlParameter[] sp_Detail = {
  384. new SqlParameter("@CERTIFICATEITEMCODE",obj.CERTIFICATEITEMCODE),
  385. new SqlParameter("@CERTIFICATEITEMNAME",obj.CERTIFICATEITEMNAME),
  386. new SqlParameter("@ISKEYTASK",obj.ISKEYTASK),
  387. new SqlParameter("@NEEDUPLOADFILE",obj.NEEDUPLOADFILE),
  388. new SqlParameter("@PLANFINISHDAYS",obj.PLANFINISHDAYS),
  389. new SqlParameter("@CERTIFICATEITEMFileName",obj.CERTIFICATEITEMFileName),
  390. //new SqlParameter("@CREATEDATE","已保存"),
  391. //new SqlParameter("@CREATETIME","企业"),
  392. new SqlParameter("@CREATEUSER",UserCode),
  393. //new SqlParameter("@MODIFIEDDATE",Muser),
  394. new SqlParameter("@WORKPOINT",obj.WorkPoint),
  395. new SqlParameter("@MODIFIEDUSER",UserCode),
  396. };
  397. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  398. }
  399. cmd.Transaction.Commit();
  400. }
  401. catch (Exception ex)
  402. {
  403. cmd.Transaction.Rollback();
  404. throw new Exception(ex.Message);
  405. }
  406. finally
  407. {
  408. if (conn.State == ConnectionState.Open)
  409. {
  410. conn.Close();
  411. }
  412. conn.Dispose();
  413. }
  414. }
  415. catch (Exception ex)
  416. {
  417. throw new Exception(ex.Message);
  418. }
  419. }
  420. //删除认证项目
  421. public string DeleteCertiFicateite(string CERTIFICATEITEMCODE)
  422. {
  423. string sql = string.Empty;
  424. string msg = "";
  425. CERTIFICATEITEMCODE = CERTIFICATEITEMCODE.Substring(1, CERTIFICATEITEMCODE.Length - 2);
  426. sql = string.Format(@"SELECT * FROM dbo.ICSCERTIFICATE2
  427. WHERE CERTIFICATEITEMCODE IN (SELECT CERTIFICATEITEMCODE FROM dbo.ICSCERTIFICATE WHERE CERTIFICATEITEMCODE IN ({0}))", CERTIFICATEITEMCODE.TrimEnd(','));
  428. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  429. if (dtASN != null && dtASN.Rows.Count > 0)
  430. {
  431. throw new Exception("该认证项目已和认证类型关联,请先删除关联关系!");
  432. }
  433. sql = @"delete FROM ICSCERTIFICATE2 where CERTIFICATEITEMCODE in ({0})";
  434. sql = string.Format(sql, CERTIFICATEITEMCODE.TrimEnd(','));
  435. try
  436. {
  437. SqlHelper.ExecuteNonQuery(sql);
  438. }
  439. catch (Exception ex)
  440. {
  441. msg = ex.Message;
  442. }
  443. return msg;
  444. }
  445. public string DeleteCertifiCationMaintionRelAdd(string ID, string CERTIFICATETPYECODE)
  446. {
  447. string sql = string.Empty;
  448. ID = ID.Substring(1, ID.Length - 2);
  449. string msg = "";
  450. sql = string.Format(@"SELECT * FROM dbo.ICSCERTIFICATE
  451. WHERE CERTIFICATETPYECODE IN (SELECT CERTIFICATETPYECODE FROM dbo.ICSCERTIFICATEITEM WHERE CERTIFICATETPYECODE IN ('{0}'))", CERTIFICATETPYECODE);
  452. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  453. if (dtASN != null && dtASN.Rows.Count > 0)
  454. {
  455. throw new Exception("该认证类型已被供应商关联,请先删除供应商和认证类型关联关系!");
  456. }
  457. sql = @"delete FROM ICSCERTIFICATE where ID in ({0})";
  458. sql = string.Format(sql, ID.TrimEnd(','));
  459. try
  460. {
  461. SqlHelper.ExecuteNonQuery(sql);
  462. }
  463. catch (Exception ex)
  464. {
  465. msg = ex.Message;
  466. }
  467. return msg;
  468. }
  469. /// <summary>
  470. /// 认证资料供应商关联查询
  471. /// </summary>
  472. /// <param name="queryJson"></param>
  473. /// <param name="jqgridparam"></param>
  474. /// <returns></returns>
  475. public DataTable GetICSCertifiiCateItem(string queryJson, ref Pagination jqgridparam)
  476. {
  477. DataTable dt = new DataTable();
  478. var queryParam = queryJson.ToJObject();
  479. List<DbParameter> parameter = new List<DbParameter>();
  480. string sql = @" select distinct
  481. a.FORMCODE
  482. ,a.VENDORCODE
  483. ,a.CERTIFICATETPYECODE
  484. ,a.CERTIFICATETYPENAME
  485. ,a.CREATEDATE
  486. ,a.WorkPoint
  487. ,b.VenName cVenName
  488. from ICSCERTIFICATEITEM a
  489. LEFT JOIN ICSVendor b on a.VENDORCODE=b.VenCode and a.WorkPoint=b.WorkPoint
  490. WHERE 1=1";
  491. if (!string.IsNullOrWhiteSpace(queryJson))
  492. {
  493. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeCode"].ToString()))
  494. {
  495. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CertifiCateTpyeCode"].ToString() + "%' ";
  496. }
  497. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeName"].ToString()))
  498. {
  499. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CertifiCateTpyeName"].ToString() + "%' ";
  500. }
  501. if (!string.IsNullOrWhiteSpace(queryParam["VENDORCODE"].ToString()))
  502. {
  503. sql += " and a.VENDORCODE like '%" + queryParam["VENDORCODE"].ToString() + "%' ";
  504. }
  505. if (!string.IsNullOrWhiteSpace(queryParam["cVenName"].ToString()))
  506. {
  507. sql += " and a.cVenName like '%" + queryParam["cVenName"].ToString() + "%' ";
  508. }
  509. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEBegion"].ToString()))
  510. {
  511. sql += " and a.CREATEDATE >= '" + queryParam["CREATEDATEBegion"].ToString() + "' ";
  512. }
  513. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEEnd"].ToString()))
  514. {
  515. sql += " and a.CREATEDATE <= '" + queryParam["CREATEDATEEnd"].ToString() + "' ";
  516. }
  517. }
  518. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  519. {
  520. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  521. }
  522. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  523. }
  524. public DataRow GetCeriIFicateItem(string ID)
  525. {
  526. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  527. DataRow dr = null;
  528. string sql = string.Empty;
  529. try
  530. {
  531. sql = @"SELECT
  532. CERTIFICATETPYECODE,
  533. VENDORCODE
  534. FROM ICSCERTIFICATEITEM
  535. WHERE ID='" + ID + "' and WorkPoint in (" + WorkPoint + ")";
  536. dr = SqlHelper.GetDataRowBySql(sql);
  537. return dr;
  538. }
  539. catch (Exception ex)
  540. {
  541. throw new Exception(ex.Message);
  542. }
  543. }
  544. /// <summary>
  545. /// 创建供应商与类型关联
  546. /// </summary>
  547. /// <param name="queryJson"></param>
  548. /// <returns></returns>
  549. public void SubmitCeriIFicate(string queryJson, string queryJson2, string WorkPoint)
  550. {
  551. try
  552. {
  553. DataTable dt = new DataTable();
  554. List<DbParameter> parameter = new List<DbParameter>();
  555. ICSCERTIFICATEITEM[] list = JsonConvert.DeserializeObject<ICSCERTIFICATEITEM[]>(queryJson);
  556. ICSVendor[] VendorList = JsonConvert.DeserializeObject<ICSVendor[]>(queryJson2);
  557. string sql = string.Empty;
  558. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  559. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  560. conn.Open();
  561. SqlTransaction sqlTran = conn.BeginTransaction();
  562. SqlCommand cmd = new SqlCommand();
  563. cmd.Transaction = sqlTran;
  564. cmd.Connection = conn;
  565. try
  566. {
  567. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Trim(',');
  568. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  569. foreach (var obj in list)
  570. {
  571. foreach (var itemwh in VendorList)
  572. {
  573. string Pre = "RZ" + obj.CERTIFICATETPYECODE + itemwh.VenCode;
  574. string FORMCODE = GetSerialCode(WorkPoint, "ICSCERTIFICATEITEM", "FORMCODE", Pre, 3);
  575. sql = "select * from ICSCERTIFICATEITEM where CERTIFICATETPYECODE='" + obj.CERTIFICATETPYECODE + "' and VENDORCODE = '" + itemwh.VenCode + "'";
  576. dt = SqlCommandHelper.SQlReturnData(sql, cmd);
  577. if (dt != null && dt.Rows.Count > 0)
  578. {
  579. throw new Exception("供应商已经关联资料");
  580. }
  581. sql = @" INSERT INTO dbo.ICSCERTIFICATEITEM
  582. (ID
  583. ,FORMCODE
  584. ,WorkPoint
  585. ,VENDORCODE
  586. ,CERTIFICATETPYECODE
  587. ,CERTIFICATETYPENAME
  588. ,CERTIFICATEITEMCODE
  589. ,CERTIFICATEITEMNAME
  590. ,ISKEYTASK
  591. ,NEEDUPLOADFILE
  592. ,PLANFINISHDAYS
  593. ,PLANFINISHDATE
  594. ,ActualFINISHDATE
  595. ,AUDITRESULT
  596. ,CREATEDATE
  597. ,CREATETIME
  598. ,CREATEUSER
  599. ,MODIFIEDDATE
  600. ,MODIFIEDTIME
  601. ,MODIFIEDUSER
  602. ,ApplyDATE
  603. ,ApplyIME
  604. ,ApplyUSER
  605. ,ADDITION1
  606. ,ARRIVEQTY
  607. )
  608. select NEWID()
  609. ,@FORMCODE
  610. ,@WORKPOINT
  611. ,@VENDORCODE
  612. ,CERTIFICATETPYECODE
  613. ,CERTIFICATETYPENAME
  614. ,CERTIFICATEITEMCODE
  615. ,CERTIFICATEITEMNAME
  616. ,ISKEYTASK
  617. ,NEEDUPLOADFILE
  618. ,PLANFINISHDAYS
  619. ,DATEADD(DAY,PLANFINISHDAYS,GETDATE())
  620. ,''
  621. ,@AUDITRESULT
  622. ,GETDATE()
  623. ,CONVERT(varchar,GETDATE(),120)
  624. ,@CREATEUSER
  625. ,''
  626. ,''
  627. ,''
  628. ,''
  629. ,''
  630. ,''
  631. ,''
  632. ,''
  633. from ICSCERTIFICATE where CERTIFICATETPYECODE=@CERTIFICATETPYECODE
  634. ";
  635. SqlParameter[] sp_Detail = {
  636. new SqlParameter("ID",obj.ID),
  637. new SqlParameter("@FORMCODE",FORMCODE),
  638. new SqlParameter("@WORKPOINT",itemwh.WorkPoint),
  639. new SqlParameter("@VENDORCODE",itemwh.VenCode),
  640. new SqlParameter("@AUDITRESULT","NEW"),
  641. new SqlParameter("@CERTIFICATETPYECODE",obj.CERTIFICATETPYECODE),
  642. new SqlParameter("@CREATEUSER",UserCode),
  643. new SqlParameter("@MODIFIEDUSER",UserCode),
  644. };
  645. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  646. #region 发邮件给供应商
  647. //string sqlMail = "SELECT F_Mail FROM Sys_SRm_User where F_VenCode='" + itemwh.VenCode + "'";
  648. //DataTable dtMail = SqlHelper.GetDataTableBySql(sqlMail);
  649. //if (!string.IsNullOrWhiteSpace(dtMail.Rows[0]["F_Mail"].ToString()))
  650. //{
  651. // string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  652. // if (MailOpen == "true")
  653. // {
  654. // string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  655. // string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  656. // int SendPort = 25;
  657. // if (!string.IsNullOrEmpty(StrSendPort))
  658. // SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  659. // string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  660. // string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  661. // string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  662. // string VenName = itemwh.VenCode;
  663. // string CCAddress = "";
  664. // string Subject = "";
  665. // bool isBodyHtml = false;
  666. // string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  667. // string body = VenName + ":";
  668. // body += "\r\n";
  669. // body += " 您好! 您有一个认证类型在SRM中待维护,请及时处理!请注意计划完成日期,逾期请在补录中进行重新维护。";
  670. // body += "\r\n";
  671. // body += " 顺颂商祺!";
  672. // body += "\r\n";
  673. // body += " 佑伦真空设备科技有限公司";
  674. // body += "\r\n";
  675. // body += " " + NowDate;
  676. // string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  677. // MailHelper.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, dtMail.Rows[0]["F_Mail"].ToString(), CCAddress, Subject, isBodyHtml, body);
  678. // }
  679. //}
  680. #endregion
  681. }
  682. }
  683. cmd.Transaction.Commit();
  684. }
  685. catch (Exception ex)
  686. {
  687. cmd.Transaction.Rollback();
  688. throw new Exception(ex.Message);
  689. }
  690. finally
  691. {
  692. if (conn.State == ConnectionState.Open)
  693. {
  694. conn.Close();
  695. }
  696. conn.Dispose();
  697. }
  698. }
  699. catch (Exception ex)
  700. {
  701. throw new Exception(ex.Message);
  702. }
  703. }
  704. /// <summary>
  705. /// 获取单号
  706. /// </summary>
  707. /// <param name="workPointCode"></param>
  708. /// <param name="tbName"></param>
  709. /// <param name="colName"></param>
  710. /// <param name="Pre"></param>
  711. /// <param name="numLen"></param>
  712. /// <returns></returns>
  713. public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
  714. {
  715. string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
  716. sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
  717. return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
  718. }
  719. /// <summary>
  720. /// 获取单号
  721. /// </summary>
  722. /// <param name="workPointCode"></param>
  723. /// <param name="tbName"></param>
  724. /// <param name="colName"></param>
  725. /// <param name="Pre"></param>
  726. /// <param name="numLen"></param>
  727. /// <returns></returns>
  728. public string GetSerialCodeBYVenDor(string workPointCode, string tbName, string colName, string Pre, int numLen)
  729. {
  730. string sql = "EXEC Addins_GetSerialCode '','{0}','{1}','{2}',{3}";
  731. sql = string.Format(sql, new object[] {tbName, colName, Pre, numLen });
  732. return DbHelper.ExecuteScalarByVenDor(CommandType.Text, sql).ToString();
  733. }
  734. /// <summary>
  735. /// 认证类型维护
  736. /// </summary>
  737. /// <param name="queryJson"></param>
  738. /// <param name="jqgridparam"></param>
  739. /// <returns></returns>
  740. public DataTable GetCertificateTypeMaintion(string queryJson, ref Pagination jqgridparam)
  741. {
  742. DataTable dt = new DataTable();
  743. var queryParam = queryJson.ToJObject();
  744. List<DbParameter> parameter = new List<DbParameter>();
  745. string sql = @"select
  746. ID
  747. ,CERTIFICATETPYECODE
  748. ,CERTIFICATETYPENAME
  749. ,CREATEDATE
  750. ,WorkPoint
  751. from ICSCERTIFICATETYPE a
  752. WHERE 1=1";
  753. if (!string.IsNullOrWhiteSpace(queryJson))
  754. {
  755. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeCode"].ToString()))
  756. {
  757. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CertifiCateTpyeCode"].ToString() + "%' ";
  758. }
  759. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeName"].ToString()))
  760. {
  761. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CertifiCateTpyeName"].ToString() + "%' ";
  762. }
  763. }
  764. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  765. {
  766. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  767. }
  768. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  769. }
  770. /// <summary>
  771. /// 修改时获取主表信息
  772. /// </summary>
  773. /// <param name="tmpID"></param>
  774. /// <param name="WorkPoint"></param>
  775. /// <returns></returns>
  776. public DataRow GetCertificateTypeAdd(string CERTIFICATETPYECODE,string WorkPoint)
  777. {
  778. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  779. List<DbParameter> parameter = new List<DbParameter>();
  780. string sql = string.Empty;
  781. try
  782. {
  783. sql = @"SELECT * FROM ICSCERTIFICATETYPE
  784. WHERE CERTIFICATETPYECODE='" + CERTIFICATETPYECODE + "' and WorkPoint = '" + WorkPoint + "'";
  785. DataRow dt = SqlHelper.GetDataRowBySql(sql);
  786. return dt;
  787. }
  788. catch (Exception ex)
  789. {
  790. throw new Exception(ex.Message);
  791. }
  792. }
  793. /// <summary>
  794. /// 创建认证类型
  795. /// </summary>
  796. /// <param name="queryJson"></param>
  797. /// <returns></returns>
  798. public void SubmitCertificateType(string queryJson, string ID)
  799. {
  800. try
  801. {
  802. DataTable dt = new DataTable();
  803. List<DbParameter> parameter = new List<DbParameter>();
  804. ICSCERTIFICATE[] list = JsonConvert.DeserializeObject<ICSCERTIFICATE[]>(queryJson);
  805. string sql = string.Empty;
  806. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  807. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  808. conn.Open();
  809. SqlTransaction sqlTran = conn.BeginTransaction();
  810. SqlCommand cmd = new SqlCommand();
  811. cmd.Transaction = sqlTran;
  812. cmd.Connection = conn;
  813. try
  814. {
  815. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  816. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", "");
  817. ////string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  818. sql = "select * from ICSCERTIFICATETYPE where CERTIFICATETPYECODE='" + list[0].CERTIFICATETPYECODE + "'and ID!='" + ID + "'";
  819. dt = SqlCommandHelper.SQlReturnData(sql, cmd);
  820. if (dt != null && dt.Rows.Count > 0)
  821. {
  822. throw new Exception("认证类型已存在!");
  823. }
  824. sql = string.Format(@"SELECT CERTIFICATETPYECODE FROM dbo.ICSCERTIFICATETYPE
  825. WHERE CERTIFICATETPYECODE IN (SELECT CERTIFICATETPYECODE FROM dbo.ICSCERTIFICATE WHERE CERTIFICATETPYECODE IN ('{0}'))", list[0].CERTIFICATETPYECODE);
  826. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  827. if (dtASN != null && dtASN.Rows.Count > 0)
  828. {
  829. throw new Exception("所认证类型已被关联,请先在供应商关联中删除!");
  830. }
  831. foreach (var obj in list)
  832. {
  833. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSCERTIFICATETYPE WHERE ID=@ID)
  834. BEGIN
  835. INSERT INTO dbo.ICSCERTIFICATETYPE
  836. (ID
  837. ,WorkPoint
  838. ,CERTIFICATETPYECODE
  839. ,CERTIFICATETYPENAME
  840. ,CREATEDATE
  841. ,CREATETIME
  842. ,CREATEUSER
  843. ,MODIFIEDDATE
  844. ,MODIFIEDTIME
  845. ,MODIFIEDUSER
  846. ,REMARK
  847. ,ADDITION1
  848. ,ADDITION2
  849. )
  850. VALUES
  851. (
  852. NEWID()
  853. ,@WorkPoint
  854. ,@CERTIFICATETPYECODE
  855. ,@CERTIFICATETYPENAME
  856. ,GETDATE()
  857. ,CONVERT(varchar,GETDATE(),120)
  858. ,@CREATEUSER
  859. ,''
  860. ,''
  861. ,''
  862. ,''
  863. ,''
  864. ,'')
  865. END
  866. ELSE
  867. BEGIN
  868. UPDATE dbo.ICSCERTIFICATETYPE SET
  869. CERTIFICATETPYECODE=@CERTIFICATETPYECODE
  870. ,CERTIFICATETYPENAME=@CERTIFICATETYPENAME
  871. ,MODIFIEDDATE=GETDATE()
  872. ,MODIFIEDTIME=CONVERT(varchar,GETDATE(),120)
  873. ,MODIFIEDUSER=@MODIFIEDUSER
  874. WHERE ID=@ID
  875. END";
  876. SqlParameter[] sp_Detail = {
  877. new SqlParameter("@ID",ID),
  878. new SqlParameter("@CERTIFICATETPYECODE",obj.CERTIFICATETPYECODE),
  879. new SqlParameter("@CERTIFICATETYPENAME",obj.CERTIFICATETYPENAME),
  880. //new SqlParameter("@CREATEDATE","已保存"),
  881. //new SqlParameter("@CREATETIME","企业"),
  882. new SqlParameter("@CREATEUSER",UserCode),
  883. //new SqlParameter("@MODIFIEDDATE",Muser),
  884. new SqlParameter("@WorkPoint",obj.WorkPoint),
  885. new SqlParameter("@MODIFIEDUSER",UserCode),
  886. };
  887. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  888. }
  889. cmd.Transaction.Commit();
  890. }
  891. catch (Exception ex)
  892. {
  893. cmd.Transaction.Rollback();
  894. throw new Exception(ex.Message);
  895. }
  896. finally
  897. {
  898. if (conn.State == ConnectionState.Open)
  899. {
  900. conn.Close();
  901. }
  902. conn.Dispose();
  903. }
  904. }
  905. catch (Exception ex)
  906. {
  907. throw new Exception(ex.Message);
  908. }
  909. }
  910. //删除认证类型
  911. public string DeleteCertificateType(string CERTIFICATETPYECODE)
  912. {
  913. string sql = string.Empty;
  914. string msg = "";
  915. CERTIFICATETPYECODE = CERTIFICATETPYECODE.Substring(1, CERTIFICATETPYECODE.Length - 2);
  916. sql = string.Format(@"SELECT CERTIFICATETPYECODE FROM dbo.ICSCERTIFICATETYPE
  917. WHERE CERTIFICATETPYECODE IN (SELECT CERTIFICATETPYECODE FROM dbo.ICSCERTIFICATE WHERE CERTIFICATETPYECODE IN ({0}))", CERTIFICATETPYECODE.TrimEnd(','));
  918. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  919. if (dtASN != null && dtASN.Rows.Count > 0)
  920. {
  921. throw new Exception("所认证类型已被关联,请先在供应商关联中删除!");
  922. }
  923. sql = @"delete FROM ICSCERTIFICATETYPE where CERTIFICATETPYECODE in ({0})";
  924. sql = string.Format(sql, CERTIFICATETPYECODE.TrimEnd(','));
  925. try
  926. {
  927. SqlHelper.ExecuteNonQuery(sql);
  928. }
  929. catch (Exception ex)
  930. {
  931. msg = ex.Message;
  932. }
  933. return msg;
  934. }
  935. public string DeleteCertiFicateiteRZ(string ID, string VENDORCODE)
  936. {
  937. string sql = string.Empty;
  938. string msg = "";
  939. ID = ID.Substring(1, ID.Length - 2);
  940. VENDORCODE = VENDORCODE.Substring(1, VENDORCODE.Length - 2);
  941. sql = string.Format(@"SELECT * FROM dbo.ICSCERTIFICATEITEM
  942. WHERE ID IN (SELECT GGUID FROM dbo.ICSCERTIFICATEITEMDETAIL WHERE CERTIFICATETPYECODE IN ({0})) and VENDORCODE in({1})", ID.TrimEnd(','), VENDORCODE.TrimEnd(','));
  943. DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
  944. if (dtASN != null && dtASN.Rows.Count > 0)
  945. {
  946. throw new Exception("该认证类型的项目已被供应商认证,无法删除!");
  947. }
  948. sql = @"delete FROM ICSCERTIFICATEITEM where CERTIFICATETPYECODE in ({0}) and VENDORCODE in({1})";
  949. sql = string.Format(sql, ID.TrimEnd(','), VENDORCODE.TrimEnd(','));
  950. try
  951. {
  952. SqlHelper.ExecuteNonQuery(sql);
  953. }
  954. catch (Exception ex)
  955. {
  956. msg = ex.Message;
  957. }
  958. return msg;
  959. }
  960. public DataTable GetICSCertifiiCateItemDetailCK(string CERTIFICATETPYECODE, string VENDORCODE, ref Pagination jqgridparam, string WorkPoint)
  961. {
  962. DataTable dt = new DataTable();
  963. CERTIFICATETPYECODE = CERTIFICATETPYECODE.Substring(1, CERTIFICATETPYECODE.Length - 2);
  964. VENDORCODE = VENDORCODE.Substring(1, VENDORCODE.Length - 2);
  965. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  966. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  967. List<DbParameter> parameter = new List<DbParameter>();
  968. string sql = @"select
  969. distinct
  970. a.ID
  971. ,a.CERTIFICATEITEMCODE
  972. ,a.CERTIFICATEITEMNAME
  973. ,case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK
  974. ,case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE
  975. from ICSCERTIFICATEITEM a
  976. LEFT JOIN ICSCERTIFICATE b on a.CERTIFICATEITEMCODE=b.CERTIFICATEITEMCODE
  977. where a.CERTIFICATETPYECODE='" + CERTIFICATETPYECODE + "' and VENDORCODE ='" + VENDORCODE + "' and a.WorkPoint='" + WorkPoint+ "'";
  978. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  979. }
  980. public int UpLoadFile(string FilePath, string FileName, string ID)
  981. {
  982. DataTable dt = new DataTable();
  983. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  984. string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
  985. string sql = "";
  986. sql += string.Format(@"update ICSCERTIFICATEITEMDETAIL set CERTIFICATETPYECODE=isnull(VendorFileName,'')+'{0}'
  987. where ID='{1}'",
  988. FilePath, ID);
  989. sql += "\r\n";
  990. StringBuilder Str = new StringBuilder(sql);
  991. return Repository().ExecuteBySql(Str);
  992. }
  993. /// <summary>
  994. /// 保存主档信息
  995. /// </summary>
  996. /// <param name="queryJson"></param>
  997. /// <returns></returns>
  998. public void SubmitCertificateItemDetail(string queryJson, string ItemID,string ID)
  999. {
  1000. try
  1001. {
  1002. DataTable dt = new DataTable();
  1003. List<DbParameter> parameter = new List<DbParameter>();
  1004. ICSCERTIFICATEITEMDETAIL[] list = JsonConvert.DeserializeObject<ICSCERTIFICATEITEMDETAIL[]>(queryJson);
  1005. string sql = string.Empty;
  1006. string sqls = string.Empty;
  1007. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1008. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1009. conn.Open();
  1010. SqlTransaction sqlTran = conn.BeginTransaction();
  1011. SqlCommand cmd = new SqlCommand();
  1012. cmd.Transaction = sqlTran;
  1013. cmd.Connection = conn;
  1014. try
  1015. {
  1016. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1017. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", "");
  1018. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1019. foreach (var obj in list)
  1020. {
  1021. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSCERTIFICATEITEMDETAIL WHERE GGUID=@GGUID)
  1022. BEGIN
  1023. INSERT INTO dbo.ICSCERTIFICATEITEMDETAIL
  1024. (ID
  1025. ,GGUID
  1026. ,BEGINDATE
  1027. ,ENDDATE
  1028. ,CERTIFICATENO
  1029. ,CERTIFICATETYPENAME
  1030. ,CERTIFICATETYPENFileName
  1031. ,CERTIFICATIONINSTITUTIONS
  1032. ,STATUS
  1033. ,CREATEDATE
  1034. ,CREATETIME
  1035. ,CREATEUSER
  1036. ,MODIFIEDDATE
  1037. ,MODIFIEDTIME
  1038. ,MODIFIEDUSER
  1039. ,REMARK
  1040. ,ADDITION1
  1041. ,ADDITION2
  1042. ,WorkPoint
  1043. )
  1044. VALUES
  1045. (
  1046. NEWID()
  1047. ,@GGUID
  1048. ,@BEGINDATE
  1049. ,@ENDDATE
  1050. ,@CERTIFICATENO
  1051. ,@CERTIFICATETYPENAME
  1052. ,@CERTIFICATETYPENFileName
  1053. ,@CERTIFICATIONINSTITUTIONS
  1054. ,''
  1055. ,GETDATE()
  1056. ,CONVERT(varchar,GETDATE(),120)
  1057. ,@CREATEUSER
  1058. ,''
  1059. ,''
  1060. ,''
  1061. ,''
  1062. ,@ADDITION1
  1063. ,''
  1064. ,@WorkPoint)
  1065. END
  1066. ELSE
  1067. BEGIN
  1068. UPDATE dbo.ICSCERTIFICATEITEMDETAIL SET
  1069. BEGINDATE=@BEGINDATE
  1070. ,ENDDATE=@ENDDATE
  1071. ,CERTIFICATENO=@CERTIFICATENO
  1072. ,CERTIFICATETYPENAME=@CERTIFICATETYPENAME
  1073. ,CERTIFICATETYPENFileName=@CERTIFICATETYPENFileName
  1074. ,CERTIFICATIONINSTITUTIONS=@CERTIFICATIONINSTITUTIONS
  1075. ,STATUS=''
  1076. ,MODIFIEDDATE=GETDATE()
  1077. ,MODIFIEDTIME=CONVERT(varchar,GETDATE(),120)
  1078. ,MODIFIEDUSER=@MODIFIEDUSER
  1079. ,ADDITION1=@ADDITION1
  1080. ,WorkPoint=@WorkPoint
  1081. WHERE GGUID=@GGUID
  1082. END";
  1083. SqlParameter[] sp_Detail = {
  1084. new SqlParameter("@ID",ItemID),//当前表ID
  1085. new SqlParameter("@GGUID",ID),//主表ID
  1086. new SqlParameter("@BEGINDATE",obj.BEGINDATE),
  1087. new SqlParameter("@ENDDATE",obj.ENDDATE),
  1088. new SqlParameter("@CERTIFICATENO",obj.CERTIFICATENO),
  1089. new SqlParameter("@CERTIFICATETYPENAME",obj.CERTIFICATETYPENAME),
  1090. new SqlParameter("@CERTIFICATETYPENFileName",obj.CERTIFICATETYPENFileName),
  1091. new SqlParameter("@CERTIFICATIONINSTITUTIONS",obj.CERTIFICATIONINSTITUTIONS),
  1092. new SqlParameter("@WorkPoint",obj.WorkPoint),
  1093. new SqlParameter("@CREATEUSER",UserCode),
  1094. new SqlParameter("@MODIFIEDUSER",UserCode),
  1095. new SqlParameter("@ADDITION1",obj.ADDITION1)
  1096. };
  1097. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1098. sqls += @"Update ICSCERTIFICATEITEM Set AUDITRESULT='Check' Where ID=@GGUID";
  1099. SqlParameter[] sp_Details = {
  1100. new SqlParameter("@GGUID",ID),
  1101. };
  1102. SqlCommandHelper.CmdExecuteNonQuery(sqls, sp_Details, cmd);
  1103. }
  1104. cmd.Transaction.Commit();
  1105. }
  1106. catch (Exception ex)
  1107. {
  1108. cmd.Transaction.Rollback();
  1109. throw new Exception(ex.Message);
  1110. }
  1111. finally
  1112. {
  1113. if (conn.State == ConnectionState.Open)
  1114. {
  1115. conn.Close();
  1116. }
  1117. conn.Dispose();
  1118. }
  1119. }
  1120. catch (Exception ex)
  1121. {
  1122. throw new Exception(ex.Message);
  1123. }
  1124. }
  1125. public DataTable GetICSCertifiiCateItemDetailSearch(string queryJson, ref Pagination jqgridparam)
  1126. {
  1127. DataTable dt = new DataTable();
  1128. var queryParam = queryJson.ToJObject();
  1129. List<DbParameter> parameter = new List<DbParameter>();
  1130. // string sql = @"select
  1131. // a.ID,
  1132. // case when b.GGUID<>'' and b.STATUS<>'失效' Then '已维护'WHEN b.STATUS='失效' THEN '失效' WHEN Getdate()> a.PLANFINISHDATE THEN
  1133. //'已逾期' ELSE '未维护' End as AUDITRESULT,
  1134. // a.VENDORCODE,
  1135. // c.cVenName,
  1136. // a.CERTIFICATETPYECODE,
  1137. // a.CERTIFICATETYPENAME,
  1138. // a.CERTIFICATEITEMCODE,
  1139. // a.CERTIFICATEITEMNAME,
  1140. // b.CERTIFICATIONINSTITUTIONS,
  1141. // case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK,
  1142. // case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE ,
  1143. // b.BEGINDATE,
  1144. // b.ENDDATE,
  1145. // b.CERTIFICATETYPENFileName,
  1146. // a.PLANFINISHDATE,
  1147. // b.CREATEDATE
  1148. // from ICSCERTIFICATEITEM a
  1149. // LEFT JOIN ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and a.WorkPoint=b.WorkPoint and b.AUDITRESULT<>'REJECT'
  1150. // LEFT JOIN ICSVendor c on a.VENDORCODE=c.cVenCode and b.WorkPoint=c.WorkPoint
  1151. // WHERE 1=1 and case when b.GGUID<>'' and b.STATUS<>'失效' Then '已维护'WHEN b.STATUS='失效' THEN '失效' WHEN Getdate()> a.PLANFINISHDATE THEN
  1152. // '已逾期' ELSE '未维护' END IN('失效','已逾期')";
  1153. string sql = @" select distinct
  1154. a.ID,
  1155. b.STATUS,
  1156. case when a.AUDITRESULT='pass' AND b.STATUS='' Then ''WHEN b.STATUS='' THEN '' WHEN Getdate()> a.PLANFINISHDATE AND a.AUDITRESULT in ('New','REJECT') THEN
  1157. '' ELSE '' End as AUDITRESULT,
  1158. a.VENDORCODE,
  1159. c.cVenName,
  1160. a.CERTIFICATETPYECODE,
  1161. a.CERTIFICATETYPENAME,
  1162. a.CERTIFICATEITEMCODE,
  1163. a.CERTIFICATEITEMNAME,
  1164. b.CERTIFICATIONINSTITUTIONS,
  1165. case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK,
  1166. case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE ,
  1167. b.BEGINDATE,
  1168. b.ENDDATE,
  1169. b.CERTIFICATETYPENFileName,
  1170. a.PLANFINISHDATE,
  1171. b.CREATEDATE
  1172. from ICSCERTIFICATEITEM a
  1173. LEFT JOIN ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and a.WorkPoint=b.WorkPoint and isnull(b.AUDITRESULT,'')<>'REJECT'
  1174. LEFT JOIN ICSVendor c on a.VENDORCODE=c.cVenCode and b.WorkPoint=c.WorkPoint
  1175. WHERE 1=1 and case when a.AUDITRESULT='pass'AND b.STATUS='' Then ''WHEN b.STATUS='' THEN '' WHEN Getdate()> a.PLANFINISHDATE AND a.AUDITRESULT='New' THEN '' ELSE '' End IN('','') ";
  1176. if (!string.IsNullOrWhiteSpace(queryJson))
  1177. {
  1178. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeCode"].ToString()))
  1179. {
  1180. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CertifiCateTpyeCode"].ToString() + "%' ";
  1181. }
  1182. if (!string.IsNullOrWhiteSpace(queryParam["CertifiCateTpyeName"].ToString()))
  1183. {
  1184. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CertifiCateTpyeName"].ToString() + "%' ";
  1185. }
  1186. if (!string.IsNullOrWhiteSpace(queryParam["VENDORCODE"].ToString()))
  1187. {
  1188. sql += " and a.VENDORCODE like '%" + queryParam["VENDORCODE"].ToString() + "%' ";
  1189. }
  1190. if (!string.IsNullOrWhiteSpace(queryParam["cVenName"].ToString()))
  1191. {
  1192. sql += " and a.cVenName like '%" + queryParam["cVenName"].ToString() + "%' ";
  1193. }
  1194. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEBegion"].ToString()))
  1195. {
  1196. sql += " and a.CREATEDATE >= '" + queryParam["CREATEDATEBegion"].ToString() + "' ";
  1197. }
  1198. if (!string.IsNullOrWhiteSpace(queryParam["CREATEDATEEnd"].ToString()))
  1199. {
  1200. sql += " and a.CREATEDATE <= '" + queryParam["CREATEDATEEnd"].ToString() + "' ";
  1201. }
  1202. if (!string.IsNullOrWhiteSpace(queryParam["status"].ToString()))
  1203. {
  1204. sql += " and case when b.GGUID<>'' Then '已维护' When Getdate()> a.PLANFINISHDATE Then '已逾期' Else '未维护' End in (" + queryParam["status"].ToString().TrimEnd(',') + ") ";
  1205. }
  1206. }
  1207. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1208. {
  1209. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1210. }
  1211. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1212. {
  1213. sql += " and c.cVenCode in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  1214. }
  1215. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1216. }
  1217. /// <summary>
  1218. /// 修改时获取主表信息
  1219. /// </summary>
  1220. /// <param name="tmpID"></param>
  1221. /// <param name="WorkPoint"></param>
  1222. /// <returns></returns>
  1223. public DataRow GetCertifiCateTpyeDetail(string ItemID)
  1224. {
  1225. DataRow dr = null;
  1226. string sql = string.Empty;
  1227. try
  1228. {
  1229. sql = @"SELECT
  1230. CERTIFICATIONINSTITUTIONS,
  1231. BEGINDATE,
  1232. ENDDATE,
  1233. CERTIFICATENO,
  1234. CERTIFICATETYPENAME,
  1235. CERTIFICATETYPENFileName
  1236. FROM ICSCERTIFICATEITEMDETAIL
  1237. WHERE ID='" + ItemID + "'";
  1238. dr = SqlHelper.GetDataRowBySql(sql);
  1239. return dr;
  1240. }
  1241. catch (Exception ex)
  1242. {
  1243. throw new Exception(ex.Message);
  1244. }
  1245. }
  1246. /// <summary>
  1247. /// 供应商准入-注册状态查询
  1248. /// </summary>
  1249. /// <param name="queryJson"></param>
  1250. /// <param name="jqgridparam"></param>
  1251. /// <returns></returns>
  1252. public DataTable GetVendorTemp(string queryJson, ref Pagination jqgridparam)
  1253. {
  1254. DataTable dt = new DataTable();
  1255. var queryParam = queryJson.ToJObject();
  1256. List<DbParameter> parameter = new List<DbParameter>();
  1257. string sql = @"SELECT DISTINCT
  1258. --a.TEMPVENDORCODE,
  1259. case when RegistrationStatus='' then c.F_Account else a.TEMPVENDORCODE end as TEMPVENDORCODE,
  1260. a.TEMPVENDORCODE as TEMPVENDORCODELS,
  1261. a.TEMPVENDORNAME,
  1262. VENDORAbbreviation,
  1263. VENDORTYPE,
  1264. RegistrationStatus,
  1265. b.TEMPVENDORAttribute,
  1266. a.WorkPoint,
  1267. a.VenCode,
  1268. a.CONTACTNAME,
  1269. a.CREATEDATE,
  1270. RegistrationStatus as RegistrationStatusColor,
  1271. a.ADDITIon5,
  1272. a.ADDITION3,
  1273. a.ADDITION4
  1274. FROM dbo.ICSPREVENDOR a
  1275. LEFT JOIN dbo.ICSPREVENDORBasic b ON a.TEMPVENDORCODE=b.TEMPVENDORCODE AND a.WorkPoint=b.WorkPoint
  1276. LEFT JOIN sys_srm_user c ON a.venCode=c.F_VenCode AND a.WorkPoint=c.F_Location
  1277. WHERE 1=1
  1278. ";
  1279. if (!string.IsNullOrWhiteSpace(queryJson))
  1280. {
  1281. if (!string.IsNullOrWhiteSpace(queryParam["WorkPoint"].ToString()))
  1282. {
  1283. sql += " and a.WorkPoint like '%" + queryParam["WorkPoint"].ToString() + "%' ";
  1284. }
  1285. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORNAME"].ToString()))
  1286. {
  1287. sql += " and a.TEMPVENDORNAME like '%" + queryParam["TEMPVENDORNAME"].ToString() + "%' ";
  1288. }
  1289. if (!string.IsNullOrWhiteSpace(queryParam["CONTACTNAME"].ToString()))
  1290. {
  1291. sql += " and a.CONTACTNAME like '%" + queryParam["CONTACTNAME"].ToString() + "%' ";
  1292. }
  1293. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORAttribute"].ToString()))
  1294. {
  1295. sql += " and a.TEMPVENDORAttribute like '%" + queryParam["TEMPVENDORAttribute"].ToString() + "%' ";
  1296. }
  1297. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORCODE"].ToString()))
  1298. {
  1299. sql += " and a.TEMPVENDORCODE like '%" + queryParam["TEMPVENDORCODE"].ToString() + "%' ";
  1300. }
  1301. if (!string.IsNullOrWhiteSpace(queryParam["RegistrationStatus"].ToString()))
  1302. {
  1303. sql += " and a.RegistrationStatus = '" + queryParam["RegistrationStatus"].ToString() + "' ";
  1304. }
  1305. }
  1306. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1307. //{
  1308. // sql = SqlHelper.OrganizeByVendor_F_ParentId(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1309. //}
  1310. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1311. {
  1312. sql += " and a.ADDITIon2 = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName.TrimEnd(',') + "'";
  1313. }
  1314. //if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1315. //{
  1316. // sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1317. //}
  1318. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1319. }
  1320. public DataTable GetVendorTempByYL(string queryJson, ref Pagination jqgridparam)
  1321. {
  1322. DataTable dt = new DataTable();
  1323. var queryParam = queryJson.ToJObject();
  1324. List<DbParameter> parameter = new List<DbParameter>();
  1325. string sql = @"SELECT DISTINCT
  1326. --a.TEMPVENDORCODE,
  1327. case when RegistrationStatus='' then c.F_Account else a.TEMPVENDORCODE end as TEMPVENDORCODE,
  1328. a.TEMPVENDORCODE as TEMPVENDORCODELS,
  1329. a.TEMPVENDORNAME,
  1330. VENDORAbbreviation,
  1331. VENDORTYPE,
  1332. RegistrationStatus,
  1333. b.TEMPVENDORAttribute,
  1334. a.WorkPoint,
  1335. a.VenCode,
  1336. a.CONTACTNAME,
  1337. a.CREATEDATE,
  1338. RegistrationStatus as RegistrationStatusColor,
  1339. a.ADDITIon5,
  1340. a.ADDITIon2
  1341. FROM dbo.ICSPREVENDOR a
  1342. LEFT JOIN dbo.ICSPREVENDORBasic b ON a.TEMPVENDORCODE=b.TEMPVENDORCODE AND a.WorkPoint=b.WorkPoint
  1343. LEFT JOIN sys_srm_user c ON a.venCode=c.F_VenCode AND a.WorkPoint=c.F_Location
  1344. WHERE 1=1
  1345. ";
  1346. if (!string.IsNullOrWhiteSpace(queryJson))
  1347. {
  1348. if (!string.IsNullOrWhiteSpace(queryParam["WorkPoint"].ToString()))
  1349. {
  1350. sql += " and a.WorkPoint like '%" + queryParam["WorkPoint"].ToString() + "%' ";
  1351. }
  1352. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORNAME"].ToString()))
  1353. {
  1354. sql += " and a.TEMPVENDORNAME like '%" + queryParam["TEMPVENDORNAME"].ToString() + "%' ";
  1355. }
  1356. if (!string.IsNullOrWhiteSpace(queryParam["CONTACTNAME"].ToString()))
  1357. {
  1358. sql += " and a.CONTACTNAME like '%" + queryParam["CONTACTNAME"].ToString() + "%' ";
  1359. }
  1360. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORAttribute"].ToString()))
  1361. {
  1362. sql += " and a.TEMPVENDORAttribute like '%" + queryParam["TEMPVENDORAttribute"].ToString() + "%' ";
  1363. }
  1364. if (!string.IsNullOrWhiteSpace(queryParam["TEMPVENDORCODE"].ToString()))
  1365. {
  1366. sql += " and a.TEMPVENDORCODE like '%" + queryParam["TEMPVENDORCODE"].ToString() + "%' ";
  1367. }
  1368. if (!string.IsNullOrWhiteSpace(queryParam["RegistrationStatus"].ToString()))
  1369. {
  1370. sql += " and a.RegistrationStatus = '" + queryParam["RegistrationStatus"].ToString() + "' ";
  1371. }
  1372. }
  1373. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1374. {
  1375. sql = SqlHelper.OrganizeByVendor_F_ParentId(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  1376. }
  1377. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1378. {
  1379. sql += " OR a.ADDITIon2 = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName.TrimEnd(',') + "'";
  1380. }
  1381. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1382. }
  1383. /// <summary>
  1384. /// 总览
  1385. /// </summary>
  1386. /// <param name="queryJson"></param>
  1387. /// <param name="jqgridparam"></param>
  1388. /// <returns></returns>
  1389. public DataTable GetICSCertifiiCateItemDetailSearchZL(string queryJson, ref Pagination jqgridparam)
  1390. {
  1391. DataTable dt = new DataTable();
  1392. var queryParam = queryJson.ToJObject();
  1393. List<DbParameter> parameter = new List<DbParameter>();
  1394. // string sql = @"
  1395. // select
  1396. // a.ID,
  1397. // a.WorkPoint,
  1398. // case when b.GGUID<>'' and b.STATUS<>'失效' Then '已维护'WHEN b.STATUS='失效' THEN '失效' WHEN Getdate()> a.PLANFINISHDATE THEN
  1399. //'已逾期' ELSE '未维护' End as AUDITRESULT,
  1400. // a.VENDORCODE,
  1401. // c.cVenName,
  1402. // a.CERTIFICATETPYECODE,
  1403. // a.CERTIFICATETYPENAME,
  1404. // a.CERTIFICATEITEMCODE,
  1405. // a.CERTIFICATEITEMNAME,
  1406. // b.CERTIFICATIONINSTITUTIONS,
  1407. // case When a.ISKEYTASK=0 Then '是'ELSE '否' END as ISKEYTASK,
  1408. // case When a.NEEDUPLOADFILE=0 Then '是'ELSE '否' END as NEEDUPLOADFILE ,
  1409. // b.BEGINDATE,
  1410. // b.ENDDATE,
  1411. // b.CERTIFICATETYPENFileName,
  1412. // a.PLANFINISHDATE,
  1413. // b.CREATEDATE
  1414. // from ICSCERTIFICATEITEM a
  1415. // LEFT JOIN ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and a.WorkPoint=b.WorkPoint
  1416. // LEFT JOIN ICSVendor c on a.VENDORCODE=c.cVenCode WHERE 1=1";
  1417. string sql = @"SELECT DISTINCT a.ID,a.WorkPoint,
  1418. case when a.AUDITRESULT='Check' THEN ''
  1419. WHEN a.AUDITRESULT='REJECT' THEN ''
  1420. WHEN b.STATUS= '' AND a.AUDITRESULT= 'pass' AND b.AUDITRESULT is Null THEN''
  1421. WHEN a.AUDITRESULT= 'pass' AND b.STATUS= '' THEN''
  1422. WHEN Getdate( ) > a.PLANFINISHDATE AND a.AUDITRESULT IN ( 'New', 'REJECT' ) THEN''
  1423. ELSE '' END AS AUDITRESULT,
  1424. case when a.AUDITRESULT='Check' THEN ''
  1425. WHEN a.AUDITRESULT='REJECT' THEN ''
  1426. WHEN b.STATUS= '' AND a.AUDITRESULT= 'pass' AND b.AUDITRESULT is Null THEN''
  1427. WHEN a.AUDITRESULT= 'pass' AND b.STATUS= '' THEN''
  1428. WHEN Getdate( ) > a.PLANFINISHDATE AND a.AUDITRESULT IN ( 'New', 'REJECT' ) THEN''
  1429. ELSE '' END AS AUDITRESULTS,
  1430. a.VENDORCODE,c.VenName cVenName,a.CERTIFICATETPYECODE,a.CERTIFICATETYPENAME,a.CERTIFICATEITEMCODE,
  1431. a.CERTIFICATEITEMNAME,b.CERTIFICATIONINSTITUTIONS,CASE WHEN a.ISKEYTASK= 0 THEN '是' ELSE '否' END AS ISKEYTASK,
  1432. CASE WHEN a.NEEDUPLOADFILE= 0 THEN '是' ELSE '否' END AS NEEDUPLOADFILE,b.BEGINDATE,b.ENDDATE,
  1433. b.CERTIFICATETYPENFileName,a.PLANFINISHDATE,b.CREATEDATE
  1434. FROM ICSCERTIFICATEITEM a
  1435. LEFT JOIN ICSCERTIFICATEITEMDETAIL b ON a.ID= b.GGUID AND a.WorkPoint= b.WorkPoint AND isnull(b.AUDITRESULT,'')<> 'REJECT'
  1436. LEFT JOIN ICSVendor c ON a.VENDORCODE= c.VenCode
  1437. WHERE 1 =1";
  1438. if (!string.IsNullOrWhiteSpace(queryJson))
  1439. {
  1440. if (!string.IsNullOrWhiteSpace(queryParam["WorkPoint"].ToString()))
  1441. {
  1442. sql += " and a.WorkPoint like '%" + queryParam["WorkPoint"].ToString() + "%' ";
  1443. }
  1444. if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
  1445. {
  1446. sql += " and a.VENDORCODE like '%" + queryParam["VenCode"].ToString() + "%' ";
  1447. }
  1448. if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
  1449. {
  1450. sql += " and c.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
  1451. }
  1452. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATETPYECODE"].ToString()))
  1453. {
  1454. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CERTIFICATETPYECODE"].ToString() + "%' ";
  1455. }
  1456. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATETYPENAME"].ToString()))
  1457. {
  1458. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CERTIFICATETYPENAME"].ToString() + "%' ";
  1459. }
  1460. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMCODE"].ToString()))
  1461. {
  1462. sql += " and a.CERTIFICATEITEMCODE like '%" + queryParam["CERTIFICATEITEMCODE"].ToString() + "%' ";
  1463. }
  1464. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMNAME"].ToString()))
  1465. {
  1466. sql += " and a.CERTIFICATEITEMNAME like '%" + queryParam["CERTIFICATEITEMNAME"].ToString() + "%' ";
  1467. }
  1468. if (!string.IsNullOrWhiteSpace(queryParam["status"].ToString()))
  1469. {
  1470. sql += @" and case when a.AUDITRESULT='Check' THEN '审核中'
  1471. WHEN a.AUDITRESULT='REJECT' THEN ''
  1472. WHEN b.STATUS= '' AND a.AUDITRESULT= 'pass' AND b.AUDITRESULT is Null THEN''
  1473. WHEN a.AUDITRESULT= 'pass' AND b.STATUS= '' THEN''
  1474. WHEN Getdate( ) > a.PLANFINISHDATE AND a.AUDITRESULT IN ( 'New', 'REJECT' ) THEN''
  1475. ELSE '' END in (" + queryParam["status"].ToString().TrimEnd(',') + ") ";
  1476. }
  1477. }
  1478. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  1479. {
  1480. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  1481. }
  1482. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  1483. {
  1484. sql += " and c.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  1485. }
  1486. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  1487. }
  1488. public DataTable GetCVCCode()
  1489. {
  1490. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  1491. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  1492. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  1493. string DBName = dtU9.Rows[0]["DBName"].ToString();
  1494. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1495. string sql = @"
  1496. select '' as cvccode,'' as cvname
  1497. union all
  1498. SELECT DISTINCT a.cvccode,isnull(a.cVCName,'') as cVenName FROM [{0}].{1}.dbo.VendorClass a ";
  1499. sql = string.Format(sql, U9IP, DBName);
  1500. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1501. return dt;
  1502. }
  1503. public DataTable GetVenSSCode()
  1504. {
  1505. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  1506. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  1507. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  1508. string DBName = dtU9.Rows[0]["DBName"].ToString();
  1509. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1510. string sql = @"
  1511. select '' as cSSCode,'' as cSSName
  1512. union all
  1513. SELECT DISTINCT a.cSSCode,isnull(a.cSSName,'') as cVenName FROM [{0}].{1}.dbo.settleStyle a ";
  1514. sql = string.Format(sql, U9IP, DBName);
  1515. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1516. return dt;
  1517. }
  1518. public DataTable GetcVenExch_name()
  1519. {
  1520. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  1521. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  1522. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  1523. string DBName = dtU9.Rows[0]["DBName"].ToString();
  1524. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1525. string sql = @"
  1526. select '' as cexch_name,'' as cexch_code
  1527. union all
  1528. SELECT DISTINCT a.cexch_name,isnull(a.cexch_code,'') as cVenName FROM [{0}].{1}.dbo.foreigncurrency a ";
  1529. sql = string.Format(sql, U9IP,DBName);
  1530. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1531. return dt;
  1532. }
  1533. public DataTable GetVenBankCode()
  1534. {
  1535. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  1536. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  1537. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  1538. string DBName = dtU9.Rows[0]["DBName"].ToString();
  1539. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1540. string sql = @"
  1541. select '' as cBankCode,'' as cBankName
  1542. union all
  1543. SELECT DISTINCT a.cBankCode,isnull(a.cBankName,'') as cVenName FROM [{0}].{1}.dbo.AA_Bank a ";
  1544. sql = string.Format(sql, U9IP, DBName);
  1545. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1546. return dt;
  1547. }
  1548. /// <summary>
  1549. /// 修改供应商
  1550. /// </summary>
  1551. /// <param name="ID"></param>
  1552. /// <returns></returns>
  1553. public DataRow GetCertifiCateVendor(string cVenCode)
  1554. {
  1555. DataRow dr = null;
  1556. string sql = string.Empty;
  1557. try
  1558. {
  1559. sql = @"SELECT
  1560. cVenType,
  1561. cVenStartTime,
  1562. cVenStartEnd,
  1563. cVenCode,
  1564. iTaxRateNum,
  1565. cVenName,
  1566. cVenAbbName,
  1567. cVenHeadCode,
  1568. cVCCode,
  1569. cVenSource,
  1570. cVenPerson,
  1571. cVenPerson2,
  1572. cVenAddress,
  1573. cVenPhone,
  1574. cVenPostCode,
  1575. cVenHand,
  1576. cVenSSCode,
  1577. cVenEmail,
  1578. cVenBankCode,
  1579. cVenBank,
  1580. cVenAccount,
  1581. iVenTaxRate,
  1582. cVenExch_name,
  1583. bVenCargo,
  1584. bProxyForeign,
  1585. bVenService,
  1586. bVenOverseas
  1587. FROM ICSVendor
  1588. WHERE cVenCode='" + cVenCode + "'";
  1589. dr = SqlHelper.GetDataRowBySql(sql);
  1590. return dr;
  1591. }
  1592. catch (Exception ex)
  1593. {
  1594. throw new Exception(ex.Message);
  1595. }
  1596. }
  1597. public void SubmitVendor(string queryJson)
  1598. {
  1599. try
  1600. {
  1601. DataTable dt = new DataTable();
  1602. List<DbParameter> parameter = new List<DbParameter>();
  1603. ICSVendors[] list = JsonConvert.DeserializeObject<ICSVendors[]>(queryJson);
  1604. string sql = string.Empty;
  1605. string sqls = string.Empty;
  1606. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1607. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1608. conn.Open();
  1609. SqlTransaction sqlTran = conn.BeginTransaction();
  1610. SqlCommand cmd = new SqlCommand();
  1611. cmd.Transaction = sqlTran;
  1612. cmd.Connection = conn;
  1613. try
  1614. {
  1615. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1616. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", "");
  1617. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  1618. foreach (var obj in list)
  1619. {
  1620. sql = @"IF NOT EXISTS(SELECT * FROM dbo.ICSVendor WHERE cVenCode=@cVenCode)
  1621. BEGIN
  1622. INSERT INTO dbo.ICSVendor
  1623. (cVenCode
  1624. ,cVenName
  1625. ,cVenAbbName
  1626. ,cVCCode
  1627. ,cVCName
  1628. ,cVenAddress
  1629. ,cVenBank
  1630. ,cVenAccount
  1631. ,cVenPhone
  1632. ,cVenEmail
  1633. ,cVenPerson
  1634. ,cVenHand
  1635. ,cVenExch_name
  1636. ,cVenStart
  1637. ,cVenStartTime
  1638. ,cVenStartEnd
  1639. ,cVenType
  1640. ,iTaxRateNum
  1641. ,cVenHeadCode
  1642. ,cVenSource
  1643. ,cVenPerson2
  1644. ,cVenSSCode
  1645. ,cVenBankCode
  1646. ,cVenPostCode
  1647. ,iVenTaxRate
  1648. ,bVenCargo
  1649. ,bProxyForeign
  1650. ,bVenService
  1651. ,bVenOverseas
  1652. ,WorkPoint
  1653. )
  1654. VALUES
  1655. (
  1656. @cVenCode
  1657. ,@cVenName
  1658. ,@cVenAbbName
  1659. ,@cVCCode
  1660. ,@cVCName
  1661. ,@cVenAddress
  1662. ,@cVenBank
  1663. ,@cVenAccount
  1664. ,@cVenPhone
  1665. ,@cVenEmail
  1666. ,@cVenPerson
  1667. ,@cVenHand
  1668. ,@cVenExch_name
  1669. ,@cVenStart
  1670. ,@cVenStartTime
  1671. ,@cVenStartEnd
  1672. ,@cVenType
  1673. ,@iTaxRateNum
  1674. ,@cVenHeadCode
  1675. ,@cVenSource
  1676. ,@cVenPerson2
  1677. ,@cVenSSCode
  1678. ,@cVenBankCode
  1679. ,@cVenPostCode
  1680. ,@iVenTaxRate
  1681. ,@bVenCargo
  1682. ,@bProxyForeign
  1683. ,@bVenService
  1684. ,@bVenOverseas
  1685. ,@WorkPoint)
  1686. END
  1687. ELSE
  1688. BEGIN
  1689. UPDATE dbo.ICSVendor SET
  1690. cVenCode=@cVenCode
  1691. ,cVenName=@cVenName
  1692. ,cVenAbbName=@cVenAbbName
  1693. ,cVCCode=@cVCCode
  1694. ,cVCName=@cVCName
  1695. ,cVenAddress=@cVenAddress
  1696. ,cVenBank=@cVenBank
  1697. ,cVenAccount=@cVenAccount
  1698. ,cVenPhone=@cVenPhone
  1699. ,cVenEmail=@cVenEmail
  1700. ,cVenPerson=@cVenPerson
  1701. ,cVenHand=@cVenHand
  1702. ,cVenExch_name=@cVenExch_name
  1703. ,cVenStart=@cVenStart
  1704. ,cVenStartTime=@cVenStartTime
  1705. ,cVenStartEnd=@cVenStartEnd
  1706. ,cVenType=@cVenType
  1707. ,iTaxRateNum=@iTaxRateNum
  1708. ,cVenHeadCode=@cVenHeadCode
  1709. ,cVenSource=@cVenSource
  1710. ,cVenPerson2=@cVenPerson2
  1711. ,cVenSSCode=@cVenSSCode
  1712. ,cVenBankCode=@cVenBankCode
  1713. ,cVenPostCode=@cVenPostCode
  1714. ,iVenTaxRate=@iVenTaxRate
  1715. ,bVenCargo=@bVenCargo
  1716. ,bProxyForeign=@bProxyForeign
  1717. ,bVenService=@bVenService
  1718. ,bVenOverseas=@bVenOverseas
  1719. WHERE cVenCode=@cVenCode
  1720. END";
  1721. SqlParameter[] sp_Detail = {
  1722. new SqlParameter("@cVenCode",obj.cVenCode),
  1723. new SqlParameter("@cVenName",obj.cVenName),
  1724. new SqlParameter("@cVenAbbName",obj.cVenAbbName),
  1725. new SqlParameter("@cVCCode",obj.cVCCode),
  1726. new SqlParameter("@cVCName",obj.cVCName),
  1727. new SqlParameter("@cVenAddress",obj.cVenAddress),
  1728. new SqlParameter("@cVenBank",obj.cVenBank),
  1729. new SqlParameter("@cVenAccount",obj.cVenAccount),
  1730. new SqlParameter("@cVenPhone",obj.cVenPhone),
  1731. new SqlParameter("@cVenEmail",obj.cVenEmail),
  1732. new SqlParameter("@cVenPerson",obj.cVenPerson),
  1733. new SqlParameter("@cVenHand",obj.cVenHand),
  1734. new SqlParameter("@cVenExch_name",obj.cVenExch_name),
  1735. new SqlParameter("@cVenStart","未录入"),
  1736. new SqlParameter("@cVenStartTime",obj.cVenStartTime),
  1737. new SqlParameter("@cVenStartEnd",obj.cVenStartEnd),
  1738. new SqlParameter("@cVenType",obj.cVenType),
  1739. new SqlParameter("@cVenHeadCode",obj.cVenHeadCode),
  1740. new SqlParameter("@cVenSource",obj.cVenSource),
  1741. new SqlParameter("@cVenPerson2",obj.cVenPerson2),
  1742. new SqlParameter("@cVenSSCode",obj.cVenSSCode),
  1743. new SqlParameter("@cVenBankCode",obj.cVenBankCode),
  1744. new SqlParameter("@cVenPostCode",obj.cVenPostCode),
  1745. new SqlParameter("@iVenTaxRate",obj.iVenTaxRate),
  1746. new SqlParameter("@bVenCargo",obj.bVenCargo),
  1747. new SqlParameter("@bProxyForeign",obj.bProxyForeign),
  1748. new SqlParameter("@bVenService",obj.bVenService),
  1749. new SqlParameter("@bVenOverseas",obj.bVenOverseas),
  1750. new SqlParameter("@iTaxRateNum",obj.iTaxRateNum),
  1751. new SqlParameter("@WorkPoint",WorkPoint.TrimEnd(','))
  1752. };
  1753. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1754. }
  1755. cmd.Transaction.Commit();
  1756. }
  1757. catch (Exception ex)
  1758. {
  1759. cmd.Transaction.Rollback();
  1760. throw new Exception(ex.Message);
  1761. }
  1762. finally
  1763. {
  1764. if (conn.State == ConnectionState.Open)
  1765. {
  1766. conn.Close();
  1767. }
  1768. conn.Dispose();
  1769. }
  1770. }
  1771. catch (Exception ex)
  1772. {
  1773. throw new Exception(ex.Message);
  1774. }
  1775. }
  1776. /// <summary>
  1777. /// 创建供应商与类型关联
  1778. /// </summary>
  1779. /// <param name="queryJson"></param>
  1780. /// <returns></returns>
  1781. public void SubmitCeriIFicateRel(string queryJson, string queryJson2)
  1782. {
  1783. try
  1784. {
  1785. DataTable dt = new DataTable();
  1786. List<DbParameter> parameter = new List<DbParameter>();
  1787. ICSCERTIFICATE[] list = JsonConvert.DeserializeObject<ICSCERTIFICATE[]>(queryJson);
  1788. ICSRel[] IDList = JsonConvert.DeserializeObject<ICSRel[]>(queryJson2);
  1789. string sql = string.Empty;
  1790. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  1791. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  1792. conn.Open();
  1793. SqlTransaction sqlTran = conn.BeginTransaction();
  1794. SqlCommand cmd = new SqlCommand();
  1795. cmd.Transaction = sqlTran;
  1796. cmd.Connection = conn;
  1797. try
  1798. {
  1799. string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Trim(',');
  1800. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1801. foreach (var obj in list)
  1802. {
  1803. foreach (var obj2 in IDList)
  1804. {
  1805. sql = "select * from ICSCERTIFICATE where CERTIFICATETPYECODE='" + obj.CERTIFICATETPYECODE + "' and CERTIFICATEITEMCODE='" + obj2.CERTIFICATEITEMCODE + "'";
  1806. dt = SqlCommandHelper.SQlReturnData(sql, cmd);
  1807. if (dt != null && dt.Rows.Count > 0)
  1808. {
  1809. throw new Exception("认证类型已被项目类型关联!");
  1810. }
  1811. sql = @"
  1812. INSERT INTO dbo.ICSCERTIFICATE
  1813. (ID
  1814. ,CERTIFICATETPYECODE
  1815. ,CERTIFICATETYPENAME
  1816. ,CERTIFICATEITEMCODE
  1817. ,CERTIFICATEITEMNAME
  1818. ,ISKEYTASK
  1819. , NEEDUPLOADFILE
  1820. ,PLANFINISHDAYS
  1821. ,CREATEDATE
  1822. ,CREATETIME
  1823. ,CREATEUSER
  1824. ,WorkPoint
  1825. ,CERTIFICATEITEMFileName
  1826. ,MODIFIEDDATE
  1827. ,MODIFIEDTIME
  1828. ,MODIFIEDUSER)
  1829. select
  1830. NEWID()
  1831. ,@CERTIFICATETPYECODE
  1832. ,@CERTIFICATETYPENAME
  1833. ,@CERTIFICATEITEMCODE
  1834. ,@CERTIFICATEITEMNAME
  1835. ,ISKEYTASK
  1836. ,NEEDUPLOADFILE
  1837. ,PLANFINISHDAYS
  1838. ,GETDATE()
  1839. ,CONVERT(varchar,GETDATE(),120)
  1840. ,CREATEUSER
  1841. ,WorkPoint
  1842. ,CERTIFICATEITEMFileName
  1843. ,''
  1844. ,''
  1845. ,'' from ICSCERTIFICATE2 WHERE ID=@ID
  1846. ";
  1847. SqlParameter[] sp_Detail = {
  1848. new SqlParameter("@ID",obj2.ID),
  1849. new SqlParameter("@CERTIFICATETPYECODE",obj.CERTIFICATETPYECODE),
  1850. new SqlParameter("@CERTIFICATETYPENAME",obj.CERTIFICATETYPENAME),
  1851. new SqlParameter("@CERTIFICATEITEMCODE",obj2.CERTIFICATEITEMCODE),
  1852. new SqlParameter("@CERTIFICATEITEMNAME",obj2.CERTIFICATEITEMNAME),
  1853. new SqlParameter("@ISKEYTASK",obj.ISKEYTASK),
  1854. new SqlParameter("@NEEDUPLOADFILE",obj.NEEDUPLOADFILE),
  1855. new SqlParameter("@PLANFINISHDAYS",obj.PLANFINISHDAYS),
  1856. new SqlParameter("@CERTIFICATEITEMFileName",obj.CERTIFICATEITEMFileName),
  1857. //new SqlParameter("@CREATEDATE","已保存"),
  1858. //new SqlParameter("@CREATETIME","企业"),
  1859. new SqlParameter("@CREATEUSER",UserCode),
  1860. //new SqlParameter("@MODIFIEDDATE",Muser),
  1861. new SqlParameter("@WorkPoint",obj.WorkPoint),
  1862. new SqlParameter("@MODIFIEDUSER",UserCode),
  1863. };
  1864. SqlCommandHelper.CmdExecuteNonQuery(sql, sp_Detail, cmd);
  1865. }
  1866. }
  1867. cmd.Transaction.Commit();
  1868. }
  1869. catch (Exception ex)
  1870. {
  1871. cmd.Transaction.Rollback();
  1872. throw new Exception(ex.Message);
  1873. }
  1874. finally
  1875. {
  1876. if (conn.State == ConnectionState.Open)
  1877. {
  1878. conn.Close();
  1879. }
  1880. conn.Dispose();
  1881. }
  1882. }
  1883. catch (Exception ex)
  1884. {
  1885. throw new Exception(ex.Message);
  1886. }
  1887. }
  1888. /// <summary>
  1889. /// 获取认证类型名称
  1890. /// </summary>
  1891. /// <returns></returns>
  1892. public DataTable GetCertifiCationMaintionRel(string queryJson, string WorkPoint)
  1893. {
  1894. var queryParam = queryJson.ToJObject();
  1895. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1896. string sql = @"
  1897. SELECT DISTINCT
  1898. ID,
  1899. a.CERTIFICATETPYECODE,
  1900. CERTIFICATETYPENAME
  1901. FROM dbo.ICSCERTIFICATETYPE a
  1902. WHERE 1=1
  1903. ";
  1904. if (!string.IsNullOrWhiteSpace(queryJson))
  1905. {
  1906. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATETPYECODE"].ToString()))
  1907. {
  1908. sql += " and a.CERTIFICATETPYECODE like '%" + queryParam["CERTIFICATETPYECODE"].ToString() + "%' ";
  1909. }
  1910. }
  1911. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1912. //if (role != "admin")
  1913. //{
  1914. sql += " and a.WorkPoint in('" + WorkPoint + "')";
  1915. //}
  1916. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1917. return dt;
  1918. }
  1919. public DataTable GetCertifiCationMaintionRelXM(string queryJson, string WorkPoint)
  1920. {
  1921. var queryParam = queryJson.ToJObject();
  1922. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1923. string sql = @"
  1924. SELECT DISTINCT
  1925. ID,
  1926. a.CERTIFICATEITEMCODE,
  1927. CERTIFICATEITEMNAME
  1928. FROM dbo.ICSCERTIFICATE2 a
  1929. WHERE 1=1
  1930. ";
  1931. if (!string.IsNullOrWhiteSpace(queryJson))
  1932. {
  1933. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMCODE"].ToString()))
  1934. {
  1935. sql += " and a.CERTIFICATEITEMCODE like '%" + queryParam["CERTIFICATEITEMCODE"].ToString() + "%' ";
  1936. }
  1937. }
  1938. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1939. //if (role != "admin")
  1940. //{
  1941. sql += " and a.WorkPoint in('" + WorkPoint + "')";
  1942. //}
  1943. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1944. return dt;
  1945. }
  1946. /// <summary>
  1947. /// 获取供应商列表
  1948. /// </summary>
  1949. /// <returns></returns>
  1950. public DataTable GetVendor(string queryJson, string WorkPoint)
  1951. {
  1952. var queryParam = queryJson.ToJObject();
  1953. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1954. string sql = @"
  1955. SELECT DISTINCT a.VenCode cVenCode,isnull(a.VenName,'') as cVenName FROM dbo.ICSVendor a
  1956. WHERE 1=1 ";
  1957. string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
  1958. if (!string.IsNullOrWhiteSpace(queryJson))
  1959. {
  1960. if (!string.IsNullOrWhiteSpace(queryParam["Vendor"].ToString()))
  1961. {
  1962. sql += " and a.VenCode like '%" + queryParam["Vendor"].ToString() + "%' ";
  1963. }
  1964. }
  1965. if (WorkPoint!="")
  1966. {
  1967. sql += " and a.WorkPoint in('" + WorkPoint + "')";
  1968. }
  1969. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1970. return dt;
  1971. }
  1972. public DataTable GetWorkPointMore(string queryJson)
  1973. {
  1974. var queryParam = queryJson.ToJObject();
  1975. string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  1976. string sql = @"
  1977. SELECT WorkPoint,b.WorkPointName FROM dbo.Sys_SRM_User a
  1978. LEFT JOIN Sys_WorkPoint b on a.F_Location=b.WorkPointCode
  1979. Where a.F_VenCode='" + UserCode + "'";
  1980. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  1981. return dt;
  1982. }
  1983. public string GetSTNO(string WorkPoint)
  1984. {
  1985. string CERTIFICATETPYECODE = string.Empty;
  1986. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1987. if (!string.IsNullOrEmpty(WorkPoint))
  1988. {
  1989. string Pre = "RZLX" + WorkPoint;
  1990. CERTIFICATETPYECODE = GetSerialCode(WorkPoint, "ICSCERTIFICATETYPE", "CERTIFICATETPYECODE", Pre, 3);
  1991. }
  1992. return CERTIFICATETPYECODE;
  1993. }
  1994. public string GetProjectCode(string WorkPoint)
  1995. {
  1996. string CERTIFICATEITEMCODE = string.Empty;
  1997. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
  1998. if (!string.IsNullOrEmpty(WorkPoint))
  1999. {
  2000. string Pre = "RZXM" + WorkPoint;
  2001. CERTIFICATEITEMCODE = GetSerialCode(WorkPoint, "ICSCERTIFICATE", "CERTIFICATEITEMCODE", Pre, 3);
  2002. }
  2003. return CERTIFICATEITEMCODE;
  2004. }
  2005. public string SetData_PR(String savePath)
  2006. {
  2007. string msg = "";
  2008. //数据获取
  2009. try
  2010. {
  2011. string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2012. SqlConnection conn = SqlHelper.GetDataCenterConn();
  2013. string sql = "";
  2014. int count = 0;
  2015. DataTable data = FileToExcel.ExcelToTable(savePath);
  2016. var parent = data.DefaultView.ToTable(true, "供应商编码", "供应商名称", "类型编码","站点");
  2017. foreach (DataRow dr in parent.Rows)
  2018. {
  2019. string GUID = Guid.NewGuid().ToString();
  2020. if (string.IsNullOrWhiteSpace(dr["供应商编码"].ToString()))
  2021. throw new Exception("物料编码不能为空!");
  2022. if (string.IsNullOrWhiteSpace(dr["供应商名称"].ToString()))
  2023. throw new Exception("供应商名称不能为空!");
  2024. if (string.IsNullOrWhiteSpace(dr["类型编码"].ToString()))
  2025. {
  2026. throw new Exception("供应商名称不能为空!");
  2027. }
  2028. string Pre = "RZ" + dr["类型编码"].ToString() + dr["供应商编码"].ToString();
  2029. string FORMCODE = GetSerialCode(dr["站点"].ToString(), "ICSCERTIFICATEITEM", "FORMCODE", Pre, 3);
  2030. sql+= @"insert into ICSCERTIFICATEITEM
  2031. (ID,
  2032. FORMCODE,
  2033. WorkPoint,
  2034. VENDORCODE,
  2035. CERTIFICATETPYECODE,
  2036. CERTIFICATETYPENAME,
  2037. CERTIFICATEITEMCODE,
  2038. CERTIFICATEITEMNAME,
  2039. ISKEYTASK,
  2040. NEEDUPLOADFILE,
  2041. PLANFINISHDAYS,
  2042. PLANFINISHDATE,
  2043. ActualFINISHDATE,
  2044. AUDITRESULT,
  2045. CREATEDATE,
  2046. CREATETIME,
  2047. CREATEUSER,
  2048. MODIFIEDDATE,
  2049. MODIFIEDTIME,
  2050. MODIFIEDUSER,
  2051. ApplyDATE,
  2052. ApplyIME,
  2053. ApplyUSER,
  2054. ADDITION1,
  2055. ARRIVEQTY)
  2056. SELECT NEWID(),
  2057. '"+FORMCODE+@"',
  2058. '"+dr[""].ToString()+@"',
  2059. '"+dr[""].ToString()+ @"',
  2060. a.CERTIFICATETPYECODE,
  2061. a.CERTIFICATETYPENAME,
  2062. a.CERTIFICATEITEMCODE,
  2063. a.CERTIFICATEITEMNAME,
  2064. a.ISKEYTASK,
  2065. a.NEEDUPLOADFILE,
  2066. a.PLANFINISHDAYS,
  2067. dateadd(day,a.PLANFINISHDAYS,GETDATE()),
  2068. '',
  2069. 'NEW',
  2070. GETDATE(),
  2071. GETDATE(),
  2072. '"+MUSERNAME+ @"',
  2073. '',
  2074. '',
  2075. '',
  2076. '',
  2077. '',
  2078. '',
  2079. '',
  2080. ''
  2081. FROM ICSCERTIFICATE a WHERE a.CERTIFICATETPYECODE='" + dr[""].ToString() + "'";
  2082. }
  2083. if (string.IsNullOrEmpty(msg))
  2084. {
  2085. count = SqlHelper.CmdExecuteNonQueryLi(sql);
  2086. }
  2087. if (count > 0)
  2088. {
  2089. msg = "导入成功" + msg.TrimEnd(';');
  2090. }
  2091. else
  2092. {
  2093. return msg;
  2094. }
  2095. return msg;
  2096. }
  2097. catch (Exception ex)
  2098. {
  2099. throw new Exception("" + msg + "!");
  2100. }
  2101. }
  2102. /// <summary>
  2103. /// 供应商注册
  2104. /// </summary>
  2105. /// <param name="queryJson"></param>
  2106. public string SubmitVendorRegister(string queryJson)
  2107. {
  2108. string str = "";
  2109. string MSG = string.Empty;
  2110. try
  2111. {
  2112. string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  2113. DataTable dt = new DataTable();
  2114. List<DbParameter> parameter = new List<DbParameter>();
  2115. ICSPREVENDOR[] list = JsonConvert.DeserializeObject<ICSPREVENDOR[]>(queryJson);
  2116. string sql = string.Empty;
  2117. string sqls = string.Empty;
  2118. string GUID = Guid.NewGuid().ToString();
  2119. string Date = DateTime.Now.ToString("yyyy");
  2120. string Muoth = DateTime.Now.ToString("MM");
  2121. string Day = DateTime.Now.ToString("dd");
  2122. string Pre = "SV" + Date + Muoth + Day;
  2123. string VenCode = string.Empty;
  2124. string TEMPVENDORCODE = string.Empty;
  2125. string RoleID = string.Empty;
  2126. string connString = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  2127. SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
  2128. conn.Open();
  2129. SqlTransaction sqlTran = conn.BeginTransaction();
  2130. SqlCommand cmd = new SqlCommand();
  2131. cmd.Transaction = sqlTran;
  2132. cmd.Connection = conn;
  2133. try
  2134. {
  2135. //string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2136. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.Replace("'", "");
  2137. //string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
  2138. foreach (var obj in list)
  2139. {
  2140. string PreVenCode = "8";
  2141. //string sqlPREVENDOR = @"SELECT TEMPVENDORCODE,VenCode FROM dbo.ICSPREVENDOR Where TEMPVENDORNAME='" + obj.TEMPVENDORNAME + "' ";
  2142. //DataTable dtPREVENDOR = SqlHelper.GetDataTableBySql(sqlPREVENDOR);
  2143. string sqlUserIsHave = @"SELECT F_RealName,F_VenCode FROM dbo.Sys_SRM_User WHERE F_RealName='" + list[0].TEMPVENDORNAME + "' AND F_Location='" + list[0].WorkPoint + "'";
  2144. DataTable dt_User = SqlHelper.GetDataTableBySql(sqlUserIsHave);
  2145. if (dt_User.Rows.Count > 0)
  2146. {
  2147. //TEMPVENDORCODE = dtPREVENDOR.Rows[0]["TEMPVENDORCODE"].ToString();
  2148. TEMPVENDORCODE = GetSerialCodeBYVenDor(list[0].WorkPoint, "ICSPREVENDOR", "TEMPVENDORCODE", Pre, 4);
  2149. VenCode = dt_User.Rows[0]["F_VenCode"].ToString();
  2150. }
  2151. else
  2152. {
  2153. sql = @"select TOP 1 ISNULL(VenCode,'') AS VenCode from ICSPREVENDOR
  2154. where VenCode like '{0}%'
  2155. ORDER BY VenCode DESC";
  2156. sql = string.Format(sql, PreVenCode);
  2157. DataTable dtCode = SqlHelper.GetDataTableBySql(sql);
  2158. if (dtCode.Rows.Count == 0)
  2159. {
  2160. VenCode = PreVenCode + "0000001";
  2161. }
  2162. else
  2163. {
  2164. str = dtCode.Rows[0]["VenCode"].ToString().Substring(dtCode.Rows[0]["VenCode"].ToString().Length - 7, 7);
  2165. VenCode = PreVenCode + (Convert.ToInt32(str) + 1).ToString().PadLeft(7, '0');
  2166. }
  2167. //VenCode = GetSerialCodeBYVenDor(list[0].WorkPoint, "Sys_SRM_User", "VenCode", PreVenCode, 7);
  2168. TEMPVENDORCODE = GetSerialCodeBYVenDor(list[0].WorkPoint, "ICSPREVENDOR", "TEMPVENDORCODE", Pre, 4);
  2169. }
  2170. //SqlHelper.UserEmaildValid("", obj.CONTACTEMAIL);//验证邮箱
  2171. //SqlHelper.UserIphonedValid("", obj.CONTACTPHONENO);//验证手机
  2172. sql = @"
  2173. INSERT INTO dbo.ICSPREVENDOR
  2174. (ID,TEMPVENDORCODE,TEMPVENDORNAME,TEMPVENDORAttribute
  2175. ,VENDORAbbreviation,CONTACTNAME,CONTACTEMAIL,VENDORTYPE,CONTACTPHONENO
  2176. ,RegBusinessScope,RegRegisteredCapital,RegIncorporationDate,WhetherPassIS09000
  2177. ,WhetherInviteRegistration,InviteRegistrationPerson,CREATEDATE,CREATEUSER
  2178. ,LOGDATE,LOGUSER,WorkPoint,RegistrationStatus,VenCode
  2179. )
  2180. VALUES
  2181. (
  2182. NewID(), '" + TEMPVENDORCODE + @"', '" + obj.TEMPVENDORNAME.Trim() + @"', '" + obj.TEMPVENDORAttribute + @"'
  2183. ,'" + obj.VENDORAbbreviation + @"','" + obj.CONTACTNAME + @"','" + obj.CONTACTEMAIL + @"','','" + obj.CONTACTPHONENO + @"'
  2184. ,'" + obj.RegBusinessScope + @"','" + obj.RegRegisteredCapital + @"','" + obj.RegIncorporationDate + @"','" + obj.WhetherPassISO9000 + @"'
  2185. ," + obj.WhetherInviteRegistration + @",'" + obj.InviteRegistrationPerson + @"','" + DateTime.Now.ToString() + @"','" + obj.CONTACTNAME + @"',
  2186. '" + DateTime.Now.ToString() + @"','" + obj.CONTACTNAME + @"','" + obj.WorkPoint + @"','','"+VenCode+@"'
  2187. )
  2188. ";
  2189. string GetRole = "SELECT F_Id FROM dbo.Sys_SRM_Role Where F_EnCode='TempVendor' ";
  2190. DataTable dtRole = SqlHelper.GetDataTableBySql(GetRole);
  2191. if (dtRole.Rows.Count > 0)
  2192. {
  2193. RoleID = dtRole.Rows[0]["F_Id"].ToString();
  2194. }
  2195. else
  2196. {
  2197. throw new Exception("请先维护临时供应商角色!");
  2198. }
  2199. SqlCommandHelper.CmdExecuteNonQueryBYvendor(sql, cmd);
  2200. string sqlUser = @"INSERT INTO dbo.Sys_SRM_User
  2201. ( F_Id ,F_Account ,F_RealName ,F_NickName ,
  2202. F_RoleId ,F_IsAdministrator , F_EnabledMark ,
  2203. F_CreatorTime ,F_CreatorUserId ,F_Location ,
  2204. F_VenCode,F_ISUse,F_CGAccount,F_MobilePhone,F_Email)Values(
  2205. '" + GUID + @"','" + TEMPVENDORCODE + @"','" + obj.TEMPVENDORNAME.Trim() + @"','" + obj.TEMPVENDORNAME.Trim() + @"',
  2206. '" + RoleID + @"',0,1,
  2207. GETDATE(),'9f2ec079-7d0f-4fe2-90ab-8b09a8302aba','" + obj.WorkPoint + @"','" + VenCode + @"',0,NULL,'" + obj.CONTACTPHONENO + "','" + obj.CONTACTEMAIL + "')";
  2208. SqlCommandHelper.CmdExecuteNonQueryBYvendor(sqlUser, cmd);
  2209. string UserSecretkey = Md5.md5(Common.CreateNo(), 16).ToLower();
  2210. string pwd = Md5.md5(DESEncrypt.Encrypt(Md5.md5("Hh123abc**", 32).ToLower(), UserSecretkey).ToLower(), 32).ToLower();
  2211. string sqlUser_LOG = @"INSERT INTO dbo.Sys_SRM_UserLogOn
  2212. ( F_Id ,F_UserId ,F_UserPassword ,F_UserSecretkey
  2213. )
  2214. VALUES ( '" + GUID + @"','" + GUID + @"','" + pwd + "','" + UserSecretkey + "')";
  2215. SqlCommandHelper.CmdExecuteNonQueryBYvendor(sqlUser_LOG, cmd);
  2216. cmd.Transaction.Commit();
  2217. }
  2218. }
  2219. catch (Exception ex)
  2220. {
  2221. cmd.Transaction.Rollback();
  2222. throw new Exception(ex.Message);
  2223. }
  2224. finally
  2225. {
  2226. if (conn.State == ConnectionState.Open)
  2227. {
  2228. conn.Close();
  2229. }
  2230. conn.Dispose();
  2231. string sqlTEMPVENDORCODE = @"SELECT b.WorkPointName,* FROM ICSPREVENDOR a
  2232. LEFT JOIN Sys_WorkPoint b on b.WorkPointCode=a.WorkPoint
  2233. Where a.TEMPVENDORCODE='{0}'";
  2234. sqlTEMPVENDORCODE = string.Format(sqlTEMPVENDORCODE, TEMPVENDORCODE);
  2235. DataTable dtTEMPVENDORCODE = SqlHelper.GetDataTableBySql(sqlTEMPVENDORCODE);
  2236. if (dtTEMPVENDORCODE.Rows.Count > 0)
  2237. {
  2238. MSG = TEMPVENDORCODE;
  2239. if (MailOpen == "true")
  2240. {
  2241. string CCAddress = "";
  2242. bool isBodyHtml = true;
  2243. string Subject = "SRM-注册提醒";
  2244. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  2245. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  2246. int SendPort = 25;
  2247. if (!string.IsNullOrEmpty(StrSendPort))
  2248. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  2249. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  2250. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  2251. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  2252. string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  2253. string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString;
  2254. string CusterQC = ConfigurationManager.ConnectionStrings["CusterQC"].ConnectionString;
  2255. string body = "<html><body><table border='0'>";
  2256. body += "<tr><td>尊敬供应商" + dtTEMPVENDORCODE.Rows[0]["TEMPVENDORNAME"].ToString().Trim() + ":</td></tr>";
  2257. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;非常感谢贵公司的信任与支持,注册成为"+ CusterQC + "潜在供应商。</td></tr>";
  2258. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请用本邮件中账户密码登录系统继续完善资料,我们会尽快完成资料审核,期待与贵司的合作。</td></tr>";
  2259. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;贵公司注册账号:" + dtTEMPVENDORCODE.Rows[0]["TEMPVENDORCODE"].ToString() + ",密码为:Hh123abc** </td></tr>";
  2260. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此为系统自动发送邮件,请勿回复。</td></tr>";
  2261. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;顺颂商祺!</td></tr>";
  2262. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+ CusterQC + "</td></tr>";
  2263. body += "<tr><td> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + NowDate + "</td></tr>";
  2264. body += "<tr><td> </td></tr>";
  2265. body += "<tr><td> </td></tr>";
  2266. body += "</table> </body> </html>";
  2267. string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  2268. try
  2269. {
  2270. SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, dtTEMPVENDORCODE.Rows[0]["CONTACTEMAIL"].ToString(), CCAddress, Subject, isBodyHtml, body);
  2271. }
  2272. catch (Exception ex)
  2273. {
  2274. throw new Exception(ex.Message);
  2275. }
  2276. }
  2277. }
  2278. }
  2279. }
  2280. catch (Exception ex)
  2281. {
  2282. throw new Exception(ex.Message);
  2283. }
  2284. return MSG;
  2285. }
  2286. 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)
  2287. {
  2288. try
  2289. {
  2290. SmtpClient smtpClient = new SmtpClient
  2291. {
  2292. //EnableSsl = false,
  2293. UseDefaultCredentials = false,
  2294. Host = SendHost,
  2295. Port = SendPort,
  2296. Credentials = new NetworkCredential(SendAddress, SendPassword)
  2297. };
  2298. MailMessage mailMessage = new MailMessage
  2299. {
  2300. Subject = Subject,
  2301. SubjectEncoding = Encoding.GetEncoding("utf-8"),
  2302. BodyEncoding = Encoding.GetEncoding("utf-8"),
  2303. From = new MailAddress(SendAddress, SendDisplayName),
  2304. IsBodyHtml = IsBodyHtml,
  2305. Body = Body
  2306. };
  2307. string[] array = TOAddress.Split(new char[]
  2308. {
  2309. ','
  2310. });
  2311. string[] array2 = array;
  2312. for (int i = 0; i < array2.Length; i++)
  2313. {
  2314. string text = array2[i];
  2315. if (!string.IsNullOrEmpty(text))
  2316. {
  2317. mailMessage.To.Add(text);
  2318. }
  2319. }
  2320. string[] array3 = CCAddress.Split(new char[]
  2321. {
  2322. ','
  2323. });
  2324. array2 = array3;
  2325. for (int i = 0; i < array2.Length; i++)
  2326. {
  2327. string text2 = array2[i];
  2328. if (!string.IsNullOrEmpty(text2))
  2329. {
  2330. mailMessage.CC.Add(text2);
  2331. }
  2332. }
  2333. ServicePointManager.ServerCertificateValidationCallback = ((object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) => true);
  2334. smtpClient.Send(mailMessage);
  2335. // InsertData(ConnectionString, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, IsBodyHtml, Body, "1", null);
  2336. }
  2337. catch (Exception ex)
  2338. {
  2339. //InsertData(ConnectionString, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, TOAddress, CCAddress, Subject, IsBodyHtml, Body, "2", ex.Message);
  2340. throw;
  2341. }
  2342. }
  2343. /// <summary>
  2344. /// 准入抛到OA
  2345. /// </summary>
  2346. /// <param name="TEMPVENDORCODE"></param>
  2347. /// <param name="WorkPoint"></param>
  2348. /// <returns></returns>
  2349. // public string PreSubmitOARejict(string TEMPVENDORCODE, string WorkPoint)
  2350. // {
  2351. // string sql = "";
  2352. // string UserCode = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2353. // string msg = "";
  2354. // DataTable dt = new DataTable();
  2355. // var reqInterNme = "http://172.16.8.33/seeyon/rest/token/SRMTEST/25eba5c2-95e9-4bf8-92f5-0f42595255ba?loginName=" + UserCode;
  2356. // var responseStr = httpGet(reqInterNme);
  2357. // try
  2358. // {
  2359. // string Pre = "HH-SRM02" + WorkPoint;
  2360. // string BIDCodes = GetSerialCode(WorkPoint, "ICSBidDoc", "code", Pre, 3);
  2361. // //JObject res = (JObject)JsonConvert.DeserializeObject(dtsql.Rows[0]["searchKey"].ToString());
  2362. // JObject res = (JObject)JsonConvert.DeserializeObject(responseStr);
  2363. // string ID = res["id"].ToString();//获取Tockn
  2364. // JObject resultbidUser = (JObject)JsonConvert.DeserializeObject(res["bindingUser"].ToString());
  2365. // string id = resultbidUser["id"].ToString(); //用户ID
  2366. // string departmentId = resultbidUser["departmentId"].ToString(); //部门ID
  2367. // string postId = resultbidUser["postId"].ToString(); //岗位ID
  2368. // //string Message = res["Message"].ToString();
  2369. // if (!string.IsNullOrWhiteSpace(ID))
  2370. // {
  2371. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments> thirdAttachments = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments>();
  2372. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.datadetail dat = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.datadetail();
  2373. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.datass dds = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.datass();
  2374. // //string sqlFile = "SELECT Attachment1,Attachment2 FROM ICSPREVENDORProductionInspection Where TEMPVENDORCODE='" + TEMPVENDORCODE + "'and WorkPoint='" + WorkPoint + "'";
  2375. // //DataTable dts = SqlHelper.GetDataTableBySql(sqlFile);
  2376. // //string fileName = "" + dts.Rows[0]["Attachment1"].ToString() + ";" + dts.Rows[0]["Attachment2"].ToString();
  2377. // //string[] PrintParas = fileName.Split(';');
  2378. // int sort = 1;
  2379. // string fileUrl = "";
  2380. // ICSVenDorPreOA da = new ICSVenDorPreOA();
  2381. // da.appName = "collaboration";
  2382. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.attachments> attachmentsdetail = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.attachments>();
  2383. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.attachments attachments = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.attachments();
  2384. // attachments.ID = "";
  2385. // attachmentsdetail.Add(attachments);
  2386. // dat.templateCode = "SRM03";
  2387. // dat.draft = "0";
  2388. // dat.relateDoc = "";//(OA 公文附件 ID,默认为空,不使用)
  2389. // dat.subject = "";//(OA 流程标题,默认为空,OA 端自动生成标题)
  2390. // #region 职务
  2391. // //子女
  2392. // sql = @"SELECT PersonnelPosition,WhetheRelation,PersonnelPhone FROM dbo.ICSPREVENDORRelatedPerson a
  2393. // WHERE TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "' AND ISNULL(a.PersonnelPhone,'')<>''";
  2394. // DataTable dtPerson = SqlHelper.GetDataTableBySql(sql);
  2395. // for (int i = 0; i < dtPerson.Rows.Count; i++)
  2396. // {
  2397. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0040> formson_0040 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0040>();
  2398. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0040 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0040();
  2399. // dm0022.企业关联人员联系方式 = dtPerson.Rows[i]["PersonnelPhone"].ToString();
  2400. // dm0022.企业关联人员是否我方领导及子女担任 = dtPerson.Rows[i]["WhetheRelation"].ToString();
  2401. // dm0022.企业关联人员职位 = dtPerson.Rows[i]["PersonnelPosition"].ToString();
  2402. // dds.formson_0040.Add(dm0022);
  2403. // }
  2404. //#endregion
  2405. // #region 意向供货
  2406. // //意向供货
  2407. // sql = @"SELECT a.SupplyProduction FROM dbo.ICSPREVENDORIntendedSupply a
  2408. // WHERE TEMPVENDORCODE='" + TEMPVENDORCODE + "'and a.WorkPoint='" + WorkPoint + "'";
  2409. // DataTable dtVenDor = SqlHelper.GetDataTableBySql(sql);
  2410. // for (int i = 0; i < dtVenDor.Rows.Count; i++)
  2411. // {
  2412. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0035> formson_0035 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0035>();
  2413. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0035 dm0023 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0035();
  2414. // dm0023.意向供应产品 = dtVenDor.Rows[i]["SupplyProduction"].ToString();
  2415. // dds.formson_0035.Add(dm0023);
  2416. // }
  2417. // #endregion
  2418. // #region 生产设备
  2419. // //生产设备
  2420. // sql = @"SELECT EquipmentName,b.Attachment1 FROM dbo.ICSPREVENDOREquipment a
  2421. // LEFT JOIN ICSPREVENDORProductionInspection b on a.TEMPVENDORCODE=b.TEMPVENDORCODE AND a.WorkPoint=b.WorkPoint
  2422. // WHERE a.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2423. // DataTable dtDB = SqlHelper.GetDataTableBySql(sql);
  2424. // int subReference = 0;
  2425. // Random rd = new Random();  //无参即为使用系统时钟为种子
  2426. // subReference = rd.Next();
  2427. // if (!string.IsNullOrWhiteSpace(dtDB.Rows[0]["Attachment1"].ToString()))
  2428. // {
  2429. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments();
  2430. // string[] PrintParas = dtDB.Rows[0]["Attachment1"].ToString().Split(';');
  2431. // foreach (var p in PrintParas)
  2432. // {
  2433. // string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + TEMPVENDORCODE + "\\" + p.ToString());
  2434. // string APIURL = "http://172.16.8.33/seeyon/rest/attachment?token=" + ID;
  2435. // var IDFile = UploadLog(filePath, APIURL);
  2436. // JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile);
  2437. // JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
  2438. // foreach (var item in result)
  2439. // {
  2440. // JObject jo = (JObject)item;
  2441. // fileUrl = jo["fileUrl"].ToString(); //地址
  2442. // }
  2443. // //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
  2444. // ths.subReference = subReference;
  2445. // ths.fileUrl = fileUrl;
  2446. // ths.sort = sort;
  2447. // thirdAttachments.Add(ths);
  2448. // sort++;
  2449. // }
  2450. // dds.thirdAttachments.Add(ths);
  2451. // }
  2452. // for (int i = 0; i < dtDB.Rows.Count; i++)
  2453. // {
  2454. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0036> formson_0036 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0036>();
  2455. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0036 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0036();
  2456. // dm0022.生产设备名称 = dtDB.Rows[i]["EquipmentName"].ToString();
  2457. // dm0022.生产设备相关附件 = subReference;
  2458. // dds.formson_0036.Add(dm0022);
  2459. // }
  2460. // #endregion
  2461. // #region 检验信息
  2462. // //检验信息
  2463. // sql = @"SELECT CheckEquipmentName,Attachment4 FROM dbo.ICSPREVENDORCheckEquipment a
  2464. // LEFT JOIN ICSPREVENDORProductionInspection b on a.TEMPVENDORCODE=b.TEMPVENDORCODE AND a.WorkPoint=b.WorkPoint
  2465. // WHERE a.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2466. // DataTable dtCheckEquipment = SqlHelper.GetDataTableBySql(sql);
  2467. // Random rds = new Random();  //无参即为使用系统时钟为种子
  2468. // subReference = rds.Next();
  2469. // if (!string.IsNullOrWhiteSpace(dtCheckEquipment.Rows[0]["Attachment4"].ToString()))
  2470. // {
  2471. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments();
  2472. // string[] PrintParas = dtCheckEquipment.Rows[0]["Attachment4"].ToString().Split(';');
  2473. // foreach (var p in PrintParas)
  2474. // {
  2475. // string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + TEMPVENDORCODE + "\\" + p.ToString());
  2476. // string APIURL = "http://172.16.8.33/seeyon/rest/attachment?token=" + ID;
  2477. // var IDFile = UploadLog(filePath, APIURL);
  2478. // JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile);
  2479. // JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
  2480. // foreach (var item in result)
  2481. // {
  2482. // JObject jo = (JObject)item;
  2483. // fileUrl = jo["fileUrl"].ToString(); //地址
  2484. // }
  2485. // //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
  2486. // ths.subReference = subReference;
  2487. // ths.fileUrl = fileUrl;
  2488. // ths.sort = sort;
  2489. // thirdAttachments.Add(ths);
  2490. // sort++;
  2491. // }
  2492. // dds.thirdAttachments.Add(ths);
  2493. // }
  2494. // for (int i = 0; i < dtCheckEquipment.Rows.Count; i++)
  2495. // {
  2496. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0037> formson_0037 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0037>();
  2497. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0037 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0037();
  2498. // dm0022.检验设备名称 = dtCheckEquipment.Rows[i]["CheckEquipmentName"].ToString();
  2499. // dm0022.检验设备附件 = subReference;
  2500. // dds.formson_0037.Add(dm0022);
  2501. // }
  2502. // #endregion
  2503. // #region 销售信息
  2504. // //销售信息
  2505. // sql = @"SELECT S1Year,S1Amount,S1Ranking FROM dbo.ICSPREVENDORSales a
  2506. // WHERE TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2507. // DataTable dtPREVENDORSales = SqlHelper.GetDataTableBySql(sql);
  2508. // for (int i = 0; i < dtPREVENDORSales.Rows.Count; i++)
  2509. // {
  2510. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0038> formson_0038 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0038>();
  2511. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0038 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0038();
  2512. // dm0022.销售额 = dtPREVENDORSales.Rows[i]["S1Amount"].ToString();
  2513. // dm0022.销售年份 = dtPREVENDORSales.Rows[i]["S1Year"].ToString();
  2514. // dm0022.行业排名 = dtPREVENDORSales.Rows[i]["S1Ranking"].ToString();
  2515. // dds.formson_0038.Add(dm0022);
  2516. // }
  2517. // #endregion
  2518. // #region 认证资料信息
  2519. // //认证资料信息
  2520. // sql = @"SELECT
  2521. // distinct
  2522. // b.ID,
  2523. // c.id AS GGUID,
  2524. // a.CERTIFICATETPYECODE ,--认证类型代码
  2525. // a.CERTIFICATETYPENAME,--认证名称
  2526. // a.CERTIFICATEITEMNAME,--项目名称
  2527. // a.CERTIFICATEITEMCODE,
  2528. // CERTIFICATEITEMFileName,--认证项目模板文件名称
  2529. // CERTIFICATEITEMFilePath,--认证项目模板文件路径
  2530. // a.ISKEYTASK,--是否关键项
  2531. // a.NEEDUPLOADFILE,--是否必须上传附件
  2532. // BEGINDATE,--开始日期
  2533. // CONVERT(NVARCHAR(20),ENDDATE,23) as ENDDATE,--结束日期
  2534. // CERTIFICATETYPENFilePath,--供应商证书文件路径
  2535. // --CERTIFICATETPYECODE,--认真类型代码
  2536. // CERTIFICATENO,--证书编号
  2537. // c.CERTIFICATETYPENFileName AS UploadFile,--上传文件
  2538. // CERTIFICATIONINSTITUTIONS,--认证机构
  2539. // c.ADDITION1,
  2540. // c.CERTIFICATETYPENFileName AS UploadName,--上传文件
  2541. // e.WorkPoint
  2542. // FROM ICSCERTIFICATE a
  2543. // LEFT JOIN ICSCERTIFICATEITEM b on b.CERTIFICATEITEMCODE=a.CERTIFICATEITEMCODE and b.WorkPoint=a.WorkPoint
  2544. // LEFT JOIN ICSCERTIFICATEITEMDETAIL c on b.ID=c.GGUID and b.WorkPoint=c.WorkPoint
  2545. // inner JOIN dbo.ICSPREVENDORBasic d ON d.TEMPVENDORAttribute=a.CERTIFICATETYPENAME and a.WorkPoint=d.WorkPoint
  2546. // inner join ICSPREVENDOR e on d.TEMPVENDORCODE=e.TEMPVENDORCODE and d.WorkPoint=e.WorkPoint and b.VENDORCODE=e.VenCode
  2547. // WHERE d.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2548. // DataTable dtCERTIFICATE = SqlHelper.GetDataTableBySql(sql);
  2549. // for (int i = 0; i < dtCERTIFICATE.Rows.Count; i++)
  2550. // {
  2551. // Random rdss = new Random();  //无参即为使用系统时钟为种子
  2552. // subReference = rdss.Next();
  2553. // NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.thirdAttachments();
  2554. // if (!string.IsNullOrWhiteSpace(dtCERTIFICATE.Rows[i]["UploadName"].ToString()))
  2555. // {
  2556. // string[] PrintParas = dtCERTIFICATE.Rows[i]["UploadName"].ToString().Split(';');
  2557. // foreach (var p in PrintParas)
  2558. // {
  2559. // string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + TEMPVENDORCODE + "\\" + p.ToString());
  2560. // string APIURL = "http://172.16.8.33/seeyon/rest/attachment?token=" + ID;
  2561. // var IDFile = UploadLog(filePath, APIURL);
  2562. // JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile);
  2563. // JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
  2564. // foreach (var item in result)
  2565. // {
  2566. // JObject jo = (JObject)item;
  2567. // fileUrl = jo["fileUrl"].ToString(); //地址
  2568. // }
  2569. // //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
  2570. // ths.subReference = subReference;
  2571. // ths.fileUrl = fileUrl;
  2572. // ths.sort = sort;
  2573. // thirdAttachments.Add(ths);
  2574. // sort++;
  2575. // }
  2576. // dds.thirdAttachments.Add(ths);
  2577. // }
  2578. // List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0039> formson_0039 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0039>();
  2579. // Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0039 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formson_0039();
  2580. // dm0022.资料名称 = dtCERTIFICATE.Rows[i]["CERTIFICATEITEMNAME"].ToString();
  2581. // dm0022.资料附件 = subReference;
  2582. // dds.formson_0039.Add(dm0022);
  2583. // }
  2584. // #endregion
  2585. // #region 基本信息
  2586. // //基本信息
  2587. // sql = @"SELECT TEMPVENDORAttribute,
  2588. // CASE WHEN PaymentTermsDays='A' THEN '30天'WHEN PaymentTermsDays='B' THEN '90天' WHEN PaymentTermsDays='c'THEN'180天' ELSE '其他' END AS PaymentTermsDays ,a.TEMPVENDORNAME,RegADDR,BUSINESSSCOPE,
  2589. // CASE WHEN PaymentTermsDays='A' THEN '现金'WHEN PaymentTermsDays='B' THEN '转账' WHEN PaymentTermsDays='c'THEN'银行承兑汇票' ELSE '其他' END AS SettlementMethod,b.BillingInfoDepositBank,a.VENDORCODE,UnifiedCreditCode,CAPITAL,CONVERT(DECIMAL(8,0), WhetheListedCompany) AS WhetheListedCompany
  2590. // ,CONVERT(DECIMAL(8,0), WhetheProdDevCapability) AS WhetheProdDevCapability ,FactoryADDR,MEMBERQTY,PLANTAREA,CONVERT(DECIMAL(8,0), WhetheToolingDesignCapability) AS WhetheToolingDesignCapability ,LEGALPERSON
  2591. // ,VENDORPROPERTY,BillingInfoBankAccountNo,c.ID
  2592. // FROM ICSPREVENDORBasic a
  2593. // LEFT JOIN ICSPREVENDORBank b on a.TEMPVENDORCODE=b.TEMPVENDORCODE and a.WorkPoint=b.WorkPoint
  2594. // LEFT JOIN ICSOAEnum c ON a.WorkPoint=c.WorkPoint
  2595. // WHERE a.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2596. // DataTable dtDBDoc = SqlHelper.GetDataTableBySql(sql);
  2597. // Domain._03_Entity.SRM.ICSVenDorPreOA.formmain_0034 dm0021 = new Domain._03_Entity.SRM.ICSVenDorPreOA.formmain_0034();
  2598. // dm0021.日期 = DateTime.Now.ToString("yyyy-MM-dd");
  2599. // dm0021.公司 = dtDBDoc.Rows[0]["ID"].ToString();
  2600. // dm0021.编号 = BIDCodes;
  2601. // dm0021.姓名 = id;
  2602. // dm0021.部门 = departmentId;
  2603. // dm0021.岗位 = postId;
  2604. // dm0021.供应商全称 = dtDBDoc.Rows[0]["TEMPVENDORNAME"].ToString();
  2605. // dm0021.注册地址 = dtDBDoc.Rows[0]["RegADDR"].ToString();
  2606. // dm0021.组织机构代码 = dtDBDoc.Rows[0]["VENDORCODE"].ToString();
  2607. // dm0021.统一社会信用代码 = dtDBDoc.Rows[0]["UnifiedCreditCode"].ToString();
  2608. // dm0021.法人 = dtDBDoc.Rows[0]["LEGALPERSON"].ToString();
  2609. // dm0021.注册资本 = dtDBDoc.Rows[0]["CAPITAL"].ToString();
  2610. // dm0021.企业性质 = dtDBDoc.Rows[0]["PLANTAREA"].ToString();
  2611. // dm0021.是否上市公司 = Convert.ToInt32( dtDBDoc.Rows[0]["WhetheListedCompany"].ToString());
  2612. // dm0021.经营范围 = dtDBDoc.Rows[0]["BUSINESSSCOPE"].ToString();
  2613. // dm0021.供应商属性 = dtDBDoc.Rows[0]["TEMPVENDORAttribute"].ToString();
  2614. // dm0021.是否有产品开发能力 = Convert.ToInt32( dtDBDoc.Rows[0]["WhetheProdDevCapability"].ToString());
  2615. // dm0021.是否有工装设计制造能力 = Convert.ToInt32( dtDBDoc.Rows[0]["WhetheToolingDesignCapability"].ToString());
  2616. // dm0021.生产地址 = dtDBDoc.Rows[0]["FactoryADDR"].ToString();
  2617. // dm0021.厂区面积 = dtDBDoc.Rows[0]["PLANTAREA"].ToString();
  2618. // dm0021.员工人数 = dtDBDoc.Rows[0]["MEMBERQTY"].ToString();
  2619. // dm0021.结算方式 = dtDBDoc.Rows[0]["SettlementMethod"].ToString();
  2620. // dm0021.付款条件 = dtDBDoc.Rows[0]["PaymentTermsDays"].ToString();
  2621. // dm0021.开户行 = dtDBDoc.Rows[0]["BillingInfoDepositBank"].ToString();
  2622. // dm0021.账号 = dtDBDoc.Rows[0]["BillingInfoBankAccountNo"].ToString();
  2623. // #endregion
  2624. // dds.formmain_0034 = dm0021;
  2625. // dat.data = dds;
  2626. // da.data = dat;
  2627. // string input = JsonConvert.SerializeObject(da);
  2628. // //}
  2629. // string APIURLBid = "http://172.16.8.33/seeyon/rest/bpm/process/start?token=" + ID;
  2630. // string resultBid = HttpPost(APIURLBid, input);
  2631. // JObject resBId = (JObject)JsonConvert.DeserializeObject(resultBid);
  2632. // string Code = resBId["code"].ToString();//获取Tockn
  2633. // if (Code == "0")
  2634. // {
  2635. // sql = "Update ICSPREVENDOR set RegistrationStatus='OA待审核' Where TEMPVENDORCODE='" + TEMPVENDORCODE + "' and WorkPoint='"+WorkPoint+"'";
  2636. // SqlHelper.CmdExecuteNonQueryLi(sql);
  2637. // }
  2638. // else
  2639. // {
  2640. // msg = "OA上传OA失败!";
  2641. // }
  2642. // }
  2643. // else
  2644. // {
  2645. // msg = "获取Token失败";
  2646. // }
  2647. // }
  2648. // catch (Exception ex)
  2649. // {
  2650. // msg = ex.Message;
  2651. // }
  2652. // return msg;
  2653. // }
  2654. /// <summary>
  2655. /// 准入抛到OA(佑伦)
  2656. /// </summary>
  2657. /// <param name="TEMPVENDORCODE"></param>
  2658. /// <param name="WorkPoint"></param>
  2659. /// <returns></returns>
  2660. public string PreSubmitOARejict(string TEMPVENDORCODE, string WorkPoint,string Vendor)
  2661. {
  2662. string sql = "";
  2663. string UserCodeOA= NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2664. sql = "select id from OA.dbo.org_member where code='" + UserCodeOA + "'";
  2665. log.Info("追加异常" + sql);
  2666. DataTable dtUserCodeOA = SqlHelper.GetDataTableBySql(sql);
  2667. if (dtUserCodeOA.Rows.Count <= 0)
  2668. {
  2669. log.Info(dtUserCodeOA.Rows.Count);
  2670. throw new Exception("发起账号OA系统中不存在!!");
  2671. }
  2672. string msg = "";
  2673. DataTable dt = new DataTable();
  2674. var userInfo = new Dictionary<string, string>
  2675. {
  2676. {"userName", "ylzk-rest"},
  2677. {"password", "054d197d-73c2-4761-be58-a46efe6cd03f"},
  2678. {"loginName", UserCodeOA}
  2679. };
  2680. // {
  2681. //{"userName", "ylzk-rest"},
  2682. //{"password", "054d197d-73c2-4761-be58-a46efe6cd03f"},
  2683. //{"loginName", "ylzk-rest"}
  2684. //};
  2685. // 序列化Dictionary为JSON字符串
  2686. string jsonString = JsonConvert.SerializeObject(userInfo, Formatting.Indented);
  2687. log.Info("获取Tocken传入参数:"+jsonString);
  2688. var reqInterNme = "https://oa.ylzk.com.cn:6443/seeyon/rest/token";
  2689. string responseStr = HttpPost(reqInterNme, jsonString);
  2690. //var responseStr = httpGet(reqInterNme);
  2691. try
  2692. {
  2693. string OAForm = ConfigurationManager.ConnectionStrings["OAForm"].ConnectionString;
  2694. //JObject res = (JObject)JsonConvert.DeserializeObject(dtsql.Rows[0]["searchKey"].ToString());
  2695. JObject res = (JObject)JsonConvert.DeserializeObject(responseStr);
  2696. log.Info("输出Tocken参数:" + res);
  2697. string ID = res["id"].ToString();//获取Tockn
  2698. JObject resultbidUser = (JObject)JsonConvert.DeserializeObject(res["bindingUser"].ToString());
  2699. string id = resultbidUser["id"].ToString(); //用户ID
  2700. string departmentId = resultbidUser["departmentId"].ToString(); //部门ID
  2701. string postId = resultbidUser["postId"].ToString(); //岗位ID
  2702. //string Message = res["Message"].ToString();
  2703. if (!string.IsNullOrWhiteSpace(ID))
  2704. {
  2705. List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.thirdAttachments> thirdAttachments = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.thirdAttachments>();
  2706. NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.datadetail dat = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.datadetail();
  2707. NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.datass dds = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.datass();
  2708. //string sqlFile = "SELECT Attachment1,Attachment2 FROM ICSPREVENDORProductionInspection Where TEMPVENDORCODE='" + TEMPVENDORCODE + "'and WorkPoint='" + WorkPoint + "'";
  2709. //DataTable dts = SqlHelper.GetDataTableBySql(sqlFile);
  2710. //string fileName = "" + dts.Rows[0]["Attachment1"].ToString() + ";" + dts.Rows[0]["Attachment2"].ToString();
  2711. //string[] PrintParas = fileName.Split(';');
  2712. int sort = 1;
  2713. string fileUrl = "";
  2714. ICSVenDorPreOAByYL da = new ICSVenDorPreOAByYL();
  2715. da.appName = "collaboration";
  2716. List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.attachments> attachmentsdetail = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.attachments>();
  2717. NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.attachments attachments = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.attachments();
  2718. attachments.ID = "";
  2719. attachmentsdetail.Add(attachments);
  2720. dat.templateCode = OAForm;
  2721. dat.draft = "0";
  2722. dat.relateDoc = "";//(OA 公文附件 ID,默认为空,不使用)
  2723. dat.subject = "";//(OA 流程标题,默认为空,OA 端自动生成标题)
  2724. #region 岗位
  2725. //子女
  2726. sql = @"select ID, POST,TotalQTY,technicianQTY,ManagerQTY,WOrkerQTY,InspectorQTY
  2727. from ICSPREVENDORPersonnelStatus
  2728. WHERE TEMPVENDORCODE='" + TEMPVENDORCODE + "' and WorkPoint='" + WorkPoint + "' ";
  2729. DataTable dtPerson = SqlHelper.GetDataTableBySql(sql);
  2730. int rows = 1;
  2731. for (int i = 0; i < dtPerson.Rows.Count; i++)
  2732. {
  2733. List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0129> formson_0129 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0129>();
  2734. Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0129 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0129();
  2735. dm0022.field0003 = rows;
  2736. dm0022.field0004 = dtPerson.Rows[i]["POST"].ToString();
  2737. dm0022.field0005 = dtPerson.Rows[i]["TotalQTY"].ToString();
  2738. dm0022.field0006 = dtPerson.Rows[i]["technicianQTY"].ToString();
  2739. dm0022.field0007 = dtPerson.Rows[i]["ManagerQTY"].ToString();
  2740. dm0022.field0008 = dtPerson.Rows[i]["WOrkerQTY"].ToString();
  2741. dm0022.field0009 = dtPerson.Rows[i]["InspectorQTY"].ToString();
  2742. dds.formson_0129.Add(dm0022);
  2743. rows++;
  2744. }
  2745. #endregion
  2746. #region 意向供货
  2747. //意向供货
  2748. sql = @"SELECT a.SupplyProduction FROM dbo.ICSPREVENDORIntendedSupply a
  2749. WHERE TEMPVENDORCODE='" + TEMPVENDORCODE + "'and a.WorkPoint='" + WorkPoint + "'";
  2750. DataTable dtVenDor = SqlHelper.GetDataTableBySql(sql);
  2751. for (int i = 0; i < dtVenDor.Rows.Count; i++)
  2752. {
  2753. List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0128> formson_0128 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0128>();
  2754. Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0128 dm0023 = new Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0128();
  2755. dm0023.field0016 = dtVenDor.Rows[i]["SupplyProduction"].ToString();
  2756. dds.formson_0128.Add(dm0023);
  2757. }
  2758. #endregion
  2759. #region 认证资料信息
  2760. //认证资料信息
  2761. sql = @"SELECT
  2762. distinct
  2763. b.ID,
  2764. c.id AS GGUID,
  2765. a.CERTIFICATETPYECODE ,--
  2766. a.CERTIFICATETYPENAME,--
  2767. a.CERTIFICATEITEMNAME,--
  2768. a.CERTIFICATEITEMCODE,
  2769. CERTIFICATEITEMFileName,--
  2770. CERTIFICATEITEMFilePath,--
  2771. a.ISKEYTASK,--
  2772. a.NEEDUPLOADFILE,--
  2773. BEGINDATE,--
  2774. CONVERT(NVARCHAR(20),ENDDATE,23) as ENDDATE,--
  2775. CERTIFICATETYPENFilePath,--
  2776. --CERTIFICATETPYECODE,--
  2777. CERTIFICATENO,--
  2778. c.CERTIFICATETYPENFileName AS UploadFile,--
  2779. CERTIFICATIONINSTITUTIONS,--
  2780. c.ADDITION1,
  2781. c.CERTIFICATETYPENFileName AS UploadName,--
  2782. e.WorkPoint
  2783. FROM ICSCERTIFICATE a
  2784. LEFT JOIN ICSCERTIFICATEITEM b on b.CERTIFICATEITEMCODE=a.CERTIFICATEITEMCODE and b.WorkPoint=a.WorkPoint
  2785. LEFT JOIN ICSCERTIFICATEITEMDETAIL c on b.ID=c.GGUID and b.WorkPoint=c.WorkPoint
  2786. inner JOIN dbo.ICSPREVENDORBasic d ON d.TEMPVENDORAttribute=a.CERTIFICATETYPENAME and a.WorkPoint=d.WorkPoint
  2787. inner join ICSPREVENDOR e on d.TEMPVENDORCODE=e.TEMPVENDORCODE and d.WorkPoint=e.WorkPoint and b.VENDORCODE=e.VenCode
  2788. WHERE d.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2789. DataTable dtCERTIFICATE = SqlHelper.GetDataTableBySql(sql);
  2790. for (int i = 0; i < dtCERTIFICATE.Rows.Count; i++)
  2791. {
  2792. Random rdss = new Random();  //无参即为使用系统时钟为种子
  2793. //int subReference = rdss.Next();
  2794. NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.thirdAttachments ths = new NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.thirdAttachments();
  2795. //if (!string.IsNullOrWhiteSpace(dtCERTIFICATE.Rows[i]["UploadName"].ToString()))
  2796. //{
  2797. // string[] PrintParas = dtCERTIFICATE.Rows[i]["UploadName"].ToString().Split(';');
  2798. // log.Info("追加异常" + PrintParas);
  2799. // foreach (var p in PrintParas)
  2800. // {
  2801. // string filePath = System.Web.HttpContext.Current.Server.MapPath("~\\File\\VendorFile\\" + TEMPVENDORCODE + "\\" + p.ToString());
  2802. // log.Info("追加异常" + filePath);
  2803. // string APIURL = "https://oa.ylzk.com.cn:6443/seeyon/rest/attachment?token=" + ID;
  2804. // var IDFile = UploadLog(filePath, APIURL);
  2805. // JObject resFile = (JObject)JsonConvert.DeserializeObject(IDFile);
  2806. // log.Info("追加异常" + IDFile);
  2807. // JArray result = (JArray)JsonConvert.DeserializeObject(resFile["atts"].ToString());
  2808. // log.Info("追加异常" + result);
  2809. // foreach (var item in result)
  2810. // {
  2811. // JObject jo = (JObject)item;
  2812. // fileUrl = jo["fileUrl"].ToString(); //地址
  2813. // log.Info("追加异常" + fileUrl);
  2814. // }
  2815. // //JObject result = (JObject)JsonConvert.DeserializeObject(resFile["atts"].ToString());//企业信息
  2816. // ths.subReference = subReference;
  2817. // ths.fileUrl = fileUrl;
  2818. // ths.sort = sort;
  2819. // thirdAttachments.Add(ths);
  2820. // sort++;
  2821. // }
  2822. // dds.thirdAttachments.Add(ths);
  2823. //}
  2824. List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0130> formson_0130 = new List<NFine.Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0130>();
  2825. Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0130 dm0022 = new Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formson_0130();
  2826. dm0022.field0011 = dtCERTIFICATE.Rows[i]["CERTIFICATEITEMNAME"].ToString();
  2827. dm0022.field0015 = dtCERTIFICATE.Rows[i]["UploadName"].ToString();
  2828. log.Info("追加异常" + dtCERTIFICATE.Rows[i]["CERTIFICATEITEMNAME"].ToString());
  2829. //log.Info("追加异常" + subReference);
  2830. dds.formson_0130.Add(dm0022);
  2831. }
  2832. #endregion
  2833. #region 基本信息
  2834. //基本信息
  2835. sql = @"SELECT a.TEMPVENDORNAME,RegADDR,b.BillingInfoDepositBank,BillingInfoBankAccountNo,BillingInfoDutyParagraph,BusinessContactName,BusinessContactPhone,BusinessContactMail,UnifiedCreditCode,d.VenCode,b.ADDITION3
  2836. FROM ICSPREVENDORBasic a
  2837. LEFT JOIN ICSPREVENDORBank b on a.TEMPVENDORCODE=b.TEMPVENDORCODE and a.WorkPoint=b.WorkPoint
  2838. left join ICSPREVENDORContact c on b.TEMPVENDORCODE=c.TEMPVENDORCODE and b.WorkPoint=c.WorkPoint
  2839. left join ICSPREVENDOR d on a.TEMPVENDORCODE=d.TEMPVENDORCODE and a.WorkPoint=d.WorkPoint
  2840. WHERE a.TEMPVENDORCODE='" + TEMPVENDORCODE + "' and a.WorkPoint='" + WorkPoint + "'";
  2841. DataTable dtDBDoc = SqlHelper.GetDataTableBySql(sql);
  2842. Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formmain_0127 dm0021 = new Domain._03_Entity.SRM.ICSVenDorPreOAByYL.formmain_0127();
  2843. dm0021.field0001 = dtDBDoc.Rows[0]["TEMPVENDORNAME"].ToString();
  2844. dm0021.field0002 = dtDBDoc.Rows[0]["RegADDR"].ToString();
  2845. dm0021.field0019 = dtDBDoc.Rows[0]["BillingInfoDepositBank"].ToString();
  2846. dm0021.field0020 = dtDBDoc.Rows[0]["BillingInfoBankAccountNo"].ToString();
  2847. dm0021.field0021 = dtDBDoc.Rows[0]["UnifiedCreditCode"].ToString();
  2848. dm0021.field0022 = dtDBDoc.Rows[0]["BusinessContactName"].ToString();
  2849. dm0021.field0023 = dtDBDoc.Rows[0]["BusinessContactPhone"].ToString();
  2850. dm0021.field0024 = dtDBDoc.Rows[0]["BusinessContactMail"].ToString();
  2851. dm0021.field0025 = dtDBDoc.Rows[0]["VenCode"].ToString(); ;
  2852. dm0021.field0026 = dtDBDoc.Rows[0]["TEMPVENDORNAME"].ToString();
  2853. dm0021.field0027 = Vendor;
  2854. dm0021.field0028 = dtDBDoc.Rows[0]["ADDITION3"].ToString();
  2855. #endregion
  2856. dds.formmain_0127 = dm0021;
  2857. dat.data = dds;
  2858. da.data = dat;
  2859. string input = JsonConvert.SerializeObject(da);
  2860. log.Info("传入参数" + input);
  2861. //}
  2862. string APIURLBid = "https://oa.ylzk.com.cn:6443/seeyon/rest/bpm/process/start?token=" + ID;
  2863. string resultBid = HttpPost(APIURLBid, input);
  2864. JObject resBId = (JObject)JsonConvert.DeserializeObject(resultBid);
  2865. log.Info("输出参数" + resBId);
  2866. string Code = resBId["code"].ToString();//获取Tockn
  2867. if (Code == "0")
  2868. {
  2869. string appBussinessDataJson = resBId["data"]["app_bussiness_data"].ToString();
  2870. // 解析 app_bussiness_data 的 JSON 数据
  2871. JObject appBussinessDataObject = JObject.Parse(appBussinessDataJson);
  2872. // 提取 affairId 和 summaryId 的值
  2873. string affairId = appBussinessDataObject["affairId"].ToString();
  2874. string summaryId = appBussinessDataObject["summaryId"].ToString();
  2875. sql = "Update ICSPREVENDOR set RegistrationStatus='OA待审核',ADDITION3='"+ affairId + @"',ADDITION4='"+ summaryId + "' Where TEMPVENDORCODE='" + TEMPVENDORCODE + "' and WorkPoint='" + WorkPoint + "'";
  2876. SqlHelper.CmdExecuteNonQueryLi(sql);
  2877. }
  2878. else
  2879. {
  2880. msg = "OA上传OA失败,失败原因:"+ resBId["message"].ToString();
  2881. }
  2882. }
  2883. else
  2884. {
  2885. msg = "获取Token失败";
  2886. }
  2887. }
  2888. catch (Exception ex)
  2889. {
  2890. msg = ex.Message;
  2891. log.Error(msg + sql);
  2892. }
  2893. return msg;
  2894. }
  2895. /// <summary>
  2896. /// 撤销准入抛到OA(佑伦)
  2897. /// </summary>
  2898. /// <param name="TEMPVENDORCODE"></param>
  2899. /// <param name="WorkPoint"></param>
  2900. /// <returns></returns>
  2901. ///
  2902. public string CleanPreSubmitOARejict(string ADDITION3, string WorkPoint, string ADDITION4,string TEMPVENDORCODE)
  2903. {
  2904. string sql = "";
  2905. string sqls = "";
  2906. string msg = "";
  2907. try {
  2908. #region 推送OA
  2909. string UserCodeOA = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  2910. string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
  2911. sql = "select id from OA.dbo.org_member where code='" + UserCodeOA + "'";
  2912. log.Info("追加异常" + sql);
  2913. DataTable dtUserCodeOA = SqlHelper.GetDataTableBySql(sql);
  2914. if (dtUserCodeOA.Rows.Count <= 0)
  2915. {
  2916. log.Info(dtUserCodeOA.Rows.Count);
  2917. throw new Exception("发起账号OA系统中不存在!!");
  2918. }
  2919. DataTable dt = new DataTable();
  2920. var userInfo = new Dictionary<string, string>
  2921. {
  2922. {"userName", "ylzk-rest"},
  2923. {"password", "054d197d-73c2-4761-be58-a46efe6cd03f"},
  2924. {"loginName", UserCodeOA}
  2925. };
  2926. //var userInfo = new Dictionary<string, string>
  2927. // {
  2928. // {"userName", "ylzk-rest"},
  2929. // {"password", "054d197d-73c2-4761-be58-a46efe6cd03f"},
  2930. // {"loginName", "ylzk-rest"}
  2931. // };
  2932. // 序列化Dictionary为JSON字符串
  2933. string jsonString = JsonConvert.SerializeObject(userInfo, Formatting.Indented);
  2934. log.Info("获取Tocken传入参数:" + jsonString);
  2935. var reqInterNme = "https://oa.ylzk.com.cn:6443/seeyon/rest/token";
  2936. string responseStr = CertifiCationApp.HttpPost(reqInterNme, jsonString);
  2937. //var responseStr = httpGet(reqInterNme);
  2938. try
  2939. {
  2940. //JObject res = (JObject)JsonConvert.DeserializeObject(dtsql.Rows[0]["searchKey"].ToString());
  2941. JObject res = (JObject)JsonConvert.DeserializeObject(responseStr);
  2942. log.Info("输出Tocken参数:" + res);
  2943. string ID = res["id"].ToString();//获取Tockn
  2944. JObject resultbidUser = (JObject)JsonConvert.DeserializeObject(res["bindingUser"].ToString());
  2945. string id = resultbidUser["id"].ToString(); //用户ID
  2946. string departmentId = resultbidUser["departmentId"].ToString(); //部门ID
  2947. string postId = resultbidUser["postId"].ToString(); //岗位ID
  2948. //string Message = res["Message"].ToString();
  2949. if (!string.IsNullOrWhiteSpace(ID))
  2950. {
  2951. var cancelInfo = new Dictionary<string, string>
  2952. {
  2953. {"affairId", ADDITION3},
  2954. {"summaryId",ADDITION4},
  2955. {"loginName", UserCodeOA}
  2956. };
  2957. // 序列化Dictionary为JSON字符串
  2958. string canceljsonString = JsonConvert.SerializeObject(cancelInfo, Formatting.Indented);
  2959. log.Info("传入参数" + canceljsonString);
  2960. //}
  2961. string APIURLBid = "https://oa.ylzk.com.cn:6443/seeyon/rest/affair/cancel?token=" + ID;
  2962. string resultBid = CertifiCationApp.HttpPost(APIURLBid, canceljsonString);
  2963. log.Info("输出参数" + resultBid);
  2964. if (resultBid == "true")
  2965. {
  2966. sql = "Update ICSPREVENDOR set RegistrationStatus='待初审' Where TEMPVENDORCODE='" + TEMPVENDORCODE + "' and WorkPoint='" + WorkPoint + "'";
  2967. SqlHelper.CmdExecuteNonQueryLi(sql);
  2968. }
  2969. }
  2970. }
  2971. catch (Exception ex)
  2972. {
  2973. // for (int i = 0; i < jobject.Count; i++)
  2974. // {
  2975. // sqls += @"update a
  2976. // set a.QUOSTATUS='Publish'
  2977. // from icsSORQUODETAILNORMAL a
  2978. //left join icsSORQUOTATION b ON a.QUOTATIONCODE=b.QUOTATIONCODE AND a.WorkPoint=b.WorkPoint
  2979. // LEFT JOIN dbo.ICSVendor c ON b.VENDORCODE=c.VenCode AND b.WorkPoint=c.WorkPoint
  2980. // where b.RFQCODE='" + jobject[i]["RFQCODE"] + "'";
  2981. // sqls += " UPDATE icsSORRFQ SET STATUS='Publish' where RFQCODE='" + jobject[i]["RFQCODE"] + "'";
  2982. // }
  2983. // SqlHelper.CmdExecuteNonQueryLi(sqls);
  2984. log.Error(ex.Message);
  2985. msg = ex.Message;
  2986. }
  2987. #endregion
  2988. }
  2989. catch (Exception ex)
  2990. {
  2991. msg = ex.Message;
  2992. log.Error(msg + sql);
  2993. }
  2994. return msg;
  2995. }
  2996. /// <summary>
  2997. /// Http Get请求
  2998. /// </summary>
  2999. /// <param name="url"></param>
  3000. /// <param name="headerValue"></param>
  3001. /// <returns></returns>
  3002. static String httpGet(string url)
  3003. {
  3004. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3005. WebHeaderCollection headers = new WebHeaderCollection();
  3006. //headers.Add("Token", headerValue[0]);
  3007. //headers.Add("Timespan", headerValue[1]);
  3008. request.UserAgent = null;
  3009. request.Headers = headers;
  3010. request.Method = "GET";
  3011. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  3012. var httpStatusCode = (int)response.StatusCode;
  3013. Console.WriteLine("返回码为 {0}", httpStatusCode);
  3014. if (httpStatusCode == 200)
  3015. {
  3016. Stream myResponseStream = response.GetResponseStream();
  3017. StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
  3018. string retString = myStreamReader.ReadToEnd();
  3019. myStreamReader.Close();
  3020. myResponseStream.Close();
  3021. return retString;
  3022. }
  3023. else
  3024. {
  3025. Console.WriteLine("未返回数据 {0}", httpStatusCode);
  3026. throw new Exception("no data response");
  3027. }
  3028. }
  3029. /// <summary>
  3030. /// Http P0st请求
  3031. /// </summary>
  3032. /// <param name="url"></param>
  3033. /// <param name="headerValue"></param>
  3034. /// <returns></returns>
  3035. public static string UploadLog(string file, string fileippath)
  3036. {
  3037. var uploadUrl = fileippath;
  3038. HttpWebRequest request = WebRequest.Create(uploadUrl) as HttpWebRequest;
  3039. request.AllowAutoRedirect = true;
  3040. request.Method = "POST";
  3041. //这段代码不是必须,请求头传输内容,看业务情况
  3042. //request.Headers.Add("iauth", ia);//加鉴权
  3043. string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
  3044. request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
  3045. byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");
  3046. byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
  3047. int pos = file.LastIndexOf("\\");
  3048. string fileName = file.Substring(pos + 1);
  3049. //请求头部信息
  3050. 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));
  3051. byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
  3052. FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
  3053. byte[] bArr = new byte[fs.Length];
  3054. fs.Read(bArr, 0, bArr.Length);
  3055. fs.Close();
  3056. Stream postStream = request.GetRequestStream();
  3057. postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);
  3058. postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
  3059. postStream.Write(bArr, 0, bArr.Length);
  3060. postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
  3061. postStream.Close();
  3062. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  3063. Stream instream = response.GetResponseStream();
  3064. StreamReader sr = new StreamReader(instream, Encoding.UTF8);
  3065. string content = sr.ReadToEnd();
  3066. return content;
  3067. }
  3068. //public static string HttpPost(string url, string body)
  3069. //{
  3070. // try
  3071. // {
  3072. // Encoding encoding = Encoding.UTF8;
  3073. // HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3074. // request.Method = "POST";
  3075. // request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
  3076. // request.ContentType = "application/json; charset=utf-8";
  3077. // byte[] buffer = encoding.GetBytes(body);
  3078. // request.ContentLength = buffer.Length;
  3079. // request.GetRequestStream().Write(buffer, 0, buffer.Length);
  3080. // HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  3081. // using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  3082. // {
  3083. // return reader.ReadToEnd();
  3084. // }
  3085. // }
  3086. // catch (WebException ex)
  3087. // {
  3088. // throw new Exception(ex.Message);
  3089. // }
  3090. //}
  3091. public static string HttpPost(string url, string body)
  3092. {
  3093. // 设置TLS版本(推荐在全局范围内设置,但这里为了示例放在方法内)
  3094. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
  3095. try
  3096. {
  3097. Encoding encoding = Encoding.UTF8;
  3098. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
  3099. request.Method = "POST";
  3100. request.Accept = "application/json, text/javascript, */*";
  3101. request.ContentType = "application/json; charset=utf-8";
  3102. byte[] buffer = encoding.GetBytes(body);
  3103. request.ContentLength = buffer.Length;
  3104. using (Stream stream = request.GetRequestStream())
  3105. {
  3106. stream.Write(buffer, 0, buffer.Length);
  3107. }
  3108. using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  3109. {
  3110. using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
  3111. {
  3112. return reader.ReadToEnd();
  3113. }
  3114. }
  3115. }
  3116. catch (WebException ex)
  3117. {
  3118. // 注意:在生产环境中,你可能希望更详细地处理这个异常,而不是简单地抛出另一个异常
  3119. throw new Exception($"HTTP POST request failed: {ex.Message}");
  3120. }
  3121. }
  3122. /// <summary>
  3123. /// 文件名写入数据库
  3124. /// </summary>
  3125. /// <param name="TEMPVENDORCODELS"></param>
  3126. /// <param name="WorkPoint"></param>
  3127. /// <param name="FileName"></param>
  3128. public void UpLoadFileBYVendor(string TEMPVENDORCODELS, string WorkPoint, string FileName)
  3129. {
  3130. string MSg = string.Empty;
  3131. try
  3132. {
  3133. string sql = @"UPDATE ICSPREVENDOR SET ADDITION5 ='{0}' WHERE TEMPVENDORCODE='{1}' AND WorkPoint='{2}' ";
  3134. sql = string.Format(sql, FileName.TrimEnd(';'), TEMPVENDORCODELS, WorkPoint);
  3135. SqlHelper.ExecuteNonQuery(sql);
  3136. }
  3137. catch (Exception ex)
  3138. {
  3139. MSg = ex.Message;
  3140. }
  3141. }
  3142. /// <summary>
  3143. /// 获取供应商分类
  3144. /// </summary>
  3145. /// <returns></returns>
  3146. public DataTable GetVCCode()
  3147. {
  3148. string sql = @"select '' as F_VenCode,'' as cVenName
  3149. union all
  3150. SELECT a.F_ItemCode as F_VenCode,a.F_ItemName as cVenName FROM Sys_SRM_ItemsDetail a
  3151. LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
  3152. WHERE b.F_EnCode = 'Vendor_Category' and a.F_EnabledMark='1' ";
  3153. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3154. return dt;
  3155. }
  3156. public string PreSendMail(string TEMPVENDORCODE, string WorkPoint, string Vendor)
  3157. {
  3158. string msg = "";
  3159. string sql = @"SELECT a.F_Account,a.F_Email,c.VenCode,c.VenName FROM dbo.Sys_SRM_User a
  3160. LEFT JOIN dbo.Sys_SRM_Role b ON a.F_RoleId=b.F_Id
  3161. LEFT JOIN dbo.ICSVendor c ON a.F_VenCode=c.VenCode AND a.F_Location=c.WorkPoint
  3162. WHERE a.F_NickName='{0}' AND b.F_EnCode='Vendor'";
  3163. sql = string.Format(sql, TEMPVENDORCODE);
  3164. DataTable dt=SqlHelper.GetDataTableBySql(sql );
  3165. string MailOpen = ConfigurationManager.ConnectionStrings["MailOpen"].ConnectionString;
  3166. try
  3167. {
  3168. if (MailOpen == "true")
  3169. {
  3170. string SendHost = ConfigurationManager.ConnectionStrings["SendHost"].ConnectionString;
  3171. string CusterJC = ConfigurationManager.ConnectionStrings["CusterJC"].ConnectionString;
  3172. string CusterQC = ConfigurationManager.ConnectionStrings["CusterQC"].ConnectionString;
  3173. string StrSendPort = ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString;
  3174. int SendPort = 25;
  3175. if (!string.IsNullOrEmpty(StrSendPort))
  3176. SendPort = Convert.ToInt32(ConfigurationManager.ConnectionStrings["SendPort"].ConnectionString);
  3177. string SendDisplayName = ConfigurationManager.ConnectionStrings["SendDisplayName"].ConnectionString;
  3178. string SendAddress = ConfigurationManager.ConnectionStrings["SendAddress"].ConnectionString;
  3179. string SendPassword = ConfigurationManager.ConnectionStrings["SendPassword"].ConnectionString;
  3180. foreach (DataRow dr in dt.Rows)
  3181. {
  3182. string cVenCode = dr["VenCode"].ToString();
  3183. string TOAddress = GetVendorEmail(cVenCode).TrimEnd(';');
  3184. string[] Partint = TOAddress.Split(';');
  3185. if (!string.IsNullOrEmpty(TOAddress))
  3186. {
  3187. foreach (var p in Partint)
  3188. {
  3189. string CCAddress = "";
  3190. string Subject = "有来自" + CusterJC + "SRM平台新发布的信息";
  3191. bool isBodyHtml = false;
  3192. string VenName = dr["VenName"].ToString();
  3193. string F_Account = dr["F_Account"].ToString();
  3194. string NowDate = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
  3195. string body = "尊敬的" + VenName + ":";
  3196. body += " \r\n\n 您所提交的准入信息已审核通过,临时账号已被删除,请使用新账号:" + F_Account + " 密码:123456进行登录";
  3197. body += "\r\n";
  3198. body += " 顺颂商祺!";
  3199. body += "\r\n";
  3200. body += " " + CusterQC + "";
  3201. body += "\r\n";
  3202. body += " " + NowDate;
  3203. if (!string.IsNullOrEmpty(TOAddress))
  3204. {
  3205. string StrConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
  3206. ICSSendMail.SendEmail(StrConn, SendHost, SendPort, SendDisplayName, SendAddress, SendPassword, p.ToString(), CCAddress, Subject, isBodyHtml, body);
  3207. }
  3208. else
  3209. {
  3210. msg = "未维护邮箱,请到ERP维护供应商邮箱地址!";
  3211. }
  3212. }
  3213. }
  3214. }
  3215. }
  3216. }
  3217. catch (Exception ex)
  3218. {
  3219. msg=ex.Message;
  3220. }
  3221. //SendEmailByWH(queryJson.TrimEnd(','),"采购");
  3222. return msg;
  3223. }
  3224. public string GetVendorEmail(string VenCode)
  3225. {
  3226. string sql = " SELECT F_Email FROM dbo.Sys_SRM_User WHERE F_VenCode='" + VenCode + "'";
  3227. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3228. string Email = string.Empty;
  3229. foreach (DataRow dr in dt.Rows)
  3230. {
  3231. Email += dr["F_Email"].ToString() + ";";
  3232. }
  3233. return Email;
  3234. }
  3235. public DataTable ExportAll(string WorkPoint, string VenCode, string VenName, string CERTIFICATETPYECODE, string CERTIFICATETYPENAME, string CERTIFICATEITEMCODE, string CERTIFICATEITEMNAME,string status)
  3236. {
  3237. string ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  3238. List<DbParameter> parameter = new List<DbParameter>();
  3239. string sql = @"SELECT DISTINCT
  3240. c.VenName ,
  3241. a.VENDORCODE ,
  3242. a.CERTIFICATEITEMCODE ,
  3243. a.CERTIFICATEITEMNAME ,
  3244. case when a.AUDITRESULT='Check' THEN ''
  3245. WHEN a.AUDITRESULT='REJECT' THEN ''
  3246. WHEN b.STATUS= '' AND a.AUDITRESULT= 'pass' AND b.AUDITRESULT is Null THEN''
  3247. WHEN a.AUDITRESULT= 'pass' AND b.STATUS= '' THEN''
  3248. WHEN Getdate( ) > a.PLANFINISHDATE AND a.AUDITRESULT IN ( 'New', 'REJECT' ) THEN''
  3249. ELSE '' END AS ,
  3250. a.CERTIFICATETPYECODE ,
  3251. a.CERTIFICATETYPENAME ,
  3252. a.WorkPoint
  3253. FROM ICSCERTIFICATEITEM a
  3254. LEFT JOIN ICSCERTIFICATEITEMDETAIL b ON a.ID= b.GGUID AND a.WorkPoint= b.WorkPoint AND isnull(b.AUDITRESULT,'')<> 'REJECT'
  3255. LEFT JOIN ICSVendor c ON a.VENDORCODE= c.VenCode
  3256. WHERE 1 =1";
  3257. if (!string.IsNullOrWhiteSpace(WorkPoint))
  3258. {
  3259. sql += " and a.WorkPoint like '%" + WorkPoint + "%' ";
  3260. }
  3261. if (!string.IsNullOrWhiteSpace(VenCode))
  3262. {
  3263. sql += " and a.VENDORCODE like '%" + VenCode + "%' ";
  3264. }
  3265. if (!string.IsNullOrWhiteSpace(VenName))
  3266. {
  3267. sql += " and c.VenName like '%" + VenName + "%' ";
  3268. }
  3269. if (!string.IsNullOrWhiteSpace(CERTIFICATETPYECODE))
  3270. {
  3271. sql += " and a.CERTIFICATETPYECODE like '%" + CERTIFICATETPYECODE + "%' ";
  3272. }
  3273. if (!string.IsNullOrWhiteSpace(CERTIFICATETYPENAME))
  3274. {
  3275. sql += " and a.CERTIFICATETYPENAME like '%" + CERTIFICATETYPENAME + "%' ";
  3276. }
  3277. if (!string.IsNullOrWhiteSpace(CERTIFICATEITEMCODE))
  3278. {
  3279. sql += " and a.CERTIFICATEITEMCODE like '%" + CERTIFICATEITEMCODE + "%' ";
  3280. }
  3281. if (!string.IsNullOrWhiteSpace(CERTIFICATEITEMNAME))
  3282. {
  3283. sql += " and a.CERTIFICATEITEMNAME like '%" + CERTIFICATEITEMNAME + "%' ";
  3284. }
  3285. if (!string.IsNullOrWhiteSpace(status))
  3286. {
  3287. sql += @" and case when a.AUDITRESULT='Check' THEN '审核中'
  3288. WHEN a.AUDITRESULT='REJECT' THEN ''
  3289. WHEN b.STATUS= '' AND a.AUDITRESULT= 'pass' AND b.AUDITRESULT is Null THEN''
  3290. WHEN a.AUDITRESULT= 'pass' AND b.STATUS= '' THEN''
  3291. WHEN Getdate( ) > a.PLANFINISHDATE AND a.AUDITRESULT IN ( 'New', 'REJECT' ) THEN''
  3292. ELSE '' END in (" + status + ") ";
  3293. }
  3294. if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
  3295. {
  3296. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  3297. }
  3298. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  3299. {
  3300. sql += " and c.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
  3301. }
  3302. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  3303. return dt;
  3304. }
  3305. }
  3306. }