| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  | using Model; | 
					
						
							|  |  |  |  | using Newtonsoft.Json; | 
					
						
							|  |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.IO; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using System.Net; | 
					
						
							|  |  |  |  | using System.Text; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public static class PMPDataService | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         //private static readonly string PmpApiUrl = "http://mdm.cwcec.com:8020/"; | 
					
						
							|  |  |  |  |         private static readonly string PmpApiUrl = SysConstSetService.WuHuanPMPPath; | 
					
						
							| 
									
										
										
										
											2025-07-25 17:43:33 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主项目code获取主项目数据 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="proCode"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.PMP_Project GetPMPProjectByCode(string proCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.PMP_Project.OrderBy(x => x.RealEndDate).FirstOrDefault(e => e.StNum == proCode); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-08-06 15:27:50 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主项目code获取主项目数据 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="proCode"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PMP_Project> GetPMPProjectListByCode(string proCode) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var list = (from x in Funs.DB.PMP_Project where x.StNum == proCode orderby x.Code select x).ToList(); | 
					
						
							|  |  |  |  |             return list; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取token | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// 五环PMP系统token有效期48小时 | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.TokenItem GetToken() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.TokenItem tokenItem = new Model.TokenItem(); | 
					
						
							|  |  |  |  |             tokenItem.Token = BLL.SysConstSetService.WuHuanPMPToken; | 
					
						
							|  |  |  |  |             tokenItem.ExpiryTime = BLL.SysConstSetService.WuHuanPMPTokenExTime; | 
					
						
							|  |  |  |  |             if (string.IsNullOrEmpty(tokenItem.Token) || string.IsNullOrEmpty(tokenItem.ExpiryTime)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 tokenItem = GetWuHuanPMPToken(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else if (DateTime.Now > DateTime.Parse(tokenItem.ExpiryTime)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 tokenItem = GetWuHuanPMPToken(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return tokenItem; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取五环PMP系统Token | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// 他们的token有效期48小时 | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.TokenItem GetWuHuanPMPToken() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string getUrl = PmpApiUrl + "/api/standard/dis/token?appId=v7lm6i30&appSecret=0qnbsy28e1hldzbm7rnyjs4n93s4eu62"; | 
					
						
							|  |  |  |  |             TokenItem tokenItem = new TokenItem(); | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var strJosn = Http(getUrl); | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(strJosn)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     JObject obj = JObject.Parse(strJosn); | 
					
						
							|  |  |  |  |                     if (obj["data"] != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         string tokenStr = obj["data"].ToString(); | 
					
						
							|  |  |  |  |                         tokenItem.Token = tokenStr; | 
					
						
							|  |  |  |  |                         tokenItem.ExpiryTime = DateTime.Now.AddHours(40).ToString("yyyy-MM-dd HH:mm:ss"); | 
					
						
							|  |  |  |  |                         SysConstSetService.SetWuHuanPMPToken(tokenItem.Token); | 
					
						
							|  |  |  |  |                         SysConstSetService.SetWuHuanPMPTokenExpirationTime(tokenItem.ExpiryTime); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception eee) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-07-11 08:58:49 +08:00
										 |  |  |  |                 ErrLogInfo.WriteLog("获取五环PMP系统Token出错:" + eee.StackTrace + eee.Message); | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             return tokenItem; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目档案查询接口 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void GetPMPProjectMasterData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string url = $"{PmpApiUrl}/api/standard/dis/query_all"; | 
					
						
							|  |  |  |  |             var token = GetToken(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             Hashtable newToken = new Hashtable { { "Authorization", token.Token } }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             string mess = string.Empty; | 
					
						
							|  |  |  |  |             string total = string.Empty; | 
					
						
							|  |  |  |  |             string code = string.Empty; | 
					
						
							|  |  |  |  |             string data = string.Empty; | 
					
						
							|  |  |  |  |             string rows = string.Empty; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-17 14:22:38 +08:00
										 |  |  |  |             List<PMP_Project> list = new List<PMP_Project>(); | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             int pageSize = 1000;//一次性最多返回1000条数据 | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |             List<PMPSearchCondData> searchCond = new List<PMPSearchCondData>(); | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |             for (int pageNum = 1; pageNum < 10; pageNum++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var tempData = new | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     actRet = 1, | 
					
						
							|  |  |  |  |                     pageNumber = pageNum, | 
					
						
							|  |  |  |  |                     pageSize = pageSize, | 
					
						
							|  |  |  |  |                     sortName = "id", | 
					
						
							|  |  |  |  |                     searchDestCode = "", | 
					
						
							|  |  |  |  |                     sortOrder = "desc", | 
					
						
							|  |  |  |  |                     searchDisStatus = "", | 
					
						
							|  |  |  |  |                     menuName = "项目档案", | 
					
						
							|  |  |  |  |                     status = 1, | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |                     //searchCond = new List<object>(), | 
					
						
							|  |  |  |  |                     searchCond = searchCond | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                 }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 string pushContent = JsonConvert.SerializeObject(tempData); | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |                 var returndata = BLL.APIGetHttpService.OutsideHttp(url, "POST", null, newToken, pushContent); | 
					
						
							|  |  |  |  |                 //var returndata = "{\"msg\":\"操作成功\",\"total\":4405,\"code\":1,\"data\":{\"userColumnPermissions\":\"\"},\"rows\":[{\"code\":\"100541\",\"projShortName\":\"内蒙古卓正聚甲醛项目\",\"projectNameEn\":\"\",\"cityCode\":\"150600\",\"stProjectStepVals\":\"3006\",\"realEndDate\":\"\",\"remarkA\":\"\",\"remarkC\":\"\",\"remarkB\":\"\",\"cityName\":\"鄂尔多斯市\",\"countryCode\":\"CHN\",\"id\":6182,\"projStepZxnoVals\":\"20\",\"countyName\":\"乌审旗\",\"realStartDate\":\"2025-03-27T00:00:00\",\"address\":\"纳林河工业园\",\"provinceCode\":\"150000\",\"projStepZxnoCode\":\"20\",\"stProjectTypeVals\":\"30\",\"stNum\":\"24070\",\"disType\":\"\",\"projStepZxnoName\":\"项目实施\",\"countyCode\":\"150626\",\"stProjectPropertyVals\":\"10\",\"name\":\"内蒙古卓正煤化工有限公司甲醇醋酸延链优化深加工与综合利用生产高端化学品及新材料聚甲醛项目\",\"provinceName\":\"内蒙古自治区\",\"countryName\":\"中国\"},{\"code\":\"100540\",\"projShortName\":\"越南富美4万吨/年双氧水项目\",\"projectNameEn\":\"\",\"cityCode\":\"\",\"stProjectStepVals\":\"9909\",\"realEndDate\":\"\",\"remarkA\":\"\",\"remarkC\":\"\",\"remarkB\":\"\",\"cityName\":\"\",\"countryCode\":\"VNM\",\"id\":6180,\"projStepZxnoVals\":\"20\",\"countyName\":\"\",\"realStartDate\":\"2025-03-27T00:00:00\",\"address\":\"头顿\",\"provinceCode\":\"\",\"projStepZxnoCode\":\"20\",\"stProjectTypeVals\":\"99\",\"stNum\":\"25095\",\"disType\":\"\",\"projStepZxnoName\":\"项目实施\",\"countyCode\":\"\",\"stProjectPropertyVals\":\"10\",\"name\":\"越南富美4万吨/年双氧水项目\",\"provinceName\":\"\",\"countryName\":\"越南\"},{\"code\":\"100539\",\"projShortName\":\"新疆年产40亿方煤制天然气项目\",\"projectNameEn\":\"\",\"cityCode\":\"654000\",\"stProjectStepVals\":\"3006\",\"realEndDate\":\"\",\"remarkA\":\"\",\"remarkC\":\"\",\"remarkB\":\"\",\"cityName\":\"伊犁哈萨克自治州\",\"countryCode\":\"CHN\",\"id\":6178,\"projStepZxnoVals\":\"10\",\"countyName\":\"伊宁县\",\"realStartDate\":\"2025-03-27T00:00:00\",\"address\":\"伊宁县工业园区\",\"provinceCode\":\"650000\",\"projStepZxnoCode\":\"10\",\"stProjectTypeVals\":\"30\",\"stNum\":\"25093\",\"disType\":\"\",\"projStepZxnoName\":\"项目投标\",\"countyCode\":\"654021\",\"stProjectPropertyVals\":\"10\",\"name\":\"新疆年产40亿方煤制天然气项目\",\"provinceName\":\"新疆维吾尔自治区\",\"countryName\":\"中国\"},{\"code\":\"100538\",\"projShortName\":\"印尼泗水PET项目\",\"projectNameEn\":\"\",\"cityCode\":\"\",\"stProjectStepVals\":\"2001\",\"realEndDate\":\"\",\"remarkA\":\"\",\"remarkC\":\"\",\"remarkB\":\"\",\"cityName\":\"\",\"countryCode\":\"IDN\",\"id\":6176,\"projStepZxnoVals\":\"20\",\"countyName\":\"\",\"realStartDate\":\"2025-03-27T00:00:00\",\"address\":\"印度尼西亚泗水市\",\"provinceCode\":\"\",\"projStepZxnoCode\":\"20\",\"stProjectTypeVals\":\"20\",\"stNum\":\"25092\",\"disType\":\"\",\"projStepZxnoName\":\"项目实施\",\"countyCode\":\"\",\"stProjectPropertyVals\":\"10\",\"name\":\"印尼泗水PET项目\",\"provinceName\":\"\",\"countryName\":\"印度尼西亚\"}]}"; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                 if (!string.IsNullOrEmpty(returndata)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |                     //JObject obj = JObject.Parse(returndata); | 
					
						
							|  |  |  |  |                     //mess = obj["msg"].ToString(); | 
					
						
							|  |  |  |  |                     //total = obj["total"].ToString(); | 
					
						
							|  |  |  |  |                     //code = obj["code"].ToString(); | 
					
						
							|  |  |  |  |                     //data = obj["data"].ToString(); | 
					
						
							|  |  |  |  |                     //rows = obj["rows"].ToString(); | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                     PMPResponseData pmpResponseData = PMPResponseData.FromJson(returndata); | 
					
						
							|  |  |  |  |                     if (pmpResponseData.code == 1 && pmpResponseData.rows.Any()) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         foreach (var item in pmpResponseData.rows) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             PMP_Project newItem = new PMP_Project(); | 
					
						
							|  |  |  |  |                             newItem.Id = item.id; | 
					
						
							|  |  |  |  |                             newItem.Code = item.code; | 
					
						
							|  |  |  |  |                             newItem.StNum = item.stNum; | 
					
						
							|  |  |  |  |                             newItem.Name = item.name; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                             newItem.ProjectNameEn = item.projectNameEn; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                             newItem.RealStartDate = item.realStartDate; | 
					
						
							|  |  |  |  |                             newItem.RealEndDate = item.realEndDate; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                             newItem.PlanStartDate = item.planStartDate; | 
					
						
							|  |  |  |  |                             newItem.PlanEndDate = item.planEndDate; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                             newItem.DisType = item.disType; | 
					
						
							|  |  |  |  |                             newItem.ProjShortName = item.projShortName; | 
					
						
							|  |  |  |  |                             newItem.ProjStepZxnoCode = item.projStepZxnoCode; | 
					
						
							|  |  |  |  |                             newItem.ProjStepZxnoName = item.projStepZxnoName; | 
					
						
							|  |  |  |  |                             newItem.StProjectTypeVals = item.stProjectTypeVals; | 
					
						
							|  |  |  |  |                             newItem.StProjectStepVals = item.stProjectStepVals; | 
					
						
							|  |  |  |  |                             newItem.ProjStepZxnoVals = item.projStepZxnoVals; | 
					
						
							|  |  |  |  |                             newItem.StProjectPropertyVals = item.stProjectPropertyVals; | 
					
						
							|  |  |  |  |                             newItem.RemarkA = item.remarkA; | 
					
						
							|  |  |  |  |                             newItem.RemarkB = item.remarkB; | 
					
						
							|  |  |  |  |                             newItem.RemarkC = item.remarkC; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                             newItem.StLocationName = item.stLocationName; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                             newItem.Address = item.address; | 
					
						
							|  |  |  |  |                             newItem.CityCode = item.cityCode; | 
					
						
							|  |  |  |  |                             newItem.CityName = item.cityName; | 
					
						
							|  |  |  |  |                             newItem.CountryCode = item.countryCode; | 
					
						
							|  |  |  |  |                             newItem.CountryName = item.countryName; | 
					
						
							|  |  |  |  |                             newItem.CountyCode = item.countyCode; | 
					
						
							|  |  |  |  |                             newItem.CountyName = item.countyName; | 
					
						
							|  |  |  |  |                             newItem.ProvinceCode = item.provinceCode; | 
					
						
							|  |  |  |  |                             newItem.ProvinceName = item.provinceName; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                             newItem.StClientName = item.stClientName; | 
					
						
							|  |  |  |  |                             newItem.ClientContactor = item.clientContactor; | 
					
						
							|  |  |  |  |                             newItem.MobileTel = item.mobileTel; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |                             newItem.CreateTime = DateTime.Now; | 
					
						
							|  |  |  |  |                             list.Add(newItem); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         if (pmpResponseData.rows.Count < 1000) | 
					
						
							|  |  |  |  |                         {//当本次请求数据小于1000时,说明后续已经没有数据了,不用再请求接口;跳出循环 | 
					
						
							|  |  |  |  |                             break; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         break; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (list.Any()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DeleteAllPMP_Project(); | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |                 AddPMP_Project(list); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目OBS查询接口 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="proId">项目Id</param> | 
					
						
							| 
									
										
										
										
											2025-05-24 14:48:16 +08:00
										 |  |  |  |         public static List<Model.PMPOBSOutInput> GetPMPProjectOBSData(string proId) | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             string url = $"{PmpApiUrl}/api/standard/dis/query_all"; | 
					
						
							|  |  |  |  |             var token = GetToken(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             Hashtable newToken = new Hashtable { { "Authorization", token.Token } }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             string mess = string.Empty; | 
					
						
							|  |  |  |  |             string total = string.Empty; | 
					
						
							|  |  |  |  |             string code = string.Empty; | 
					
						
							|  |  |  |  |             string data = string.Empty; | 
					
						
							|  |  |  |  |             string rows = string.Empty; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |             List<Model.PMPOBSOutInput> outlist = new List<PMPOBSOutInput>(); | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |             List<Model.PMPOBS> list = new List<PMPOBS>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             int pageSize = 1000;//一次性最多返回1000条数据 | 
					
						
							|  |  |  |  |             List<PMPSearchCondData> searchCond = new List<PMPSearchCondData>(); | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |             searchCond.Add(new PMPSearchCondData { name = "projectId", value = proId, fieldType = "SelectList" }); | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |             for (int pageNum = 1; pageNum < 10; pageNum++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var tempData = new | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     actRet = 1, | 
					
						
							|  |  |  |  |                     pageNumber = pageNum, | 
					
						
							|  |  |  |  |                     pageSize = pageSize, | 
					
						
							|  |  |  |  |                     sortName = "id", | 
					
						
							|  |  |  |  |                     searchDestCode = "", | 
					
						
							|  |  |  |  |                     sortOrder = "desc", | 
					
						
							|  |  |  |  |                     searchDisStatus = "", | 
					
						
							|  |  |  |  |                     menuName = "OBS", | 
					
						
							|  |  |  |  |                     status = 1, | 
					
						
							|  |  |  |  |                     searchCond = searchCond | 
					
						
							|  |  |  |  |                 }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 string pushContent = JsonConvert.SerializeObject(tempData); | 
					
						
							|  |  |  |  |                 //var returndata = BLL.APIGetHttpService.OutsideHttp(url, "POST", null, newToken, pushContent); | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 var returndata = "{\"msg\":\"操作成功\",\"total\":25,\"code\":1,\"data\":{\"userColumnPermissions\":\"\"},\"rows\":[{\"disType\":\"\",\"obsId\":\"1874790096868347904\",\"code\":\"1874790096868347904\",\"staffCode\":\"\",\"proCode\":\"CP\",\"level\":2,\"staffName\":\"\",\"name\":\"化工工艺设计人员\",\"id\":944768,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874790096893513728\",\"code\":\"1874790096893513728\",\"staffCode\":\"722\",\"proCode\":\"CP\",\"level\":3,\"staffName\":\"赵保林\",\"name\":\"1717470687628759040\",\"id\":944766,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874790096868347904\"},{\"disType\":\"\",\"obsId\":\"1874790098684481536\",\"code\":\"1874790098684481536\",\"staffCode\":\"30453\",\"proCode\":\"CP\",\"level\":3,\"staffName\":\"李平\",\"name\":\"1717471296016748544\",\"id\":944764,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874790096868347904\"},{\"disType\":\"\",\"obsId\":\"1874004933423009792\",\"code\":\"1874004933423009792\",\"staffCode\":\"\",\"proCode\":\"MC\",\"level\":1,\"staffName\":\"\",\"name\":\"设计岗位\",\"id\":944642,\"projectId\":\"1857091204378914817\",\"obsPid\":\"0\"},{\"disType\":\"\",\"obsId\":\"1874004946622484480\",\"code\":\"1874004946622484480\",\"staffCode\":\"\",\"proCode\":\"\",\"level\":2,\"staffName\":\"\",\"name\":\"项目经理\",\"id\":944640,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004944894431232\"},{\"disType\":\"\",\"obsId\":\"1874004933448175616\",\"code\":\"1874004933448175616\",\"staffCode\":\"\",\"proCode\":\"PL\",\"level\":2,\"staffName\":\"\",\"name\":\"总图运输专业负责人\",\"id\":944638,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004936635846656\",\"code\":\"1874004936635846656\",\"staffCode\":\"\",\"proCode\":\"ST\",\"level\":2,\"staffName\":\"\",\"name\":\"结构专业负责人\",\"id\":944636,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004941513822208\",\"code\":\"1874004941513822208\",\"staffCode\":\"\",\"proCode\":\"EL\",\"level\":2,\"staffName\":\"\",\"name\":\"电气专业负责人\",\"id\":944634,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004933469147136\",\"code\":\"1874004933469147136\",\"staffCode\":\"2239\",\"proCode\":\"PL\",\"level\":3,\"staffName\":\"夏玉霞\",\"name\":\"1717471200965431296\",\"id\":944632,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933448175616\"},{\"disType\":\"\",\"obsId\":\"1874004935062982656\",\"code\":\"1874004935062982656\",\"staffCode\":\"1610\",\"proCode\":\"IN\",\"level\":3,\"staffName\":\"李伟家\",\"name\":\"1717470915924725760\",\"id\":944630,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004935037816832\"},{\"disType\":\"\",\"obsId\":\"1874004944894431232\",\"code\":\"1874004944894431232\",\"staffCode\":\"\",\"proCode\":\"\",\"level\":1,\"staffName\":\"\",\"name\":\"管理岗位\",\"id\":944628,\"projectId\":\"1857091204378914817\",\"obsPid\":\"0\"},{\"disType\":\"\",\"obsId\":\"1874004948350537728\",\"code\":\"1874004948350537728\",\"staffCode\":\"591\",\"proCode\":\"\",\"level\":3,\"staffName\":\"刘翔\",\"name\":\"1717470662420992000\",\"id\":944626,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004948325371904\"},{\"disType\":\"\",\"obsId\":\"1874004941538988032\",\"code\":\"1874004941538988032\",\"staffCode\":\"387\",\"proCode\":\"EL\",\"level\":3,\"staffName\":\"李婉\",\"name\":\"1717470613658013696\",\"id\":944624,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004941513822208\"},{\"disType\":\"\",\"obsId\":\"1874004943308984320\",\"code\":\"1874004943308984320\",\"staffCode\":\"235\",\"proCode\":\"MC\",\"level\":3,\"staffName\":\"吴菁\",\"name\":\"1717470571836608512\",\"id\":944622,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004943288012800\"},{\"disType\":\"\",\"obsId\":\"1874004944940568576\",\"code\":\"1874004944940568
 | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  |                 if (!string.IsNullOrEmpty(returndata)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     //JObject obj = JObject.Parse(returndata); | 
					
						
							|  |  |  |  |                     //mess = obj["msg"].ToString(); | 
					
						
							|  |  |  |  |                     //total = obj["total"].ToString(); | 
					
						
							|  |  |  |  |                     //code = obj["code"].ToString(); | 
					
						
							|  |  |  |  |                     //data = obj["data"].ToString(); | 
					
						
							|  |  |  |  |                     //rows = obj["rows"].ToString(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     PMPOBSResponseData pmpOBSResponseData = PMPOBSResponseData.FromJson(returndata); | 
					
						
							|  |  |  |  |                     if (pmpOBSResponseData.code == 1 && pmpOBSResponseData.rows.Any()) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         list.AddRange(pmpOBSResponseData.rows); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                         if (pmpOBSResponseData.rows.Count < 1000) | 
					
						
							|  |  |  |  |                         {//当本次请求数据小于1000时,说明后续已经没有数据了,不用再请求接口;跳出循环 | 
					
						
							|  |  |  |  |                             break; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         break; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (list.Any()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 //获取岗位专业人员 | 
					
						
							|  |  |  |  |                 var userlist = list.Where(x => x.level == 3 && !string.IsNullOrWhiteSpace(x.staffName)); | 
					
						
							|  |  |  |  |                 foreach (var user in userlist) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     //根据obsPid获取对应任职岗位 | 
					
						
							|  |  |  |  |                     var work = list.Where(x => x.obsId == user.obsPid).FirstOrDefault(); | 
					
						
							|  |  |  |  |                     if (work != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         outlist.Add(new PMPOBSOutInput { workName = work.name, userName = user.staffName }); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return outlist; | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-31 12:27:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static void AddPMP_Project(List<Model.PMP_Project> newtables) | 
					
						
							| 
									
										
										
										
											2025-03-28 14:22:04 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             db.PMP_Project.InsertAllOnSubmit(newtables); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static void DeleteAllPMP_Project() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             if (db.PMP_Project.FirstOrDefault() != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 db.PMP_Project.DeleteAllOnSubmit(db.PMP_Project); | 
					
						
							|  |  |  |  |                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string Http(string url, string method = "GET", string contenttype = "application/json;charset=utf-8", Hashtable header = null, string data = null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | | 
					
						
							|  |  |  |  | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | | 
					
						
							|  |  |  |  | SecurityProtocolType.Tls12; | 
					
						
							|  |  |  |  |             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); | 
					
						
							|  |  |  |  |             request.Method = string.IsNullOrEmpty(method) ? "GET" : method; | 
					
						
							|  |  |  |  |             request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype; | 
					
						
							|  |  |  |  |             if (header != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (var i in header.Keys) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     request.Headers.Add(i.ToString(), header[i].ToString()); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else if (method == "POST") | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var token = GetToken(); | 
					
						
							|  |  |  |  |                 request.Headers.Add("Authorization", token.Token); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             request.Timeout = 20000; /// 设置5秒超时 | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(data)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Stream RequestStream = request.GetRequestStream(); | 
					
						
							|  |  |  |  |                 byte[] bytes = Encoding.UTF8.GetBytes(data); | 
					
						
							|  |  |  |  |                 RequestStream.Write(bytes, 0, bytes.Length); | 
					
						
							|  |  |  |  |                 RequestStream.Close(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             HttpWebResponse response = null; | 
					
						
							|  |  |  |  |             Stream ResponseStream = null; | 
					
						
							|  |  |  |  |             StreamReader StreamReader = null; | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 response = (HttpWebResponse)request.GetResponse(); | 
					
						
							|  |  |  |  |                 ResponseStream = response.GetResponseStream(); | 
					
						
							|  |  |  |  |                 StreamReader = new StreamReader(ResponseStream, Encoding.GetEncoding("utf-8")); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 string re = StreamReader.ReadToEnd(); | 
					
						
							|  |  |  |  |                 StreamReader.Close(); | 
					
						
							|  |  |  |  |                 ResponseStream.Close(); | 
					
						
							|  |  |  |  |                 return re; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (WebException ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 response = (HttpWebResponse)ex.Response; | 
					
						
							|  |  |  |  |                 ResponseStream = response.GetResponseStream(); | 
					
						
							|  |  |  |  |                 StreamReader = new StreamReader(ResponseStream, Encoding.GetEncoding("utf-8")); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 string re = StreamReader.ReadToEnd(); | 
					
						
							|  |  |  |  |                 return re; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             finally | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (StreamReader != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     StreamReader.Close(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (ResponseStream != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ResponseStream.Close(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (response != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     response.Close(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |