using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
/**
* 找货单单
*/
public class LookingForBillController : ApiController
{
private json objJsonResult = new json();
public DataSet ds = new DataSet();
public WebServer webserver = new WebServer();
///
/// 根据包装单 返回此包装单内的相关信息
///
///
[Route("LookingFor/getPackUnionBillList")]
[HttpGet]
public object getPackUnionBillList(string HBarCode_Pack)
{
try
{
ds = getPackUnionBillList_s(HBarCode_Pack);
if (ds == null || Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
else
{
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;
}
}
///
/// 根据实物条码验证状态
///
///
[Route("LookingFor/getPackUnionBillListDetailed")]
[HttpGet]
public object getPackUnionBillListDetailed(string HBarCode)
{
try
{
ds = getPackUnionBillListDetailed_s(HBarCode);
if (ds == null || Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
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;
}
}
///
/// 下架找货单根据销售订单 返回此销售订单内的相关信息
///
///
[Route("LookingFor/getSellOrderList")]
[HttpGet]
public object getSellOrderList(string HSourceBillNo)
{
try
{
ds = getSellOrderList_s(HSourceBillNo);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 上架归还单根据实物条码 返回相关信息
///
///
[Route("LookingFor/getBarCodeDetails")]
[HttpGet]
public object getBarCodeDetails(string HBarCode)
{
try
{
string sWhere = " Where HBarCode = '" + HBarCode.Trim() + "'";
ds = getBarCodeDetails_s(sWhere);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 生成下架找货单
///
///
[Route("LookingFor/set_SaveLookingForBill_Json")]
[HttpPost]
public object set_SaveLookingForBill_Json([FromBody]JObject oMain)
{
string oMainData = oMain["oMain"].ToString();
oMainData = oMainData.Substring(8,oMainData.Length-9);
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
try
{
List lsmain = new List();
ListModels oListModels = new ListModels();
List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(oMainData);
oCN.BeginTran();
//var mainSql1 = "Insert Into Kf_LookingForReturnBillMain " +
// "(HInterID,HBillNo,HSourceInterID,HSourceBillNo,HCreateBy)" +
// " values" +
// "(" + list[0].HInterID + ",'" + list[0].HBillNo + "'," + list[0].HSourceInterID + ",'" + list[0].HSourceBillNo + "','" + list[0].HMaker + "')";
var mainSql = "Insert Into Kf_LookingForBillMain " +
"(HInterID,HBillNo,HSourceInterID,HSourceBillNo,HWhID,HWhName,HSPID,HSPName,HGroupID,HGroup" +
",HSourceID,HSource,HCreateBy)" +
" values" +
"(" + list[0].HInterID + ",'" + list[0].HBillNo + "'," + list[0].HSourceInterID+ ",'" + list[0].HSourceBillNo + "'," + list[0].HWHID + ",'" + list[0].HWHName + "'," + list[0].HSPID + ",'" + list[0].HSPName + "'," + list[0].HGroupID + ",'" + list[0].HGroup + "',"
+ list[0].HSourceID + ",'" + list[0].HSource + "','" + list[0].HMaker + "')";
oCN.RunProc(mainSql);
for (int i = 0; i < list.Count; i++)
{
var subSql = "Insert Into Kf_LookingForBillSub " +
"(HWHID,HWHName,HSPID,HSPName,HMTONo,HQty,HMaterID,HMaterName,HMaterNumber,HMaterModel,HBarCode,HGroupID,HGroup,HSourceID,HSource,HCreateBy,HMainItemID)" +
" values" +
"(" + list[i].HWHID + ",'" + list[i].HWHName + "'," + list[i].HSPID + ",'" + list[i].HSPName + "','" + list[i].HMTONo + "',"+ list[i].HQty + ","
+ list[i].HMaterID + ",'"+ list[i].HMaterName + "','"+ list[i].HMaterNumber + "','"+ list[i].HMaterModel + "','" + list[i].HBarCode + "',"
+ list[i].HGroupID + ",'"+ list[i].HGroup + "',"+ list[i].HSourceID + ",'" + list[i].HSource + "','"+ list[i].HMaker + "',(select HItemID from Kf_LookingForBillMain where HBillNo = '" + list[i].HBillNo + "'))";
oCN.RunProc(subSql);
var barCodeSql = "update Gy_BarCodeBill set HStatus='裁切中-" + list[i].HSource + "' where HBarCode = '"+ list[i].HBarCode + "'";
oCN.RunProc(barCodeSql);
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "生成找货单成功!单据号为:" + list[0].HBillNo;
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;
}
}
///
/// 生成上架归还单
///
///
[Route("LookingFor/set_SaveLookingForReturnBill_Json")]
[HttpPost]
public object set_SaveLookingForReturnBill_Json([FromBody] JObject oMain)
{
string oMainData = oMain["oMain"].ToString();
oMainData = oMainData.Substring(8, oMainData.Length - 9);
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
try
{
List lsmain = new List();
ListModels oListModels = new ListModels();
List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(oMainData);
string flag = "";
oCN.BeginTran();
var mainSql = "Insert Into Kf_LookingForReturnBillMain " +
"(HInterID,HBillNo,HWhID,HWhName,HSPID,HSPName,HGroupID,HGroup" +
",HSourceID,HSource,HCreateBy)" +
" values" +
"(" + list[0].HInterID + ",'" + list[0].HBillNo + "'," + list[0].HWHID + ",'" + list[0].HWHName + "'," + list[0].HSPID + ",'" + list[0].HSPName + "'," + list[0].HGroupID + ",'" + list[0].HGroup + "',"
+ list[0].HSourceID + ",'" + list[0].HSource + "','" + list[0].HMaker + "')";
oCN.RunProc(mainSql);
for (int i = 0; i < list.Count; i++)
{
var subSql = "Insert Into Kf_LookingForReturnBillSub " +
"(HWHID,HWHName,HSPID,HSPName,HMTONo,HQty,HMaterID,HMaterName,HMaterNumber,HMaterModel,HBarCode,HGroupID,HGroup,HSourceID,HSource,HCreateBy,HMainItemID)" +
" values" +
"(" + list[i].HWHID + ",'" + list[i].HWHName + "'," + list[i].HSPID + ",'" + list[i].HSPName + "','" + list[i].HMTONo + "'," + list[i].HQty + ","
+ list[i].HMaterID + ",'" + list[i].HMaterName + "','" + list[i].HMaterNumber + "','" + list[i].HMaterModel + "','" + list[i].HBarCode + "',"
+ list[i].HGroupID + ",'" + list[i].HGroup + "'," + list[i].HSourceID + ",'" + list[i].HSource + "','" + list[i].HMaker + "',(select HItemID from Kf_LookingForReturnBillMain where HBillNo = '" + list[i].HBillNo + "'))";
oCN.RunProc(subSql);
var barCodeSql = "update Gy_BarCodeBill set HStatus='" + list[i].HSPName + "-" + list[i].HWHName + "' where HBarCode = '" + list[i].HBarCode + "'";
oCN.RunProc(barCodeSql);
//判断是否是托条码
if (JudgeIsBarCode_s(list[i].HBarCode))
{
//如果是托条码更新托条码中的实物条码
//返回托条码中的实物条码
ds = GetHBarCode_s(list[i].HBarCode);
int HCount = Pub_Class.ClsPub.isInt(ds.Tables[0].Rows.Count);
for (int j = 0; j < HCount; j++)
{
string HSonBarCode = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[j][0]);
var SonBarCodeSql = "update Gy_BarCodeBill set HStatus='" + list[i].HSPName + "-" + list[i].HWHName + "' where HBarCode = '" + HSonBarCode + "'";
oCN.RunProc(SonBarCodeSql);
}
}
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "生成归还单成功!单据号为:" + list[0].HBillNo;
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;
}
}
///
/// 根据仓位二维码带出仓库仓位相关信息
///
///
[Route("LookingFor/getSpName_Json")]
[HttpGet]
public object getSpName_Json(string HBarCode)
{
try
{
string[] sArray = HBarCode.Remove(0, 3).Split(';');
long HSpID = DBUtility.ClsPub.isLong(sArray[1]);
long HWHID = DBUtility.ClsPub.isLong(sArray[0]);
string sWhere = " Where HWHID = " + HWHID + " and HItemID = " + HSpID + "";
ds = getSpName_Json_s(sWhere);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 根据仓库二维码仓库相关信息
///
///
[Route("LookingFor/getWHName_Json")]
[HttpGet]
public object getWHName_Json(string HBarCode)
{
try
{
long HWHID = int.Parse(HBarCode.Remove(0, 3));
string sWhere = " Where HItemID = " + HWHID + "";
ds = getWhName_Json_s(sWhere);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 启用mes仓位,根据老仓库转换成新仓库
///
///
[Route("LookingFor/GetSpNameMES_Json")]
[HttpGet]
public object GetSpNameMES_Json(string HERPWHID)
{
try
{
ds = GetSpNameMES_Json_s(HERPWHID);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 待发区找货根据源单号 返回相关信息
///
///
//[Route("LookingFor/getWaitingLookingFor")]
//[HttpGet]
//public object GetWaitingLookingFor(string HBillType,string HBillNo,string HSourceBillNo,string HCreateBy,string BenginHCreateDate,string EndHCreateDate)
//{
// try
// {
// ds = GetWaitingLookingFor_s(HBillType, HBillNo, HSourceBillNo, HCreateBy, BenginHCreateDate, EndHCreateDate);
// if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
// {
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
// objJsonResult.data = null;
// return objJsonResult;
// }
//}
///
/// 上下架单列表
///
///
[Route("LookingFor/GetLookingForBillList")]
[HttpGet]
public object GetLookingForBillList(string HBillType, string sWhere)
{
try
{
if (HBillType == "ZHXJ")
{
ds = GetLookingForBillListXJ_s(sWhere);
}
else if (HBillType == "ZHSJ")
{
ds = GetLookingForBillListSJ_s(sWhere);
}
else
{
ds = GetLookingForBillList_s(sWhere);
}
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
//销售出库源单查货-根据销售订单查找实物所在库位
[Route("LookingFor/GetSellOutFindSP")]
[HttpGet]
public object GetSellOutFindSP(string HbillNo)//h_p_Xs_SellOutFindSP
{
try
{
ds = GetSellOutFindSP_s(HbillNo);
if (ds == null || ds.Tables[0].Rows.Count <= 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 ex)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region sql语句
public static DataSet getPackUnionBillList_s(string HBarCode_Pack)
{
return new SQLHelper.ClsCN().RunProcReturn("EXEC h_p_Kf_getPackUnionBillList " + "'"+HBarCode_Pack+"'", "h_p_Kf_getPackUnionBillList");
}
public static DataSet getPackUnionBillListDetailed_s(string HBarCode)
{
return new SQLHelper.ClsCN().RunProcReturn("EXEC h_p_Kf_getPackUnionBillListDetailed " + "'" + HBarCode + "'", "h_p_Kf_getPackUnionBillListDetailed");
}
public static DataSet getSellOrderList_s(string HSourceBillNo)
{
//同步销售订单
new SQLHelper.ClsCN().RunProcReturn("EXEC h_p_IFCLD_ERPSourceBillToLocal_SEOrderToICMO '" + HSourceBillNo+ "'", "h_p_IFCLD_ERPSourceBillToLocal_SEOrderToICMO");
string sWhere = " Where HSourceBillNo = '" + HSourceBillNo.Trim() + "'";
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_getSellOrderList_s " + sWhere, "h_v_getSellOrderList_s");
}
public static DataSet getBarCodeDetails_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_getBarCodeDetails_s " + sWhere, "h_v_getBarCodeDetails_s");
}
//根据仓位二维码带出仓库仓位相关信息
public static DataSet getSpName_Json_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select HWHID,* from h_v_IF_StockPlace " + sWhere, "h_v_IF_StockPlace");
}
//根据仓库二维码带出仓库相关信息
public static DataSet getWhName_Json_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_Warehouse " + sWhere, "h_v_IF_Warehouse");
}
//启用mes仓位,根据老仓库转换成新仓库
public static DataSet GetSpNameMES_Json_s(string HERPWHID)
{
return new SQLHelper.ClsCN().RunProcReturn("select HMESWHID,HMESWHNAME from Gy_ERPWHRelationMESWH where HERPWHID = " + HERPWHID + "", "Gy_ERPWHRelationMESWH");
}
//下架找货单列表
public static DataSet GetLookingForBillListXJ_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_lookForBillListXJ ", "h_v_lookForBillListXJ");
}
//上架归还单列表
public static DataSet GetLookingForBillListSJ_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_lookForBillListSJ ", "h_v_lookForBillListSJ");
}
//上下架单列表
public static DataSet GetLookingForBillList_s(string sWhere)
{
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_lookForBillList where 1 = 1 " + sWhere, "h_v_lookForBillList");
}
//判断是否是托条码
public static bool JudgeIsBarCode_s(string HBarCode)
{
DataSet ds;
ds = new SQLHelper.ClsCN().RunProcReturn("Select HBarCodeType from Gy_BarCodeBill WITH (NOLOCK) Where HBarCode='" + HBarCode + "'", "Gy_BarCodeBill");
if (Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0][0]) == "托盘条码")
return true;
else
{
return false;
}
}
//返回托条码中的实物条码
public static DataSet GetHBarCode_s(string HBarCode)
{
return new SQLHelper.ClsCN().RunProcReturn("select HBarCode from Sc_PackUnionBillMain a inner join Sc_PackUnionBillSub b on a.HInterID = b.HInterID Where a.HBarCode_Pack = '" + HBarCode + "'", "Sc_PackUnionBillMain");
}
//根据销售订单查找实物所在库位
public static DataSet GetSellOutFindSP_s(string HbillNo)
{
return new SQLHelper.ClsCN().RunProcReturn("EXEC h_p_Xs_SellOutFindSP '" + HbillNo + "'", "h_p_Xs_SellOutFindSP");
}
//测试专用接口
[Route("LookingFor/Test")]
[HttpGet]
public object Test(string HbillNo)//h_p_Xs_SellOutFindSP
{
DataSet ds;
ds = new SQLHelper.ClsCN().RunProcReturn("EXEC h_p_Xs_SellOutFindSP '" + HbillNo + "'", "h_p_Xs_SellOutFindSP");
if (Pub_Class.ClsPub.isLong(ds.Tables[0].Rows.Count) >= 0 )
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "true!";
objJsonResult.data = ds.Tables[0];//ds.Tables[0].Rows[1][0]
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "false!";
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
}
}