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.

269 lines
13 KiB

3 days ago
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using NFine.Code;
  4. using NFine.Data.Extensions;
  5. using NFine.Domain._03_Entity.SRM;
  6. using NFine.Domain.Entity.ProductManage;
  7. using NFine.Domain.IRepository.ProductManage;
  8. using NFine.Repository;
  9. using NFine.Repository.ProductManage;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Configuration;
  13. using System.Data;
  14. using System.Data.Common;
  15. using System.IO;
  16. using System.Linq;
  17. using System.Net;
  18. using System.Text;
  19. namespace NFine.Application.SRM
  20. {
  21. public class VerificationApp : RepositoryFactory<ICSVendor>
  22. {
  23. public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
  24. {
  25. DataTable dt = new DataTable();
  26. var queryParam = queryJson.ToJObject();
  27. List<DbParameter> parameter = new List<DbParameter>();
  28. string sql = @"select a.ID, b.GGUID,a.VENDORCODE,c.VenName cVenName,a.AUDITRESULT,a.AUDITRESULT as AUDITRESULTS,a.CERTIFICATETPYECODE,a.CERTIFICATETYPENAME,a.CERTIFICATEITEMCODE,a.CERTIFICATEITEMNAME,
  29. a.ISKEYTASK,a.NEEDUPLOADFILE,b.BEGINDATE,b.ENDDATE,b.CERTIFICATETYPENFilePath,b.CERTIFICATETYPENFileName,a.CREATEDATE as MODIFIEDTIME,a.WorkPoint,
  30. b.CERTIFICATIONINSTITUTIONS,b.CERTIFICATENO,b.CERTIFICATETYPENAME as BCERTIFICATETYPENAME,a.Remark as Remark,b.Type,b.ADDITION1,
  31. case when isnull(e.TEMPVENDORCODE,'')='' then f.TEMPVENDORCODE else d.F_Account end as TEMPVENDORCODE,a.VenType,a.Supplierlevel
  32. from ICSCERTIFICATEITEM a
  33. inner join ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and a.WorkPoint=b.WorkPoint and b.STATUS=''
  34. left join ICSVendor c on a.VENDORCODE=c.VenCode and b.WorkPoint=c.WorkPoint
  35. left join Sys_SRM_User d on c.VenCode=d.F_VenCode and c.WorkPoint=d.F_Location
  36. left join ICSPREVENDOR e on d.F_Account=e.TEMPVENDORCODE and a.WorkPoint=e.WorkPoint
  37. left join ICSPREVENDOR f on c.VenCode=f.VenCode and a.WorkPoint=c.WorkPoint
  38. where a.AUDITRESULT<>'New'
  39. ";
  40. if (!string.IsNullOrWhiteSpace(queryJson))
  41. {
  42. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATETYPENAME"].ToString()))
  43. {
  44. sql += " and a.CERTIFICATETYPENAME like '%" + queryParam["CERTIFICATETYPENAME"].ToString() + "%' ";
  45. }
  46. if (!string.IsNullOrWhiteSpace(queryParam["CERTIFICATEITEMNAME"].ToString()))
  47. {
  48. sql += " and a.CERTIFICATEITEMNAME like '%" + queryParam["CERTIFICATEITEMNAME"].ToString() + "%' ";
  49. }
  50. if (!string.IsNullOrWhiteSpace(queryParam["VENDORCODE"].ToString()))
  51. {
  52. sql += " and a.VENDORCODE like '%" + queryParam["VENDORCODE"].ToString() + "%' ";
  53. }
  54. if (!string.IsNullOrWhiteSpace(queryParam["VENDORCODEName"].ToString()))
  55. {
  56. sql += " and c.VenName like '%" + queryParam["VENDORCODEName"].ToString() + "%' ";
  57. }
  58. if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
  59. {
  60. sql += " and a.MODIFIEDDATE >= '" + queryParam["TimeFrom"].ToString() + "' ";
  61. }
  62. if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
  63. {
  64. sql += " and a.MODIFIEDDATE <= '" + queryParam["TimeTo"].ToString() + "' ";
  65. }
  66. if (!string.IsNullOrWhiteSpace(queryParam["status"].ToString()))
  67. {
  68. sql += " and a.AUDITRESULT in( " + queryParam["status"].ToString().TrimEnd(',') + ") ";
  69. }
  70. }
  71. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  72. {
  73. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  74. }
  75. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  76. {
  77. sql += " and c.cVenCode in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
  78. }
  79. return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
  80. }
  81. /// <summary>
  82. /// 采购审核
  83. /// </summary>
  84. /// <param name="keyValue"></param>
  85. /// <param name="WorkPoint"></param>
  86. /// <returns></returns>
  87. public string Audit(string keyValue)
  88. {
  89. string msg = "";
  90. string sql = string.Empty;
  91. try
  92. {
  93. JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
  94. foreach (var item in res)
  95. {
  96. JObject jo = (JObject)item;
  97. sql += @"UPDATE ICSCERTIFICATEITEM SET AUDITRESULT = 'PurchasingPass',VenType='{2}',Supplierlevel='{3}' WHERE ID ='{0}' and WorkPoint='{1}' ";
  98. sql = string.Format(sql, jo["ID"].ToString(), jo["WorkPoint"].ToString(), jo["VenType"].ToString(), jo["Supplierlevel"].ToString());
  99. }
  100. SqlHelper.CmdExecuteNonQueryLi(sql);
  101. }
  102. catch (Exception ex)
  103. {
  104. msg = ex.Message;
  105. }
  106. return msg;
  107. }
  108. /// <summary>
  109. /// 经理审核
  110. /// </summary>
  111. /// <param name="keyValue"></param>
  112. /// <param name="WorkPoint"></param>
  113. /// <returns></returns>
  114. public string AuditJL(string keyValue, string WorkPoint)
  115. {
  116. string msg = "";
  117. try
  118. {
  119. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  120. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  121. string sql = string.Empty;
  122. sql = @"UPDATE ICSCERTIFICATEITEM SET AUDITRESULT = 'Pass' WHERE ID IN ({0}) and WorkPoint='{1}' ";
  123. sql = string.Format(sql, keyValue.TrimEnd(','), WorkPoint);
  124. SqlHelper.ExecuteNonQuery(sql);
  125. }
  126. catch (Exception ex)
  127. {
  128. msg = ex.Message;
  129. }
  130. return msg;
  131. }
  132. public string CancelAudit(string keyValue, string WorkPoint, string VENDORCODE, string Type, string Remark)
  133. {
  134. string msg = "";
  135. string IsStop = "";
  136. string sql = string.Empty;
  137. string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
  138. DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
  139. string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
  140. string DBName = dtU9.Rows[0]["DBName"].ToString();
  141. try
  142. {
  143. string sqlItem = @"select F_ItemCode from [dbo].[Sys_SRM_Items] a
  144. LEFT JOIN [dbo].[Sys_SRM_ItemsDetail] b on a.F_Id=b.F_itemID
  145. where F_EnCode='Vendor001'";
  146. DataTable dts = SqlHelper.GetDataTableBySql(sqlItem);
  147. if (dts.Rows.Count > 0)
  148. {
  149. IsStop = dts.Rows[0]["F_ItemCode"].ToString();
  150. }
  151. string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
  152. keyValue = keyValue.Substring(1, keyValue.Length - 2);
  153. WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
  154. VENDORCODE = VENDORCODE.Substring(1, VENDORCODE.Length - 2);
  155. Type = Type.Substring(1, Type.Length - 2);
  156. Remark = Remark.Substring(1, Remark.Length - 2);
  157. sql += string.Format(@"UPDATE ICSCERTIFICATEITEM SET AUDITRESULT = 'REJECT',Remark='{2}' WHERE ID IN ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint, Remark);
  158. if (Type == "1") {
  159. sql += string.Format(@"update b set b.STATUS='失效',b.MODIFIEDDATE=getdate(),b.MODIFIEDTIME=getdate(),b.MODIFIEDUSER='{0}',b.AUDITRESULT='REJECT' from (select top 1 * from ICSCERTIFICATEITEMDETAIL a where a.gguid={1} order by a.CREATETIME desc ) b", MUSER, keyValue.TrimEnd(','));
  160. }
  161. SqlHelper.CmdExecuteNonQueryLi(sql);
  162. if (IsStop == "1")
  163. {
  164. string sqlU8 = string.Format(@"UPDATE [{0}].{1}.dbo.Vendor set dEndDate=GetDate() where cVenCode='{2}'", U9IP, DBName, VENDORCODE);
  165. SqlHelper.ExecuteNonQuery(sqlU8);
  166. }
  167. }
  168. catch (Exception ex)
  169. {
  170. msg = ex.Message;
  171. }
  172. return msg;
  173. }
  174. /// <summary>
  175. /// 导出
  176. /// </summary>
  177. /// <param name="ORDERNO"></param>
  178. /// <param name="STNO"></param>
  179. /// <param name="BeginDate"></param>
  180. /// <param name="EndDate"></param>
  181. /// <param name="VenCode"></param>
  182. /// <param name="VenName"></param>
  183. /// <param name="InvCode"></param>
  184. /// <param name="PersonName"></param>
  185. /// <param name="POStatus"></param>
  186. /// <param name="IsAll"></param>
  187. /// <returns></returns>
  188. public DataTable ExportAll(string CERTIFICATETYPENAME, string CERTIFICATEITEMNAME, string VENDORCODE, string VENDORCODEName, string TimeFrom, string TimeTo, string status)
  189. {
  190. string ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
  191. List<DbParameter> parameter = new List<DbParameter>();
  192. string sql = @"select
  193. a.VenType ,
  194. a.Supplierlevel ,
  195. a.CERTIFICATETYPENAME ,
  196. a.CERTIFICATEITEMNAME ,
  197. a.VENDORCODE ,
  198. c.VenName ,
  199. a.AUDITRESULT as ,
  200. a.Supplierlevel ,
  201. CASE WHEN a.ISKEYTASK='0' THEN '是' WHEN a.ISKEYTASK='1' THEN '否' END ,
  202. CASE WHEN a.NEEDUPLOADFILE='0' THEN '是' WHEN a.NEEDUPLOADFILE='1' THEN '否' END ,
  203. b.BEGINDATE ,
  204. b.ENDDATE ,
  205. a.CREATEDATE as ,
  206. a.Remark as ,
  207. b.ADDITION1
  208. from ICSCERTIFICATEITEM a
  209. inner join ICSCERTIFICATEITEMDETAIL b on a.ID=b.GGUID and a.WorkPoint=b.WorkPoint and b.STATUS=''
  210. left join ICSVendor c on a.VENDORCODE=c.VenCode and b.WorkPoint=c.WorkPoint
  211. left join Sys_SRM_User d on c.VenCode=d.F_VenCode and c.WorkPoint=d.F_Location
  212. left join ICSPREVENDOR e on d.F_Account=e.TEMPVENDORCODE and a.WorkPoint=e.WorkPoint
  213. left join ICSPREVENDOR f on c.VenCode=f.VenCode and a.WorkPoint=c.WorkPoint
  214. where a.AUDITRESULT<>'New'
  215. ";
  216. if (!string.IsNullOrWhiteSpace(CERTIFICATETYPENAME))
  217. {
  218. sql += " and a.CERTIFICATETYPENAME like '%" + CERTIFICATETYPENAME + "%' ";
  219. }
  220. if (!string.IsNullOrWhiteSpace(CERTIFICATEITEMNAME))
  221. {
  222. sql += " and a.CERTIFICATEITEMNAME like '%" + CERTIFICATEITEMNAME + "%' ";
  223. }
  224. if (!string.IsNullOrWhiteSpace(VENDORCODE))
  225. {
  226. sql += " and a.VENDORCODE like '%" + VENDORCODE + "%' ";
  227. }
  228. if (!string.IsNullOrWhiteSpace(VENDORCODEName))
  229. {
  230. sql += " and c.VenName like '%" + VENDORCODEName + "%' ";
  231. }
  232. if (!string.IsNullOrWhiteSpace(TimeFrom))
  233. {
  234. sql += " and a.MODIFIEDDATE >= '" + TimeFrom + "' ";
  235. }
  236. if (!string.IsNullOrWhiteSpace(TimeTo))
  237. {
  238. sql += " and a.MODIFIEDDATE <= '" + TimeTo + "' ";
  239. }
  240. if (!string.IsNullOrWhiteSpace(status))
  241. {
  242. sql += " and a.AUDITRESULT in( " + status + ") ";
  243. }
  244. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
  245. {
  246. sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
  247. }
  248. if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
  249. {
  250. sql += " and c.cVenCode in (SELECT cVenCode FROM ICSVendor where cVenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "')";
  251. }
  252. DataTable dt = SqlHelper.GetDataTableBySql(sql);
  253. return dt;
  254. }
  255. }
  256. }