using DBUtility;
using Newtonsoft.Json.Linq;
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;
namespace WebAPI.Controllers
{
public class Sc_PckSplitBillController : ApiController
{
private JsonResult objJsonResult = new JsonResult();
public DataSet ds = new DataSet();
public double sRelQty = 0;
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
public WebServer webserver = new WebServer();
///
/// 拆箱单扫描托条码/直接调用webservice
///
///
[Route("PackSplitBill/SetPackBarCode_Webs")]
[HttpGet]
public Object SetPackBarCode_Webs(Int64 sInterID, string sBillNo, string sBillType, string HTBarCode, string sMaker,Int64 HOWNERID)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
WebS.ClsKf_ICStockBill_WMS WebSoBar = new WebS.ClsKf_ICStockBill_WMS();
//string sExpressNumber = "";
WebSoBar = oWebs.get_CheckTypeByPackBarCode_Pack(sInterID, sBillNo, sBillType,HTBarCode,sMaker,HOWNERID,ref DBUtility.ClsPub.sErrInfo);
if (WebSoBar == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = WebSoBar;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = e.Message + ";" + e.StackTrace;
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 装箱单扫描托条码/直接调用webservice
///
///
[Route("PackUnionBill/SetPackBarCode_Webs1")]
[HttpGet]
public Object SetPackBarCode_Webs1(Int64 sInterID, string sBillNo, string sBillType, string HTBarCode, string sMaker, Int64 HOWNERID)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
WebS.ClsKf_ICStockBill_WMS WebSoBar = new WebS.ClsKf_ICStockBill_WMS();
//string sExpressNumber = "";
WebSoBar = oWebs.get_CheckTypeByPackBarCode_Pack(sInterID, sBillNo, sBillType, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo);
if (WebSoBar == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = WebSoBar;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = e.Message + ";" + e.StackTrace;
objJsonResult.data = null;
return objJsonResult;
}
}
[Route("PackSplitBill/GetBillEntry_TmpList_Pack")]
[HttpGet]
public object GetBillEntry_TmpList_Pack(Int64 HBillID, string HBillNo, string HBillType)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
ds = oWebs.GetBillEntry_TmpList_Pack(HBillID, HBillNo, HBillType, ref DBUtility.ClsPub.sErrInfo);
if (ds == null || ds.Tables[0].Rows.Count <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!";
objJsonResult.data = null;
return objJsonResult;
//DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning);
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "获取信息成功!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
[Route("PackUnionBill/GetBillEntry_TmpList_Pack1")]
[HttpGet]
public object GetBillEntry_TmpList_Pack1(Int64 HBillID, string HBillNo, string HBillType)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
ds = oWebs.GetBillEntry_TmpList_Pack(HBillID, HBillNo, HBillType, ref DBUtility.ClsPub.sErrInfo);
if (ds == null || ds.Tables[0].Rows.Count <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!";
objJsonResult.data = null;
return objJsonResult;
//DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning);
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "获取信息成功!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 拆箱单扫描拆箱条码/直接调用webservice
///
///
[Route("PackSplit/get_CheckTypeByBarCode_Json")]
[HttpGet]
public Object get_CheckTypeByBarCode_Json(string HBarCode,Int64 sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, Int64 HOWNERID)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
if (oWebs.get_CheckTypeByBarCode_PackSplit(HBarCode, sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "扫码成功!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = e.Message + ";" + e.StackTrace;
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 拆箱单扫描拆箱条码/直接调用webservice
///
///
[Route("PackUnionBill/get_CheckTypeByBarCode_Json1")]
[HttpGet]
public Object get_CheckTypeByBarCode_Json1(string HBarCode, Int64 sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, Int64 HOWNERID)
{
try
{
WebS.WebService1 oWebs = new WebS.WebService1();
if (oWebs.get_CheckTypeByBarCode_PackUnion(HBarCode, sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "扫码成功!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = e.Message + ";" + e.StackTrace;
objJsonResult.data = null;
return objJsonResult;
}
}
[Route("PackSplit/Delete")]
[HttpGet]
public object Delete(long HInterID, string HBarCode,string HBillType)
{
string sErrMsg = string.Empty;
try
{
if (DeletePackSplitBill(HInterID, HBarCode, HBillType, ref sErrMsg))
{
objJsonResult.code = "0";
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)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "删除失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
public bool DeletePackSplitBill(long HInterID, string HBarCode, string HBillType, ref string sErrMsg)
{
WebS.WebService1 oWebs = new WebS.WebService1();
if (oWebs.set_DelPonderationBillMain_Temp_Pack(HInterID, HBarCode, HBillType, ref DBUtility.ClsPub.sErrInfo))
{
sErrMsg = "删除成功!";
return true;
}
else
{
sErrMsg = "删除失败!";
return false;
}
}
///
/// 生成拆箱单
///
///
[Route("PackSplit/set_SavePackSplitBill_Json")]
[HttpGet]
public Object set_SavePackSplitBill_Json(long sInterID, string HBillType, string sBillNo,string HTBarCode,string sMaker,long HOWNERID)
{
try
{
if (set_SavePackSplitBill_New(sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo))
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "生成成功!单据号为:";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
public bool set_SavePackSplitBill_New(long sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, long HOWNERID, ref string sErrMsg)
{
WebS.WebService1 oWebs = new WebS.WebService1();
if (oWebs.set_SavePackSplitBill_New(sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref sErrMsg))
{
sErrMsg = "保存成功!" + sBillNo;
return true;
}
else
{
sErrMsg = "单据号:" + sBillNo + ", 单据ID:" + sInterID + ";" + sErrMsg;
return false;
}
}
#region 生产领料拆码列表
[Route("Sc_PckSplit/Get_PPickingBillList")]
[HttpGet]
public Object Get_PPickingBillList(string sWhere)
{
try
{
string sql1 = string.Format(@"select * from h_v_Kf_ICStockBillList where 1=1 " + sWhere);
DataSet ds=oCn.RunProcReturn(sql1, "h_v_Kf_ICStockBillList");
if (ds.Tables[0].Rows.Count == 0 || ds == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "暂无数据" + DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "查询成功";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 产线关键件绑定
///
/// SN号查询
///
/// SN号
///
[Route("Sc_PckSplit/Get_PHPCruxSNBillList")]
[HttpGet]
public Object Get_PHPCruxSNBillList(int HinterID, string HBarCode,int HProcID,string HBillNo)
{
try
{
string sql1 = string.Format($"exec h_p_Sc_PHPCruxSNBillTOTemp '"+HBarCode+"',"+HinterID+","+HProcID+",'"+ HBillNo+"'");
DataSet ds = oCn.RunProcReturn(sql1, "h_p_Sc_PHPCruxSNBillTOTemp");
if (ds.Tables[0].Rows.Count == 0 || ds == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "暂无数据!";
objJsonResult.data = null;
return objJsonResult;
}
else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["sel"]) ==0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "暂无数据!";
objJsonResult.data = null;
return objJsonResult;
}
else{
//先存进临时表再返回数据
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "查询成功";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 关键码查询
///
/// 关键码
///
[Route("Sc_PckSplit/Get_PHPCruxBillList")]
[HttpGet]
public Object Get_PHPCruxBillList(int HinterID,string HPCrux,string HBillNo)
{
try
{
string sql1 = string.Format($"exec h_p_Sc_PHPCruxBillTOTemp '" +HPCrux+"',"+ HinterID+",'"+ HBillNo+"'");
DataSet ds = oCn.RunProcReturn(sql1, "h_p_Sc_PHPCruxBillTOTemp");
if (ds.Tables[0].Rows.Count == 0 || ds == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "未查询到条形码信息!" + DBUtility.ClsPub.sErrInfo;
objJsonResult.data = null;
return objJsonResult;
}
else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2")
{
objJsonResult.code = "2";
objJsonResult.count = 2;
objJsonResult.Message = "错误!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]);
objJsonResult.data = null;
return objJsonResult;
}
else
{
//先存进临时表再返回数据
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "查询成功";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 扫码缓存删除
///
/// 关键码
///
[Route("Sc_PckSplit/Delete_PHPCruxBillListByME")]
[HttpGet]
public Object Delete_PHPCruxBillListByME(int HInterID,int HMaterID,string HBarCode)
{
try
{
oCn.BeginTran();
string sql = string.Format(@"delete Sc_AssemblyBill_BindBarCodeTemp where HInterID="+ HInterID+" and HMaterID="+ HMaterID+ " and HBarCode='" + HBarCode+"'");
oCn.RunProc(sql);
//删除成功
string sql1= string.Format(@"select a.HEntryID,a.HMaterID,m.HName HMaterName,m.HModel HMaterSpec,1 HQty,HBarCode HPJM
from Sc_AssemblyBill_BindBarCodeTemp a left join Gy_Material m on a.HMaterID=m.HItemID
where HInterID=" + HInterID);
DataSet ds=oCn.RunProcReturn(sql1, "Sc_AssemblyBill_BindBarCodeTemp");
oCn.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
catch (Exception e)
{
oCn.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 组装单提交
///
/// 关键码
///
[Route("Sc_PckSplit/Add_PHPCruxBillList")]
[HttpPost]
public Object Add_PHPCruxBillList([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();//基本资料
string msg3 = sArray[1].ToString();//配件列表
string msg4 = sArray[2].ToString();//条码列表
string msg5 = sArray[3].ToString();//登录人
ListModels oListModels = new ListModels();
long HinterID;
string HBillNo = "";
try
{
DLL.ClsSc_PHPCruxBillBill oBill = new DLL.ClsSc_PHPCruxBillBill();
List lsmain = new List();//基本资料
List lspjItme = new List();//配件列表
List lstmItme = new List();//扫码列表
//基本资料_json格式转换
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", "");
lsmain = oListModels.getObjectByJson_Sc_AssemblyBillMain(msg2);
HinterID = lsmain[0].HInterID;//主ID
HBillNo = lsmain[0].HBillNo;//单据号
//事务开始
oCn.BeginTran();
//根据interID在源单临时表中查找数据
DataSet ds1 = oCn.RunProcReturn("select top 1 * from Sc_AssemblyBill_BindSourceTemp where HInterID=" + HinterID, "Sc_AssemblyBill_BindSourceTemp");
//保存生产组装单主表
string sql = "Insert Into Sc_AssemblyBillMain " +
"(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate," +
"HBillNo,HBillStatus,HMaker,HMakeDate" +
",HMainSourceInterID,HMainSourceBillNo" +
",HICMOInterID,HICMOBillNo,HBarCode_P,HMaterID,HUnitID,HAssemblyStatus" +
") " +
" values('" + DateTime.Now.Year + "','" + DateTime.Now.Month + "',3727,3727," + HinterID + ",'" + DateTime.Now+
"','" + HBillNo + "',1,'"+msg5+"',getdate()" +
",0,'" + lsmain[0].HBarCode + "'" +
"," + ds1.Tables[0].Rows[0]["HSourceInterID"].ToString() + ",'" + ds1.Tables[0].Rows[0]["HSourceBillNo"].ToString() + "','" + lsmain[0].HBarCode + "',0,0,'生产中'" +
") ";
oCn.RunProc(sql);
//根据interID在扫码临时表中查找数据
DataSet ds2 = oCn.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HInterID=" + HinterID, "Sc_AssemblyBill_BindBarCodeTemp");
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
string sq2 = "Insert Into Sc_AssemblyBillSub " +
"(HInterID,HBillNo_bak,HEntryID," +
"HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
",HMaterID,HSourceID,HEquipID,HUnitID,HQty,HGroupID,HWorkerID,HScanDate,HBarCode,HBarCode_P,HSNNumber" +
") " +
" values(" + HinterID + ",'" + HBillNo + "'," + i +
"," + ds2.Tables[0].Rows[i]["HSourceInterID"].ToString() + "," + ds2.Tables[0].Rows[i]["HSourceEntryID"].ToString() + ",'" + ds2.Tables[0].Rows[i]["HSourceBillNo"].ToString() + "'" +
",''," + ds2.Tables[0].Rows[i]["HMaterID"].ToString() + ",'"+ lsmain[0].HSCZYID + "',0,0,1," + lsmain[0].HGroupID + "," + lsmain[0].HKeeperID + ",getdate(),'" + ds2.Tables[0].Rows[i]["HBarCode"].ToString() + "','" + ds2.Tables[0].Rows[i]["HBarCode"].ToString() + "','" + lsmain[0].HBarCode + "'" +
") ";
oCn.RunProc(sq2);
}
oCn.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message ="提交成功";
objJsonResult.data =null;
return objJsonResult;
}
catch (Exception e)
{
oCn.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "上传失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
}
}