using AutoMapper; using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using DllEapCommon.NPOI; using DllEapDal.OFILM; using DllEapEntity; using DllEapEntity.Dtos; using DllEapEntity.OFILM; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DllEapBll.OFILM { /// /// CMK /// [Route("eap/api/[controller]/[action]")] [ApiController] [Authorize] public class CmkController : ControllerBase { private readonly IHostingEnvironment _hostingEnvironment; private IMapper _mapper; public CmkController(IHostingEnvironment hostingEnvironment,IMapper mapper) { _hostingEnvironment = hostingEnvironment; _mapper = mapper; } /// /// cmk 报表查询 /// /// /// /// /// /// /// [HttpGet] public LayuiModel Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "Classes", string sortOrder = "ascend") { if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new CmkDal(db); string errorinfo = string.Empty; var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo); var total = dal.GetCount(filter); string upLoadDir = AppConfigurtaionServices.Configuration["upload"]; return new LayuiModel { code = 1, count = total, data = roles, msg = upLoadDir }; } } [HttpPost] public async Task Export(IDictionary filterInfo) { string filter = string.Empty; int pageIndex = 1, pageSize = 100000; string sortField = "Classes", sortOrder = "ascend"; if (filterInfo.ContainsKey("filter")) { filter = filterInfo["filter"]; } if (filterInfo.ContainsKey("sortField")) { sortField = filterInfo["sortField"]; } if (filterInfo.ContainsKey("sortOrder")) { sortOrder = filterInfo["sortOrder"]; } if (filterInfo.ContainsKey("pageSize") && !string.IsNullOrEmpty(filterInfo["pageSize"])) { pageSize = Convert.ToInt32(filterInfo["pageSize"]) > 0 ? Convert.ToInt32(filterInfo["pageSize"]) : pageSize; } if (filterInfo.ContainsKey("pageIndex") && !string.IsNullOrEmpty(filterInfo["pageIndex"])) { pageIndex = Convert.ToInt32(filterInfo["pageIndex"]) > 0 ? Convert.ToInt32(filterInfo["pageIndex"]) : pageIndex; } List str = new List() {"课别","楼层","客户","设备ID","位置","CMK","Y","T","P值","Y","T","附件","维护人","维护日期","下次取值日期" }; List index = new List() { 5, 7, 8, 10 }; var roles = Get(filter, pageIndex, pageSize, sortField, sortOrder).data; var list = _mapper.Map>(roles).ToList(); var book = DataExportHelper.EntityToExcel(list,str,index); MemoryStream ms = new MemoryStream(); ms.Position = 0; book.Write(ms); ms.Dispose(); ms.Close(); await Task.CompletedTask; return File(ms.ToArray(), "application/octet-stream"); } [HttpGet] public EapResponse GetSingle(int id) { using (IDatabase db = DbFactory.Base("eapslave")) { var response = new EapResponse() { Code = 1, Msg = string.Empty }; string upLoadDir = AppConfigurtaionServices.Configuration["upload"]; var dal = new CmkDal(db); var model = dal.Get(id); if(model!=null) { // string errorinof = ""; // Dictionary dic = new Dictionary(); // dic.Add("filename", model.XCmkImg); //model.XCmkImgBase = HttpRequestHelper.Get(upLoadDir + $@"/eap/api/Upload/Getfile", dic,ref errorinof,null); // dic = new Dictionary(); // dic.Add("filename", model.YCmkImg); // model.YCmkImgBase = HttpRequestHelper.Get(upLoadDir + $@"/eap/api/Upload/Getfile", dic, ref errorinof, null); } response.Data = model; response.Msg = upLoadDir; return response; } } [HttpPost] public EapResponse Add([FromBody] Ofilmcmk programMst) { string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { db.BeginTrans(); var dal = new CmkDal(db); string errorinfo = string.Empty; var response = new EapResponse() { Code = 1, Msg = string.Empty }; int id = -1; if (programMst.ID == 0) { id = dal.Add(programMst, usercode, ref errorinfo); } else { id = dal.Update(programMst, usercode, ref errorinfo); } if (id < 0) { db.Rollback(); response.Code = -1; response.Msg = errorinfo; } else { db.Commit(); if (programMst.ID == 0) { LogHelper.LogFatal("新增WorkProcedure-->" + Json.ToJson(programMst), "用户操作", usercode); } else LogHelper.LogFatal("修改WorkProcedure-->" + Json.ToJson(programMst), "用户操作", usercode); } response.Id = id; return response; } } [HttpPost] public EapResponse Delete([FromBody] int id) { IDatabase db = null; string errormsg = string.Empty; try { using (db = DbFactory.Base("eap")) { var dal = new CmkDal(db); var model = dal.getWorkingProcedure(id); var modelsec = dal.Get(id); //db.BeginTrans(); var res = dal.Delete(id, ref errormsg); if (res < 0) { // db.Rollback(); return new EapResponse() { Code = -1, Msg = errormsg }; } //db.Commit(); LogHelper.LogFatal("删除WorkProcedure-->:" + Json.ToJson(modelsec) + ";apappservermac" + Json.ToJson(model), "用户操作", Request.Headers["usercode"]); return new EapResponse() { Code = 1, Msg = "" }; } } catch (Exception e) { errormsg = e.Message; return new EapResponse { Code = -1, Msg = errormsg }; } finally { if (db != null) db.Close(); } } [HttpPost] public EapResponse DeleteAll([FromBody] dynamic filter) { IDatabase db = null; string errormsg = string.Empty; string ff = filter["filter"]; try { using (db = DbFactory.Base("eap")) { var dal = new CmkDal(db); //var model = dal.getWorkingProcedure(id); //var modelsec = dal.Get(id); //db.BeginTrans(); var res = dal.DeleteAll(ff, ref errormsg); if (res < 0) { // db.Rollback(); return new EapResponse() { Code = -1, Msg = errormsg }; } //db.Commit(); //LogHelper.LogFatal("删除WorkProcedure-->:" + Json.ToJson(modelsec) + ";apappservermac" + Json.ToJson(model), "用户操作", Request.Headers["usercode"]); return new EapResponse() { Code = 1, Msg = "" }; } } catch (Exception e) { errormsg = e.Message; return new EapResponse { Code = -1, Msg = errormsg }; } finally { if (db != null) db.Close(); } } //[HttpPost] //public EapResponse Upload([FromBody] WorkingProcedureDto str) //{ // string usercode = Request.Headers["usercode"]; // List wps = new List(); // foreach (List it in str.Sheet1) // { // if (it.Count > 7 && it[0] != "园区") // { // WorkingProcedure workingProcedure = new WorkingProcedure(); // workingProcedure.Park = it[0]?.Trim(); // workingProcedure.Floor = it[1]?.Trim(); // workingProcedure.MachineType = it[2]?.Trim(); // workingProcedure.WorkshopSection = it[3]?.Trim(); // workingProcedure.AssignmentContent = it[4]?.Trim(); // workingProcedure.EquipmentName = it[5]?.Trim(); // workingProcedure.EquipmentModel = it[6]?.Trim(); // workingProcedure.EropTurnoverRate = it[7]?.Trim(); // workingProcedure.UPH = it[8]?.Trim().Replace(",", ""); // workingProcedure.RecCode = usercode; // workingProcedure.ModCode = usercode; // workingProcedure.RecTime = DateTime.Now; // workingProcedure.ModTime = DateTime.Now; // wps.Add(workingProcedure); // } // } // IDatabase db = null; // string errormsg = string.Empty; // Object er = null; // try // { // db = DbFactory.Base("eap"); // var dal = new CmkDal(db); // db.BeginTrans(); // int ck = dal.CheckSame(wps, ref er); // if (ck < 0) // { // db.Rollback(); // return new EapResponse() // { // Code = -2, // //Msg = er, // Data = er // }; // } // var res = dal.Adds(wps, usercode, ref errormsg); ; // if (res < 0) // { // db.Rollback(); // return new EapResponse() // { // Code = -1, // Msg = errormsg // }; // } // db.Commit(); // //LogHelper.LogFatal("删除WorkProcedure-->:" + Json.ToJson(modelsec) + ";apappservermac" + Json.ToJson(model), "用户操作", Request.Headers["usercode"]); // return new EapResponse() // { // Code = 1, // Msg = "" // }; // } // catch (Exception e) // { // errormsg = e.Message; // return new EapResponse // { // Code = -1, // Msg = errormsg // }; // } // finally // { // if (db != null) // db.Close(); // } //} [HttpGet] public IEnumerable GetEquipmentnumberExprort(string filter, string sortField = "count", string sortOrder = "ascend", int take = 10) { if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); var dtos = dal.GetWorkingProcedureExprort(filter, sortField, sortOrder, take); return dtos; } } /// /// 上传图片 /// /// [HttpPost] public EapResponse Upload() { string upLoadDir = AppConfigurtaionServices.Configuration["upload"]; CmkFile cmkFile = new CmkFile(); var request = Request; var file = request.Form.Files["file"]; var extension = this.GetFileAExtension(file.FileName); var fileNewName = ""; fileNewName = file.FileName; cmkFile.Extension = extension; cmkFile.FileName = fileNewName; Stream stream = new MemoryStream(); try { stream = file.OpenReadStream(); byte[] bs = new byte[file.Length]; stream.Read(bs, 0, bs.Length); cmkFile.Bt = bs; string json = JsonConvert.SerializeObject(cmkFile); var model = HttpRequestHelper.HttpPost(upLoadDir + $@"/eap/api/Upload/Uploadfile", json); model.Msg = file.FileName + "," + upLoadDir; return model; } catch (Exception e) { return new EapResponse { Code = -1, Data = e.Message }; } finally { stream.Close(); stream.Dispose(); } //********************************************************** #region //var request = Request; //var file = request.Form.Files["file"]; //var dateNow = DateTime.Now; //var extension = this.GetFileAExtension(file.FileName); //var fileNewName = ""; ////fileNewName = file.FileName; //if (file.FileName.Contains("xls") || file.FileName.Contains("xlsx")) //{ // fileNewName = file.FileName; //} //else //{ // fileNewName = Guid.NewGuid().ToString() + "." + extension; //} //Stream stream = new MemoryStream(); //try //{ // string path = $"/Upload/{dateNow.Year}/{dateNow.Month}/{dateNow.Day}/"; // string phyicPath = _hostingEnvironment.WebRootPath + path; // string savedPath = phyicPath + fileNewName; // this.CreateDirectory(phyicPath); // stream = file.OpenReadStream(); // byte[] bs = new byte[file.Length]; // stream.Read(bs, 0, bs.Length); // using (FileStream fs = new FileStream(savedPath, FileMode.Create)) // { // fs.Write(bs, 0, bs.Length); // return new EapResponse // { // Code = 1, // Data = path + fileNewName, // Msg = file.FileName + "," + upLoadDir // }; // } //} //catch (Exception e) //{ // return new EapResponse // { // Code = -1, // Data = e.Message // }; //} //finally //{ // stream.Close(); // stream.Dispose(); //} #endregion } [HttpPost] public EapResponse Uploadfile([FromBody] CmkFile json) { byte[] byteArray = json.Bt; string upLoadDir = AppConfigurtaionServices.Configuration["upload"]; var dateNow = DateTime.Now; var fileNewName = ""; if (json.Extension.Contains("xls") || json.Extension.Contains("xlsx")) { fileNewName = json.FileName + "." + json.Extension; } else { fileNewName = Guid.NewGuid().ToString() + "." + json.Extension; } Stream stream = new MemoryStream(); try { string path = $"/Upload/{dateNow.Year}/{dateNow.Month}/{dateNow.Day}/"; string phyicPath = _hostingEnvironment.WebRootPath + path; string savedPath = phyicPath + fileNewName; this.CreateDirectory(phyicPath); byte[] bs = byteArray; stream.Read(bs, 0, bs.Length); using (FileStream fs = new FileStream(savedPath, FileMode.Create)) { fs.Write(bs, 0, bs.Length); return new EapResponse { Code = 1, Data = path + fileNewName, Msg = json.FileName + "," + upLoadDir }; } } catch (Exception e) { return new EapResponse { Code = -1, Data = e.Message }; } finally { stream.Close(); stream.Dispose(); } } /// /// 上传excel /// /// /// public EapResponse UploadXml([FromBody] List> str) { string usercode = Request.Headers["usercode"]; List wps = new List(); foreach (List it in str) { if (it.Count > 7 && it[0] != "课别") { Ofilmcmk workingProcedure = new Ofilmcmk(); workingProcedure.Classes = it[0]?.Trim(); workingProcedure.floor = it[1]?.Trim(); workingProcedure.customer = it[2]?.Trim(); workingProcedure.macID = it[3]?.Trim(); workingProcedure.position = it[4]?.Trim(); workingProcedure.XCmk = it[5]?.Trim(); workingProcedure.YCmk = it[6]?.Trim(); workingProcedure.TCmk = it[7]?.Trim(); workingProcedure.XP = it[8]?.Trim(); workingProcedure.YP = it[9]?.Trim(); workingProcedure.TP = it[10]?.Trim(); workingProcedure.NextTime = DateTime.Parse(it[11]);// Convert.ToDateTime(it[11].ToString()); workingProcedure.ThisTime = Convert.ToDateTime(it[12].ToString()); workingProcedure.RecCode = usercode; workingProcedure.ModCode = usercode; workingProcedure.RecTime = DateTime.Now; workingProcedure.ModTime = DateTime.Now; wps.Add(workingProcedure); } } IDatabase db = null; string errormsg = string.Empty; Object er = null; try { using (db = DbFactory.Base("eap")) { var dal = new CmkDal(db); db.BeginTrans(); foreach (var item in wps) { var res = dal.Add(item, usercode, ref errormsg); if (res < 0) { db.Rollback(); return new EapResponse() { Code = -1, Msg = errormsg }; } } db.Commit(); LogHelper.LogFatal("批量新增CMK-->:" + Json.ToJson(wps), "用户操作", Request.Headers["usercode"]); return new EapResponse() { Code = 1, Msg = "" }; } } catch (Exception e) { errormsg = e.Message; return new EapResponse { Code = -1, Msg = errormsg }; } finally { if (db != null) db.Close(); } } private void CreateDirectory(string path) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } } private string GetFileAExtension(string fileName) { var arr = fileName.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); if (arr == null || arr.Length <= 0) { return null; } return arr[arr.Length - 1]; } public IEnumerable> GetMultipleClassSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultipleClassSelects(filter).OrderBy(c => c.Label); } } public IEnumerable> GetMultipleFloorSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultipleFloorSelects(filter).OrderBy(c => c.Label); } } public IEnumerable> GetMultipleCustomerSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultipleCustomerSelects(filter).OrderBy(c => c.Label); } } public IEnumerable> GetMultipleMacIDSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultipleMacIDSelects(filter).OrderBy(c => c.Label); } } public IEnumerable> GetMultiplePositionSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultiplePositionSelects(filter).OrderBy(c => c.Label); } } public IEnumerable> GetMultipleRecCodeSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new CmkDal(db); return dal.GetMultipleRecCodeSelects(filter).OrderBy(c => c.Label); } } } public class CmkFile { /// /// 文件 /// public byte[] Bt { get; set; } /// /// 扩展名 /// public string Extension { get; set; } /// /// 文件名 /// public string FileName { get; set; } } }