|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Web;
|
|
|
using System.Collections;
|
|
|
using Estsh.Web.Util;
|
|
|
using Estsh.Web.Dal;
|
|
|
using System.Data;
|
|
|
using System.Text;
|
|
|
|
|
|
/***************************************************************************************************
|
|
|
*
|
|
|
* 作者:贾文涛
|
|
|
* 创建时间:2014.07.17
|
|
|
* 描述:成品发运(JIS)业务处理类
|
|
|
* 修改日志:
|
|
|
*
|
|
|
* *************************************************************************************************/
|
|
|
namespace Estsh.Core.Services
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 成品发运(JIS)业务处理类
|
|
|
/// </summary>
|
|
|
public class ShippingJISService
|
|
|
{
|
|
|
private ShippingJISDal dal = new ShippingJISDal(RemotingProxyProvider._remotingProxy);
|
|
|
|
|
|
#region 成品发运(JIS)
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询发运数据
|
|
|
/// </summary>
|
|
|
/// <param name="htReq"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable getShippingData(Hashtable htReq)
|
|
|
{
|
|
|
string endCarNo = Convert.ToString(htReq["endCarNo"]);
|
|
|
string endOrderNo = Convert.ToString(htReq["endOrderNo"]);
|
|
|
string endSeq = Convert.ToString(htReq["endSeq"]);
|
|
|
string useNo = Convert.ToString(htReq["useNo"]);
|
|
|
if (useNo != null && useNo.Equals("2"))
|
|
|
{
|
|
|
endCarNo = dal.getCarNobyOrderNo(endOrderNo, endSeq);
|
|
|
}
|
|
|
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("@endCarNo",endCarNo);
|
|
|
if (endCarNo != null && !endCarNo.Equals(""))
|
|
|
{
|
|
|
DataTable retDt = dal.GetShippingJIS(endCarNo, out result);
|
|
|
if (retDt != null)
|
|
|
{
|
|
|
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(retDt);
|
|
|
result.Add("rows", dataList);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("rows", new ArrayList());
|
|
|
}
|
|
|
if (result.Contains("@startCarNO"))
|
|
|
{
|
|
|
DataTable orderDt = dal.GetOrderNOViaCarNO(result["@startCarNO"].ToString());
|
|
|
if (orderDt != null && orderDt.Rows.Count > 0)
|
|
|
{
|
|
|
result.Add("@startOrderNo", orderDt.Rows[0]["order_no"]);
|
|
|
result.Add("@startSlotNo", orderDt.Rows[0]["slot_no"]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("@retCode","Fail");
|
|
|
result.Add("@retMsg","不能找到此结束单号和序号!");
|
|
|
}
|
|
|
return result;
|
|
|
|
|
|
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 查询车身件订单
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable GetJISCSJOrderNOList()
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
DataTable retDt = dal.QueryCSPartOrder();
|
|
|
if (retDt != null)
|
|
|
{
|
|
|
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(retDt);
|
|
|
result.Add("list", dataList);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询车身件发运数据
|
|
|
/// </summary>
|
|
|
/// <param name="htReq"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable GetShippingCSJ(Hashtable htReq)
|
|
|
{
|
|
|
string csjOrderNo = Convert.ToString(htReq["csjOrderNo"]);
|
|
|
Hashtable result = new Hashtable();
|
|
|
DataTable retDt = dal.GetShippingCSJ(csjOrderNo, out result);
|
|
|
if (retDt != null)
|
|
|
{
|
|
|
ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(retDt);
|
|
|
result.Add("rows", dataList);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("rows", new ArrayList());
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 提交发运数据
|
|
|
/// </summary>
|
|
|
/// <param name="htReq"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable SubmitShippingData(Hashtable htReq)
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
string chkCarNo = Convert.ToString(htReq["chkCarNo"]);
|
|
|
string plateNumber = Convert.ToString(htReq["plateNumber"]);
|
|
|
string shippingOrder = Convert.ToString(htReq["shippingOrder"]);
|
|
|
string factory = Convert.ToString(htReq["factory"]);
|
|
|
string shippingLocateName = Convert.ToString(htReq["shippingLocateName"]);
|
|
|
string shippingDate = Convert.ToString(htReq["shippingDate"]);
|
|
|
string costomCode = Convert.ToString(htReq["costomCode"]);
|
|
|
string endCarNo = Convert.ToString(htReq["endCarNo"]);
|
|
|
string csjOrderNo = Convert.ToString(htReq["csjOrderNo"]);
|
|
|
string startCarNo = Convert.ToString(htReq["startCarNo"]);
|
|
|
|
|
|
string retMsg = "";
|
|
|
retMsg = dal.CheckParamsValid(factory, shippingLocateName, costomCode);
|
|
|
if (!"PASSED".Equals(retMsg))
|
|
|
{
|
|
|
result.Add("@retCode", "Fail");
|
|
|
result.Add("@retMsg", retMsg);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
Hashtable submitData = new Hashtable();
|
|
|
int queryType = 0;
|
|
|
if (chkCarNo != null && chkCarNo.ToLower().Equals("checked"))
|
|
|
{
|
|
|
submitData = GetShippingCSJ(htReq);
|
|
|
queryType = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
submitData = getShippingData(htReq);
|
|
|
queryType = 0;
|
|
|
}
|
|
|
|
|
|
if (submitData != null && submitData.Contains("rows"))
|
|
|
{
|
|
|
ArrayList submitDataList = (ArrayList)submitData["rows"];
|
|
|
if (submitDataList != null && submitDataList.Count > 0)
|
|
|
{
|
|
|
StringBuilder insertSen = new StringBuilder(409600);
|
|
|
|
|
|
string tabName = "WMS_JIS";
|
|
|
string fields = "ZZ_WMSNUM ,ZZ_CARID ,WERKS ,LGORT ,LFDAT ,KUNNR ,MATNR ,LFIMG ,MEINS,ZPOST,ZTIME";
|
|
|
|
|
|
/*
|
|
|
* ,@retCode VARCHAR(10) OUTPUT -- 存储过程返回代码
|
|
|
,@retMsg VARCHAR(512) OUTPUT -- 存储过程返回信息
|
|
|
*/
|
|
|
insertSen.AppendLine(" DECLARE @retCode VARCHAR(10) ");
|
|
|
insertSen.AppendLine(" DECLARE @retMsg VARCHAR(512) ");
|
|
|
insertSen.AppendLine(" DECLARE @ztime VARCHAR(10) ");
|
|
|
insertSen.AppendLine(" SET @ztime = dbo.get_hms(); ");
|
|
|
insertSen.AppendLine(" BEGIN TRY ");
|
|
|
insertSen.AppendLine(" DECLARE @sretCode VARCHAR(10) ");
|
|
|
insertSen.AppendLine(" DECLARE @sretMsg VARCHAR(512) ");
|
|
|
insertSen.AppendLine(" IF EXISTS (SELECT TOP 1 1 FROM WMS_JIS WHERE ZZ_WMSNUM = '" + plateNumber + "') ");
|
|
|
insertSen.AppendLine(" BEGIN ");
|
|
|
insertSen.AppendLine(" SET @sretCode = 'FAILED'; ");
|
|
|
insertSen.AppendLine(" SET @sretMsg = '此发运单号的数据已经上传过。' ");
|
|
|
insertSen.AppendLine(" SELECT @sretCode AS retCode, @sretMsg AS retMsg ");
|
|
|
insertSen.AppendLine(" RETURN; ");
|
|
|
insertSen.AppendLine(" END ");
|
|
|
insertSen.AppendLine(" BEGIN TRAN ");
|
|
|
Hashtable rows = new Hashtable(); ;
|
|
|
for (int rowIdx = 0; rowIdx < submitDataList.Count; rowIdx++)
|
|
|
{
|
|
|
rows.Clear();
|
|
|
rows = (Hashtable)submitDataList[rowIdx];
|
|
|
if (rows["PartNO"].ToString().Length <= 0)
|
|
|
{
|
|
|
result.Add("@retCode", "Fail");
|
|
|
result.Add("@retMsg", "第" + (rowIdx + 1).ToString() + "行的零件号长度为[0]");
|
|
|
return result;
|
|
|
}
|
|
|
if (rows["Unit"].ToString().Length <= 0)
|
|
|
{
|
|
|
result.Add("@retCode", "Fail");
|
|
|
result.Add("@retMsg", "第" + (rowIdx + 1).ToString() + "行的零件单位长度为[0]");
|
|
|
return result;
|
|
|
}
|
|
|
insertSen.AppendLine(" INSERT INTO " + tabName + " (" + fields + ") VALUES (");
|
|
|
insertSen.Append("'" + shippingOrder + "'");
|
|
|
insertSen.Append(",'" + plateNumber + "'");
|
|
|
insertSen.Append(",'" + factory + "'");
|
|
|
insertSen.Append(",'" + shippingLocateName + "'");
|
|
|
insertSen.Append(",'" + shippingDate + "'");
|
|
|
insertSen.Append(",'" + costomCode + "'");
|
|
|
insertSen.Append(",'" + rows["PartNO"].ToString() + "'"); // part_no
|
|
|
insertSen.Append(",'" + rows["Qty"].ToString() + "'"); // qty
|
|
|
insertSen.Append(",'" + rows["Unit"].ToString() + "'"); // UINT
|
|
|
insertSen.Append(",dbo.wms2sap_ymd(dbo.get_ymd()) "); //DATE
|
|
|
insertSen.Append(",dbo.wms2sap_hms(@ztime) "); //DATE
|
|
|
insertSen.Append("); ");
|
|
|
}
|
|
|
insertSen.AppendLine(" UPDATE sys_sn_seed SET value = value + 1 WHERE sn_name = 'SHIPPING_JIS_WSN' ");
|
|
|
if (queryType == 0)
|
|
|
{
|
|
|
insertSen.AppendLine(" UPDATE sys_base SET param_value = '" + endCarNo + "' WHERE param_name = 'SHIPPING_JIS_LastCarNO' ");
|
|
|
}
|
|
|
insertSen.AppendLine(" COMMIT ");
|
|
|
insertSen.AppendLine(" SET @sretCode = 'PASSED'; ");
|
|
|
insertSen.AppendLine(" SET @sretMsg = '所有语句都已执行' ");
|
|
|
insertSen.AppendLine(" END TRY ");
|
|
|
insertSen.AppendLine(" BEGIN CATCH ");
|
|
|
insertSen.AppendLine(" ROLLBACK ");
|
|
|
insertSen.AppendLine(" SET @sretCode = 'FAILED'; ");
|
|
|
insertSen.AppendLine(" SET @sretMsg = ERROR_MESSAGE(); ");
|
|
|
insertSen.AppendLine(" END CATCH ");
|
|
|
insertSen.AppendLine("SELECT @sretCode AS retCode, @sretMsg AS retMsg ");
|
|
|
|
|
|
DataTable resDT;
|
|
|
result = this.dal.ExecMutilSentenceInBatch(insertSen.ToString(), out resDT);
|
|
|
if (result.Contains("@retCode") && result["@retCode"].Equals("PASSED"))
|
|
|
{
|
|
|
if (resDT != null && resDT.Rows.Count > 0)
|
|
|
{
|
|
|
retMsg = resDT.Rows[0]["retMsg"].ToString();
|
|
|
if (!resDT.Rows[0]["retCode"].ToString().StartsWith("PASSED", StringComparison.CurrentCultureIgnoreCase)) //语句执行出错了
|
|
|
{
|
|
|
result.Add("@retCode", "Fail");
|
|
|
result.Add("@retMsg", retMsg);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
retMsg= "数据已向SAP提交成功。";
|
|
|
if (queryType == 1)
|
|
|
{
|
|
|
result = this.dal.UpdateCSJStatus(csjOrderNo, "S", "C");
|
|
|
if (result.Contains("@retCode") && result["@retCode"].ToString().ToUpper().Equals("PASSED"))
|
|
|
{
|
|
|
retMsg += ";更新车身件数据成功(" + result["@retMsg"] + ")";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
retMsg += ";更新车身件数据失败(" + result["@retMsg"] + ")";
|
|
|
}
|
|
|
}
|
|
|
if (queryType == 0)
|
|
|
{
|
|
|
result = this.dal.UpdateZCStatus(startCarNo, endCarNo, "6", "100");
|
|
|
if (result.Contains("@retCode") && result["@retCode"].ToString().ToUpper().Equals("PASSED"))
|
|
|
{
|
|
|
retMsg += ";更新总成发运数据成功(" + result["@retMsg"] + ")";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
retMsg += ";更新总成发运数据失败(" + result["@retMsg"] + ")";
|
|
|
}
|
|
|
}
|
|
|
if (result.Contains("@retMsg"))
|
|
|
{
|
|
|
result.Remove("@retMsg");
|
|
|
result.Add("@retMsg", retMsg);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("@retMsg", retMsg);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("@retCode", "Fail");
|
|
|
result.Add("@retMsg", "已提交完成或待提交的数据为空!请重新查询数据!");
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
#endregion
|
|
|
}
|
|
|
} |