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.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]")]//WorkingProcedure [ApiController] public class WorkProcedureController : ControllerBase { private IMapper _mapper; public WorkProcedureController(IMapper mapper) { _mapper = mapper; } [HttpGet] public LayuiModel Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "park", 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 WorkProcedureDal(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 WorkingProcedure GetSingle(int id) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new WorkProcedureDal(db); return dal.Get(id); } } [HttpPost] public EapResponse Add([FromBody] WorkingProcedure programMst) { string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { db.BeginTrans(); var dal = new WorkProcedureDal(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 { db = DbFactory.Base("eap"); var dal = new WorkProcedureDal(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 { db = DbFactory.Base("eap"); var dal = new WorkProcedureDal(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 WorkProcedureDal(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(); } } [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 WorkProcedureDal(db); var dtos = dal.GetWorkingProcedureExprort(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"); } } } }