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; }
}
}