using EnumType; using IWareDataAccess.EF; using IWareDataAccess.Entity.Base; using IWareDataAccess.Entity.Order; using IWareDataAccess.Helper; using IWareDataAccess.ReturnEntity; using IWareDataAccess.ReturnEntity.Order; using Models.Input; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; namespace WebApi_QQJF.Controllers { /// /// 送签单 /// public class InOrderController : ApiController { /// /// 统一对象,读取值 /// /// private InOrderWebEntity GetEntity() { InOrderWebEntity model = new InOrderWebEntity(); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 WebHelper.WebHelper.GetRequest(request, model); return model; } [HttpPost, Route("InOrder/Search")] public IHttpActionResult Search(int page) { int onePageNum = 20; return SearchFunc(page, onePageNum); } [HttpPost, Route("InOrder/Search")] public IHttpActionResult Search(int page, int onePageNum) { return SearchFunc(page, onePageNum); } private static Expression> GetFilter(InOrderWebEntity webEntity) { var f = PredicateBuilder.GetFilterExpression(webEntity); if (webEntity.InOrderPageType != null) {//说明是要分页面查询 【EditBy shaocx,2022-11-01】 Expression> newExpress = null; InOrderPageTypeEnum inorderPageEnum = (InOrderPageTypeEnum)Enum.Parse(typeof(InOrderPageTypeEnum), webEntity.InOrderPageType.ToString()); switch (inorderPageEnum) { case InOrderPageTypeEnum.完工品输入页面: newExpress = a => a.OrderStatusId != (int)InOrderStatusEnum.完工; break; } if (newExpress != null) { f = f.And(newExpress); } } return f; } private IHttpActionResult SearchFunc(int page, int onePageNum) { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 var f = GetFilter(model); ReturnSearchInOrderView returnData = new ReturnSearchInOrderView(); returnData.data = IWareDataAccess.Order.INORDER.InOrderSqlFunc.SearchView(f, page, onePageNum, out msg); returnData.code = 0; returnData.num = IWareDataAccess.Order.INORDER.InOrderSqlFunc.SearchViewNum(f); returnData.page = page; returnData.pageNum = (returnData.num - 1) / 20 + 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } /// /// 导出冲压计划数据 /// /// [HttpPost, Route("InOrder/ExportInOrder")] public IHttpActionResult ExportInOrder(int page, int onePageNum) { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 var f = GetFilter(model); var data = IWareDataAccess.Order.INORDER.InOrderSqlFunc.ExportInOrder(f, page, onePageNum, out msg); //返回JSON结果 return Json(data); } /// /// 新建或修改送签单 /// /// [HttpPost, Route("InOrder/AddOrUpdate")] public IHttpActionResult AddOrUpdate() { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.AddOrUpdate(model, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/Add")] public IHttpActionResult Add() { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); model.orderStatus = "新建"; //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.AddOrUpdate(model, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/Update")] public IHttpActionResult Update() { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.AddOrUpdate(model, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } /// /// 修改线下交付数量 /// /// /// [HttpPost, Route("InOrder/UpdateUnlineNum")] public IHttpActionResult UpdateUnlineNum(InOrderUnlineNumInput input) { if (string.IsNullOrEmpty(input.InOrderCode)) { return Json(ReturnResultAndMsg.Fail("计划单号不能为空!")); } string msg = ""; //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.UpdateUnlineNum(input, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } /// /// 提交审核 /// /// /// [HttpPost, Route("InOrder/Send")] public IHttpActionResult Send(InOrderAuditInput input) { string msg = ""; string type = "提交审核"; if (string.IsNullOrEmpty(input.InOrderCode)) { return Json(ReturnResultAndMsg.Fail("计划单号不能为空!")); } if (input.AuditUserId == null || input.AuditUserId == 0) { return Json(ReturnResultAndMsg.Fail("审核人不能为空!")); } //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.UpdateStatus(input, type, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/Check")] public IHttpActionResult Check(InOrderAuditInput input) { if (string.IsNullOrEmpty(input.InOrderCode)) { return Json(ReturnResultAndMsg.Fail("计划单号不能为空!")); } string msg = ""; string type = "审核通过"; //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.UpdateStatus(input, type, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/Reject")] public IHttpActionResult Reject(InOrderAuditInput input) { if (string.IsNullOrEmpty(input.InOrderCode)) { return Json(ReturnResultAndMsg.Fail("计划单号不能为空!")); } string msg = ""; string type = "驳回"; //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.UpdateStatus(input, type, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/Delete")] public IHttpActionResult Delete() { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 bool result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.Delete(model, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = result ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/GetCode")] public IHttpActionResult GetCode() { string msg = ""; InOrderWebEntity model = new InOrderWebEntity(); model = GetEntity(); //调用查询方法 string result = IWareDataAccess.Order.INORDER.InOrderSqlFunc.GetCode(); //返回JSON结果 return Json(result); } /// /// 导入冲压计划数据 /// /// [HttpPost, Route("InOrder/ImportInOrder")] public IHttpActionResult ImportInOrder() { string msg = ""; List model = new List(); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 string Items = request.Form["items"]; string userName = request.Form["userName"]; model = JsonConvert.DeserializeObject>(Items); //model = JsonConvert.DeserializeObject>(Items); //string path = HttpContext.Current.Request.MapPath("~/"); //HttpPostedFile file = HttpContext.Current.Request.Files[0]; //bool bl = IWareDataAccess.Helper.ExcelHelper.UploadFiles(file, path, out msg); ; //调用查询方法 bool bl = IWareDataAccess.Order.INORDER.InOrderSqlFunc.ImportInOrder(model, userName, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = bl ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } [HttpPost, Route("InOrder/ExcelTest")] public IHttpActionResult ExcelTest() { string msg = ""; ; InOrderExcelEntity ent = new InOrderExcelEntity(); string path = HttpContext.Current.Request.MapPath("~/"); var file = HttpContext.Current.Request.Files[0].InputStream; HttpPostedFile pf = HttpContext.Current.Request.Files[0]; string datetime = Helper.GetTimeStamp(); string strPath = @"c:\ImportExcel\" + datetime + "\\";//这里要注意的是先要建立File文件夹,不然会报错,也可以自己写一个检测文件夹,这里就先不赘述 if (!Directory.Exists(strPath)) { Directory.CreateDirectory(strPath); } strPath += pf.FileName; pf.SaveAs(strPath); //Helper.StreamToFile(file, strPath);//需要用到下一步的帮助类将其保存为文件 bool bl = IWareDataAccess.Order.INORDER.InOrderSqlFunc.ImportExcel(strPath, ent, out msg); ReturnResultAndMsg returnData = new ReturnResultAndMsg(); returnData.code = bl ? 0 : 1; returnData.msg = msg; //返回JSON结果 return Json(returnData); } } }