using IWareDataAccess.EF;
using IWareDataAccess.Entity.Base;
using IWareDataAccess.Helper;
using IWareDataAccess.ReturnEntity;
using IWareDataAccess.ReturnEntity.Base;
using Models.Input;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Http.Results;
namespace WebApi_QQJF.Controllers
{
public class ContainerVsItemController : ApiController
{
///
/// 统一对象,读取值
///
///
private ContainerVsItemWebEntity GetEntity()
{
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
WebHelper.WebHelper.GetRequest(request, model);
return model;
}
///
/// 统一对象,读取值
///
///
private ContainerVsItemListWebEntity GetEntityList()
{
ContainerVsItemListWebEntity model = new ContainerVsItemListWebEntity();
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象
WebHelper.WebHelper.GetRequest(request, model);
return model;
}
[HttpPost, Route("ContainerVsItem/Search")]
public IHttpActionResult Search(int page)
{
int onePageNum = 20;
return SearchFunc(page, onePageNum);
}
[HttpPost, Route("ContainerVsItem/Search")]
public IHttpActionResult Search(int page, int onePageNum)
{
return SearchFunc(page, onePageNum);
}
[HttpPost, Route("ContainerVsItem/SearchPrint")]
public IHttpActionResult SearchPrint(int page, int onePageNum)
{
return SearchPrintFunc(page, onePageNum);
}
private IHttpActionResult SearchPrintFunc(int page, int onePageNum)
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
ReturnSearchContainerVsItemViewPrint returnData = new ReturnSearchContainerVsItemViewPrint();
var f = GetFilter(model);
var data = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.SearchView(f, model, page, onePageNum, out msg);
List cvi = new List();
View_BASE_CONTAINER_VS_ITEMPrint c = new View_BASE_CONTAINER_VS_ITEMPrint();
foreach (var i in data)
{
if (c == null || string.IsNullOrEmpty(c.itemName))
{
c.createLine = i.createLine;
c.itemName = i.itemName;
c.itemType = i.itemType;
c.itemDes = i.itemDes;
c.itemNum = i.itemNum.ToString();
c.updateTime = i.updateTime;
}
else
{
c.itemName += "," + i.itemName;
c.itemType += "," + i.itemType;
c.itemNum += "," + i.itemNum;
c.itemDes += "," + i.itemDes;
}
}
cvi.Add(c);
returnData.data = cvi;
returnData.code = 0;
returnData.num = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.SearchViewNum(f, model, out msg);
returnData.page = page;
returnData.pageNum = (returnData.num - 1) / 20 + 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
private static Expression> GetFilter(ContainerVsItemWebEntity webEntity)
{
var f = PredicateBuilder.GetFilterExpression(webEntity);
if (webEntity.isSearchNoRelevanceInOrder)
{//处理查询 【EditBy shaocx,2022-11-01】
var queryTime = DateTime.Now.AddDays(-7);
//var queryTime = DateTime.Now.AddDays(-2000);//暂时延长时间,方便测试,模拟 【EditBy shaocx,2022-11-2】
Expression> newExpress = a => a.updateTime >= queryTime && string.IsNullOrEmpty(a.inOrderCode);
f = f.And(newExpress);
}
return f;
}
private IHttpActionResult SearchFunc(int page, int onePageNum)
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
var f = GetFilter(model);
ReturnSearchContainerVsItemView returnData = new ReturnSearchContainerVsItemView();
returnData.data = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.SearchView(f, model, page, onePageNum, out msg);
returnData.code = 0;
returnData.num = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.SearchViewNum(f, model, out msg);
returnData.page = page;
returnData.pageNum = (returnData.num - 1) / 20 + 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/AddOrUpdate")]
public IHttpActionResult AddOrUpdate()
{
try
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.AddOrUpdate(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
catch (Exception ex)
{
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = 1;
returnData.msg = "出现异常:" + ex.Message;
//返回JSON结果
return Json(returnData);
}
}
///
/// 新建或更新组盘
///
///
[HttpPost, Route("ContainerVsItem/AddOrUpdateAll")]
public IHttpActionResult AddOrUpdateAll()
{
string msg = "";
ContainerVsItemListWebEntity model = new ContainerVsItemListWebEntity();
model = GetEntityList();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.AddOrUpdateAll(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/PrintContainerVsItem")]
public IHttpActionResult PrintContainerVsItem()
{
string msg = "";
ContainerVsItemListWebEntity model = new ContainerVsItemListWebEntity();
model = GetEntityList();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.PrintContainerVsItem(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/Update")]
public IHttpActionResult Update()
{
try
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.Update(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
catch (Exception ex)
{
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = 1;
returnData.msg = "出现异常:" + ex.Message;
//返回JSON结果
return Json(returnData);
}
}
///
/// 冲压生产计划关联组盘入库a
///
///
///
[HttpPost, Route("ContainerVsItem/BindCviCode")]
public IHttpActionResult BindCviCode(UpdateCviCodeInput input)
{
string msg = "";
if (string.IsNullOrEmpty(input.cviCode))
{
return Json(ReturnResultAndMsg.Fail("生产计划单号不能为空!"));
}
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.BindCviCode(input, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/DeleteAll")]
public IHttpActionResult DeleteAll()
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.DeleteAll(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/DeleteOne")]
public IHttpActionResult DeleteOne()
{
string msg = "";
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
bool result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.DeleteOne(model, out msg);
ReturnResultAndMsg returnData = new ReturnResultAndMsg();
returnData.code = result ? 0 : 1;
returnData.msg = msg;
//返回JSON结果
return Json(returnData);
}
[HttpPost, Route("ContainerVsItem/GetCode")]
public IHttpActionResult GetCode()
{
ContainerVsItemWebEntity model = new ContainerVsItemWebEntity();
model = GetEntity();
//调用查询方法
string result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.GetCode();
//返回JSON结果
return Json(result);
}
[HttpPost, Route("ContainerVsItem/PdaPrint")]
public IHttpActionResult PdaPrint()//suffix是后缀的意思,可以自己判断,也可以前端传输
{
string msg = "";
ContainerVsItemListWebEntity model = new ContainerVsItemListWebEntity();
model = GetEntityList();
string path = HttpContext.Current.Request.MapPath("~/");//获取你的根目录
string result = IWareDataAccess.Base.CONTAINERVSITEM.ContainerVsItemSqlFunc.PdaPrintBtn(model, path, out msg);
return Json(result);
}
[HttpPost, Route("ContainerVsItem/UpLoadImageFiles")]
public IHttpActionResult UpLoadImageFiles()//suffix是后缀的意思,可以自己判断,也可以前端传输
{
var files = HttpContext.Current.Request.Files;//首先先确定请求里夹带的文件数量
if (files.AllKeys.Any())//如果存在文件
{
using (HttpClient client = new HttpClient())
{
var text = HttpContext.Current.Request.Files[0].InputStream;//获取到文件流
string path = HttpContext.Current.Request.MapPath("~/");//获取你的根目录
HttpPostedFile pf = HttpContext.Current.Request.Files[0];
string datetime = Helper.GetTimeStamp();
string strPath = path + "Uplod\\" + datetime + ".PNG";//这里要注意的是先要建立File文件夹,不然会报错,也可以自己写一个检测文件夹,这里就先不赘述
pf.SaveAs(strPath);
string url = @"Uplod\" + datetime + ".PNG";
// Helper.StreamToFile(text, strPath);//需要用到下一步的帮助类将其保存为文件
return Json(url);
}
}
return Json("无文件");
}
}
}