using AngleSharp.Html.Parser;
|
using DTO;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Net.Http;
|
using System.Net.Http.Headers;
|
using System.Text;
|
using System.Threading;
|
using zhengcaioa.Models;
|
|
namespace Crawler.sichuan
|
{
|
public class sichuanoperation
|
{
|
|
public static string sichuanpageurll = "https://zfcg.scsczt.cn";
|
public static void operations(WebCrawlerContext _ccontext, zhengcaioaContext _ccontext1)
|
{
|
try
|
{
|
|
//获取更新时间
|
string operationStartTime = "";
|
Updatetime updatetime = _ccontext.Updatetimes.Where(x=>x.Sheng=="四川省").FirstOrDefault();
|
if (updatetime != null)
|
{
|
operationStartTime = updatetime.Updatetime1.ToString("yyyy-MM-dd")+ "%2000:00:00";
|
//updatetime.Updatetime1 = DateTime.Now.AddDays(-1);
|
//_ccontext.SaveChanges();
|
}
|
//else
|
//{
|
// updatetime = new Updatetime();
|
// updatetime.Id = Guid.NewGuid().ToString();
|
// updatetime.Sheng = "四川省";
|
// updatetime.Updatetime1 = DateTime.Now.AddDays(-1);
|
// _ccontext.Updatetimes.Add(updatetime);
|
// _ccontext.SaveChanges();
|
//}
|
|
//翻页信息
|
int currPage = 1;
|
int pageSize = 10;
|
//开始访问 采购公告
|
logg.WriteLog("四川省意向公开 开始获取", "四川");
|
while (true)
|
{
|
logg.WriteLog(currPage.ToString(), "四川");
|
string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=59®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea=";
|
using (HttpClient client = new HttpClient())
|
{
|
client.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage response = client.GetAsync(address).Result;
|
var res = response.Content.ReadAsStringAsync().Result;
|
|
sichuanjieshou sichuan = JsonConvert.DeserializeObject<sichuanjieshou>(res);
|
|
//保存项目到sqlserveer和elasticsearch
|
if (sichuan.data != null && sichuan.data.Count > 0)
|
{
|
foreach (var sichuanjieshoudtl in sichuan.data)
|
{
|
var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd");
|
var notimestart = DateTime.Parse(notime);
|
var notimeend = notimestart.AddDays(1);
|
|
var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "01" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend));
|
if (zhengfuProjectCount <= 0)
|
{
|
var zhengfuProject = new ZhengfuProject();
|
zhengfuProject.Id = Guid.NewGuid().ToString();
|
zhengfuProject.Gglx = "01";
|
string gglxName = "意向公开";
|
zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime;
|
zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime;
|
zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode;
|
string regionName = sichuanjieshoudtl.regionName;
|
zhengfuProject.Sheng = "510000";
|
string ShengName = "四川省";
|
string CityName = "";
|
if ("510001" == sichuanjieshoudtl.regionCode)
|
{
|
zhengfuProject.RegionCode = "";
|
regionName = "";
|
zhengfuProject.City = "510001";
|
CityName = "省本级";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5101"))
|
{
|
zhengfuProject.City = "510100";
|
CityName = "成都市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5103"))
|
{
|
zhengfuProject.City = "510300";
|
CityName = "自贡市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5104"))
|
{
|
zhengfuProject.City = "510400";
|
CityName = "攀枝花市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5105"))
|
{
|
zhengfuProject.City = "510500";
|
CityName = "泸州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5106"))
|
{
|
zhengfuProject.City = "510600";
|
CityName = "德阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5107"))
|
{
|
zhengfuProject.City = "510700";
|
CityName = "绵阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5108"))
|
{
|
zhengfuProject.City = "510800";
|
CityName = "广元市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5109"))
|
{
|
zhengfuProject.City = "510900";
|
CityName = "遂宁市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5110"))
|
{
|
zhengfuProject.City = "511000";
|
CityName = "内江市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5111"))
|
{
|
zhengfuProject.City = "511100";
|
CityName = "乐山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5113"))
|
{
|
zhengfuProject.City = "511300";
|
CityName = "南充市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5114"))
|
{
|
zhengfuProject.City = "5114";
|
CityName = "眉山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5115"))
|
{
|
zhengfuProject.City = "511500";
|
CityName = "宜宾市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5116"))
|
{
|
zhengfuProject.City = "511600";
|
CityName = "广安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5117"))
|
{
|
zhengfuProject.City = "511700";
|
CityName = "达州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5118"))
|
{
|
zhengfuProject.City = "511800";
|
CityName = "雅安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5119"))
|
{
|
zhengfuProject.City = "511900";
|
CityName = "巴中市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5120"))
|
{
|
zhengfuProject.City = "512000";
|
CityName = "资阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5132"))
|
{
|
zhengfuProject.City = "513200";
|
CityName = "阿坝州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5133"))
|
{
|
zhengfuProject.City = "513300";
|
CityName = "甘孜州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5134"))
|
{
|
zhengfuProject.City = "513400";
|
CityName = "凉山州";
|
}
|
|
|
string cgfsName = "";
|
switch (sichuanjieshoudtl.purchaseManner)
|
{
|
case "1":
|
zhengfuProject.Cgfs = "1";
|
cgfsName = "公开招标";
|
break;
|
case "2":
|
zhengfuProject.Cgfs = "2";
|
cgfsName = "邀请招标";
|
break;
|
case "3":
|
zhengfuProject.Cgfs = "5";
|
cgfsName = "竞争性谈判";
|
break;
|
case "4":
|
zhengfuProject.Cgfs = "4";
|
cgfsName = "询价";
|
break;
|
case "5":
|
zhengfuProject.Cgfs = "7";
|
cgfsName = "单一来源";
|
break;
|
case "6":
|
zhengfuProject.Cgfs = "3";
|
cgfsName = "竞争性磋商";
|
break;
|
case "9":
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
default:
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
}
|
zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode;
|
zhengfuProject.Title = sichuanjieshoudtl.title;
|
zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle;
|
zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser;
|
|
if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget))
|
{
|
zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget);
|
}
|
zhengfuProject.Agency = sichuanjieshoudtl.agency;
|
zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode;
|
zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty);
|
zhengfuProject.RecStatus = "A";
|
zhengfuProject.Creater = "1";
|
zhengfuProject.Createtime = DateTime.Now;
|
zhengfuProject.Modifier = "1";
|
zhengfuProject.Modifytime = zhengfuProject.Createtime;
|
_ccontext.ZhengfuProjects.Add(zhengfuProject);
|
|
|
string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id;
|
string result = string.Empty;
|
Uri postUrl = new Uri(url);
|
eswebcrawler eswebcrawler1 = new eswebcrawler();
|
eswebcrawler1.Id = zhengfuProject.Id;
|
eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss");
|
eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null;
|
eswebcrawler1.sheng = zhengfuProject.Sheng;
|
eswebcrawler1.shengName = ShengName;
|
eswebcrawler1.city = zhengfuProject.City;
|
eswebcrawler1.cityName = CityName;
|
eswebcrawler1.regionCode = zhengfuProject.RegionCode;
|
eswebcrawler1.regionName = regionName;
|
eswebcrawler1.cgfs = zhengfuProject.Cgfs;
|
eswebcrawler1.cgfsName = cgfsName;
|
eswebcrawler1.gglx = zhengfuProject.Gglx;
|
eswebcrawler1.gglxName = gglxName;
|
eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode;
|
eswebcrawler1.title = zhengfuProject.Title;
|
eswebcrawler1.shorttitle = zhengfuProject.Shorttitle;
|
eswebcrawler1.pageurl = zhengfuProject.Pageurl;
|
eswebcrawler1.pingmu = zhengfuProject.Pingmu;
|
eswebcrawler1.pingmuName = "";
|
eswebcrawler1.purchaser = zhengfuProject.Purchaser;
|
eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : "";
|
eswebcrawler1.agency = zhengfuProject.Agency;
|
eswebcrawler1.agencyCode = zhengfuProject.AgencyCode;
|
eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string requestJson = JsonConvert.SerializeObject(eswebcrawler1);
|
|
using (HttpContent httpContent = new StringContent(requestJson))
|
{
|
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
using (HttpClient httpClient = new HttpClient())
|
{
|
httpClient.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result;
|
result = responseMessage.Content.ReadAsStringAsync().Result;
|
}
|
|
}
|
|
Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
|
|
if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
|
{
|
|
}
|
else
|
{
|
throw new Exception("保存数据库出错!");
|
}
|
|
|
_ccontext.SaveChanges();
|
}
|
}
|
}
|
|
|
if (currPage * pageSize >= sichuan.total)
|
{
|
break;
|
}
|
else
|
{
|
currPage += 1;
|
}
|
Thread.CurrentThread.Join(1000 * 20);//阻止设定时间
|
}
|
|
|
}
|
logg.WriteLog("四川省意向公开 获取完成", "四川");
|
|
//翻页信息
|
currPage = 1;
|
pageSize = 10;
|
//开始访问 采购公告
|
logg.WriteLog("四川省采购公告 开始获取", "四川");
|
while (true)
|
{
|
logg.WriteLog(currPage.ToString(), "四川");
|
string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00101®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea=";
|
using (HttpClient client = new HttpClient())
|
{
|
client.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage response = client.GetAsync(address).Result;
|
var res = response.Content.ReadAsStringAsync().Result;
|
|
sichuanjieshou sichuan = JsonConvert.DeserializeObject<sichuanjieshou>(res);
|
|
//保存项目到sqlserveer和elasticsearch
|
if (sichuan.data != null && sichuan.data.Count > 0)
|
{
|
foreach (var sichuanjieshoudtl in sichuan.data)
|
{
|
var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd");
|
var notimestart = DateTime.Parse(notime);
|
var notimeend = notimestart.AddDays(1);
|
var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "02" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend));
|
if (zhengfuProjectCount <= 0)
|
{
|
var zhengfuProject = new ZhengfuProject();
|
zhengfuProject.Id = Guid.NewGuid().ToString();
|
zhengfuProject.Gglx = "02";
|
string gglxName = "采购公告";
|
zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime;
|
zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime;
|
zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode;
|
string regionName = sichuanjieshoudtl.regionName;
|
zhengfuProject.Sheng = "510000";
|
string ShengName = "四川省";
|
string CityName = "";
|
if ("510001" == sichuanjieshoudtl.regionCode)
|
{
|
zhengfuProject.RegionCode = "";
|
regionName = "";
|
zhengfuProject.City = "510001";
|
CityName = "省本级";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5101"))
|
{
|
zhengfuProject.City = "510100";
|
CityName = "成都市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5103"))
|
{
|
zhengfuProject.City = "510300";
|
CityName = "自贡市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5104"))
|
{
|
zhengfuProject.City = "510400";
|
CityName = "攀枝花市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5105"))
|
{
|
zhengfuProject.City = "510500";
|
CityName = "泸州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5106"))
|
{
|
zhengfuProject.City = "510600";
|
CityName = "德阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5107"))
|
{
|
zhengfuProject.City = "510700";
|
CityName = "绵阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5108"))
|
{
|
zhengfuProject.City = "510800";
|
CityName = "广元市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5109"))
|
{
|
zhengfuProject.City = "510900";
|
CityName = "遂宁市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5110"))
|
{
|
zhengfuProject.City = "511000";
|
CityName = "内江市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5111"))
|
{
|
zhengfuProject.City = "511100";
|
CityName = "乐山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5113"))
|
{
|
zhengfuProject.City = "511300";
|
CityName = "南充市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5114"))
|
{
|
zhengfuProject.City = "5114";
|
CityName = "眉山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5115"))
|
{
|
zhengfuProject.City = "511500";
|
CityName = "宜宾市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5116"))
|
{
|
zhengfuProject.City = "511600";
|
CityName = "广安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5117"))
|
{
|
zhengfuProject.City = "511700";
|
CityName = "达州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5118"))
|
{
|
zhengfuProject.City = "511800";
|
CityName = "雅安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5119"))
|
{
|
zhengfuProject.City = "511900";
|
CityName = "巴中市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5120"))
|
{
|
zhengfuProject.City = "512000";
|
CityName = "资阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5132"))
|
{
|
zhengfuProject.City = "513200";
|
CityName = "阿坝州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5133"))
|
{
|
zhengfuProject.City = "513300";
|
CityName = "甘孜州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5134"))
|
{
|
zhengfuProject.City = "513400";
|
CityName = "凉山州";
|
}
|
|
|
string cgfsName = "";
|
switch (sichuanjieshoudtl.purchaseManner)
|
{
|
case "1":
|
zhengfuProject.Cgfs = "1";
|
cgfsName = "公开招标";
|
break;
|
case "2":
|
zhengfuProject.Cgfs = "2";
|
cgfsName = "邀请招标";
|
break;
|
case "3":
|
zhengfuProject.Cgfs = "5";
|
cgfsName = "竞争性谈判";
|
break;
|
case "4":
|
zhengfuProject.Cgfs = "4";
|
cgfsName = "询价";
|
break;
|
case "5":
|
zhengfuProject.Cgfs = "7";
|
cgfsName = "单一来源";
|
break;
|
case "6":
|
zhengfuProject.Cgfs = "3";
|
cgfsName = "竞争性磋商";
|
break;
|
case "9":
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
default:
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
}
|
zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode;
|
zhengfuProject.Title = sichuanjieshoudtl.title;
|
zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle;
|
zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser;
|
|
if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget))
|
{
|
zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget);
|
}
|
zhengfuProject.Agency = sichuanjieshoudtl.agency;
|
zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode;
|
zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty);
|
zhengfuProject.RecStatus = "A";
|
zhengfuProject.Creater = "1";
|
zhengfuProject.Createtime = DateTime.Now;
|
zhengfuProject.Modifier = "1";
|
zhengfuProject.Modifytime = zhengfuProject.Createtime;
|
_ccontext.ZhengfuProjects.Add(zhengfuProject);
|
|
|
string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id;
|
string result = string.Empty;
|
Uri postUrl = new Uri(url);
|
eswebcrawler eswebcrawler1 = new eswebcrawler();
|
eswebcrawler1.Id = zhengfuProject.Id;
|
eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss");
|
eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null;
|
eswebcrawler1.sheng = zhengfuProject.Sheng;
|
eswebcrawler1.shengName = ShengName;
|
eswebcrawler1.city = zhengfuProject.City;
|
eswebcrawler1.cityName = CityName;
|
eswebcrawler1.regionCode = zhengfuProject.RegionCode;
|
eswebcrawler1.regionName = regionName;
|
eswebcrawler1.cgfs = zhengfuProject.Cgfs;
|
eswebcrawler1.cgfsName = cgfsName;
|
eswebcrawler1.gglx = zhengfuProject.Gglx;
|
eswebcrawler1.gglxName = gglxName;
|
eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode;
|
eswebcrawler1.title = zhengfuProject.Title;
|
eswebcrawler1.shorttitle = zhengfuProject.Shorttitle;
|
eswebcrawler1.pageurl = zhengfuProject.Pageurl;
|
eswebcrawler1.pingmu = zhengfuProject.Pingmu;
|
eswebcrawler1.pingmuName = "";
|
eswebcrawler1.purchaser = zhengfuProject.Purchaser;
|
eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : "";
|
eswebcrawler1.agency = zhengfuProject.Agency;
|
eswebcrawler1.agencyCode = zhengfuProject.AgencyCode;
|
eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string requestJson = JsonConvert.SerializeObject(eswebcrawler1);
|
|
using (HttpContent httpContent = new StringContent(requestJson))
|
{
|
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
using (HttpClient httpClient = new HttpClient())
|
{
|
httpClient.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result;
|
result = responseMessage.Content.ReadAsStringAsync().Result;
|
}
|
|
}
|
|
Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
|
|
if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
|
{
|
|
}
|
else
|
{
|
throw new Exception("保存数据库出错!");
|
}
|
|
|
_ccontext.SaveChanges();
|
}
|
}
|
}
|
|
|
if (currPage * pageSize >= sichuan.total)
|
{
|
break;
|
}
|
else
|
{
|
currPage += 1;
|
}
|
Thread.CurrentThread.Join(1000 * 20);//阻止设定时间
|
}
|
|
|
}
|
logg.WriteLog("四川省采购公告 获取完成", "四川");
|
|
//翻页信息
|
currPage = 1;
|
pageSize = 10;
|
//开始访问 采购公告
|
logg.WriteLog("四川省中标公告 开始获取", "四川");
|
while (true)
|
{
|
logg.WriteLog(currPage.ToString(), "四川");
|
string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00102®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea=";
|
using (HttpClient client = new HttpClient())
|
{
|
client.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage response = client.GetAsync(address).Result;
|
var res = response.Content.ReadAsStringAsync().Result;
|
|
sichuanjieshou sichuan = JsonConvert.DeserializeObject<sichuanjieshou>(res);
|
|
//保存项目到sqlserveer和elasticsearch
|
if (sichuan.data != null && sichuan.data.Count > 0)
|
{
|
foreach (var sichuanjieshoudtl in sichuan.data)
|
{
|
var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd");
|
var notimestart = DateTime.Parse(notime);
|
var notimeend = notimestart.AddDays(1);
|
var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "03" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend));
|
if (zhengfuProjectCount <= 0)
|
{
|
var zhengfuProject = new ZhengfuProject();
|
zhengfuProject.Id = Guid.NewGuid().ToString();
|
zhengfuProject.Gglx = "03";
|
string gglxName = "结果公告";
|
zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime;
|
zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime;
|
zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode;
|
string regionName = sichuanjieshoudtl.regionName;
|
zhengfuProject.Sheng = "510000";
|
string ShengName = "四川省";
|
string CityName = "";
|
if ("510001" == sichuanjieshoudtl.regionCode)
|
{
|
zhengfuProject.RegionCode = "";
|
regionName = "";
|
zhengfuProject.City = "510001";
|
CityName = "省本级";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5101"))
|
{
|
zhengfuProject.City = "510100";
|
CityName = "成都市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5103"))
|
{
|
zhengfuProject.City = "510300";
|
CityName = "自贡市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5104"))
|
{
|
zhengfuProject.City = "510400";
|
CityName = "攀枝花市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5105"))
|
{
|
zhengfuProject.City = "510500";
|
CityName = "泸州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5106"))
|
{
|
zhengfuProject.City = "510600";
|
CityName = "德阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5107"))
|
{
|
zhengfuProject.City = "510700";
|
CityName = "绵阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5108"))
|
{
|
zhengfuProject.City = "510800";
|
CityName = "广元市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5109"))
|
{
|
zhengfuProject.City = "510900";
|
CityName = "遂宁市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5110"))
|
{
|
zhengfuProject.City = "511000";
|
CityName = "内江市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5111"))
|
{
|
zhengfuProject.City = "511100";
|
CityName = "乐山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5113"))
|
{
|
zhengfuProject.City = "511300";
|
CityName = "南充市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5114"))
|
{
|
zhengfuProject.City = "511400";
|
CityName = "眉山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5115"))
|
{
|
zhengfuProject.City = "511500";
|
CityName = "宜宾市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5116"))
|
{
|
zhengfuProject.City = "511600";
|
CityName = "广安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5117"))
|
{
|
zhengfuProject.City = "511700";
|
CityName = "达州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5118"))
|
{
|
zhengfuProject.City = "511800";
|
CityName = "雅安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5119"))
|
{
|
zhengfuProject.City = "511900";
|
CityName = "巴中市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5120"))
|
{
|
zhengfuProject.City = "512000";
|
CityName = "资阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5132"))
|
{
|
zhengfuProject.City = "513200";
|
CityName = "阿坝州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5133"))
|
{
|
zhengfuProject.City = "513300";
|
CityName = "甘孜州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5134"))
|
{
|
zhengfuProject.City = "513400";
|
CityName = "凉山州";
|
}
|
|
|
string cgfsName = "";
|
string BieCgfs = "";
|
switch (sichuanjieshoudtl.purchaseManner)
|
{
|
case "1":
|
zhengfuProject.Cgfs = "1";
|
cgfsName = "公开招标";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c11";
|
break;
|
case "2":
|
zhengfuProject.Cgfs = "2";
|
cgfsName = "邀请招标";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c12";
|
break;
|
case "3":
|
zhengfuProject.Cgfs = "5";
|
cgfsName = "竞争性谈判";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c14";
|
break;
|
case "4":
|
zhengfuProject.Cgfs = "4";
|
cgfsName = "询价";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c15";
|
break;
|
case "5":
|
zhengfuProject.Cgfs = "7";
|
cgfsName = "单一来源";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c16";
|
break;
|
case "6":
|
zhengfuProject.Cgfs = "3";
|
cgfsName = "竞争性磋商";
|
BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c13";
|
break;
|
case "9":
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
BieCgfs = "";
|
break;
|
default:
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
BieCgfs = "";
|
break;
|
}
|
zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode;
|
zhengfuProject.Title = sichuanjieshoudtl.title;
|
zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle;
|
zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser;
|
|
if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget))
|
{
|
zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget);
|
}
|
zhengfuProject.Agency = sichuanjieshoudtl.agency;
|
zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode;
|
zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty);
|
zhengfuProject.RecStatus = "A";
|
zhengfuProject.Creater = "1";
|
zhengfuProject.Createtime = DateTime.Now;
|
zhengfuProject.Modifier = "1";
|
zhengfuProject.Modifytime = zhengfuProject.Createtime;
|
_ccontext.ZhengfuProjects.Add(zhengfuProject);
|
|
|
Project project = new Project();
|
project.Id = zhengfuProject.Id;
|
project.StartTime = zhengfuProject.NoticeTime;
|
project.Sheng = zhengfuProject.Sheng;
|
project.City = zhengfuProject.City;
|
if (project.City == "510001")
|
{
|
project.AreaId = "510002";
|
}
|
else
|
{
|
project.AreaId = zhengfuProject.RegionCode;
|
}
|
|
project.Cgfs = BieCgfs;
|
project.Number = zhengfuProject.OpenTenderCode;
|
project.Name = zhengfuProject.Title;
|
|
if (zhengfuProject.Budget.HasValue)
|
{
|
project.Caigouyusuan = zhengfuProject.Budget.Value / new decimal(10000);
|
}
|
project.Question = zhengfuProject.Pageurl;
|
var parser = new HtmlParser();
|
var document = parser.ParseDocument(zhengfuProject.Content);
|
var cDocumet = document.All.Where(m => m.Id == "noticeArea").FirstOrDefault();
|
if (cDocumet != null)
|
{
|
//var cDocumet = contentList.First();
|
var Numberss = cDocumet.QuerySelectorAll("p");
|
foreach (var Number in Numberss)
|
{
|
|
if (Number != null && Number.TextContent.Contains("废标理由"))
|
{
|
var Fbyy = Number.QuerySelector("span");
|
project.Fbyy = Fbyy.TextContent.Trim();
|
}
|
}
|
|
var Caigourennames = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserOrgName");
|
if (Caigourennames != null && Caigourennames.ToList().Count > 0)
|
{
|
var Caigourenname = Caigourennames.First();
|
project.Caigourenname = Caigourenname.TextContent;
|
}
|
var Caigourenaddresss = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserOrgAddress");
|
if (Caigourenaddresss != null && Caigourenaddresss.ToList().Count > 0)
|
{
|
var Caigourenaddress = Caigourenaddresss.First();
|
project.Caigourenaddress = Caigourenaddress.TextContent;
|
}
|
var Caigourencontacts = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserLinkTel");
|
if (Caigourencontacts != null && Caigourencontacts.ToList().Count > 0)
|
{
|
var Caigourencontact = Caigourencontacts.First();
|
project.Caigourencontact = Caigourencontact.TextContent;
|
}
|
var Dailinames = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agencyName");
|
if (Dailinames != null && Dailinames.ToList().Count > 0)
|
{
|
var Dailiname = Dailinames.First();
|
project.Dailiname = Dailiname.TextContent;
|
}
|
var Dailiaddresss = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agentAddress");
|
if (Dailiaddresss != null && Dailiaddresss.ToList().Count > 0)
|
{
|
var Dailiaddress = Dailiaddresss.First();
|
project.Dailiaddress = Dailiaddress.TextContent;
|
}
|
var Dailicontacts = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agentLinkTel");
|
if (Dailicontacts != null && Dailicontacts.ToList().Count > 0)
|
{
|
var Dailicontact = Dailicontacts.First();
|
project.Dailicontact = Dailicontact.TextContent;
|
}
|
|
|
|
var zhuanjias = cDocumet.QuerySelectorAll("div").Where(m => m.ClassName == "noticeBidResult-noticeBidResult _notice_content_noticeBidResult-noticeBidResult expert dynamic-form-editor");
|
if (zhuanjias != null && zhuanjias.ToList().Count > 0)
|
{
|
var zhuanjia = zhuanjias.First();
|
|
project.Zhuanjia = zhuanjia.TextContent.Trim();//OuterHtml
|
}
|
}
|
|
|
|
|
|
|
project.Creater = "111";
|
project.Createtime = zhengfuProject.Createtime;
|
project.Modifier = project.Creater;
|
project.Modifytime = project.Createtime;
|
project.RecStatus = "A";
|
|
_ccontext1.Projects.Add(project);
|
if (cDocumet != null)
|
{
|
//var cDocumet = contentList.First();
|
var table1 = cDocumet.QuerySelectorAll("div").Where(m => m.Id == "_notice_content_noticeBidResult-noticeBidResult");
|
|
if (table1 != null && table1.ToList().Count > 0)
|
{
|
var table = table1.First().QuerySelectorAll("table");
|
if (table != null && table.ToList().Count > 0)
|
{
|
for (int i = 0; i < table.Length; i++)
|
{
|
var td = table[i].QuerySelectorAll("td");
|
if (td.Length >= 3)
|
{
|
|
var projectzhongbiao = new Projectzhongbiao();
|
projectzhongbiao.ZhongbiaoId = Guid.NewGuid().ToString();
|
projectzhongbiao.ProjectId = project.Id;
|
if ( !string.IsNullOrWhiteSpace(td[0].TextContent) && td[0].TextContent.Trim().Length > 500)
|
{
|
projectzhongbiao.Names = td[0].TextContent.Trim().Substring(0,500);
|
}
|
else
|
{
|
projectzhongbiao.Names = td[0].TextContent.Trim();
|
}
|
|
projectzhongbiao.Price = td[2].TextContent.Trim();
|
_ccontext1.Projectzhongbiaos.Add(projectzhongbiao);
|
}
|
}
|
}
|
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
|
string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id;
|
string result = string.Empty;
|
Uri postUrl = new Uri(url);
|
eswebcrawler eswebcrawler1 = new eswebcrawler();
|
eswebcrawler1.Id = zhengfuProject.Id;
|
eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss");
|
eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null;
|
eswebcrawler1.sheng = zhengfuProject.Sheng;
|
eswebcrawler1.shengName = ShengName;
|
eswebcrawler1.city = zhengfuProject.City;
|
eswebcrawler1.cityName = CityName;
|
eswebcrawler1.regionCode = zhengfuProject.RegionCode;
|
eswebcrawler1.regionName = regionName;
|
eswebcrawler1.cgfs = zhengfuProject.Cgfs;
|
eswebcrawler1.cgfsName = cgfsName;
|
eswebcrawler1.gglx = zhengfuProject.Gglx;
|
eswebcrawler1.gglxName = gglxName;
|
eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode;
|
eswebcrawler1.title = zhengfuProject.Title;
|
eswebcrawler1.shorttitle = zhengfuProject.Shorttitle;
|
eswebcrawler1.pageurl = zhengfuProject.Pageurl;
|
eswebcrawler1.pingmu = zhengfuProject.Pingmu;
|
eswebcrawler1.pingmuName = "";
|
eswebcrawler1.purchaser = zhengfuProject.Purchaser;
|
eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : "";
|
eswebcrawler1.agency = zhengfuProject.Agency;
|
eswebcrawler1.agencyCode = zhengfuProject.AgencyCode;
|
eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string requestJson = JsonConvert.SerializeObject(eswebcrawler1);
|
|
using (HttpContent httpContent = new StringContent(requestJson))
|
{
|
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
using (HttpClient httpClient = new HttpClient())
|
{
|
httpClient.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result;
|
result = responseMessage.Content.ReadAsStringAsync().Result;
|
}
|
|
}
|
|
Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
|
|
if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
|
{
|
|
}
|
else
|
{
|
throw new Exception("保存数据库出错!");
|
}
|
_ccontext1.SaveChanges();
|
|
_ccontext.SaveChanges();
|
}
|
}
|
}
|
|
|
if (currPage * pageSize >= sichuan.total)
|
{
|
break;
|
}
|
else
|
{
|
currPage += 1;
|
}
|
Thread.CurrentThread.Join(1000 * 20);//阻止设定时间
|
}
|
|
|
}
|
logg.WriteLog("四川省中标公告 获取完成", "四川");
|
|
//翻页信息
|
currPage = 1;
|
pageSize = 10;
|
//开始访问 采购公告
|
logg.WriteLog("四川省更正公告 开始获取", "四川");
|
while (true)
|
{
|
logg.WriteLog(currPage.ToString(), "四川");
|
string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00103®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea=";
|
using (HttpClient client = new HttpClient())
|
{
|
client.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage response = client.GetAsync(address).Result;
|
var res = response.Content.ReadAsStringAsync().Result;
|
|
sichuanjieshou sichuan = JsonConvert.DeserializeObject<sichuanjieshou>(res);
|
|
//保存项目到sqlserveer和elasticsearch
|
if (sichuan.data != null && sichuan.data.Count > 0)
|
{
|
foreach (var sichuanjieshoudtl in sichuan.data)
|
{
|
var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd");
|
var notimestart = DateTime.Parse(notime);
|
var notimeend = notimestart.AddDays(1);
|
var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "04" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend));
|
if (zhengfuProjectCount <= 0)
|
{
|
var zhengfuProject = new ZhengfuProject();
|
zhengfuProject.Id = Guid.NewGuid().ToString();
|
zhengfuProject.Gglx = "04";
|
string gglxName = "更正公告";
|
zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime;
|
zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime;
|
zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode;
|
string regionName = sichuanjieshoudtl.regionName;
|
zhengfuProject.Sheng = "510000";
|
string ShengName = "四川省";
|
string CityName = "";
|
if ("510001" == sichuanjieshoudtl.regionCode)
|
{
|
zhengfuProject.RegionCode = "";
|
regionName = "";
|
zhengfuProject.City = "510001";
|
CityName = "省本级";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5101"))
|
{
|
zhengfuProject.City = "510100";
|
CityName = "成都市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5103"))
|
{
|
zhengfuProject.City = "510300";
|
CityName = "自贡市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5104"))
|
{
|
zhengfuProject.City = "510400";
|
CityName = "攀枝花市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5105"))
|
{
|
zhengfuProject.City = "510500";
|
CityName = "泸州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5106"))
|
{
|
zhengfuProject.City = "510600";
|
CityName = "德阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5107"))
|
{
|
zhengfuProject.City = "510700";
|
CityName = "绵阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5108"))
|
{
|
zhengfuProject.City = "510800";
|
CityName = "广元市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5109"))
|
{
|
zhengfuProject.City = "510900";
|
CityName = "遂宁市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5110"))
|
{
|
zhengfuProject.City = "511000";
|
CityName = "内江市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5111"))
|
{
|
zhengfuProject.City = "511100";
|
CityName = "乐山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5113"))
|
{
|
zhengfuProject.City = "511300";
|
CityName = "南充市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5114"))
|
{
|
zhengfuProject.City = "5114";
|
CityName = "眉山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5115"))
|
{
|
zhengfuProject.City = "511500";
|
CityName = "宜宾市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5116"))
|
{
|
zhengfuProject.City = "511600";
|
CityName = "广安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5117"))
|
{
|
zhengfuProject.City = "511700";
|
CityName = "达州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5118"))
|
{
|
zhengfuProject.City = "511800";
|
CityName = "雅安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5119"))
|
{
|
zhengfuProject.City = "511900";
|
CityName = "巴中市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5120"))
|
{
|
zhengfuProject.City = "512000";
|
CityName = "资阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5132"))
|
{
|
zhengfuProject.City = "513200";
|
CityName = "阿坝州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5133"))
|
{
|
zhengfuProject.City = "513300";
|
CityName = "甘孜州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5134"))
|
{
|
zhengfuProject.City = "513400";
|
CityName = "凉山州";
|
}
|
|
|
string cgfsName = "";
|
switch (sichuanjieshoudtl.purchaseManner)
|
{
|
case "1":
|
zhengfuProject.Cgfs = "1";
|
cgfsName = "公开招标";
|
break;
|
case "2":
|
zhengfuProject.Cgfs = "2";
|
cgfsName = "邀请招标";
|
break;
|
case "3":
|
zhengfuProject.Cgfs = "5";
|
cgfsName = "竞争性谈判";
|
break;
|
case "4":
|
zhengfuProject.Cgfs = "4";
|
cgfsName = "询价";
|
break;
|
case "5":
|
zhengfuProject.Cgfs = "7";
|
cgfsName = "单一来源";
|
break;
|
case "6":
|
zhengfuProject.Cgfs = "3";
|
cgfsName = "竞争性磋商";
|
break;
|
case "9":
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
default:
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
}
|
zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode;
|
zhengfuProject.Title = sichuanjieshoudtl.title;
|
zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle;
|
zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser;
|
|
if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget))
|
{
|
zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget);
|
}
|
zhengfuProject.Agency = sichuanjieshoudtl.agency;
|
zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode;
|
zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty);
|
zhengfuProject.RecStatus = "A";
|
zhengfuProject.Creater = "1";
|
zhengfuProject.Createtime = DateTime.Now;
|
zhengfuProject.Modifier = "1";
|
zhengfuProject.Modifytime = zhengfuProject.Createtime;
|
_ccontext.ZhengfuProjects.Add(zhengfuProject);
|
|
|
string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id;
|
string result = string.Empty;
|
Uri postUrl = new Uri(url);
|
eswebcrawler eswebcrawler1 = new eswebcrawler();
|
eswebcrawler1.Id = zhengfuProject.Id;
|
eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss");
|
eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null;
|
eswebcrawler1.sheng = zhengfuProject.Sheng;
|
eswebcrawler1.shengName = ShengName;
|
eswebcrawler1.city = zhengfuProject.City;
|
eswebcrawler1.cityName = CityName;
|
eswebcrawler1.regionCode = zhengfuProject.RegionCode;
|
eswebcrawler1.regionName = regionName;
|
eswebcrawler1.cgfs = zhengfuProject.Cgfs;
|
eswebcrawler1.cgfsName = cgfsName;
|
eswebcrawler1.gglx = zhengfuProject.Gglx;
|
eswebcrawler1.gglxName = gglxName;
|
eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode;
|
eswebcrawler1.title = zhengfuProject.Title;
|
eswebcrawler1.shorttitle = zhengfuProject.Shorttitle;
|
eswebcrawler1.pageurl = zhengfuProject.Pageurl;
|
eswebcrawler1.pingmu = zhengfuProject.Pingmu;
|
eswebcrawler1.pingmuName = "";
|
eswebcrawler1.purchaser = zhengfuProject.Purchaser;
|
eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : "";
|
eswebcrawler1.agency = zhengfuProject.Agency;
|
eswebcrawler1.agencyCode = zhengfuProject.AgencyCode;
|
eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string requestJson = JsonConvert.SerializeObject(eswebcrawler1);
|
|
using (HttpContent httpContent = new StringContent(requestJson))
|
{
|
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
using (HttpClient httpClient = new HttpClient())
|
{
|
httpClient.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result;
|
result = responseMessage.Content.ReadAsStringAsync().Result;
|
}
|
|
}
|
|
Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
|
|
if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
|
{
|
|
}
|
else
|
{
|
throw new Exception("保存数据库出错!");
|
}
|
|
|
_ccontext.SaveChanges();
|
}
|
}
|
}
|
|
|
if (currPage * pageSize >= sichuan.total)
|
{
|
break;
|
}
|
else
|
{
|
currPage += 1;
|
}
|
Thread.CurrentThread.Join(1000 * 20);//阻止设定时间
|
}
|
|
|
}
|
logg.WriteLog("四川省更正公告 获取完成", "四川");
|
|
|
//翻页信息
|
currPage = 1;
|
pageSize = 10;
|
//开始访问 采购公告
|
logg.WriteLog("四川省废标公告 开始获取", "四川");
|
while (true)
|
{
|
logg.WriteLog(currPage.ToString(), "四川");
|
string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=001004,001006®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea=";
|
using (HttpClient client = new HttpClient())
|
{
|
client.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage response = client.GetAsync(address).Result;
|
var res = response.Content.ReadAsStringAsync().Result;
|
|
sichuanjieshou sichuan = JsonConvert.DeserializeObject<sichuanjieshou>(res);
|
|
//保存项目到sqlserveer和elasticsearch
|
if (sichuan.data != null && sichuan.data.Count > 0)
|
{
|
foreach (var sichuanjieshoudtl in sichuan.data)
|
{
|
var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd");
|
var notimestart = DateTime.Parse(notime);
|
var notimeend = notimestart.AddDays(1);
|
|
var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "11" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend));
|
if (zhengfuProjectCount <= 0)
|
{
|
var zhengfuProject = new ZhengfuProject();
|
zhengfuProject.Id = Guid.NewGuid().ToString();
|
zhengfuProject.Gglx = "11";
|
string gglxName = "废标公告";
|
zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime;
|
zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime;
|
zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode;
|
string regionName = sichuanjieshoudtl.regionName;
|
zhengfuProject.Sheng = "510000";
|
string ShengName = "四川省";
|
string CityName = "";
|
if ("510001" == sichuanjieshoudtl.regionCode)
|
{
|
zhengfuProject.RegionCode = "";
|
regionName = "";
|
zhengfuProject.City = "510001";
|
CityName = "省本级";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5101"))
|
{
|
zhengfuProject.City = "510100";
|
CityName = "成都市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5103"))
|
{
|
zhengfuProject.City = "510300";
|
CityName = "自贡市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5104"))
|
{
|
zhengfuProject.City = "510400";
|
CityName = "攀枝花市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5105"))
|
{
|
zhengfuProject.City = "510500";
|
CityName = "泸州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5106"))
|
{
|
zhengfuProject.City = "510600";
|
CityName = "德阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5107"))
|
{
|
zhengfuProject.City = "510700";
|
CityName = "绵阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5108"))
|
{
|
zhengfuProject.City = "510800";
|
CityName = "广元市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5109"))
|
{
|
zhengfuProject.City = "510900";
|
CityName = "遂宁市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5110"))
|
{
|
zhengfuProject.City = "511000";
|
CityName = "内江市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5111"))
|
{
|
zhengfuProject.City = "511100";
|
CityName = "乐山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5113"))
|
{
|
zhengfuProject.City = "511300";
|
CityName = "南充市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5114"))
|
{
|
zhengfuProject.City = "5114";
|
CityName = "眉山市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5115"))
|
{
|
zhengfuProject.City = "511500";
|
CityName = "宜宾市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5116"))
|
{
|
zhengfuProject.City = "511600";
|
CityName = "广安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5117"))
|
{
|
zhengfuProject.City = "511700";
|
CityName = "达州市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5118"))
|
{
|
zhengfuProject.City = "511800";
|
CityName = "雅安市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5119"))
|
{
|
zhengfuProject.City = "511900";
|
CityName = "巴中市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5120"))
|
{
|
zhengfuProject.City = "512000";
|
CityName = "资阳市";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5132"))
|
{
|
zhengfuProject.City = "513200";
|
CityName = "阿坝州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5133"))
|
{
|
zhengfuProject.City = "513300";
|
CityName = "甘孜州";
|
}
|
else if (sichuanjieshoudtl.regionCode.StartsWith("5134"))
|
{
|
zhengfuProject.City = "513400";
|
CityName = "凉山州";
|
}
|
|
|
string cgfsName = "";
|
switch (sichuanjieshoudtl.purchaseManner)
|
{
|
case "1":
|
zhengfuProject.Cgfs = "1";
|
cgfsName = "公开招标";
|
break;
|
case "2":
|
zhengfuProject.Cgfs = "2";
|
cgfsName = "邀请招标";
|
break;
|
case "3":
|
zhengfuProject.Cgfs = "5";
|
cgfsName = "竞争性谈判";
|
break;
|
case "4":
|
zhengfuProject.Cgfs = "4";
|
cgfsName = "询价";
|
break;
|
case "5":
|
zhengfuProject.Cgfs = "7";
|
cgfsName = "单一来源";
|
break;
|
case "6":
|
zhengfuProject.Cgfs = "3";
|
cgfsName = "竞争性磋商";
|
break;
|
case "9":
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
default:
|
zhengfuProject.Cgfs = "10";
|
cgfsName = "其他";
|
break;
|
}
|
zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode;
|
zhengfuProject.Title = sichuanjieshoudtl.title;
|
zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle;
|
zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl;
|
zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser;
|
|
if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget))
|
{
|
zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget);
|
}
|
zhengfuProject.Agency = sichuanjieshoudtl.agency;
|
zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode;
|
zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty);
|
zhengfuProject.RecStatus = "A";
|
zhengfuProject.Creater = "1";
|
zhengfuProject.Createtime = DateTime.Now;
|
zhengfuProject.Modifier = "1";
|
zhengfuProject.Modifytime = zhengfuProject.Createtime;
|
_ccontext.ZhengfuProjects.Add(zhengfuProject);
|
|
|
var projects = _ccontext1.Projects.Where(x => x.RecStatus == "A" && x.Number == zhengfuProject.OpenTenderCode && x.Fblx != null ).ToList();
|
if (projects.Count > 0)
|
{
|
foreach (var project in projects)
|
{
|
project.Fblx = "停止评审";
|
}
|
|
var parser = new HtmlParser();
|
var document = parser.ParseDocument(zhengfuProject.Content);
|
var contentList = document.All.Where(m => m.Id == "noticeArea");
|
var cDocumet = contentList.First();
|
var Numberss = cDocumet.QuerySelectorAll("p");
|
foreach (var Number in Numberss)
|
{
|
|
if (Number != null && Number.TextContent.Contains("废标理由"))
|
{
|
if (Number.TextContent.IndexOf("span") >= 0)
|
{
|
var Fbyy = Number.QuerySelector("span");
|
foreach (var project in projects)
|
{
|
project.Fbyy = Fbyy.TextContent.Trim();
|
project.Fblx = "停止评审";
|
}
|
}
|
|
|
}
|
if (Number != null && Number.TextContent.Contains("终止原因"))
|
{
|
if(Number.TextContent.IndexOf("span") >= 0)
|
{
|
var Fbyy = Number.QuerySelector("span");
|
foreach (var project in projects)
|
{
|
project.Fbyy = Fbyy.TextContent.Trim();
|
project.Fblx = "停止评审";
|
}
|
}
|
|
|
}
|
}
|
var feibiaoliyous = cDocumet.QuerySelectorAll("div").Where(m => m.Id == "_notice_content_reason-reason");
|
if (feibiaoliyous != null && feibiaoliyous.ToList().Count > 0)
|
{
|
var feibiaoliyou = feibiaoliyous.First();
|
foreach (var project in projects)
|
{
|
project.Fbyy = feibiaoliyou.TextContent.Replace("\n", "").Replace("\t", "");
|
project.Fblx = "终止采购";
|
}
|
}
|
|
_ccontext1.SaveChanges();
|
}
|
|
|
|
|
|
|
string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id;
|
string result = string.Empty;
|
Uri postUrl = new Uri(url);
|
eswebcrawler eswebcrawler1 = new eswebcrawler();
|
eswebcrawler1.Id = zhengfuProject.Id;
|
eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss");
|
eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null;
|
eswebcrawler1.sheng = zhengfuProject.Sheng;
|
eswebcrawler1.shengName = ShengName;
|
eswebcrawler1.city = zhengfuProject.City;
|
eswebcrawler1.cityName = CityName;
|
eswebcrawler1.regionCode = zhengfuProject.RegionCode;
|
eswebcrawler1.regionName = regionName;
|
eswebcrawler1.cgfs = zhengfuProject.Cgfs;
|
eswebcrawler1.cgfsName = cgfsName;
|
eswebcrawler1.gglx = zhengfuProject.Gglx;
|
eswebcrawler1.gglxName = gglxName;
|
eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode;
|
eswebcrawler1.title = zhengfuProject.Title;
|
eswebcrawler1.shorttitle = zhengfuProject.Shorttitle;
|
eswebcrawler1.pageurl = zhengfuProject.Pageurl;
|
eswebcrawler1.pingmu = zhengfuProject.Pingmu;
|
eswebcrawler1.pingmuName = "";
|
eswebcrawler1.purchaser = zhengfuProject.Purchaser;
|
eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : "";
|
eswebcrawler1.agency = zhengfuProject.Agency;
|
eswebcrawler1.agencyCode = zhengfuProject.AgencyCode;
|
eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string requestJson = JsonConvert.SerializeObject(eswebcrawler1);
|
|
using (HttpContent httpContent = new StringContent(requestJson))
|
{
|
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
using (HttpClient httpClient = new HttpClient())
|
{
|
httpClient.Timeout = TimeSpan.FromSeconds(60);
|
HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result;
|
result = responseMessage.Content.ReadAsStringAsync().Result;
|
}
|
|
}
|
|
Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result);
|
|
if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1")
|
{
|
|
}
|
else
|
{
|
throw new Exception("保存数据库出错!");
|
}
|
|
|
_ccontext.SaveChanges();
|
}
|
}
|
}
|
|
|
if (currPage * pageSize >= sichuan.total)
|
{
|
break;
|
}
|
else
|
{
|
currPage += 1;
|
}
|
Thread.CurrentThread.Join(1000 * 20);//阻止设定时间
|
}
|
|
|
}
|
logg.WriteLog("四川省废标公告 获取完成", "四川");
|
|
|
|
//保存最后更新时间
|
if (updatetime != null)
|
{
|
updatetime.Updatetime1 = DateTime.Now.AddDays(-1);
|
_ccontext.SaveChanges();
|
}
|
else
|
{
|
updatetime = new Updatetime();
|
updatetime.Id = Guid.NewGuid().ToString();
|
updatetime.Sheng = "四川省";
|
updatetime.Updatetime1 = DateTime.Now.AddDays(-1);
|
_ccontext.Updatetimes.Add(updatetime);
|
_ccontext.SaveChanges();
|
}
|
}
|
catch (Exception ex)
|
{
|
logg.WriteLog(ex.Message, "四川");
|
|
logg.WriteLog(ex.StackTrace, "四川");
|
|
logg.WriteLog(ex.ToString(), "四川");
|
}
|
finally
|
{
|
|
}
|
}
|
}
|
}
|