923 lines
38 KiB
C#
923 lines
38 KiB
C#
using Core.Web.WebHelper;
|
|
using Core.Web.WebHelper.UserRight;
|
|
using CRM.Core.BLL.Base;
|
|
using CRM.Core.BLL.EventBus.Events;
|
|
using CRM.Core.BLL.Res;
|
|
using CRM.Core.BLL.Soft;
|
|
using CRM.Core.BLL.Util;
|
|
using CRM.Core.BLL.Wx;
|
|
using CRM.Core.Common.EventBus;
|
|
using CRM.Core.Common.Layui;
|
|
using CRM.Core.Common.WebHelper;
|
|
using CRM.Core.DTO;
|
|
using CRM.Core.DTO.Ord;
|
|
using CRM.Core.Model.Entity;
|
|
using CRM.Core.Model.Enum;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.Common;
|
|
using CRM.Core.BLL.Level2;
|
|
using CRM.Core.BLL;
|
|
using CRM.Core.BLL.FB;
|
|
using CRM.Core.Model.EntityFB;
|
|
using CRM.Core.Model;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using Core.Web.App_Start;
|
|
using CRM.Core.BLL.Application.Order;
|
|
using Newtonsoft.Json;
|
|
using WX.CRM.WebHelper;
|
|
using WX.CRM.Common.BlowFish;
|
|
using WX.CRM.Common.StockHelper;
|
|
using System.Net;
|
|
|
|
namespace Core.Web.Controllers
|
|
{
|
|
public class ComplianceOrderController : BaseController
|
|
{
|
|
private WX_SZZYORDER_BL _order = new WX_SZZYORDER_BL();
|
|
private WX_SzzyOrderDeposit_BL _orderDeposit = new WX_SzzyOrderDeposit_BL();
|
|
private Csvr_HgRecord_BL _hgRecord = new Csvr_HgRecord_BL(ConStringHelper.CompanyCode.QBJZ);
|
|
private WX_PRODUCT_BL product_bl = new WX_PRODUCT_BL();
|
|
private CACHE_BL cache_BL = new CACHE_BL();
|
|
private BAS_PARAMETER_BL paramter_bl = new BAS_PARAMETER_BL();
|
|
private OrderService _orderService = new OrderService();
|
|
|
|
private Wx_AutoOpenOrder_BL _autoOpenOrder = new Wx_AutoOpenOrder_BL();
|
|
|
|
private BAS_INNERUSER_BL _userBl = new BAS_INNERUSER_BL();
|
|
|
|
public ComplianceOrderController()
|
|
{
|
|
}
|
|
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_NotButton, true)]
|
|
[HttpGet]
|
|
public ActionResult Index()
|
|
{
|
|
ViewBag.rightCode = RightsConfig.CONST_合规订单列表;
|
|
var list = product_bl.GetProductList().Where(p => p.parentid == 0);
|
|
List<SelectListItem> productList = new List<SelectListItem>();
|
|
foreach (var item in list)
|
|
{
|
|
productList.Add(new SelectListItem { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() });
|
|
}
|
|
var aiCallType = cache_BL.GetAiStatus().Select(n => new SelectListItem { Text = n.Text, Value = n.Value.ToString() }).ToList();
|
|
ViewBag.productList = productList;
|
|
ViewBag.aiCallType = aiCallType;
|
|
var aiCallTypeChannel = new List<Dictionary<string, string>>();
|
|
foreach (var aiCall in aiCallType)
|
|
{
|
|
var item = new Dictionary<string, string>
|
|
{
|
|
{ "name", aiCall.Text },
|
|
{ "value", aiCall.Value }
|
|
};
|
|
aiCallTypeChannel.Add(item);
|
|
}
|
|
ViewBag.aiCallTypeJson = JsonHelper.ToJson(aiCallTypeChannel);
|
|
ViewBag.companyList = cache_BL.GetCompanyVirtual();
|
|
ViewBag.hgServiceHost = cache_BL.GetValue_Parameter("HgCrm_ServiceHost");
|
|
ViewBag.aiCallServiceHost = cache_BL.GetValue_Parameter("AiCall_ServiceHost");
|
|
var companyList = cache_BL.GetCompanyVirtual();
|
|
ViewBag.companyList = cache_BL.GetCompanyVirtual();
|
|
var allChannel = new List<Dictionary<string, string>>();
|
|
foreach (var company in companyList)
|
|
{
|
|
var channel = new Dictionary<string, string>
|
|
{
|
|
{ "name", company.CompanyName },
|
|
{ "value", company.Channel.Replace(",", ";") }
|
|
};
|
|
allChannel.Add(channel);
|
|
}
|
|
ViewBag.AllChannel = JsonHelper.ToJson(allChannel);
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_NotButton, false)]
|
|
public JsonResult Index(Laypage pager, string columns, OrderQueryDto dto)
|
|
{
|
|
try
|
|
{
|
|
var list = _order.GetList(ref pager, dto);
|
|
List<string> resids = list.Select(m => m.RESID).ToList();
|
|
var extlist = _order.GetExtuser(resids);
|
|
var wxuserlist = _order.GetWxUserName(resids);
|
|
ViewBag.hgServiceHost = cache_BL.GetValue_Parameter("HgCrm_ServiceHost");
|
|
|
|
foreach (var item in list)
|
|
{
|
|
//附件
|
|
if (!string.IsNullOrEmpty(item.fujian))
|
|
{
|
|
var http = ConfigurationManager.AppSettings["FuJian_" + item.companycode];
|
|
item.fujian = http + item.fujian;
|
|
}
|
|
//企业微信
|
|
var ext = extlist.Where((m) => m.resid == item.RESID).ToList();
|
|
//去重
|
|
ext = ext.Where((m, i) => ext.FindIndex(z => z.userid == m.userid) == i).ToList();
|
|
if (ext.Count > 0)
|
|
{
|
|
var extstr = string.Join(";", ext.Select(m => m.userid));
|
|
if (!string.IsNullOrEmpty(item.external_userid) && extstr.IndexOf(item.external_userid) == -1)
|
|
{
|
|
extstr += ";" + item.external_userid;
|
|
}
|
|
item.external_userid = extstr;//替换原来的值
|
|
}
|
|
//微信
|
|
var wx = wxuserlist.Where(m => m.resid == item.RESID).ToList();
|
|
if (wx.Count > 0)
|
|
{
|
|
var extstr = string.Join(";", ext.Select(m => m.userid));
|
|
if (!string.IsNullOrEmpty(item.CUSTOMERUSERNAME) && extstr.IndexOf(item.CUSTOMERUSERNAME) == -1)
|
|
{
|
|
extstr += ";" + item.CUSTOMERUSERNAME;
|
|
}
|
|
item.CUSTOMERUSERNAME = extstr;//替换原来的值
|
|
}
|
|
if (item.eid != null)
|
|
{
|
|
item.innerUserName = $"{item.eid}-{item.innerUserName}";
|
|
}
|
|
//if (item.RISKCTRLSTATUS == 0 && item.ORDERID != 1)
|
|
//{
|
|
// var bf = "{\"uid\": \"" + item.SOFTUSERNAME + "\"}";
|
|
// var hqr = BlowFish.encode(bf);
|
|
// var para = new { hqr };
|
|
// string riskurl = paramter_bl.GetValue_Parameter(Parameter.UserCenter_RiaService_Risk);//封装出来的接口
|
|
// if (string.IsNullOrEmpty(riskurl))
|
|
// riskurl = "https://r2.soft.dn8188.com/riskevaluate/h5/get_riskinfo";
|
|
// var res = Utility.PostAjaxData(riskurl, para.ToJson(), Encoding.UTF8);
|
|
// var ret = JsonHelper.JsonDivertToObj<RiskInfoDto>(res);
|
|
// if (ret.ret == 0 || ret.ret == -104)
|
|
// {
|
|
// item.CNAME = ret.name;
|
|
// }
|
|
//}
|
|
}
|
|
var data = new LayuiData<WX_SZZYORDER_View>()
|
|
{
|
|
msg = "数据加载成功!",
|
|
count = pager.count,
|
|
code = 0,
|
|
data = list
|
|
};
|
|
return Json(data, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 订单详细,用于订单数据补充,比如订单中赠送失败了需要赠送
|
|
/// </summary>
|
|
/// <param name="orderId"></param>
|
|
/// <returns></returns>
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Details, true)]
|
|
public ActionResult Detail(int orderId)
|
|
{
|
|
WX_SZZYORDER model = _order.GetModel(orderId);
|
|
return View(model);
|
|
}
|
|
|
|
//补充赠送
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Details, false)]
|
|
public JsonResult SuperOrderGif(int orderId)
|
|
{
|
|
var ret = new OrderService().SuperOrderGif(orderId);
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
[HttpGet]
|
|
public ActionResult SetTime(int orderId)
|
|
{
|
|
var model = _order.GetModel(orderId);
|
|
return View(model);
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Other8, false)]
|
|
public FileResult ExportData(string param)
|
|
{
|
|
var dto = JsonConvert.DeserializeObject<OrderQueryDto>(param);
|
|
Laypage pager = new Laypage
|
|
{
|
|
page = 1,
|
|
limit = 100000,
|
|
};
|
|
var list = _order.GetList(ref pager, dto);
|
|
var hjcount = list.FirstOrDefault(m => m.ORDERID == 1);
|
|
if (hjcount != null)
|
|
list.Remove(hjcount);
|
|
LogHelper.Info($"导出查询到{list.Count}数据");
|
|
//List<WX_SZZYORDER_ExportView> res = new List<WX_SZZYORDER_ExportView>();
|
|
//foreach(var item in list)
|
|
//{
|
|
// res.Add(new WX_SZZYORDER_ExportView
|
|
// {
|
|
// ORDERID = item.ORDERID,
|
|
// RESID = item.RESID,
|
|
// CNAME = item.CNAME,
|
|
// SUBPRODUCTNAME = item.SUBPRODUCTNAME,
|
|
// ORDERSTATUSNAME = item.ORDERSTATUSNAME,
|
|
// OTIME = item.OTIME,
|
|
// ORIGINPAY = item.ORIGINPAY,
|
|
// ARRIVALPAY = item.ARRIVALPAY,
|
|
// ARRIVALTIME = item.ARRIVALTIME,
|
|
// NEEDPAY = item.NEEDPAY,
|
|
// OPENDAYS = item.OPENDAYS,
|
|
// CTIME = item.CTIME,
|
|
// UPGRADEORDERIDS = item.UPGRADEORDERIDS,
|
|
// MidProductName = item.MidProductName,
|
|
// CHANNELNAME = item.CHANNELNAME,
|
|
// giftdays = item.giftdays,
|
|
// CONTRACTCODE = item.CONTRACTCODE,
|
|
// ai_hgrecord_statusname = item.ai_hgrecord_statusname
|
|
// });
|
|
//}
|
|
|
|
string checkedFilds = Server.UrlDecode(Request.Cookies["checkedFilds"].Value);
|
|
string checkedTitle = Server.UrlDecode(Request.Cookies["checkedTitles"].Value);
|
|
Request.Cookies.Remove("checkedFilds");//用完后删除cookies
|
|
Request.Cookies.Remove("checkedTitles");//用完后删除cookies
|
|
|
|
//string checkedFilds = Request.QueryString["checkedFilds"];
|
|
//checkedFilds = checkedFilds.Replace("[]", "");
|
|
//string checkedTitles = Request.QueryString["checkedTitles"];
|
|
|
|
String file = string.Format("OrderList{0}.xls", DateTime.Now.ToLocalTime().ToString("yyyyMMddHHmmssfffff"));
|
|
return File(ExcelHelper.ExportListModelToExcel<WX_SZZYORDER_View>(list, "OrderList", 30000, checkedFilds, checkedTitle, DataFormart), "application/ms-excel", file);
|
|
}
|
|
|
|
public string DataFormart(string key, object value)
|
|
{
|
|
string formartValue = string.Empty;
|
|
switch (key)
|
|
{
|
|
case "contract_status":
|
|
if (Convert.ToInt32(value) == 1)
|
|
formartValue = "已通过";
|
|
else if (Convert.ToInt32(value) == -1)
|
|
formartValue = "驳回";
|
|
else
|
|
formartValue = "未审核";
|
|
break;
|
|
|
|
case "RISKCTRLSTATUS":
|
|
if (Convert.ToInt32(value) == 0)
|
|
formartValue = "未审核";
|
|
else if (Convert.ToInt32(value) == 2)
|
|
formartValue = "已通过";
|
|
else
|
|
formartValue = "驳回";
|
|
break;
|
|
|
|
case "ORDERTYPE":
|
|
if (Convert.ToInt32(value) == 1)
|
|
formartValue = "普通订单";
|
|
else if (Convert.ToInt32(value) == 2)
|
|
formartValue = "续费订单";
|
|
else
|
|
formartValue = "升级订单";
|
|
break;
|
|
|
|
case "MarkStatus":
|
|
if (value == null)
|
|
formartValue = "";
|
|
else if (value.ToString() == "true")
|
|
formartValue = "已留痕";
|
|
else
|
|
formartValue = "未留痕";
|
|
break;
|
|
|
|
default: formartValue = string.Format("{0}", value); break;
|
|
}
|
|
return formartValue;
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult SetTime(int orderId, string startTime, string endTime)
|
|
{
|
|
var ret = new retMsg { result = true, retcode = 200 };
|
|
try
|
|
{
|
|
var model = _order.GetModel(orderId);
|
|
if (!string.IsNullOrWhiteSpace(startTime) && !string.IsNullOrWhiteSpace(endTime))
|
|
{
|
|
var stime = Convert.ToInt32(startTime.Replace(":", ""));
|
|
var etime = Convert.ToInt32(endTime.Replace(":", ""));
|
|
if (stime > etime)
|
|
{
|
|
//return JsonHandler.ManageMessage("开始时间不能大于结束时间", false);
|
|
ret = new retMsg { result = false, retcode = 200, retmsg = "开始时间不能大于结束时间" };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
var sSpan = Convert.ToInt32(startTime.Split(':')[0]) * 60 + Convert.ToInt32(startTime.Split(':')[1]);
|
|
var eSpan = Convert.ToInt32(endTime.Split(':')[0]) * 60 + Convert.ToInt32(endTime.Split(':')[1]);
|
|
if (eSpan - sSpan < 30)
|
|
{
|
|
ret = new retMsg { result = false, retcode = 200, retmsg = "结束时间必须大于开始时间30分钟" };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
model.ai_hgrecord_stime = startTime;
|
|
model.ai_hgrecord_etime = endTime;
|
|
_order.Update(model);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ret = new retMsg { result = false, retcode = 200 };
|
|
}
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult ScreenRecordList()
|
|
{
|
|
ViewBag.ResId = Request.QueryString["resid"];
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult ScreenRecordList(string resid)
|
|
{
|
|
var webApi = cache_BL.GetValue_Parameter("Zxd_Core_WebApi");
|
|
if (string.IsNullOrWhiteSpace(webApi))
|
|
{
|
|
return Json(new { }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
//webApi = "http://localhost:7009";
|
|
|
|
var url = $"{webApi}/Api/ScreenRecord/Page";
|
|
var para = $"PageIndex=1&PageSize=1000&ResId={resid}";
|
|
|
|
var result = Utility.GetData(url, para, Encoding.UTF8);
|
|
LogHelper.Info(result);
|
|
var page = JsonConvert.DeserializeObject<ApiResult<PageResult<ScreenRecordDto>>>(result);
|
|
var list = new List<ScreenRecordDto>();
|
|
if (page.Code == 0)
|
|
{
|
|
list = page.Data.Data.ToList();
|
|
}
|
|
var data = new LayuiData<ScreenRecordDto>()
|
|
{
|
|
msg = "数据加载成功!",
|
|
count = page.Data.Total,
|
|
code = 0,
|
|
data = list
|
|
};
|
|
return Json(data, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public ActionResult ScreenRecordDownload(string fileUrl)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(fileUrl))
|
|
return Content("文件路径不能为空");
|
|
|
|
MemoryStream outstream = new MemoryStream();//转成MS流
|
|
Stream ftpStream = null;
|
|
WebResponse ftpResponse = null;
|
|
try
|
|
{
|
|
var ftpConfigStr = cache_BL.GetValue_Parameter("FTPConfig");
|
|
if (string.IsNullOrWhiteSpace(ftpConfigStr))
|
|
return Content("配置地址为空");
|
|
|
|
var ftpConfig = Utility.JSONToObject<FTPConfig>(ftpConfigStr);
|
|
|
|
if (fileUrl.Contains("/data/console-front/"))
|
|
fileUrl = fileUrl.Replace("/data/console-front/", "");
|
|
|
|
var fileName = fileUrl.Substring(fileUrl.LastIndexOf("/") + 1);
|
|
|
|
var url = $"ftp://{ftpConfig.Ip}/{fileUrl}";
|
|
FtpWebRequest ftpWeb = (FtpWebRequest)WebRequest.Create(url);//创建ftp连接
|
|
ftpWeb.Method = WebRequestMethods.Ftp.DownloadFile;
|
|
ftpWeb.UseBinary = true;
|
|
ftpWeb.UsePassive = false;
|
|
ftpWeb.Credentials = new NetworkCredential(ftpConfig.UserName, ftpConfig.Password);
|
|
ftpResponse = ftpWeb.GetResponse();
|
|
ftpStream = ftpResponse.GetResponseStream();
|
|
|
|
int bufferLen = 4096;//缓冲区
|
|
byte[] buffer = new byte[bufferLen];
|
|
int count = 0;
|
|
while ((count = ftpStream.Read(buffer, 0, bufferLen)) > 0)
|
|
{
|
|
outstream.Write(buffer, 0, count);
|
|
}
|
|
|
|
return File(outstream.ToArray(), "application/zip", fileName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Response.Write("<script>alert('录屏文件尚未同步,请稍后再试')</script>");
|
|
return Content("录屏文件尚未同步,请稍后再试。错误:" + ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
outstream.Close();
|
|
outstream.Dispose();
|
|
if (ftpStream != null)
|
|
ftpStream.Close();
|
|
|
|
if (ftpResponse != null)
|
|
ftpResponse.Close();
|
|
}
|
|
}
|
|
|
|
#region 质检列表
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Other6, false)]
|
|
public JsonResult CheckOrderRoot()
|
|
{
|
|
try
|
|
{
|
|
var ret = new retMsg { result = true, retcode = 200, retmsg = "校验成功" };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Other6, false)]
|
|
public ActionResult CheckOrder(string umid, int? orderid)
|
|
{
|
|
try
|
|
{
|
|
QueryCheckDto dto = new QueryCheckDto()
|
|
{
|
|
resid = umid,
|
|
orderid = orderid
|
|
};
|
|
var list = _order.GetNewCheckModel(dto);
|
|
var allOrder = new List<Dictionary<string, string>>();
|
|
foreach (var item in list.CheckOrders)
|
|
{
|
|
var order = new Dictionary<string, string>
|
|
{
|
|
{ "name", item.name },
|
|
{ "value", item.value.ToString() }
|
|
};
|
|
allOrder.Add(order);
|
|
}
|
|
ViewBag.EidtJson = JsonHelper.ObjDivertToJson(allOrder);
|
|
ViewBag.HgCheckSetting = list.HgCheckSetting;
|
|
ViewBag.OrderId = orderid;
|
|
ViewBag.umid = umid;
|
|
ViewBag.CheckTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
ViewBag.CheckUser = UserName;
|
|
ViewBag.Orderinfo = JsonHelper.ObjDivertToJson(list.OrderInfo);
|
|
ViewBag.Eid = Eid;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(ex.Message, JsonRequestBehavior.AllowGet);
|
|
}
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Other6, false)]
|
|
public JsonResult CheckOrder(Laypage pager, string columns, QueryCheckDto dto)
|
|
{
|
|
try
|
|
{
|
|
var list = _order.GetNewCheckList(ref pager, dto);
|
|
var data = new LayuiData<CheckNewOrderListModel>()
|
|
{
|
|
msg = "数据加载成功!",
|
|
count = pager.count,
|
|
code = 0,
|
|
data = list
|
|
};
|
|
return Json(data, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_合规订单列表, ToolBarConfig.CONST_Other6, false)]
|
|
public ActionResult CheckSave(string data)
|
|
{
|
|
try
|
|
{
|
|
var res = _order.CheckSave(data, Eid, UserName);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult initEditModel(QueryCheckDto dto)
|
|
{
|
|
try
|
|
{
|
|
var list = _order.GetinitEditModel(dto);
|
|
return Json(list, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[AuthorizeRedirect(RightsConfig.CONST_订单质检明细, ToolBarConfig.CONST_NotButton, true)]
|
|
[HttpGet]
|
|
public ActionResult CheckOrderList()
|
|
{
|
|
ViewBag.rightCode = RightsConfig.CONST_订单质检明细;
|
|
var checkSetting = cache_BL.GetValue_Parameter("HgCheckSetting");
|
|
ViewBag.checkSetting = checkSetting;
|
|
ViewBag.companyList = cache_BL.GetCompanyVirtual();
|
|
var companyList = cache_BL.GetCompanyVirtual();
|
|
ViewBag.companyList = cache_BL.GetCompanyVirtual();
|
|
var allChannel = new List<Dictionary<string, string>>();
|
|
foreach (var company in companyList)
|
|
{
|
|
var channel = new Dictionary<string, string>
|
|
{
|
|
{ "name", company.CompanyName },
|
|
{ "value", company.Channel.Replace(",", ";") }
|
|
};
|
|
allChannel.Add(channel);
|
|
}
|
|
ViewBag.AllChannel = JsonHelper.ToJson(allChannel);
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_订单质检明细, ToolBarConfig.CONST_NotButton, false)]
|
|
public JsonResult CheckOrderList(Laypage pager, string columns, CheckOrderQueryDto dto)
|
|
{
|
|
try
|
|
{
|
|
var list = _order.GetCheckList(ref pager, dto);
|
|
var data = new LayuiData<CheckOrderList>()
|
|
{
|
|
msg = "数据加载成功!",
|
|
count = pager.count,
|
|
code = 0,
|
|
data = list
|
|
};
|
|
return Json(data, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(RightsConfig.CONST_订单质检明细, ToolBarConfig.CONST_Other8, false)]
|
|
public FileResult ExportCheckData(string param)
|
|
{
|
|
var dto = JsonConvert.DeserializeObject<CheckOrderQueryDto>(param);
|
|
Laypage pager = new Laypage
|
|
{
|
|
page = 1,
|
|
limit = 100000,
|
|
};
|
|
var list = _order.GetCheckList(ref pager, dto);
|
|
LogHelper.Info($"导出查询到{list.Count}数据");
|
|
|
|
string checkedFilds = Server.UrlDecode(Request.Cookies["checkedFilds"].Value);
|
|
string checkedTitle = Server.UrlDecode(Request.Cookies["checkedTitles"].Value);
|
|
Request.Cookies.Remove("checkedFilds");//用完后删除cookies
|
|
Request.Cookies.Remove("checkedTitles");//用完后删除cookies
|
|
|
|
String file = string.Format("CheckOrderList{0}.xls", DateTime.Now.ToLocalTime().ToString("yyyyMMddHHmmssfffff"));
|
|
MergeExcelModel mergeExcelModel = new MergeExcelModel()
|
|
{
|
|
MergeId = "ID",
|
|
MergeRow = new List<string>
|
|
{
|
|
"Id",
|
|
"ResId",
|
|
"CNAME",
|
|
"CHANNELNAME",
|
|
"CTime",
|
|
"AuditName",
|
|
"AuditTime",
|
|
"innerUserName",
|
|
"checkStatusName",
|
|
"OrderIds",
|
|
"CheckTime",
|
|
"Ename"
|
|
}
|
|
};
|
|
mergeExcelModel.MergeRow = mergeExcelModel.MergeRow.Select(n => n.ToLower()).ToList();
|
|
return File(ExcelHelper.ExportListModelToExcelMerge<CheckOrderList>(list, "CheckOrderList", 30000, checkedFilds, checkedTitle, DataFormart, mergeExcelModel), "application/ms-excel", file);
|
|
}
|
|
|
|
#endregion 质检列表
|
|
|
|
#region 违规通知单
|
|
|
|
/// <summary>
|
|
/// 违规通知单管理
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_NotButton, true)]
|
|
public ActionResult CheckNoticeManage()
|
|
{
|
|
ViewBag.eid = Eid;
|
|
ViewBag.rightCode = RightsConfig.CONST_违规通知单;
|
|
ViewBag.companyList = cache_BL.GetDeptments();
|
|
return View();
|
|
}
|
|
|
|
public JsonResult CheckNoticeManageList(Laypage pager, HgCheckQualitySearchDto dto)
|
|
{
|
|
dto.PageSize = pager.limit;
|
|
dto.PageIndex = pager.page;
|
|
var webapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
var url = $"{webapi}/order/GetCheckQualityNotice";
|
|
|
|
var result = Utility.PostAjaxData(url, dto.ToJson(), Encoding.UTF8);
|
|
//var data = JsonConvert.DeserializeObject<PageResult<List<Hg_CheckQuality_Notice>>>(result);
|
|
var data = JsonConvert.DeserializeObject<ApiResult<PageResult<Hg_CheckQuality_Notice>>>(result);
|
|
var model = new LayuiData<Hg_CheckQuality_Notice>()
|
|
{
|
|
msg = "数据加载成功!",
|
|
count = data.Data.Total,
|
|
code = 0,
|
|
data = data.Data.Data
|
|
};
|
|
return Json(model, JsonRequestBehavior.AllowGet);
|
|
}
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Add, true)]
|
|
[HttpGet]
|
|
public ActionResult AddCheckNotice()
|
|
{
|
|
//根据时间生成通知单号
|
|
//var noticeId = $@"ZJ{DateTime.Now.Year}{DateTime.Now.Month}{DateTime.Now.Day}";
|
|
return View();
|
|
}
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Add, false)]
|
|
[HttpPost]
|
|
[ValidateInput(false)]
|
|
public JsonResult AddCheckNotice(HgCheckQualityNoticeSubmitDto dto)
|
|
{
|
|
try
|
|
{
|
|
|
|
var postDto = new HgCheckQualityNoticeDto();
|
|
postDto.NoticeCreator = Eid;
|
|
postDto.NoticeCreatorName = UserName;
|
|
postDto.Content = dto.Content;
|
|
postDto.ToEid = dto.SaleEid;
|
|
postDto.PersonList = new List<PersonInfo>() {
|
|
new PersonInfo(){ Eid= dto.SaleEid , NoticeLevel="sale"},
|
|
new PersonInfo(){ Eid= dto.ManageEid , NoticeLevel="manage"}
|
|
};
|
|
|
|
|
|
var res = _order.AddCheckNotice(postDto);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Edit, true)]
|
|
[HttpGet]
|
|
public ActionResult EditCheckNotice(int id)
|
|
{
|
|
var webapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
var url = $"{webapi}/order/GetCheckQualityInfo";
|
|
var result = Utility.GetData(url, "id=" + id, Encoding.UTF8);
|
|
var data = JsonConvert.DeserializeObject<ApiResult<Hg_CheckQuality_Notice>>(result);
|
|
return View(data.Data);
|
|
}
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Edit, false)]
|
|
[HttpPost]
|
|
[ValidateInput(false)]
|
|
public JsonResult EditCheckNotice(EditHgCheckQualityNoticeDto dto)
|
|
{
|
|
try
|
|
{
|
|
var res = _order.EditCheckNotice(dto);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通知单查看
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Other1, true)]
|
|
[HttpGet]
|
|
public ActionResult ShowTZD(int id)
|
|
{
|
|
var webapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
var url = $"{webapi}/order/GetCheckQualityInfo";
|
|
var result = Utility.GetData(url, "id=" + id, Encoding.UTF8);
|
|
//var data = JsonConvert.DeserializeObject<PageResult<List<Hg_CheckQuality_Notice>>>(result);
|
|
var data = JsonConvert.DeserializeObject<ApiResult<Hg_CheckQuality_Notice>>(result);
|
|
return View(data.Data);
|
|
}
|
|
/// <summary>
|
|
/// 处罚单查看
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Other2, true)]
|
|
[HttpGet]
|
|
public ActionResult ShowCFD(int id)
|
|
{
|
|
var webapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
var url = $"{webapi}/order/GetCheckQualityInfo";
|
|
var result = Utility.GetData(url, "id=" + id, Encoding.UTF8);
|
|
//var data = JsonConvert.DeserializeObject<PageResult<List<Hg_CheckQuality_Notice>>>(result);
|
|
var data = JsonConvert.DeserializeObject<ApiResult<Hg_CheckQuality_Notice>>(result);
|
|
return View(data.Data);
|
|
}
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Other1, true)]
|
|
public ActionResult LookNoticeShow(int id)
|
|
{
|
|
var webapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
var url = $"{webapi}/order/GetCheckQualityInfo";
|
|
var result = Utility.GetData(url, "id=" + id, Encoding.UTF8);
|
|
var data = JsonConvert.DeserializeObject<ApiResult<Hg_CheckQuality_Notice>>(result);
|
|
return View(data.Data);
|
|
}
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单合规负责人确认, ToolBarConfig.CONST_NotButton, false)]
|
|
[HttpPost]
|
|
public JsonResult AddNoticeOption(int id, string opinion)
|
|
{
|
|
|
|
try
|
|
{
|
|
var res = _order.AddNoticeOption(id, opinion, Eid);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
[HttpPost]
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规通知单, ToolBarConfig.CONST_Delete, false)]
|
|
public JsonResult DelCheckNotice(int id)
|
|
{
|
|
try
|
|
{
|
|
var res = _order.DelCheckNotice(id);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[AuthorizeRedirect(RightsConfig.CONST_违规处罚单添加, ToolBarConfig.CONST_NotButton, false)]
|
|
[HttpPost]
|
|
public JsonResult AddQualityPunish(int id, string content)
|
|
{
|
|
|
|
try
|
|
{
|
|
var res = _order.AddQualityPunish(id, content, Eid);
|
|
var ret = new retMsg { result = res, retcode = 200 };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
var ret = new retMsg { result = false, retcode = 200, retmsg = ex.Message };
|
|
return Json(ret, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
[HttpGet]
|
|
public ActionResult ContractFreeOrderView(decimal orderId, int type = 1)
|
|
{
|
|
var hgapi = cache_BL.GetValue_Parameter(Parameter.Hg_Core_WebApi);
|
|
|
|
|
|
//20220419 许总提出记录请求者信息
|
|
var viewSource = "合规数字化系统";
|
|
var pageSource = "Audit:赠送订单列表.合同状态";
|
|
|
|
var coreUrl = cache_BL.GetValue_Parameter(Parameter.Zxd_CoreApiUrl);
|
|
var hgCoreUrl = $"{coreUrl.Trim('/')}/Api/Contract/GetContractView";
|
|
var parameter = $"orderid={orderId}&Eid={Eid}&UserName={UserName}&PageSource={pageSource}&ViewSource={viewSource}";
|
|
var htres = Utility.GetData(hgCoreUrl, parameter, Encoding.UTF8);
|
|
var urlInfo = JsonHelper.JsonDivertToObj<ApiResult<ContractResultView>>(htres);
|
|
if (urlInfo.Code == 0)
|
|
{
|
|
ViewBag.fxjssUrl = urlInfo?.Data?.fxjssUrl;
|
|
ViewBag.tgfwxyUrl = urlInfo?.Data?.tgfwxyUrl;
|
|
ViewBag.businesstype = urlInfo?.Data?.businesstype;
|
|
ViewBag.fxpcUrl = urlInfo?.Data?.fxpcUrl;
|
|
ViewBag.cphfwUrl = urlInfo?.Data?.cphfwUrl;
|
|
ViewBag.sdxpgUrl = urlInfo?.Data?.sdxpgUrl;
|
|
}
|
|
ViewBag.OrderId = orderId;
|
|
ViewBag.CONTRACTCODE = urlInfo?.Data?.CONTRACTCODE;
|
|
ViewBag.ViewMsg = string.Empty;
|
|
//ViewBag.fkUrl = fkUrl;//风控Url
|
|
ViewBag.htUrl = urlInfo?.Data?.htUrl;//合同Url
|
|
ViewBag.CONTRACTSTATUS = urlInfo?.Data?.CONTRACTSTATUS;
|
|
ViewBag.hgapi = hgapi;
|
|
ViewBag.eid = Eid;
|
|
ViewBag.username = UserName;
|
|
return View();
|
|
}
|
|
|
|
|
|
public JsonResult ImportCheckOrder()
|
|
{
|
|
// 获取站点根目录的物理路径
|
|
var rootPath = Server.MapPath("~/");
|
|
|
|
// 构造要读取的文件的物理路径
|
|
var filePath = Path.Combine(rootPath, "导入违规等级.xlsx");
|
|
if (!System.IO.File.Exists(filePath))
|
|
{
|
|
return Json(new { result = false, message = "文件不存在" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
|
|
var stream = fileStream;
|
|
var buffer = new byte[1024];
|
|
var bytesRead = stream.Read(buffer, 0, buffer.Length);
|
|
var dt = ExcelToDataTable(fileStream, filePath);
|
|
_order.ImportCheckOrder(dt);
|
|
// 关闭FileStream
|
|
fileStream.Close();
|
|
return Json(new { result = true, message = "ok" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
public JsonResult ImportCheckOrderOK()
|
|
{
|
|
// 获取站点根目录的物理路径
|
|
var rootPath = Server.MapPath("~/");
|
|
|
|
// 构造要读取的文件的物理路径
|
|
var filePath = Path.Combine(rootPath, "合规订单.xlsx");
|
|
if (!System.IO.File.Exists(filePath))
|
|
{
|
|
return Json(new { result = false, message = "文件不存在" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
|
|
var stream = fileStream;
|
|
var buffer = new byte[1024];
|
|
var bytesRead = stream.Read(buffer, 0, buffer.Length);
|
|
var dt = ExcelToDataTable(fileStream, filePath);
|
|
_order.ImportCheckOrderOK(dt);
|
|
// 关闭FileStream
|
|
fileStream.Close();
|
|
return Json(new { result = true, message = "ok" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
}
|
|
} |