chenzx
2024-12-18 cb55bfc387d604618fe37b93b89b60c7e83d5846
GasolineBlend/Controllers/SubsidyDataController.cs
@@ -1,5 +1,6 @@
using CommonHelper;
using GasolineBlend.BLL;
using GasolineBlend.Entity;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -11,6 +12,13 @@
using System.Web;
using System.Web.Mvc;
using System.Web.Razor.Tokenizer.Symbols;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using DocumentFormat.OpenXml;
using System.Net.Http;
using OfficeOpenXml;
using WebGrease.Activities;
using ClosedXML.Excel;
namespace GasolineBlend.Controllers
@@ -30,6 +38,10 @@
            try
            {
                var list = _acc.GetSubsidyDataList(PageNumber, PageSize, Keyword, CompanyName);
                if (list == null)
                {
                    return SuccessNoShow(data:"暂无此公司");
                }
                var response = new
                {
                    Data = list.Data,
@@ -81,16 +93,23 @@
        /// <param name="CompanyName"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult GetMoonshot(string CompanyName)
        public ActionResult GetPolicyApplied(string CompanyName)
        {
            try
            {
                var list = _acc.GetMoonshot(CompanyName);
                return Json(list, JsonRequestBehavior.AllowGet);
                var list = _acc.GetPolicyApplied(CompanyName);
                if (list == null) {
                    return SuccessNoShow(data: null);
                }
                var response = new
                {
                    Data = list.Data,
                };
                return SuccessNoShow(data: response);
            }
            catch (Exception e)
            {
                LogHelper.Write(Level.Error, "访问Moonshot GetMoonshot", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                LogHelper.Write(Level.Error, "访问Moonshot GetPolicyApplied", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                return Error();
            }
        }
@@ -100,20 +119,95 @@
        /// <param name="CompanyName"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult GetMoonshotBlurry(string CompanyName)
        public ActionResult GetPolicyAnswer(string CompanyName)
        {
            try
            {
                var list = _acc.GetMoonshotBlurry(CompanyName);
                return Json(list, JsonRequestBehavior.AllowGet);
                var id = OperatorProvider.Instance.Current.UserId;
                if (id == 0)
                {
                    return Error(message: "账户未登录!请登录后查询", data: "-1");
                }
                string list = _acc.GetPolicyAnswer(id, CompanyName);
                if (list==null) {
                    return Error();
                }
                if (list == "-1") {
                    return Error(message: "今日政策洞察额度已经用完,如有需要请联系管理员!", data: "-1");
                }
                var response = new
                {
                    Data = list,
                };
                return SuccessNoShow(data: response);
            }
            catch (Exception e)
            {
                LogHelper.Write(Level.Error, "访问Moonshot GetMoonshotBlurry", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                LogHelper.Write(Level.Error, "访问Moonshot GetPolicyAnswer", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                return Error();
            }
        }
        [HttpPost]
        public ActionResult GetSaveExcel(string data)
        {
            try
            {
                var filePath = SaveDataToExcel(data);
                var fileBytes = System.IO.File.ReadAllBytes(filePath);
                return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "评分标准.xlsx");
            }
            catch (Exception e)
            {
                LogHelper.Write(Level.Error, "GetSaveExcel请求过程中发生错误", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                return Error();
            }
        }
        public static string SaveDataToExcel(string data)
        {
            // 解析传输的数据
            var dataDict = ParseData(data);
            // 创建或打开Excel文件
            //var filePath = "E:\\.NETproject\\RRkl\\RR_PolicyControl_MVC\\RR_PolicyControl_MVC\\GasolineBlend\\评分标准.xlsx";
            var filePath = "C:\\inetpub\\RRPolicy\\HaoshuRobot\\评分标准.xlsx";
            var workbook = new XLWorkbook(filePath);
            var worksheet = workbook.Worksheet(1) ?? workbook.AddWorksheet("Sheet1");
            // 将数据填入F列
            int rowIndex = 1;
            foreach (var entry in dataDict)
            {
                worksheet.Cell(rowIndex, 6).Value = entry.Key;
                worksheet.Cell(rowIndex, 7).Value = entry.Value;
                rowIndex++;
            }
            // 保存文件
            workbook.Save();
            return filePath;
        }
        private static Dictionary<string, int> ParseData(string data)
        {
            if (!string.IsNullOrEmpty(data) && data.EndsWith(":"))
            {
                data = data.Substring(0, data.Length - 1);
            }
            var dataDict = new Dictionary<string, int>();
            var entries = data.Split(',');
            foreach (var entry in entries)
            {
                var parts = entry.Split(':');
                if (parts.Length == 2 && int.TryParse(parts[1], out int value))
                {
                    dataDict[parts[0].Trim()] = value;
                }
            }
            return dataDict;
        }
    }
}