using AutoMapper; using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using DllEapCommon.NPOI; using DllEapDal; using DllEapEntity; using DllEapEntity.Dtos; using DllUfpDal; 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.Controllers { /// /// 机型程序 /// [Authorize] [ApiController] [Route("eap/api/[controller]/[action]")] public class MacModelProgramController : ControllerBase { private IMapper _mapper; public MacModelProgramController(IMapper mapper) { _mapper = mapper; } /// /// 程序列表 /// /// /// /// /// /// /// /// [HttpGet] public LayuiModel Get(string filter, string sort, int pageIndex = 1, int pageSize = 10, string sortField = "a.version", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (!string.IsNullOrEmpty(sort)) { var arr = sort.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (arr != null && arr.Length > 0) { sortField = arr[0]; sortOrder = arr[1]; } } 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 MacModelProgramDal(db, userCode); var total = dal.GetVersionCount(filter); string errorinfo = string.Empty; var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo); return new LayuiModel { code = 1, count = total, data = roles, msg = "" }; } } /// /// 程序列表 /// /// /// /// /// /// /// /// [HttpGet] public LayuiModel GetProgramsNew(string filter, string sort, int pageIndex = 1, int pageSize = 10, string sortField = "MacModelCode,ProgramName", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (!string.IsNullOrEmpty(sort)) { var arr = sort.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (arr != null && arr.Length > 0) { sortField = arr[0]; sortOrder = arr[1]; } } 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 MacModelProgramDal(db, userCode); var total = dal.GetGroupedCount(filter); string errorinfo = string.Empty; var roles = dal.GetGrouped(start, pageSize, sortOrder, sortField, filter, errorinfo); return new LayuiModel { code = 1, count = total, data = roles, msg = "" }; } } /// /// 机型程序导出 /// /// /// [HttpPost] public async Task Export(IDictionary filterInfo) { string filter = string.Empty, sort = string.Empty, sortField = "MacModelCode,ProgramName", sortOrder = "ascend"; int pageIndex = 1, pageSize = 100000; if (filterInfo.ContainsKey("filter")) { filter = filterInfo["filter"]; } if (filterInfo.ContainsKey("sortField")) { sortField = filterInfo["sortField"]; } if (filterInfo.ContainsKey("sortOrder")) { sortOrder = filterInfo["sortOrder"]; } if (filterInfo.ContainsKey("sort")) { sortOrder = filterInfo["sort"]; } 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; } var roles = GetProgramsNew(filter, sort, pageIndex, pageSize, sortField, sortOrder).data; var list = _mapper.Map>(roles).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"); } /// /// 设置默认程序 /// /// /// [HttpPost] public EapResponse SetDefault([FromBody] IDictionary valuePairs) { string errorinfo = string.Empty; var id = Convert.ToInt32(valuePairs["id"]); var isDefault = Convert.ToInt32(valuePairs["isDefault"]); var macModelId = Convert.ToInt32(valuePairs["macModelId"]); var programName = valuePairs["programName"]; using (IDatabase db = DbFactory.Base("eap")) { var dal = new MacModelProgramDal(db); var res = dal.UpdateField(id, isDefault, macModelId, programName, ref errorinfo); if (res > 0) { LogHelper.LogFatal("修改BusinessFileRelation-->原始值:isDefault-->" + isDefault + ";id-->" + id, "用户操作", "none"); } var response = new EapResponse { Code = res, Msg = errorinfo }; return response; } } /// /// 删除版本 /// /// /// [HttpPost] public EapResponse DeleteVersion([FromBody] IDictionary valuePairs) { if (valuePairs == null || valuePairs.Keys.Count == 0) return null; string errorinfo = string.Empty; var macModelCode = valuePairs["macModelCode"]; var id = Convert.ToInt32(valuePairs["id"]); string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { var dal = new MacModelProgramDal(db); db.BeginTrans(); var model = dal.getBusinessFileRelation(id); var modelsec = dal.getBusinessFile(model); var res = dal.DeleteSingVersion(id, macModelCode, ref errorinfo); var eapRes = new EapResponse() { Code = 1, Msg = string.Empty }; if (res < 0) { db.Rollback(); eapRes.Code = -1; eapRes.Msg = errorinfo; } db.Commit(); LogHelper.LogFatal("删除BusinessFileRelation-->:" + Json.ToJson(model) + ";BusinessFile-->" + Json.ToJson(modelsec), "用户操作", usercode); return eapRes; } } /// /// 删除整个程序 /// /// /// [HttpPost] public EapResponse DeleteSingleWholeProgram([FromBody] IDictionary valuePairs) { if (valuePairs == null || valuePairs.Keys.Count == 0) return null; string errorinfo = string.Empty; var macCode = valuePairs["macModelCode"]; var proName = valuePairs["proName"]; var macId = Convert.ToInt32(valuePairs["macId"]); var macModelId = Convert.ToInt32(valuePairs["macModelId"]); string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { var dal = new MacModelProgramDal(db); db.BeginTrans(); var businessId = dal.getBusinessFilebusinessId(proName, macModelId, ref errorinfo); var model = dal.getBusinessFileRelationbusinessId(businessId); var modelsec = dal.getBusinessFilebusinessId(businessId); var res = dal.DeleteWholeProgram(proName, macId, macModelId, macCode, ref errorinfo); var eapRes = new EapResponse() { Code = 1, Msg = string.Empty }; if (res < 0) { db.Rollback(); eapRes.Code = -1; eapRes.Msg = errorinfo; } db.Commit(); LogHelper.LogFatal("删除MacModelProgram-->BusinessFileRelation:" + Json.ToJson(model) + ";BusinessFile" + Json.ToJson(modelsec), "用户操作", usercode); return eapRes; } } /// /// 用新名字复制程序 /// /// /// [HttpPost] public EapResponse CopyProgramWithNewName([FromBody] IDictionary valuePairs) { var proName = valuePairs["proName"]; var newName = valuePairs["newName"]; var macModelId = Convert.ToInt32(valuePairs["macModelId"]); newName = newName.TrimStart().TrimEnd(); string errorinfo = string.Empty; var res = new EapResponse() { Code = 1, Msg = string.Empty }; using (IDatabase db = DbFactory.Base("eap")) { var dal = new MacModelProgramDal(db); db.BeginTrans(); if (dal.CopyProgramWithNewName(proName, newName, macModelId, Request.Headers["usercode"], ref errorinfo) < 0) { db.Rollback(); res.Code = -1; res.Msg = errorinfo; return res; } db.Commit(); LogHelper.LogFatal("复制程序-->proName:" + proName + ";newName" + newName + ";macModelId" + macModelId, "用户操作", Request.Headers["usercode"]); return res; } } /// /// 设置机台程序为机型共用程序 /// /// /// [HttpPost] public EapResponse CopyMacProgramToModel([FromBody] IDictionary valuePairs) { var macId = Convert.ToInt32(valuePairs["macId"]); var macModelId = Convert.ToInt32(valuePairs["macModelId"]); var fName = valuePairs["fName"]; string errorinfo = string.Empty; var res = new EapResponse() { Code = 1, Msg = string.Empty }; using (IDatabase db = DbFactory.Base("eap")) { var dal = new MacModelProgramDal(db); db.BeginTrans(); if (dal.CopyMacProgrmToModel(macId, macModelId, Request.Headers["usercode"], fName, ref errorinfo) < 0) { db.Rollback(); res.Code = -1; res.Msg = errorinfo; return res; } db.Commit(); LogHelper.LogFatal("复制程序-->macId:" + macId + ";macModelId" + macModelId + ";fName" + fName, "用户操作", Request.Headers["usercode"]); return res; } } /// /// 获取程序版次列表 /// /// /// /// /// /// /// /// [HttpGet] public LayuiModel GetMacModelProgramVersionList(string filter, string sort, int pageIndex = 1, int pageSize = 10, string sortField = "e.FCode,b.FName,a.Version", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (!string.IsNullOrEmpty(sort)) { var arr = sort.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (arr != null && arr.Length > 0) { sortField = arr[0]; sortOrder = arr[1]; } } if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } int start = (pageIndex - 1) * pageSize + 1; using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MacModelProgramDal(db, userCode); var total = dal.GetMacModelProgramVersionListCount(filter); string errorinfo = string.Empty; var list = dal.GetMacModelProgramVersionList(start, pageSize, sortOrder, sortField, filter, errorinfo); return new LayuiModel { code = 1, count = total, data = list, msg = "" }; } } } }