using AngleSharp.Html.Parser;
using DTO;
using IServices;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Bot.Builder.Integration.AspNet.Core;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using zhengcaioa.IService;
using zhengcaioa.Models;
using System.IdentityModel.Tokens.Jwt;
using CommonToolsCore;
using System.Transactions;
namespace zhengcaioa.Controllers
{
public class ProjectController : Controller
{
private readonly ILogger _logger;
private readonly IProjectService _projectService;
private readonly ILiaotianService _liaotianService;
private readonly IIntentionCustomerService _intentionCustomerService;
private readonly IUserService _userService;
private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
private readonly ISysBaimingdanService _sysBaimingdanService;
private readonly IFiOrderrecievemoneyService _fiOrderrecievemoneyService;
private readonly IAreaService _areaService;
private readonly IPltPageService _pltPageService;
public ProjectController(ILogger logger, IProjectService projectService, ILiaotianService liaotianService,IIntentionCustomerService intentionCustomerService, IUserService userService
, ICooperatecustomCustomerService cooperatecustomCustomerService
, ISysBaimingdanService sysBaimingdanService
, IFiOrderrecievemoneyService fiOrderrecievemoneyService
, IAreaService areaService
, IPltPageService pltPageService)
{
_logger = logger;
_projectService = projectService;
_liaotianService = liaotianService;
_intentionCustomerService = intentionCustomerService;
_userService = userService;
_cooperatecustomCustomerService = cooperatecustomCustomerService;
_sysBaimingdanService = sysBaimingdanService;
_fiOrderrecievemoneyService = fiOrderrecievemoneyService;
_areaService = areaService;
_pltPageService = pltPageService;
}
[CheckLogin]
public IActionResult Index()
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
List actionlist = new List();
ActionEntity actionEntity = new ActionEntity();
actionEntity.OpenType = 0;
actionEntity.ActionUrl = "";
actionEntity.ActionFun = "Search";
actionEntity.PageIco = "fa fa-search";
actionEntity.ActionName = "查询";
actionlist.Add(actionEntity);
ActionEntity actionEntity1 = new ActionEntity();
actionEntity1.OpenType = 0;
actionEntity1.ActionUrl = "";
actionEntity1.ActionFun = "Add";
actionEntity1.PageIco = "fa fa-plus";
actionEntity1.ActionName = "新增";
actionlist.Add(actionEntity1);
ViewData["ActionInfo"] = actionlist;
return View();
}
[CheckLogin]
public IActionResult Add(string id = null)
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/Project/Select");
var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
ViewData["ActionInfo2"] = pageEntities2;
ProjectDTO projectDTO = new ProjectDTO();
if (!String.IsNullOrEmpty(id))
{
projectDTO = _projectService.GetLiaotianEntity(id);
var intentionCustomerDTOs = _intentionCustomerService.GetList();
var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList();
if (projectDTO.Projectzhongbiaos!=null && projectDTO.Projectzhongbiaos.Count > 0)
{
for(int i=0;i< projectDTO.Projectzhongbiaos.Count; i++)
{
var intt = intentionCustomerDTOs.Count(x=>x.Name == projectDTO.Projectzhongbiaos[i].Names);
if (intt > 0)
{
projectDTO.Projectzhongbiaos[i].ProjectId = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Projectzhongbiaos[i].Names);
if (intt > 0)
{
projectDTO.Projectzhongbiaos[i].ProjectId = "yes";
}
}
}
if (!string.IsNullOrWhiteSpace(projectDTO.Drhx))
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.Drhx);
if (intt > 0)
{
projectDTO.Drcunzai = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Drhx);
if (intt > 0)
{
projectDTO.Drcunzai = "yes";
}
}
if (!string.IsNullOrWhiteSpace(projectDTO.Dshx))
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.Dshx);
if (intt > 0)
{
projectDTO.Dscunzai = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Dshx);
if (intt > 0)
{
projectDTO.Dscunzai = "yes";
}
}
if (projectDTO.projectreasons != null && projectDTO.projectreasons.Count > 0)
{
for (int i = 0; i < projectDTO.projectreasons.Count; i++)
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.projectreasons[i].Reasonname);
if (intt > 0)
{
projectDTO.projectreasons[i].ProjectId = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.projectreasons[i].Reasonname);
if (intt > 0)
{
projectDTO.projectreasons[i].ProjectId = "yes";
}
}
}
if (projectDTO.Projectyouxiaos != null && projectDTO.Projectyouxiaos.Count > 0)
{
for (int i = 0; i < projectDTO.Projectyouxiaos.Count; i++)
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.Projectyouxiaos[i].Namesyouxiao);
if (intt > 0)
{
projectDTO.Projectyouxiaos[i].ProjectId = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Projectyouxiaos[i].Namesyouxiao);
if (intt > 0)
{
projectDTO.Projectyouxiaos[i].ProjectId = "yes";
}
}
}
if (!string.IsNullOrWhiteSpace(projectDTO.Caigourenname))
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.Caigourenname);
if (intt > 0)
{
projectDTO.Caigourennamecunzai = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Caigourenname);
if (intt > 0)
{
projectDTO.Caigourennamecunzai = "yes";
}
}
if (!string.IsNullOrWhiteSpace(projectDTO.Dailiname))
{
var intt = intentionCustomerDTOs.Count(x => x.Name == projectDTO.Dailiname);
if (intt > 0)
{
projectDTO.Dailinamecunzai = "yes";
}
intt = cooperatecustomCustomerDTOs.Count(x => x.Name == projectDTO.Dailiname);
if (intt > 0)
{
projectDTO.Dailinamecunzai = "yes";
}
}
}
else
{
projectDTO.Sheng = "510000";
projectDTO.City = "510100";
projectDTO.AreaId = "510107";
var Projectreasonlist = new List();
Projectreasonlist.Add(new Projectreason());
projectDTO.projectreasons = Projectreasonlist;
var Projectyouxiaolist = new List();
Projectyouxiaolist.Add(new Projectyouxiao());
projectDTO.Projectyouxiaos = Projectyouxiaolist;
var Projectzhongbiaoslist = new List();
Projectzhongbiaoslist.Add(new ProjectzhongbiaoDTO());
projectDTO.Projectzhongbiaos = Projectzhongbiaoslist;
projectDTO.StartTime = DateTime.Now;
}
var zhuanjia = _projectService.Getzhuanjie();
var cgfs = _projectService.GetCgfs();
var areaDTOs = _projectService.Getsheng().ToList();
foreach (var areaDTO in areaDTOs)
{
if (areaDTO.CodeId == "510000")
{
areaDTOs.Remove(areaDTO);
break;
}
}
var areaDTOsic = new Area();
areaDTOsic.CodeId = "510000";
areaDTOsic.Name = "四川省";
areaDTOsic.ParentId = "0 ";
areaDTOs.Insert(1, areaDTOsic);
var sheng = areaDTOs;
var shi = _projectService.Getshi(projectDTO.Sheng);
var quxian = _projectService.Getquxian(projectDTO.City);
ViewBag.flbx = _liaotianService.GetSYScode("Project", "flbx");
ViewBag.zhuanjia = zhuanjia;
ViewBag.cgfs = cgfs;
ViewBag.sheng = sheng;
ViewBag.shi = shi;
ViewBag.quxian = quxian;
ViewData.Model = projectDTO;
return View();
}
///
/// 获取区县
///
/// 市id
///
[CheckLogin]
public string getAreaId(string cityid = "")
{
var quxian = _projectService.Getquxian(cityid);
return JsonConvert.SerializeObject(quxian);
}
///
/// 获取市
///
/// 省id
///
///
[CheckLogin]
public string getCity(string shengid = "")
{
var shi = _projectService.Getshi(shengid);
return JsonConvert.SerializeObject(shi);
}
///
/// 保存
///
/// 岗位实体类对象
///
///
[CheckLogin]
[HttpPost]
public string Save(ProjectDTO data)
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
data.RecStatus = "A";
if (String.IsNullOrEmpty(data.Id))
{
data.Creater = curentuser.Id;
data.Createtime = DateTime.Now;
}
data.Modifier = curentuser.Id;
data.Modifytime = DateTime.Now;
ResultEntity resultEntity = new ResultEntity();
resultEntity.Result = false;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadCommitted,
Timeout = TransactionManager.MaximumTimeout
}
))
{
resultEntity = _projectService.saveLiaotian(data);
scope.Complete();
}
return JsonConvert.SerializeObject(resultEntity);
}
[CheckLogin]
public IActionResult Select()
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
List actionlist = new List();
//ActionEntity actionEntity = new ActionEntity();
//actionEntity.OpenType = 0;
//actionEntity.ActionUrl = "";
//actionEntity.ActionFun = "Search";
//actionEntity.PageIco = "fa fa-search";
//actionEntity.ActionName = "查询";
//actionlist.Add(actionEntity);
//ActionEntity actionEntity1 = new ActionEntity();
//actionEntity1.OpenType = 0;
//actionEntity1.ActionUrl = "";
//actionEntity1.ActionFun = "Add";
//actionEntity1.PageIco = "fa fa-plus";
//actionEntity1.ActionName = "新增";
//actionlist.Add(actionEntity1);
var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/Project/Select");
var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
if (pageEntities1.Count(x => x.PageShortcut == "Search") <= 0)
{
ActionEntity actionEntity = new ActionEntity();
actionEntity.OpenType = 0;
actionEntity.ActionUrl = "";
actionEntity.ActionFun = "Search";
actionEntity.PageIco = "fa fa-search";
actionEntity.ActionName = "查询";
actionlist.Add(actionEntity);
ViewData["Creater11"] = curentuser.Id;
}
foreach (var pageEntity in pageEntities1)
{
ActionEntity actionEntity1 = new ActionEntity();
actionEntity1.OpenType = pageEntity.OpenType;
actionEntity1.ActionUrl = "";
actionEntity1.ActionFun = pageEntity.PageShortcut;
actionEntity1.PageIco = pageEntity.PageIco;
actionEntity1.ActionName = pageEntity.PageName;
actionlist.Add(actionEntity1);
}
ViewData["ActionInfo"] = actionlist;
ViewBag.ProjectDropDown = _projectService.AllcgfsDropDown().Select(x => new { code = x.Value, label = x.Text }).ToList();
//ViewBag.flbx = _liaotianService.GetSYScode("Project", "flbx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
var areaDTOs = _projectService.Getsheng().ToList();
foreach (var areaDTO in areaDTOs)
{
if (areaDTO.CodeId == "510000")
{
areaDTOs.Remove(areaDTO);
break;
}
}
var areaDTOsic = new Area();
areaDTOsic.CodeId = "510000";
areaDTOsic.Name = "四川省";
areaDTOsic.ParentId = "0 ";
areaDTOs.Insert(1, areaDTOsic);
ViewBag.ShengDropDown = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList();
ViewBag.Creater = _userService.GetList().Select(x => new { code = x.Id, label = x.UserName }).ToList();
ViewBag.flbx = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
ViewBag.ShiFouyReasonname = _liaotianService.GetSYScode("Project", "ShiFouyReasonname").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
ViewBag.Baomingtimebegin = DateTime.Now.AddMonths(-6).ToString("yyyy-MM-dd");
ViewBag.Baomingtimeend = DateTime.Now.ToString("yyyy-MM-dd");
ViewBag.wanshan = _liaotianService.GetSYScode("Project", "wanshan").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
return View();
}
[CheckLogin]
public string GetLiaotianList(ProjectDTOSearch search)
{
//JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
return JsonConvert.SerializeObject(_projectService.SearchByPaging(search));
}
///
/// 删除主信息
///
/// 实体
///
///
[CheckLogin]
public string Nullify(string Id = "")
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
return JsonConvert.SerializeObject(_projectService.ModifyStatus(Id, curentuser.Id));
}
///
/// 获取项目信息
///
/// 项目网址
///
///
public string getProjectxinxi(string address = "")
{
ProjectDTO projectDTO = new ProjectDTO();
var parser = new HtmlParser();
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = client.GetAsync(address).Result;
var res = response.Content.ReadAsStringAsync().Result;
var document = parser.ParseDocument(res);
if (address.StartsWith("https://zfcg.scsczt.cn/"))
{
//新招标网站
var contentList = document.All.Where(m => m.Id == "print-content");
if (contentList != null)
{
var cDocumet = contentList.First();
var title = cDocumet.QuerySelector("h1");
if (title != null)
projectDTO.Name = title.TextContent.Replace("\n", "").Trim();
var time = contentList.Where(m => m.Id == "noticeTime");
if (time != null)
{
var time1 = contentList.First();
var timestr = time1.QuerySelector("i");
if (timestr != null)
{
projectDTO.StartTimestr = timestr.TextContent;
}
}
var feibiaoliyous = cDocumet.QuerySelectorAll("div").Where(m => m.Id == "_notice_content_reason-reason");
if (feibiaoliyous != null && feibiaoliyous.ToList().Count > 0)
{
var feibiaoliyou = feibiaoliyous.First();
projectDTO.Fbyy = feibiaoliyou.TextContent.Replace("\n", "").Replace("\t", "");
projectDTO.Fblx = "终止采购";
}
var Numbers = cDocumet.QuerySelectorAll("h4");
foreach(var Number in Numbers )
{
if(Number!=null&& Number.TextContent.Contains("项目编号"))
{
projectDTO.Number = Number.TextContent.Replace("一、项目编号:", "").Trim();
}
}
var Numberss = cDocumet.QuerySelectorAll("p");
foreach (var Number in Numberss)
{
if (Number != null && Number.TextContent.Contains("项目编号"))
{
projectDTO.Number = Number.TextContent.Replace("项目编号:", "").Trim();
}
if (Number != null && Number.TextContent.Contains("预算金额"))
{
decimal caigouyusuanName = 0;
decimal.TryParse(Number.TextContent.Replace("预算金额:", "").Replace("元", "").Replace(",", "").Trim(), out caigouyusuanName);
projectDTO.CaigouyusuanName = (caigouyusuanName/new decimal(10000)).ToString();
}
if (Number != null && Number.TextContent.Contains("废标理由"))
{
var Fbyy = Number.QuerySelector("span");
projectDTO.Fbyy = Fbyy.TextContent.Trim();
projectDTO.Fblx = "停止评审";
}
if (Number != null && Number.TextContent.Contains("终止原因"))
{
var Fbyy = Number.QuerySelector("span");
projectDTO.Fbyy = Fbyy.TextContent.Trim();
projectDTO.Fblx = "停止评审";
}
}
var Caigourennames = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserOrgName");
if (Caigourennames != null && Caigourennames.ToList().Count > 0)
{
var Caigourenname = Caigourennames.First();
projectDTO.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();
projectDTO.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();
projectDTO.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();
projectDTO.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();
projectDTO.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();
projectDTO.Dailicontact = Dailicontact.TextContent;
}
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)
{
projectDTO.Projectzhongbiaos = new List();
for (int i = 0; i < table.Length; i++)
{
var td = table[i].QuerySelectorAll("td");
if (td.Length >= 3)
{
var projectzhongbiao = new ProjectzhongbiaoDTO();
projectzhongbiao.Names = td[0].TextContent.Trim();
projectzhongbiao.Price = td[2].TextContent.Trim();
projectDTO.Projectzhongbiaos.Add(projectzhongbiao);
}
}
}
}
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();
projectDTO.Zhuanjia = zhuanjia.TextContent.Trim();//OuterHtml
}
}
}
else
{
//旧招标网站
var time = document.QuerySelector("p");
if (time != null)
{
string timestr = time.TextContent;
if (timestr.IndexOf("系统发布时间:") >= 0)
{
timestr = timestr.Replace("系统发布时间:", "");
}
projectDTO.StartTimestr = timestr;
}
var tittle = document.QuerySelector("h1");
if (tittle != null)
{
string tittlestr = tittle.TextContent;
projectDTO.Name = tittlestr;
}
var table = document.QuerySelector("table").QuerySelectorAll("tr");
if (table != null)
{
for (int i = 0; i < table.Length; i++)
{
var select = table[i].QuerySelector("td");
if (select != null && select.TextContent.IndexOf("项目编号") >= 0)
{
if (table[i + 1] != null)
{
var td1 = table[i + 1].QuerySelector("td");
if (td1 != null)
{
projectDTO.Number = table[i + 1].QuerySelector("td").TextContent.Trim();//OuterHtml
}
}
}
//else if (select != null && select.TextContent.IndexOf("项目名称") >= 0)
//{
// if (table[i + 1] != null)
// {
// var td1 = table[i + 1].QuerySelector("td");
// if (td1 != null)
// {
// projectDTO.Name = table[i + 1].QuerySelector("td").TextContent.Trim();//OuterHtml
// }
// }
//}
else if (select != null && select.TextContent.IndexOf("项目终止的原因") >= 0)
{
if (table[i + 1] != null)
{
var td1 = table[i + 1].QuerySelector("td");
if (td1 != null)
{
projectDTO.Fbyy = table[i + 1].QuerySelector("td").TextContent.Trim();//OuterHtml
if (projectDTO.Fbyy.IndexOf("终止")<0)
{
projectDTO.Fblx = "停止评审";
}
else
{
projectDTO.Fblx = "终止采购";
}
}
}
}
else if (select != null && select.TextContent.IndexOf("中标(成交)信息") >= 0)
{
projectDTO.Projectzhongbiaos = new List();
if (table[i + 1] != null)
{
var tds = table[i + 1].QuerySelectorAll("td");
if (tds != null)
{
if (tds.Length > 1)
{
string surpliername = table[i + 1].QuerySelectorAll("td")[1].TextContent.Trim();//OuterHtml
var surpliernames = surpliername.Split(',');
for (int j = 0; j < surpliernames.Length; j++)
{
var projectzhongbiao = new ProjectzhongbiaoDTO();
projectzhongbiao.Names = surpliernames[j].Trim();
//if (table[i + 2] != null)
//{
// var tds2 = table[i + 2].QuerySelectorAll("td");
// if (tds2 != null)
// {
// if (tds2.Length > 1)
// {
// string adress = table[i + 2].QuerySelectorAll("td")[1].TextContent.Trim();//OuterHtml
// var adresss = adress.Split(';');
// if (adresss.Length == surpliernames.Length)
// {
// projectzhongbiao.Names += " " + adresss[j].Trim();
// }
// else if (adresss.Length < surpliernames.Length)
// {
// if (j < adresss.Length)
// {
// projectzhongbiao.Names += " " + adresss[j].Trim();
// }
// else
// {
// projectzhongbiao.Names += " ";
// }
// }
// else if (adresss.Length % surpliernames.Length == 0)
// {
// projectzhongbiao.Names += " " + adresss[(j + 1) * (adresss.Length / surpliernames.Length) - 1].Trim();
// }
// else
// {
// projectzhongbiao.Names += " " + adresss[j + (adresss.Length - surpliernames.Length)].Trim();
// }
// }
// }
//}
if (table[i + 3] != null)
{
var tds3 = table[i + 3].QuerySelectorAll("td");
if (tds3 != null)
{
if (tds3.Length > 1)
{
string jine = table[i + 3].QuerySelectorAll("td")[1].TextContent.Trim();//OuterHtml
var jines = jine.Split(';');
if (jines.Length == surpliernames.Length)
{
projectzhongbiao.Price = jines[j].Trim().Replace("中标金额", "").Replace(":", "").Replace(":", "");//OuterHtml
}
else if (jines.Length < surpliernames.Length)
{
if (j < jines.Length)
{
projectzhongbiao.Price = jines[j].Trim().Replace("中标金额", "").Replace(":", "").Replace(":", "");
}
else
{
projectzhongbiao.Price = " ";
}
}
else
{
if (j == 0)
{
projectzhongbiao.Price = jine.Trim().Replace("中标金额", "").Replace(":", "").Replace(":", "");
}
else
{
projectzhongbiao.Price = jines[j + (jines.Length - surpliernames.Length)].Trim().Replace("中标金额", "").Replace(":", "").Replace(":", "");
}
}
}
}
}
projectDTO.Projectzhongbiaos.Add(projectzhongbiao);
}
}
}
}
}
else if (select != null && select.TextContent.IndexOf("评审专家") >= 0)
{
if (table[i + 1] != null)
{
var td1 = table[i + 1].QuerySelector("td");
if (td1 != null)
{
string ssss = table[i + 1].QuerySelector("td").TextContent.Trim();
ssss = ssss.Replace("(组长)", "").Replace("(组长)", "").Replace(",", "、").Replace("(评审组长)", "").Replace("(评审组长)", "").Replace(";", "、").Replace("评审组长:", "").Replace("组长:", "").Replace("组员:", "");
projectDTO.Zhuanjia = ssss;//OuterHtml
}
}
}
else if (table[i] != null && table[i].TextContent.IndexOf("采购人信息") >= 0)
{
//StringBuilder remark = new StringBuilder();
// remark.Append("采购人信息:");
if (table[i + 1] != null)
{
var tds = table[i + 1].QuerySelectorAll("td");
if (tds != null)
{
// remark.Append(table[i + 1].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 1].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Caigourenname = table[i + 1].QuerySelectorAll("td")[1].TextContent.Trim();
}
}
// remark.Append(" ");
}
if (table[i + 2] != null)
{
var tds = table[i + 2].QuerySelectorAll("td");
if (tds != null)
{
// remark.Append(table[i + 2].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 2].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Caigourenaddress = table[i + 2].QuerySelectorAll("td")[1].TextContent.Trim();
}
}
// remark.Append(" ");
}
if (table[i + 3] != null)
{
var tds = table[i + 3].QuerySelectorAll("td");
if (tds != null)
{
// remark.Append(table[i + 3].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 3].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Caigourencontact = table[i + 3].QuerySelectorAll("td")[1].TextContent.Trim();
}
}
// remark.Append(" ");
}
// remark.Append(" \n");
// projectDTO.Remark = remark.ToString();
}
else if (table[i] != null && table[i].TextContent.IndexOf("采购代理机构信息") >= 0)
{
// StringBuilder remark = new StringBuilder();
// remark.Append("采购代理机构信息:");
if (table[i + 1] != null)
{
var tds = table[i + 1].QuerySelectorAll("td");
if (tds != null)
{
// remark.Append(table[i + 1].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 1].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Dailiname = table[i + 1].QuerySelectorAll("td")[1].TextContent.Trim();
}
// remark.Append(" ");
}
}
if (table[i + 2] != null)
{
var tds = table[i + 2].QuerySelectorAll("td");
if (tds != null)
{
// remark.Append(table[i + 2].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 2].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Dailiaddress = table[i + 2].QuerySelectorAll("td")[1].TextContent.Trim();
}
}
// remark.Append(" ");
}
if (table[i + 3] != null)
{
var tds = table[i + 3].QuerySelectorAll("td");
if (tds != null)
{
//remark.Append(table[i + 3].QuerySelectorAll("td")[0].TextContent.Trim());//OuterHtml)
if (tds.Length > 1)
{
// remark.Append(table[i + 3].QuerySelectorAll("td")[1].TextContent.Trim());//OuterHtml)
projectDTO.Dailicontact = table[i + 3].QuerySelectorAll("td")[1].TextContent.Trim();
}
}
//remark.Append(" ");
}
// remark.Append(" \n");
//if (string.IsNullOrEmpty(projectDTO.Remark))
//{
// projectDTO.Remark = remark.ToString();
//}
//else
//{
// projectDTO.Remark += remark.ToString();
//}
}
}
}
}
return JsonConvert.SerializeObject(projectDTO);
}
}
//获取对手分析
public IActionResult GetProjectFenxi([FromBody] ProjectDTOSearch search)
{
ReturnMsg> returnMsg = new ReturnMsg>();
returnMsg.code = 2;
var sysBaimingdanDTOs = _sysBaimingdanService.GetList();
if (!string.IsNullOrEmpty(search.Zhuanjia))
{
var sss = sysBaimingdanDTOs.Where(x => x.PostType == "01" && search.Zhuanjia.Contains(x.BaimingdanName)).Count();
if (sss > 0)
{
returnMsg.code = 2;
returnMsg.error = "该专家请直接联系政采咨询";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
if (!string.IsNullOrEmpty(search.Names))
{
var sss = sysBaimingdanDTOs.Where(x => x.PostType == "02" && search.Names.Contains(x.BaimingdanName)).Count();
if (sss > 0)
{
returnMsg.code = 11;
returnMsg.error = "该供应商请直接联系政采咨询";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
if (!string.IsNullOrEmpty(search.NamesToubiao))
{
var sss = sysBaimingdanDTOs.Where(x => x.PostType == "02" && search.NamesToubiao.Contains(x.BaimingdanName)).Count();
if (sss > 0)
{
returnMsg.code = 11;
returnMsg.error = "该供应商请直接联系政采咨询";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
if (!string.IsNullOrEmpty(search.Reasonname))
{
var sss = sysBaimingdanDTOs.Where(x => x.PostType == "02" && search.Reasonname.Contains(x.BaimingdanName)).Count();
if (sss > 0)
{
returnMsg.code = 11;
returnMsg.error = "该供应商请直接联系政采咨询";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
try
{
string userid = "";
var headers = Request.Headers;
if (headers != null)
{
//string SecurityKey = _configuration.GetSection("SecurityKey").Value;
var keyId = headers["Authorization"].FirstOrDefault();
if (string.IsNullOrEmpty("keyId"))
{
returnMsg.code = 2;
returnMsg.error = "没有获取到权限信息";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
JwtSecurityToken jwt = null;
var handler = new JwtSecurityTokenHandler();
var key1 = keyId.Replace("Bearer", "").Trim();
jwt = handler.ReadJwtToken(key1);
System.Security.Claims.Claim sss = jwt.Claims.Where(x => x.Type == "id").FirstOrDefault();
userid = sss.Value;
System.Security.Claims.Claim act = jwt.Claims.Where(x => x.Type == "act").FirstOrDefault();
AesClass aesClass = new AesClass();
RuleCollection ruleCollection = aesClass.DecryptRules(act.Value);
//判断是否有永久对手分析权限
FiOrderrecievemoneyDTOSearch searchs = new FiOrderrecievemoneyDTOSearch();
searchs.page = 1;
searchs.rows = 10000;
searchs.Fkzt = "03";
searchs.OrderType = "02";
searchs.StartTime = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss");
searchs.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
searchs.HuiyuanId = userid;
searchs.OrderType1 = "竞争对手和评审专家参加政府采购数据信息查询";
ResultDataEntity resultDataEntitys = _fiOrderrecievemoneyService.SearchByPaging(searchs);
if (resultDataEntitys.DataList ==null || resultDataEntitys.DataList.Count == 0)
//if (resultDataEntitys.DataList.Count > 0)
{
string token = key1.Length > 100 ? key1.Substring(key1.Length - 100) : key1;
if (ruleCollection.PrivilegeService.Count(x=>x== "ZXDSFXLS")>0)
//if (ruleCollection.ZXDSFXLS == 0)
{
DateTime yuechu = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
var zxdsfxlDTOs = _projectService.GetListZxdsfxl(userid, yuechu, yuechu.AddMonths(1),"1").OrderByDescending(x => x.Visittime).ToList();
if (zxdsfxlDTOs.Count > 30)
{
returnMsg.code = 2;
returnMsg.error = "你本月30次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
else if (zxdsfxlDTOs.Count == 30 && zxdsfxlDTOs[0].Visittime.Value.Day != DateTime.Now.Day)
{
returnMsg.code = 2;
returnMsg.error = "你本月30次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
var zxdsfxlDTOsnowdate = zxdsfxlDTOs.Where(x => x.Visittime >= DateTime.Now.Date && x.Visittime < DateTime.Now.AddDays(1).Date).OrderByDescending(x=>x.Visittime).ToList();
if (zxdsfxlDTOsnowdate.Count > 2)
{
returnMsg.code = 2;
returnMsg.error = "你本日2次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
else if (zxdsfxlDTOsnowdate.Count == 2)
{
TimeSpan ts2 = new TimeSpan(zxdsfxlDTOsnowdate[0].Visittime.Value.Ticks);
TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan timeLoop = ts1.Subtract(ts2).Duration();
if (timeLoop.TotalMinutes > 15)
{
returnMsg.code = 2;
returnMsg.error = "你本日2次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
else if (token != zxdsfxlDTOsnowdate[0].Token/* && zxdsfxlDTOs.Count == 30*/)
{
returnMsg.code = 2;
returnMsg.error = "你本日2次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
else if(zxdsfxlDTOsnowdate.Count == 1)
{
TimeSpan ts2 = new TimeSpan(zxdsfxlDTOsnowdate[0].Visittime.Value.Ticks);
TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan timeLoop = ts1.Subtract(ts2).Duration();
if (token== zxdsfxlDTOsnowdate[0].Token && timeLoop.TotalMinutes > 15)
{
Response.StatusCode = 401;//重新登陆
returnMsg.code = 2;
returnMsg.error = "你本次访问时间已经超过15分钟,请重新登陆!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
else if(token != zxdsfxlDTOsnowdate[0].Token && zxdsfxlDTOs.Count == 30)
{
returnMsg.code = 2;
returnMsg.error = "你本月30次测试机会已经用完!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
if (zxdsfxlDTOsnowdate.Count == 0 || token != zxdsfxlDTOsnowdate[0].Token)
{
//存储本次的访问信息
ZxdsfxlDTO zxdsfxlDTO = new ZxdsfxlDTO();
//zxdsfxlDTO.Id = Guid.NewGuid().ToString() ;
zxdsfxlDTO.Huiyuanid = userid;
zxdsfxlDTO.Huiyuanname = ruleCollection.User;
zxdsfxlDTO.Visittime = DateTime.Now;
zxdsfxlDTO.Token = key1.Length > 100 ? key1.Substring(key1.Length - 100) : key1;
zxdsfxlDTO.Leixing = "1";
zxdsfxlDTO.RecStatus = "A";
zxdsfxlDTO.Creater = "1";
zxdsfxlDTO.Createtime = zxdsfxlDTO.Visittime.Value;
zxdsfxlDTO.Modifier = "1";
zxdsfxlDTO.Modifytime = zxdsfxlDTO.Visittime.Value;
ResultEntity resultEntity = _projectService.saveZxdsfxl(zxdsfxlDTO);
if (resultEntity.Result == false)
{
returnMsg.code = 2;
returnMsg.error = "访问失败";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
}
else
{
returnMsg.code = 2;
returnMsg.error = "你没有权限访问竞争对手分析";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
}
}
else
{
returnMsg.code = 2;
returnMsg.error = "你没有登录!";
returnMsg.count = 0;
return new JsonResult(returnMsg);
}
//search.page = 1;
//search.rows = 1;
ResultDataEntity resultDataEntity = _projectService.SearchByPaging(search);
returnMsg.code = 1;
returnMsg.count = search.totalrows;
returnMsg.returnObj = resultDataEntity.DataList;
}
catch (Exception ex)
{
returnMsg.code = 2;
returnMsg.error = "系统发生错误";
returnMsg.count = 0;
}
return new JsonResult(returnMsg);
}
//获取项目详细信息
public IActionResult GetProjectFenxiDtl(string id = null)
{
ReturnMsg returnMsg = new ReturnMsg();
returnMsg.code = 2;
var projectDTO = _projectService.GetLiaotianEntity(id);
var cgfs = _projectService.GetCgfs().Where(x=>x.Id == projectDTO.Cgfs).FirstOrDefault();
var areaDTOs = _areaService.GetList();
var flbx = _liaotianService.GetSYScode("Project", "flbx").Where(x => x.Id == projectDTO.Fblx).FirstOrDefault();
projectDTO.StartTimestr = projectDTO.StartTime.ToString("yyyy-MM-dd HH:mm:ss");
var shengname = areaDTOs.Where(x => x.CodeId == projectDTO.Sheng).FirstOrDefault();
if (shengname != null)
{
projectDTO.ShengName = shengname.Name;
}
var cityname = areaDTOs.Where(x => x.CodeId == projectDTO.City).FirstOrDefault();
if (cityname != null)
{
projectDTO.CityName = cityname.Name;
}
var areaIdName = areaDTOs.Where(x => x.CodeId == projectDTO.AreaId).FirstOrDefault();
if (areaIdName != null)
{
projectDTO.AreaIdName = areaIdName.Name;
}
if (cgfs != null)
{
projectDTO.CgfsName = cgfs.Name;
}
if (flbx != null)
{
projectDTO.FblxName = flbx.Comments;
}
returnMsg.code = 1;
returnMsg.count = 1;
returnMsg.returnObj = projectDTO;
return new JsonResult(returnMsg);
}
///
/// 质疑
///
/// 岗位实体类对象
///
///
[CheckLogin]
public IActionResult Zhiyi(string projectid, string mingid, string type)
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
ViewData["projectid"] = projectid;
ViewData["mingid"] = mingid;
ViewData["type"] = type;
var zhiyistatus = "";
var zhiyishijian = "";
var zhiyichengli = "";
var projectDTO = _projectService.GetLiaotianEntity(projectid);
if (type == "1")
{
var projectzhongbiaoDTO = projectDTO.Projectzhongbiaos.Where(x => x.ZhongbiaoId == mingid).FirstOrDefault();
if (projectzhongbiaoDTO != null)
{
zhiyistatus = projectzhongbiaoDTO.ZbZhiyistatus;
zhiyishijian = projectzhongbiaoDTO.ZbZhiyishijian.HasValue? projectzhongbiaoDTO.ZbZhiyishijian.Value.ToString("yyyy-MM-dd"):"";
zhiyichengli = projectzhongbiaoDTO.ZbZhiyichengli;
}
}
else if (type == "2")
{
zhiyistatus = projectDTO.DehxZhiyistatus;
zhiyishijian = projectDTO.DehxZhiyishijian.HasValue ? projectDTO.DehxZhiyishijian.Value.ToString("yyyy-MM-dd") : "";
zhiyichengli = projectDTO.DehxZhiyichengli;
}
else if (type == "3")
{
zhiyistatus = projectDTO.DshxZhiyistatus;
zhiyishijian = projectDTO.DshxZhiyishijian.HasValue ? projectDTO.DshxZhiyishijian.Value.ToString("yyyy-MM-dd") : "";
zhiyichengli = projectDTO.DshxZhiyichengli;
}
else if (type == "4")
{
var projectyouxiao = projectDTO.Projectyouxiaos.Where(x => x.YouxiaoId == mingid).FirstOrDefault();
if (projectyouxiao != null)
{
zhiyistatus = projectyouxiao.YxZhiyistatus;
zhiyishijian = projectyouxiao.YxZhiyishijian.HasValue ? projectyouxiao.YxZhiyishijian.Value.ToString("yyyy-MM-dd") : "";
zhiyichengli = projectyouxiao.YxZhiyichengli;
}
}
else if (type == "5")
{
var projectreason = projectDTO.projectreasons.Where(x => x.ReasonId == mingid).FirstOrDefault();
if (projectreason != null)
{
zhiyistatus = projectreason.WxZhiyistatus;
zhiyishijian = projectreason.WxZhiyishijian.HasValue ? projectreason.WxZhiyishijian.Value.ToString("yyyy-MM-dd") : "";
zhiyichengli = projectreason.WxZhiyichengli;
}
}
if (string.IsNullOrWhiteSpace(zhiyishijian))
{
zhiyishijian = DateTime.Now.ToString("yyyy-MM-dd");
}
ViewData["zhiyistatus"] = zhiyistatus;
ViewData["zhiyishijian"] = zhiyishijian;
ViewData["zhiyichengli"] = zhiyichengli;
ViewData.Model = new ProjectDTO();
return View();
}
[CheckLogin]
public IActionResult Zhiyibaocun(ProjectDTO dto)
{
ResultEntity resultEntity = new ResultEntity();
resultEntity.Result = true;
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
resultEntity = _projectService.savezhiyi("A", dto.Zhiyishijian, dto.Zhiyichengli, dto.Id, dto.MingxiId,dto.Type);
return new JsonResult(resultEntity);
}
///
/// 投诉
///
/// 岗位实体类对象
///
///
[CheckLogin]
public IActionResult Tousu(string projectid, string mingid, string type)
{
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
ViewData["projectid"] = projectid;
ViewData["mingid"] = mingid;
ViewData["type"] = type;
var tousustatus = "";
var tousushijian = "";
var tousuchengli = "";
var projectDTO = _projectService.GetLiaotianEntity(projectid);
if (type == "1")
{
var projectzhongbiaoDTO = projectDTO.Projectzhongbiaos.Where(x => x.ZhongbiaoId == mingid).FirstOrDefault();
if (projectzhongbiaoDTO != null)
{
tousustatus = projectzhongbiaoDTO.ZbTousustatus;
tousushijian = projectzhongbiaoDTO.ZbTousushijian.HasValue ? projectzhongbiaoDTO.ZbTousushijian.Value.ToString("yyyy-MM-dd") : ""; ;
tousuchengli = projectzhongbiaoDTO.ZbTousuchengli;
}
}
else if (type == "2")
{
tousustatus = projectDTO.DehxTousustatus;
tousushijian = projectDTO.DehxTousushijian.HasValue ? projectDTO.DehxTousushijian.Value.ToString("yyyy-MM-dd") : ""; ;
tousuchengli = projectDTO.DehxTousuchengli;
}
else if (type == "3")
{
tousustatus = projectDTO.DshxTousustatus;
tousushijian = projectDTO.DshxTousushijian.HasValue ? projectDTO.DshxTousushijian.Value.ToString("yyyy-MM-dd") : ""; ;
tousuchengli = projectDTO.DshxTousuchengli;
}
else if (type == "4")
{
var projectyouxiao = projectDTO.Projectyouxiaos.Where(x => x.YouxiaoId == mingid).FirstOrDefault();
if (projectyouxiao != null)
{
tousustatus = projectyouxiao.YxTousustatus;
tousushijian = projectyouxiao.YxTousushijian.HasValue ? projectyouxiao.YxTousushijian.Value.ToString("yyyy-MM-dd") : ""; ;
tousuchengli = projectyouxiao.YxTousuchengli;
}
}
else if (type == "5")
{
var projectreason = projectDTO.projectreasons.Where(x => x.ReasonId == mingid).FirstOrDefault();
if (projectreason != null)
{
tousustatus = projectreason.WxTousustatus;
tousushijian = projectreason.WxTousushijian.HasValue ? projectreason.WxTousushijian.Value.ToString("yyyy-MM-dd") : ""; ;
tousuchengli = projectreason.WxTousuchengli;
}
}
if (string.IsNullOrWhiteSpace(tousushijian))
{
tousushijian = DateTime.Now.ToString("yyyy-MM-dd");
}
ViewData["tousustatus"] = tousustatus;
ViewData["tousushijian"] = tousushijian;
ViewData["tousuchengli"] = tousuchengli;
ViewData.Model = new ProjectDTO();
return View();
}
[CheckLogin]
public IActionResult Tousubaocun(ProjectDTO dto)
{
ResultEntity resultEntity = new ResultEntity();
resultEntity.Result = true;
var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
resultEntity = _projectService.savetousu("A", dto.Tousushijian, dto.Tousuchengli, dto.Id, dto.MingxiId, dto.Type);
return new JsonResult(resultEntity);
}
}
}