using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
using WebAPI.Models;
|
using NPOI;
|
using NPOI.OOXML;
|
using NPOI.OpenXml4Net;
|
using System.IO;
|
using NPOI.HSSF.UserModel;
|
using NPOI.SS.UserModel;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Converters;
|
using System.Web;
|
using System.Net.Http.Headers;
|
|
namespace WebAPI.Controllers.SCGL
|
{
|
public class Sc_PackUnionBillController : ApiController
|
{
|
public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
|
private json objJsonResult = new json();
|
public DataSet ds = new DataSet();
|
public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
|
public DAL.ClsSc_PackUnionBill BillNew0 = new DAL.ClsSc_PackUnionBill(); //
|
public DAL.ClsSc_PackUnionBill BillOld0 = new DAL.ClsSc_PackUnionBill(); //
|
|
|
#region [组托单查询功能]
|
/// <summary>
|
/// 组托单查询功能
|
/// </summary>
|
/// <returns></returns>
|
[Route("Sc_PackUnionBill/Get_PackUnionBillList")]
|
[HttpGet]
|
public object Get_PackUnionBillList(int page, int limit, string sWhere,string user)
|
{
|
List<object> columnNameList = new List<object>();
|
try
|
{
|
//判断是否有查询权限
|
if (!DBUtility.ClsPub.Security_Log("Sc_PackUnionBill_Query",1,false,user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无权限查询!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
int count = 0;
|
int pageNum = page;
|
int pageSize = limit;
|
if (sWhere == null || sWhere.Equals(""))
|
{
|
sWhere = " where 1=1 ";
|
}
|
else
|
{
|
sWhere = " where 1=1" + sWhere;
|
}
|
|
DataSet ds0 = oCn.RunProcReturn("select count(*) CountNum from h_v_PackUnionBillList "+sWhere+"", "h_v_PackUnionBillList");
|
count = int.Parse(ds0.Tables[0].Rows[0]["CountNum"].ToString());
|
//string sql = string.Format(@"select top " + pageSize + " hmainid,日期,单据号,箱号条形码,净重,毛重,皮重,生产组织,部门,操作员,客户标签号,物料代码,物料名称,计量单位代码,计量单位名称,数量,制单人,制单日期 from(select row_number() over (order by hmainid desc) as RowNumber,hmainid,日期,单据号,箱号条形码,净重,毛重,皮重,生产组织,部门,操作员,客户标签号,物料代码,物料名称,计量单位代码,计量单位名称,数量,制单人,制单日期 from h_v_PackUnionBillList " + sWhere + ") as A where RowNumber >" + pageSize + " *(" + pageNum + "-1)");
|
string sql = string.Format(@"select hmainid,日期,单据号,箱号条形码,条码,净重,毛重,皮重,生产组织,部门,操作员,客户标签号,物料代码,物料名称,计量单位代码,计量单位名称,数量,制单人,制单日期 from h_v_PackUnionBillList " + sWhere + " order by hmainid desc offset ((" + pageNum + "-1)*" + pageSize + ") rows fetch next " + pageSize + " rows only");
|
ds = new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_PackUnionBillList");
|
string aa = ds.Tables[0].Columns[0].ToString();
|
|
foreach (DataColumn col in ds.Tables[0].Columns)
|
{
|
|
Type dataType = col.DataType;
|
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
|
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
|
}
|
|
//if (ds.Tables[0].Rows.Count > 0)
|
//{
|
objJsonResult.code = "1";
|
objJsonResult.count = count;
|
objJsonResult.Message = "返回记录成功!";
|
objJsonResult.data = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(ds.Tables[0], new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" })); //序列化DataSet中的时间格式,然后再反序列化回来
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
//}
|
//else
|
//{
|
// objJsonResult.code = "0";
|
// objJsonResult.count = 0;
|
// objJsonResult.Message = "暂无记录!";
|
// objJsonResult.data = null;
|
// objJsonResult.list = columnNameList;
|
// return objJsonResult;
|
//}
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
#endregion
|
|
#region [组托单删除功能]
|
/// <summary>
|
/// 组托单删除功能
|
/// </summary>
|
/// <returns></returns>
|
[Route("Sc_PackUnionBill/set_DeleteBill")]
|
[HttpGet]
|
public object set_DeleteBill(string HInterID, string user)
|
{
|
try
|
{
|
//编辑权限
|
if (!DBUtility.ClsPub.Security_Log_second("Sc_PackUnionBill_Drop", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无删除权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
string s = "";
|
Int64 lngBillKey = 0;
|
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
|
if (lngBillKey == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据ID为空!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
DAL.ClsSc_PackUnionBill oBill = new DAL.ClsSc_PackUnionBill();
|
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
if (oBill.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (oBill.omodel.HChecker != "" && oBill.omodel.HChecker != null)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已经审核,不能删除!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (!DBUtility.Xt_BaseBillFun.Fun_AllowDeleteBill(oBill, ref s))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s + ",不允许删除";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
ds = oCn.RunProcReturn("Select * from Sc_PackUnionBillMain where HinterID=" + lngBillKey, "Sc_PackUnionBillMain");
|
var HBarCode_Pack = ds.Tables[0].Rows[0]["HBarCode_Pack"].ToString();
|
if (ds.Tables.Count < 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "不存在箱码";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
//判断是否入库
|
ds = oCn.RunProcReturn("select * from Sc_ScanLineInStock where HBarCode_Pack='" + HBarCode_Pack + "'", "Sc_ScanLineInStock");
|
if (ds != null && ds.Tables[0].Rows.Count > 0)
|
{
|
objJsonResult.code = "-1";
|
objJsonResult.Message = "该箱条码已入库不允许取消!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ds = oCn.RunProcReturn("Select 1 from Gy_BarCodeBill where HBarCode='" + HBarCode_Pack + "'", "Gy_BarCodeBill");
|
if (ds == null && ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "-1";
|
objJsonResult.Message = "无效箱条码!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
ds = oCn.RunProcReturn("Select 1 from Gy_BarCodeBill where HBarCode='" + HBarCode_Pack + "' and HStopflag='1'", "Gy_BarCodeBill");
|
if (ds != null && ds.Tables[0].Rows.Count > 0)
|
{
|
objJsonResult.code = "-1";
|
objJsonResult.Message = "此箱条码已作废!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
oCn.BeginTran();
|
oCn.RunProc("Update Gy_BarCodeBill set HStopflag='1' where HBarCode='" + HBarCode_Pack + "'");
|
oCn.RunProc("Delete From Sc_PackUnionBillSub_Sum where HBarCode_Pack='" + HBarCode_Pack + "'");
|
oCn.RunProc("Delete From Sc_PackUnionBillSub where HInterID='" + lngBillKey + "'");
|
oCn.RunProc("Delete From Sc_PackUnionBillMain where HInterID='" + lngBillKey + "'");
|
oCn.Commit();
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "删除成功";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据未找到";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
oCn.RollBack();
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
#endregion
|
|
#region[组托单编辑时获取表头数据]
|
[Route("Sc_PackUnionBill/Sc_PackUnionBillListCheckDetai")]
|
[HttpGet]
|
public ApiResult<DataSet> Sc_PackUnionBillListCheckDetai(string HID)
|
{
|
if (string.IsNullOrEmpty(HID))
|
return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" };
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
|
var dataSet = oCN.RunProcReturn("select top 1 * from h_v_PackUnionBillList where hmainid= " + HID + " ", "h_v_PackUnionBillList");
|
if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
|
return new ApiResult<DataSet> { code = -1, msg = "不存在单号" };
|
|
return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet };
|
}
|
#endregion
|
|
#region 标准工时单列表
|
|
[Route("Sc_PackUnionBill/GetSc_StationInBillList")]
|
[HttpGet]
|
public object GetSc_StationInBillList(string sWhere)
|
{
|
try
|
{
|
ds = oCn.RunProcReturn("select * from h_v_Sc_StationInBillListMain"+sWhere+ "order by hmainid desc", "h_v_Sc_StationInBillListMain");
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "返回记录成功!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
#endregion
|
|
#region 标准工时导出Excel表格数据
|
[Route("Sc_PackUnionBill/Sc_StationInBillSetExcel")]
|
[HttpGet]
|
public HttpResponseMessage Sc_StationInBillSetExcel(string sWhere)
|
{
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
ISheet sheet = workbook.CreateSheet("sheet1");
|
IRow row = sheet.CreateRow(0);
|
|
|
row.CreateCell(0).SetCellValue("进站生产订单号");
|
row.CreateCell(1).SetCellValue("流转卡号");
|
row.CreateCell(2).SetCellValue("进出站所用时间");
|
row.CreateCell(3).SetCellValue("工时");
|
row.CreateCell(4).SetCellValue("工序名");
|
row.CreateCell(5).SetCellValue("不良数量");
|
row.CreateCell(6).SetCellValue("报废数量");
|
row.CreateCell(7).SetCellValue("进站数量");
|
row.CreateCell(8).SetCellValue("出站数量");
|
row.CreateCell(9).SetCellValue("出站时间");
|
row.CreateCell(10).SetCellValue("进站时间");
|
row.CreateCell(11).SetCellValue("制单人");
|
row.CreateCell(12).SetCellValue("制单日期");
|
//精确控制列宽
|
sheet.SetColumnWidth(1, 5000);
|
sheet.SetColumnWidth(2, 5000);
|
sheet.SetColumnWidth(3, 5000);
|
sheet.SetColumnWidth(4, 5000);
|
sheet.SetColumnWidth(5, 5000);
|
sheet.SetColumnWidth(6, 5000);
|
sheet.SetColumnWidth(7, 5000);
|
sheet.SetColumnWidth(8, 5000);
|
sheet.SetColumnWidth(9, 5000);
|
sheet.SetColumnWidth(10, 5000);
|
sheet.SetColumnWidth(11, 5000);
|
|
DataSet ds = oCn.RunProcReturn("select * from h_v_Sc_StationInBillListMain" + sWhere + " order by hmainid desc", "h_v_Sc_StationInBillListMain");
|
for (var i = 0; i < ds.Tables[0].Rows.Count; i++)
|
{
|
IRow row1 = sheet.CreateRow(i + 1);
|
row1.CreateCell(0).SetCellValue(ds.Tables[0].Rows[i]["进站生产订单号"].ToString());
|
row1.CreateCell(1).SetCellValue(ds.Tables[0].Rows[i]["流转卡号"].ToString());
|
row1.CreateCell(2).SetCellValue(ds.Tables[0].Rows[i]["进出站所用时间"].ToString());
|
row1.CreateCell(3).SetCellValue(ds.Tables[0].Rows[i]["工时"].ToString());
|
row1.CreateCell(3).SetCellValue(ds.Tables[0].Rows[i]["工序名"].ToString());
|
row1.CreateCell(4).SetCellValue(ds.Tables[0].Rows[i]["不良数量"].ToString());
|
row1.CreateCell(5).SetCellValue(ds.Tables[0].Rows[i]["报废数量"].ToString());
|
row1.CreateCell(6).SetCellValue(ds.Tables[0].Rows[i]["进站数量"].ToString());
|
row1.CreateCell(7).SetCellValue(ds.Tables[0].Rows[i]["出站数量"].ToString());
|
row1.CreateCell(8).SetCellValue(ds.Tables[0].Rows[i]["出站时间"].ToString());
|
row1.CreateCell(9).SetCellValue(ds.Tables[0].Rows[i]["进站时间"].ToString());
|
row1.CreateCell(10).SetCellValue(ds.Tables[0].Rows[i]["制单人"].ToString());
|
row1.CreateCell(11).SetCellValue(ds.Tables[0].Rows[i]["制单日期"].ToString());
|
}
|
System.IO.MemoryStream ms = new System.IO.MemoryStream();
|
workbook.Write(ms);
|
ms.Position = 0;
|
|
var response = new HttpResponseMessage(HttpStatusCode.OK);
|
response.Content = new StreamContent(ms);
|
|
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
|
var fileName = "标准工时.xls";
|
|
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
|
{
|
FileName = System.Web.HttpUtility.UrlEncode(fileName)
|
};
|
return response;
|
}
|
|
#endregion
|
}
|
}
|