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;
|
|
namespace zhengcaioa.Controllers
|
{
|
public class ProjectController : Controller
|
{
|
private readonly ILogger<ProjectController> _logger;
|
private readonly IProjectService _projectService;
|
private readonly ILiaotianService _liaotianService;
|
private readonly IIntentionCustomerService _intentionCustomerService;
|
private readonly IUserService _userService;
|
private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
|
|
public ProjectController(ILogger<ProjectController> logger, IProjectService projectService, ILiaotianService liaotianService,IIntentionCustomerService intentionCustomerService, IUserService userService
|
, ICooperatecustomCustomerService cooperatecustomCustomerService)
|
{
|
_logger = logger;
|
_projectService = projectService;
|
_liaotianService = liaotianService;
|
_intentionCustomerService = intentionCustomerService;
|
_userService = userService;
|
_cooperatecustomCustomerService = cooperatecustomCustomerService;
|
}
|
[CheckLogin]
|
public IActionResult Index()
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
ViewData["curentuser"] = curentuser;
|
List<ActionEntity> actionlist = new List<ActionEntity>();
|
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<PltUser>(HttpContext.Session.GetString("User"));
|
ViewData["curentuser"] = curentuser;
|
|
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<Projectreason>();
|
Projectreasonlist.Add(new Projectreason());
|
projectDTO.projectreasons = Projectreasonlist;
|
|
var Projectyouxiaolist = new List<Projectyouxiao>();
|
Projectyouxiaolist.Add(new Projectyouxiao());
|
projectDTO.Projectyouxiaos = Projectyouxiaolist;
|
|
var Projectzhongbiaoslist = new List<ProjectzhongbiaoDTO>();
|
Projectzhongbiaoslist.Add(new ProjectzhongbiaoDTO());
|
projectDTO.Projectzhongbiaos = Projectzhongbiaoslist;
|
projectDTO.StartTime = DateTime.Now;
|
}
|
var zhuanjia = _projectService.Getzhuanjie();
|
var cgfs = _projectService.GetCgfs();
|
var sheng = _projectService.Getsheng();
|
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();
|
}
|
|
/// <summary>
|
/// 获取区县
|
/// </summary>
|
/// <param name="shengid">市id</param>
|
/// <returns></returns>
|
[CheckLogin]
|
public string getAreaId(string cityid = "")
|
{
|
var quxian = _projectService.Getquxian(cityid);
|
|
return JsonConvert.SerializeObject(quxian);
|
|
}
|
|
|
/// <summary>
|
/// 获取市
|
/// </summary>
|
/// <param name="shengid">省id</param>
|
/// <returns></returns>
|
///
|
[CheckLogin]
|
public string getCity(string shengid = "")
|
{
|
var shi = _projectService.Getshi(shengid);
|
|
return JsonConvert.SerializeObject(shi);
|
|
}
|
|
/// <summary>
|
/// 保存
|
/// </summary>
|
/// <param name="data">岗位实体类对象</param>
|
/// <returns></returns>
|
///
|
[CheckLogin]
|
[HttpPost]
|
public string Save(ProjectDTO data)
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(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 = _projectService.saveLiaotian(data);
|
|
return JsonConvert.SerializeObject(resultEntity);
|
}
|
[CheckLogin]
|
public IActionResult Select()
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
ViewData["curentuser"] = curentuser;
|
List<ActionEntity> actionlist = new List<ActionEntity>();
|
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;
|
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();
|
ViewBag.ShengDropDown = _projectService.Getsheng().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();
|
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));
|
}
|
|
/// <summary>
|
/// 删除主信息
|
/// </summary>
|
/// <param name="info">实体</param>
|
/// <returns></returns>
|
///
|
[CheckLogin]
|
public string Nullify(string Id = "")
|
{
|
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
|
ViewData["curentuser"] = curentuser;
|
return JsonConvert.SerializeObject(_projectService.ModifyStatus(Id, curentuser.Id));
|
}
|
|
|
/// <summary>
|
/// 获取项目信息
|
/// </summary>
|
/// <param name="address">项目网址</param>
|
/// <returns></returns>
|
///
|
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);
|
var time = document.QuerySelector("p");
|
if (time != null)
|
{
|
string timestr = time.TextContent;
|
if (timestr.IndexOf("系统发布时间:") >= 0)
|
{
|
timestr = timestr.Replace("系统发布时间:", "");
|
}
|
projectDTO.StartTimestr = timestr;
|
}
|
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)
|
{
|
projectDTO.Projectzhongbiaos = new List<ProjectzhongbiaoDTO>();
|
|
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);
|
|
}
|
}
|
}
|
}
|