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.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DllEapBll.OFILM { [Route("eap/api/[controller]/[action]")] [Authorize] public class EquipmentnumberController: ControllerBase { private IMapper _mapper; public EquipmentnumberController(IMapper mapper) { _mapper = mapper; } [HttpGet] public LayuiModel Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "equipmentmodel", 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 EquipmentnumberDal(db); string errorinfo = string.Empty; var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo); var total = dal.GetCount(filter); return new LayuiModel { code = 1, count = total, data = roles, msg = "" }; } } [HttpGet] public Equipmentnumber GetSingle(int id) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new EquipmentnumberDal(db); return dal.Get(id); } } [HttpPost] public EapResponse Add([FromBody] Equipmentnumber programMst) { string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { db.BeginTrans(); var dal = new EquipmentnumberDal(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("新增Equipmentnumber-->" + Json.ToJson(programMst), "用户操作", usercode); } else LogHelper.LogFatal("修改Equipmentnumber-->" + Json.ToJson(programMst), "用户操作", usercode); } response.Id = id; return response; } } [HttpPost] public EapResponse Delete([FromBody] int id) { IDatabase db = null; string errormsg = string.Empty; try { db = DbFactory.Base("eap"); var dal = new EquipmentnumberDal(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("删除Equipmentnumber-->:" + 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 > 6 && it[0] != "设备型号" && !string.IsNullOrEmpty(it[0])) { Equipmentnumber equipmentnumber = new Equipmentnumber(); equipmentnumber.Equipmentmodel = it[0]?.Trim(); equipmentnumber.WorkshopSection = it[1]?.Trim(); equipmentnumber.ThreeSecFir = it[2]?.Trim(); equipmentnumber.FutureCity = it[3]?.Trim(); equipmentnumber.FutureCityThird = it[4]?.Trim(); equipmentnumber.SecfirstFir = it[5]?.Trim(); equipmentnumber.SecFirstSec = it[6]?.Trim(); equipmentnumber.SecFirstThird = it[7]?.Trim(); equipmentnumber.SecSecFirst = it[8]?.Trim(); equipmentnumber.SecSecSec = it[9]?.Trim(); if (it[10].Contains("0.25")) equipmentnumber.Accounting = "0.25"; else if (it[10].Contains("0.5")) equipmentnumber.Accounting = "0.5"; else if (it[10].Contains("核算by机型向上取1")) equipmentnumber.Accounting = "1"; else equipmentnumber.Accounting = "0"; equipmentnumber.RecCode = usercode; equipmentnumber.ModCode = usercode; equipmentnumber.RecTime = DateTime.Now; equipmentnumber.ModTime = DateTime.Now; wps.Add(equipmentnumber); } } IDatabase db = null; string errormsg = string.Empty; Object er = null; try { db = DbFactory.Base("eap"); var dal = new EquipmentnumberDal(db); db.BeginTrans(); 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(); } } [HttpPost] public async Task ExprortEquipmentnumber(IDictionary filterInfo) { string filter=string.Empty, sortField = "count", sortOrder = "ascend"; int take = 10000; if (filterInfo.ContainsKey("filter")) { filter = filterInfo["filter"]; } if (filterInfo.ContainsKey("sortField")) { sortField = filterInfo["sortField"]; } if (filterInfo.ContainsKey("sortOrder")) { sortOrder = filterInfo["sortOrder"]; } if (filterInfo.ContainsKey("take")) { take = Convert.ToInt32(filterInfo["take"]); } if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new EquipmentnumberDal(db); var dtos = dal.GetEquipmentnumberExprort(filter, sortField, sortOrder, take); var list = _mapper.Map>(dtos).ToList(); var book = DataExportHelper.EntityToExcel(list); MemoryStream ms = new MemoryStream(); ms.Position = 0; book.Write(ms); ms.Dispose(); ms.Close(); await Task.CompletedTask; return File(ms.ToArray(), "application/octet-stream"); } } /// /// 获取机型多选 /// /// /// public IEnumerable> GetMultipalMacSelects(string filter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new EquipmentnumberDal(db); return dal.GetMultipleSelects(filter).OrderBy(c => c.Label); } } } }