using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Http;
using WebAPI.Models;
using WebAPI.Controllers.SCGL.日计划管理;
using System.IO;
using System.Linq;
using System.Text;
namespace WebAPI.Controllers.成本管理
{
public class CB_WipProcessTableController : ApiController
{
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
public DAL.ClsCB_ItemMoneyBillMain BillOld = new DAL.ClsCB_ItemMoneyBillMain();
public DAL.ClsCB_ItemMoneyBillMain BillNew0 = new DAL.ClsCB_ItemMoneyBillMain();
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
#region 文件上传
[Route("CB_WipProcessTableController/CB_WipProcessTable_Excel")]
[HttpPost]
public json CB_WipProcessTable_Excel()
{
json res = new json();
try
{
//获取文件名称
var file = HttpContext.Current.Request.Files[0];
//获取文件物理路径
string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
//保存文件
file.SaveAs(ExcelPath);
SCGL.日计划管理.NpoiHelper np = new NpoiHelper();
DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
//删除文件
File.Delete(ExcelPath);
//创建临时表
DataTable provisional = new DataTable("dt2");
//添加列名
for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
{
provisional.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
}
//provisional.Columns.Add("单据号", typeof(string));
//添加数据
for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
{
DataRow row = provisional.NewRow();
for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
{
row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
}
provisional.Rows.Add(row);
}
//判断列
string error = JudgmentColumns(provisional);
if (error.Length > 0)
{
res.code = "0";
res.count = 0;
res.Message = $"Excel模板存在错误,{error}\r\n";
res.data = null;
return res;
}
for (int i = 0; i <= provisional.Rows.Count - 1; i++)
{
string HProcName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["产出工序"].ToString());
string HCusName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["客户"].ToString());
string HPartNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["成品料号"].ToString());
string HWIPQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["WIP数量"].ToString());
string HInProcessWIPQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["在制WIP数量"].ToString());
string HPanelQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["拼版数"].ToString());
string HLot = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["LOT"].ToString());
string HOrderTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["下单时间"].ToString());
string HStartTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["投产时间"].ToString());
string HOutputTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["产出时间"].ToString());
string HProductionTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["生产时间"].ToString());
string HStatus = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["状态"].ToString());
string HStayTime = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["停留时间(分钟)"].ToString());
//string remark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["备注"].ToString());
//获取真实行数
int line = i + 1;
}
res.code = "1";
res.count = 1;
res.Message = error;
res.data = provisional;
return res;
}
catch (Exception e)
{
res.code = "0";
res.count = 0;
res.Message = "Exception!" + e.ToString();
res.data = null;
return res;
}
}
///
/// 判断列
///
///
///
private static string JudgmentColumns(DataTable provisional)
{
var error = "";
//查询没有的列
if (!provisional.Columns.Contains("客户"))
error += "没有找到【客户】的标题,";
if (!provisional.Columns.Contains("成品料号"))
error += "没有找到【成品料号】的标题,";
return error;
}
#endregion
#region 上传保存
[Route("CB_WipProcessTableController/Excel_btnSave")]
[HttpPost]
public object Excel_btnSave([FromBody] JObject sMainSub)
{
var _value = sMainSub["sMainSub"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { "&和" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string user = sArray[1].ToString();
string organ = sArray[2].ToString();
json res = new json();
try
{
oCN.BeginTran();
List