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;
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 组托单列表
[Route("Sc_PackUnionBill/Get_PackUnionBillList")]
[HttpGet]
public object GetMateOutBillList(string sWhere)
{
try
{
ds = oCn.RunProcReturn("select * from h_v_PackUnionBillList"+ sWhere + " order by 日期 desc", "h_v_PackUnionBillList");
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 [组托单删除功能]
///
/// 组托单删除功能
///
///
[Route("Sc_PackUnionBill/set_DeleteBill")]
[HttpGet]
public object set_DeleteBill(string HInterID, string user)
{
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Sc_PackUnionBill", 1, true, 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;
}
}
#endregion
#region[组托单编辑时获取表头数据]
[Route("Sc_PackUnionBill/Sc_PackUnionBillListCheckDetai")]
[HttpGet]
public ApiResult Sc_PackUnionBillListCheckDetai(string HID)
{
if (string.IsNullOrEmpty(HID))
return new ApiResult { 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 { code = -1, msg = "不存在单号" };
return new ApiResult { 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 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 object Sc_StationInBillSetExcel()
{
try
{
ds = oCn.RunProcReturn("select * from h_v_Sc_StationInBillListMain order by hmainid desc", "h_v_Sc_StationInBillListMain");
IWorkbook book = new HSSFWorkbook();
ISheet sheet = book.CreateSheet("sheet1");
IRow row1 = sheet.CreateRow(0);
row1.CreateCell(0).SetCellValue("进站生产订单号");
row1.CreateCell(1).SetCellValue("流转卡号");
row1.CreateCell(2).SetCellValue("进出站所用时间");
row1.CreateCell(3).SetCellValue("工时");
row1.CreateCell(4).SetCellValue("不良数量");
row1.CreateCell(5).SetCellValue("报废数量");
row1.CreateCell(6).SetCellValue("进站数量");
row1.CreateCell(7).SetCellValue("出站数量");
row1.CreateCell(8).SetCellValue("出站时间");
row1.CreateCell(9).SetCellValue("进站时间");
row1.CreateCell(10).SetCellValue("制单人");
row1.CreateCell(11).SetCellValue("制单日期");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
IRow row = sheet.CreateRow(i + 1);
row.CreateCell(0).SetCellValue(ds.Tables[0].Rows[i]["进站生产订单号"].ToString());
row.CreateCell(1).SetCellValue(ds.Tables[0].Rows[i]["流转卡号"].ToString());
row.CreateCell(2).SetCellValue(ds.Tables[0].Rows[i]["进出站所用时间"].ToString());
row.CreateCell(3).SetCellValue(ds.Tables[0].Rows[i]["工时"].ToString());
row.CreateCell(4).SetCellValue(ds.Tables[0].Rows[i]["不良数量"].ToString());
row.CreateCell(5).SetCellValue(ds.Tables[0].Rows[i]["报废数量"].ToString());
row.CreateCell(6).SetCellValue(ds.Tables[0].Rows[i]["进站数量"].ToString());
row.CreateCell(7).SetCellValue(ds.Tables[0].Rows[i]["出站数量"].ToString());
row.CreateCell(8).SetCellValue(ds.Tables[0].Rows[i]["出站时间"].ToString());
row.CreateCell(9).SetCellValue(ds.Tables[0].Rows[i]["进站时间"].ToString());
row.CreateCell(10).SetCellValue(ds.Tables[0].Rows[i]["制单人"].ToString());
row.CreateCell(11).SetCellValue(ds.Tables[0].Rows[i]["制单日期"].ToString());
}
string filename = "C:/Users/Administrator/Desktop/标准工时表" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";
MemoryStream BookStream = new MemoryStream();
book.Write(BookStream);
BookStream.Seek(0,SeekOrigin.Begin);
byte[] buffer = BookStream.ToArray();
using (FileStream fs = new FileStream(filename, FileMode.CreateNew, FileAccess.Write))
{
try
{
fs.Write(buffer, 0, buffer.Length);
fs.Flush();
}
catch
{
}
finally
{
fs.Dispose();
BookStream.Dispose();
}
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "成功导出表格至桌面";
objJsonResult.data = null;
return objJsonResult;
}
catch (Exception ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "导出失败" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
}
}