390 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			390 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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;
 | ||
| 
 | ||
|         /// <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);
 | ||
|         }
 | ||
| 
 | ||
|         /// <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;
 | ||
|         }
 | ||
| 
 | ||
|         /// <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)
 | ||
|             {
 | ||
|                 ErrLogInfo.WriteLog("获取五环PMP系统Token出错:" + eee.StackTrace + eee.Message);
 | ||
|             }
 | ||
|             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;
 | ||
| 
 | ||
|             List<PMP_Project> list = new List<PMP_Project>();
 | ||
| 
 | ||
|             int pageSize = 1000;//一次性最多返回1000条数据
 | ||
|             List<PMPSearchCondData> searchCond = new List<PMPSearchCondData>();
 | ||
|             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,
 | ||
|                     //searchCond = new List<object>(),
 | ||
|                     searchCond = searchCond
 | ||
|                 };
 | ||
| 
 | ||
|                 string pushContent = JsonConvert.SerializeObject(tempData);
 | ||
|                 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\":\"印度尼西亚\"}]}";
 | ||
|                 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();
 | ||
| 
 | ||
|                     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;
 | ||
|                             newItem.ProjectNameEn = item.projectNameEn;
 | ||
|                             newItem.RealStartDate = item.realStartDate;
 | ||
|                             newItem.RealEndDate = item.realEndDate;
 | ||
|                             newItem.PlanStartDate = item.planStartDate;
 | ||
|                             newItem.PlanEndDate = item.planEndDate;
 | ||
|                             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;
 | ||
|                             newItem.StLocationName = item.stLocationName;
 | ||
|                             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;
 | ||
|                             newItem.StClientName = item.stClientName;
 | ||
|                             newItem.ClientContactor = item.clientContactor;
 | ||
|                             newItem.MobileTel = item.mobileTel;
 | ||
|                             newItem.CreateTime = DateTime.Now;
 | ||
|                             list.Add(newItem);
 | ||
|                         }
 | ||
| 
 | ||
|                         if (pmpResponseData.rows.Count < 1000)
 | ||
|                         {//当本次请求数据小于1000时,说明后续已经没有数据了,不用再请求接口;跳出循环
 | ||
|                             break;
 | ||
|                         }
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         break;
 | ||
|                     }
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     break;
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             if (list.Any())
 | ||
|             {
 | ||
|                 DeleteAllPMP_Project();
 | ||
|                 AddPMP_Project(list);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 项目OBS查询接口
 | ||
|         /// </summary>
 | ||
|         /// <param name="proId">项目Id</param>
 | ||
|         public static List<Model.PMPOBSOutInput> GetPMPProjectOBSData(string proId)
 | ||
|         {
 | ||
|             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;
 | ||
| 
 | ||
|             List<Model.PMPOBSOutInput> outlist = new List<PMPOBSOutInput>();
 | ||
|             List<Model.PMPOBS> list = new List<PMPOBS>();
 | ||
| 
 | ||
|             int pageSize = 1000;//一次性最多返回1000条数据
 | ||
|             List<PMPSearchCondData> searchCond = new List<PMPSearchCondData>();
 | ||
|             searchCond.Add(new PMPSearchCondData { name = "projectId", value = proId, fieldType = "SelectList" });
 | ||
|             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);
 | ||
|                 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\":\"1874004944940568576\",\"staffCode\":\"4\",\"proCode\":\"\",\"level\":3,\"staffName\":\"张锦跃\",\"name\":\"1717470496427216896\",\"id\":944620,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004944919597056\"},{\"disType\":\"\",\"obsId\":\"1874004938250653696\",\"code\":\"1874004938250653696\",\"staffCode\":\"\",\"proCode\":\"CP\",\"level\":2,\"staffName\":\"\",\"name\":\"化工工艺专业负责人\",\"id\":944618,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004948325371904\",\"code\":\"1874004948325371904\",\"staffCode\":\"\",\"proCode\":\"\",\"level\":2,\"staffName\":\"\",\"name\":\"项目技术主管\",\"id\":944616,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004944894431232\"},{\"disType\":\"\",\"obsId\":\"1874004946647650304\",\"code\":\"1874004946647650304\",\"staffCode\":\"890\",\"proCode\":\"\",\"level\":3,\"staffName\":\"金吉\",\"name\":\"1717470730419048448\",\"id\":944614,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004946622484480\"},{\"disType\":\"\",\"obsId\":\"1874004935037816832\",\"code\":\"1874004935037816832\",\"staffCode\":\"\",\"proCode\":\"IN\",\"level\":2,\"staffName\":\"\",\"name\":\"仪表专业负责人\",\"id\":944612,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004944919597056\",\"code\":\"1874004944919597056\",\"staffCode\":\"\",\"proCode\":\"\",\"level\":2,\"staffName\":\"\",\"name\":\"项目主管\",\"id\":944610,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004944894431232\"},{\"disType\":\"\",\"obsId\":\"1874004939882237952\",\"code\":\"1874004939882237952\",\"staffCode\":\"957\",\"proCode\":\"PP\",\"level\":3,\"staffName\":\"黄晓娟\",\"name\":\"1717470773876232192\",\"id\":944608,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004939861266432\"},{\"disType\":\"\",\"obsId\":\"1874004943288012800\",\"code\":\"1874004943288012800\",\"staffCode\":\"\",\"proCode\":\"MC\",\"level\":2,\"staffName\":\"\",\"name\":\"材控应力专业负责人\",\"id\":944606,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"},{\"disType\":\"\",\"obsId\":\"1874004938271625216\",\"code\":\"1874004938271625216\",\"staffCode\":\"1008\",\"proCode\":\"CP\",\"level\":3,\"staffName\":\"王海\",\"name\":\"1717470759519129600\",\"id\":944604,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004938250653696\"},{\"disType\":\"\",\"obsId\":\"1874004936669401088\",\"code\":\"1874004936669401088\",\"staffCode\":\"468\",\"proCode\":\"ST\",\"level\":3,\"staffName\":\"陈宇\",\"name\":\"1717470632112951296\",\"id\":944602,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004936635846656\"},{\"disType\":\"\",\"obsId\":\"1874004939861266432\",\"code\":\"1874004939861266432\",\"staffCode\":\"\",\"proCode\":\"PP\",\"level\":2,\"staffName\":\"\",\"name\":\"管道布置专业负责人\",\"id\":944600,\"projectId\":\"1857091204378914817\",\"obsPid\":\"1874004933423009792\"}]}";
 | ||
|                 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;
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             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;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         public static void AddPMP_Project(List<Model.PMP_Project> newtables)
 | ||
|         {
 | ||
|             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();
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|     }
 | ||
| }
 |