using ChangKeTec.Utils ;
using DBUtility ;
using Newtonsoft.Json ;
using Newtonsoft.Json.Converters ;
using System ;
using System.Collections.Generic ;
using System.Configuration ;
using System.Data ;
using System.Reflection ;
using System.Security.Cryptography ;
using System.Text ;
using Tools ;
using WebService.Model ;
namespace Webservice
{
public class Function
{
public static readonly string app_id = "9b38d8d9-af87-49d2-a0a1-87516c86f254" ;
public static readonly string app_secret = "422f5bd0-0393-408b-9024-a98f8c6367a4" ;
/// <summary>
/// 判断AppID是否合法
/// </summary>
/// <param name="app_id"></param>
/// <returns></returns>
public static bool AppIDIsRight ( string app_id )
{
if ( app_id . Trim ( ) ! = Function . app_id . Trim ( ) )
{
return false ;
}
else
{
return true ;
}
}
public static string MD5Encryption ( string str )
{
try
{
if ( ! string . IsNullOrWhiteSpace ( str ) )
{
byte [ ] result = Encoding . Default . GetBytes ( str ) ; //tbPass为输入密码的文本框
MD5 md5 = new MD5CryptoServiceProvider ( ) ;
byte [ ] output = md5 . ComputeHash ( result ) ;
return BitConverter . ToString ( output ) . Replace ( "-" , "" ) ;
}
else
{
return string . Empty ;
}
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
return string . Empty ;
}
}
/// <summary>
/// 传入的参数是否合法
/// </summary>
/// <param name="param"></param>
/// <param name="sign"></param>
/// <returns></returns>
public static bool signIsRight ( string [ ] param , string sign )
{
bool res ;
string str = "" ;
if ( param . Length > 0 )
{
foreach ( string s in param )
{
str + = s . Trim ( ) ;
}
}
string getMd5 = MD5Encryption ( str ) ;
if ( getMd5 ! = sign )
{
res = false ;
}
else
{
res = true ;
}
return res ;
}
public static DataTable GetInfoByParticles ( string stockNo , string partNo , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
if ( ! string . IsNullOrWhiteSpace ( stockNo ) )
{
string sql = @ "
select * from tb_Product where StockNo = ' " + stockNo + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
}
else if ( ! string . IsNullOrWhiteSpace ( partNo ) )
{
string sql = @ "
select * from tb_Product where PartNo = ' " + partNo + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
}
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
public static bool QueryIsBind ( string particleCode , string drumCode , out string errorReason , out int flag )
{
try
{
string [ ] part = particleCode . Split ( '.' ) ;
string newpartNo = part [ 0 ] ;
#region 2021-04-12 wff新增 同一种料可以加,不同种料提示先解绑
string sql3 = " select top 1 * from tb_CylinderAndRaw where DrumBarCode='" + drumCode + "' and Time2 is null order by Time1 desc" ;
DataTable dt1 = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql3 , null ) ;
if ( dt1 ! = null & & dt1 . Rows . Count > 0 )
{
string [ ] aa = dt1 . Rows [ 0 ] [ "BarCode" ] . ToString ( ) . Split ( '.' ) ;
string oldpartNo = aa [ 0 ] ;
if ( newpartNo = = oldpartNo )
{
#region 2021-04-19续料的时候将之前的解绑并增加新记录续料状态(Flang=1)
string sql_2 = " update tb_CylinderAndRaw set Time2 = getdate() where DrumBarCode = '" + drumCode . Trim ( ) + "' and Time2 is null " ;
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql_2 , null ) ;
#endregion
errorReason = "" ;
flag = 1 ;
return false ;
}
errorReason = " 料筒" + drumCode + "中已绑定" + oldpartNo + "的塑料粒子,请先做解绑操作!" ;
flag = 0 ;
return true ;
}
errorReason = "" ;
flag = 0 ;
return false ;
#endregion
#region 2021-04-12wff注销
//string sql = " SELECT * FROM tb_StationAndCylinder WHERE CylinderID = ( SELECT CylinderID from tb_Cylinder WHERE CylinderNo = ('" + drumCode + "') ) and Time2 is null ";
//DataTable dt = SqlHelper.GetDataDateTable(SqlHelper.SqlConnString, CommandType.Text, sql, null);
//if (dt != null && dt.Rows.Count > 0)
//{
// errorReason = " 料筒" + drumCode + "已绑定了塑料粒子与注塑机,请先做解绑操作!";
// return true;
//}
//else
//{
//}
//string sql_2 = " update tb_CylinderAndRaw set Time2 = getdate() where DrumBarCode = '" + drumCode.Trim() + "' and Time2 is null ";
//SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnString, CommandType.Text, sql_2, null);
//errorReason = "";
//return false;
#endregion
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . ToString ( ) ;
flag = 0 ;
return true ;
}
}
/// <summary>
/// 绑定塑料粒子与料筒
/// </summary>
/// <param name="particleCode">塑料粒子</param>
/// <param name="drumCode">料筒</param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static int BindparticleCodeAndDrum ( string particleCode , string drumCode , int flag , out string errorReason )
{
int res = 0 ;
try
{
string sql = @ "
insert into tb_CylinderAndRaw ( ID , CylinderID , DrumBarCode , BarCode , Time1 , Flag )
values ( ( select newid ( ) ) , ( select CylinderID from tb_Cylinder where CylinderNo = ' " + drumCode + @" ' ) , ' " + drumCode + @" ' ,
' " + particleCode + @" ' , ( select getdate ( ) ) , "+ flag+ @" )
";
res = SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
/// <summary>
/// 注塑机号(即工位号)
/// </summary>
/// <param name="machineCode"></param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static DataTable GetPlan ( string machineCode , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "
select top 1 ProductName as [ Plan ] from tb_Product where StockNo in (
select top 1 StockNo from tb_InjectionPlan where StationID = (
select StationID from tb_Station where StationNo = ' " + machineCode + @" ' )
AND ( IsFinish IS NULL OR IsFinish = 0 )
ORDER BY BeginTime ASC
)
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( res = = null | | res . Rows . Count < 1 )
{
string sql2 = @ " select top 1 ProductName as [Plan] from tb_Product where PartNo in (
select top 1 PartNo from tb_InjectionPlan where StationID = (
select StationID from tb_Station where StationNo = ' " + machineCode + @" ' )
AND ( IsFinish IS NULL OR IsFinish = 0 )
ORDER BY BeginTime ASC
)
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql2 , null ) ;
}
if ( res ! = null & & res . Rows . Count > 0 )
{
errorReason = "" ;
}
else
{
errorReason = "根据注塑机号查询不到信息,请查看是否维护生产计划" ;
}
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
public static DataTable GetMaterialInfo ( string drumCode , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "
select top 1 BarCode from tb_CylinderAndRaw where DrumBarCode = ' " + drumCode + @" ' and Time2 is null order by Time1 desc
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
/// <summary>
/// 绑定注塑机与料筒
/// </summary>
/// <param name="machineCode">注塑机(实际传的是工位号,一个工位就是一个注塑机)</param>
/// <param name="drumCode">料筒</param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static int BindMachineAndDrum ( string machineCode , string drumCode , out string errorReason )
{
int res = 0 ;
try
{
#region 查询当前注塑机计划生产的产品与料筒中的原料是否有对应关系,如果不匹配则不能绑定
string particlePartNo = "" ;
string productPartNo = "" ;
string sqlGetproductPartNo = @ "
SELECT partNo
FROM tb_Product
WHERE StockNo = (
SELECT TOP 1 StockNo
FROM tb_InjectionPlan
WHERE StationID = (
SELECT StationID FROM tb_Station WHERE StationNo = ' " + machineCode + @" '
)
AND ( IsFinish IS NULL OR IsFinish = 0 )
ORDER BY BeginTime
)
";
object aa = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sqlGetproductPartNo , null ) ;
if ( aa ! = null )
{
productPartNo = aa . ToString ( ) ;
}
string sqlGetparticlePartNo = @ "
SELECT TOP 1 BarCode , Time1
FROM tb_CylinderAndRaw
WHERE DrumBarCode = ' " + drumCode + @" '
AND Time2 IS NULL
ORDER BY Time1 DESC
";
DataTable bb = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sqlGetparticlePartNo , null ) ;
if ( bb ! = null & & bb . Rows . Count > 0 )
{
string stockNo = "" ;
string partNo = "" ;
string batchNo = "" ;
GetCode ( bb . Rows [ 0 ] [ "BarCode" ] . ToString ( ) , out stockNo , out batchNo , out partNo ) ;
particlePartNo = partNo ;
#region 2022-04-11 wff增加烘干时间不足两小时不允许料筒和机台绑定
if ( TimeDiff ( Convert . ToDateTime ( bb . Rows [ 0 ] [ "Time1" ] . ToString ( ) ) , DateTime . Now ) < 7 2 0 0 )
{
res = 0 ;
errorReason = "原料烘干未达到两个小时,无法绑定注塑机" ;
return res ;
}
#endregion
}
string sqlGetProductAndMetiral = @" SELECT * FROM tb_Bom WHERE PartNo1 = '" + productPartNo + @"' AND PartNo2 = '" + particlePartNo + @"' " ;
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sqlGetProductAndMetiral , null ) ;
LogHelper . WriteSysLogBase ( "APP【绑定注塑机与料筒】machineCode:" + machineCode + ",drumCode:" + drumCode + ",产品:" + productPartNo + ",原料:" + particlePartNo , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
#region 先解绑之前的注塑机与料筒
string sql_unBind = " update tb_StationAndCylinder set Time2 = getdate() where StationID = (select StationID from tb_Station where StationNo = '" + machineCode + @"') " ;
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql_unBind , null ) ;
#endregion
#region 绑定注塑机与料筒
string sql = @ "
insert into tb_StationAndCylinder ( ID , StationID , CylinderID , Time1 )
values ( ( select newid ( ) ) , ( select StationID from tb_Station where StationNo = ' " + machineCode + @" ' ) ,
( select CylinderID from tb_Cylinder where CylinderNo = ' " + drumCode + @" ' ) ,
( select getdate ( ) ) )
";
res = SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
#endregion
}
else
{
res = 0 ;
errorReason = "当前注塑机生产产品与料筒的原料不匹配" ;
}
#endregion
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
/// <summary>
/// 解绑料筒的绑定关系
/// </summary>
/// <param name="drumCode"></param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static int ClearDrum ( string drumCode , out string errorReason )
{
int res = 0 ;
try
{
string sql = @ "
update tb_CylinderAndRaw set Time2 = ( select getdate ( ) )
where CylinderID = ( select CylinderID from tb_Cylinder where CylinderNo = ' " + drumCode + @" ' )
and Time2 is null ;
update tb_StationAndCylinder set Time2 = ( select getdate ( ) )
where CylinderID = ( select CylinderID from tb_Cylinder where CylinderNo = ' " + drumCode + @" ' )
and Time2 is null ;
";
res = SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . Message ;
return res ;
}
}
#region 工具
/// <summary>
/// 解析条码(一维码返回存货代码,二维码返回零件号)
/// </summary>
/// <param name="code">条码</param>
/// <param name="stockNo">存货代码</param>
/// <param name="batchNo">批次</param>
/// /// <param name="partNo">零件号</param>
public static void GetCode ( string code , out string stockNo , out string batchNo , out string partNo )
{
//解析塑料粒子条码,长度为20的为一维码22000000821906090201,否则为二维码
//二维码样例Z-340.180411.000001;5000;S35001;20180411;P1710401.[#Line#];180411;
//第一个分号之前的数据,即Z-340.180411.000001; Z-340为零件号,180411为批次号,000001为流水号
//一维码前十位为零件号,tb_Product PartNo,11~16位为批次
stockNo = "" ; //存货代码
batchNo = "" ; //批次
partNo = "" ; //零件号
try
{
if ( code . Contains ( "." ) = = false )
{
//一维码
if ( code . Length > 9 )
{
stockNo = code . Substring ( 0 , 1 0 ) ;
batchNo = code . Substring ( 1 0 , 6 ) ;
}
}
else
{
//二维码
string [ ] strs = code . Split ( ';' ) ;
if ( strs . Length > 0 )
{
string str = strs [ 0 ] ;
string [ ] props = str . Split ( '.' ) ;
if ( props . Length > = 3 )
{
partNo = props [ 0 ] ;
batchNo = props [ 1 ] ;
}
}
}
}
catch ( Exception ex )
{
stockNo = "" ; //存货代码
batchNo = "" ; //批次
partNo = "" ; //零件号
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
}
}
/// <summary>
/// 转换字符串编码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string EncodingStr ( String str )
{
Encoding utf8 = Encoding . UTF8 ;
Encoding defaultCode = Encoding . Default ;
byte [ ] utf8Bytes = defaultCode . GetBytes ( str ) ;
byte [ ] defaultBytes = Encoding . Convert ( utf8 , defaultCode , utf8Bytes ) ;
char [ ] defaultChars = new char [ defaultCode . GetCharCount ( defaultBytes , 0 , defaultBytes . Length ) ] ;
defaultCode . GetChars ( defaultBytes , 0 , defaultBytes . Length , defaultChars , 0 ) ;
return new string ( defaultChars ) ;
}
#endregion
#region WMS接口
/// <summary>
/// 根据条码查询产线ID
/// lx 20190610
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static DataTable GetLineIDByBarcode ( string barcode )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ " SELECT [StationID]
, [ LineID ]
FROM tb_Station
WHERE StationID = ( SELECT TOP 1 StationID
FROM tb_BarCode
WHERE BarCode = ' " + barcode + @" ' ) ";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
/// <summary>
/// 根据产线ID查询工厂ID
/// lx 20190610
/// </summary>
/// <param name="lineID"></param>
/// <returns></returns>
public static DataTable GetFactoryIDByLineId ( string lineID )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ " SELECT FactoryID
FROM tb_Place
WHERE PlaceID = (
SELECT PlaceID FROM tb_Line WHERE LineID = ' " + lineID + @" '
) ";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
/// <summary>
/// 根据id查询指定值
/// </summary>
/// <param name="id"></param>
/// <param name="name"></param>
/// <returns></returns>
public static string GetNoByID ( string id , string name )
{
string res = "" ;
try
{
string queryName = "" ;
string tableName = "" ;
switch ( name . ToLower ( ) . Trim ( ) )
{
case "lineid" :
queryName = " LineName " ;
tableName = " tb_Line " ;
break ;
case "factoryid" :
queryName = " FactoryName " ;
tableName = " tb_Factory " ;
break ;
}
string sql = @" select " + queryName + " from " + tableName + " where " + name + " = '" + id + "' " ;
res = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) . ToString ( ) ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
public static string WMSSpraying ( string barcode , int isPass , string stcokNo , string partNo , string batchNo )
{
JsonModel < NoModel > model = new JsonModel < NoModel > ( ) ;
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "" ;
model . DataList = null ;
try
{
#region 目前全部存储一维码,将二维码转换为一维码
if ( barcode . Contains ( "." ) )
{
barcode = Function . TransToBarCodeOne ( barcode ) ;
}
#endregion
#region 查看是否已入库,已入库的不允许再入库
if ( IsStockIn ( barcode ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "已入库,不能再次入库" ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
#endregion
#region 查状态,看是否还不合格,不合格的不允许入库
if ( isPass = = 1 )
{
if ( ! barcodeStatus ( barcode ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "产品检验不合格,不能入库" ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
}
#endregion
#region 转换零件号
string lu_code = "" , colorCode = "" ;
LogHelper . WriteSysLogBase ( "【转换零件号】:barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( Function . IsBens ( barcode . Substring ( 0 , 1 0 ) ) )
{
#region 奔驰件
if ( string . IsNullOrWhiteSpace ( partNo ) )
{
string sql_p = @" select partNo from tb_Product where StockNo = '" + stcokNo + @"' " ;
object pp = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_p , null ) ;
if ( pp ! = null )
{
partNo = pp . ToString ( ) ;
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "根据存货代码找不到零件号!" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
}
if ( ! string . IsNullOrWhiteSpace ( partNo ) )
{
if ( partNo . Contains ( "-P" ) )
{
lu_code = partNo . Remove ( partNo . IndexOf ( '-' ) ) ;
}
else
{
lu_code = partNo ;
}
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "的零件号为空,请维护零件号!" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
string sql_ins = " select top 1 productInfo from tb_InspectResult where barcode = '" + barcode . Trim ( ) + @"' and productInfo <> '' order by createTime desc " ;
object proInfo = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_ins , null ) ;
string info = "" ;
if ( proInfo ! = null )
{
info = proInfo . ToString ( ) ;
}
if ( ! string . IsNullOrWhiteSpace ( info ) )
{
LogHelper . WriteSysLogBase ( "【获取产品信息】:barcode:" + barcode + ",info:" + info , MethodBase . GetCurrentMethod ( ) . Name ) ;
string [ ] str = info . Split ( ',' ) ;
if ( str . Length > = 3 )
{
lu_code + = "-" + str [ 2 ] . Trim ( ) ;
}
}
else
{
LogHelper . WriteSysLogBase ( "【查询老外库颜色】:barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_color = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode.Trim() + @" ' ;
SELECT top 1 Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
order by TimeStamp desc
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ConnectionString ;
DataTable dtColor = SqlHelper . GetDataDateTable ( sqlConnString , CommandType . Text , sql_color , null ) ;
if ( dtColor ! = null & & dtColor . Rows . Count > 0 )
{
string color = dtColor . Rows [ 0 ] [ 0 ] . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( color ) )
{
string sql_colorCode = @" SELECT ColorNo FROM tb_Color WHERE ColorCode = '" + color + @"' " ;
DataTable dtColorCode = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql_colorCode , null ) ;
if ( dtColorCode ! = null & & dtColorCode . Rows . Count > 0 )
{
lu_code + = "-" + dtColorCode . Rows [ 0 ] [ 0 ] . ToString ( ) ;
}
}
}
}
#region 判断是否附加了颜色,没有则报错
LogHelper . WriteSysLogBase ( "【判断是否附加了颜色】barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( ! lu_code . Contains ( "-" ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "喷涂上线查找不到颜色,无法入库" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
#endregion
#endregion
}
else
{
#region 非奔驰
string sql_ins = " select top 1 productInfo from tb_InspectResult where barcode = '" + barcode . Trim ( ) + @"' and productInfo <> '' order by createTime desc " ;
object proInfo = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_ins , null ) ;
string info = "" ;
if ( proInfo ! = null )
{
info = proInfo . ToString ( ) ;
}
if ( ! string . IsNullOrWhiteSpace ( info ) )
{
string [ ] str = info . Split ( ',' ) ;
if ( str . Length > = 3 )
{
colorCode = str [ 2 ] . Trim ( ) ;
}
}
else
{
LogHelper . WriteSysLogBase ( "【查询老外库颜色】:barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_color = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode.Trim() + @" ' ;
SELECT Setvalue_BC_Color_No , , [ Setvalue_CC_Color_No ] , [ Setvalue_PR_Color_No ]
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ConnectionString ;
DataTable dtColor = SqlHelper . GetDataDateTable ( sqlConnString , CommandType . Text , sql_color , null ) ;
if ( dtColor ! = null & & dtColor . Rows . Count > 0 )
{
string bc_color = dtColor . Rows [ 0 ] [ "Setvalue_BC_Color_No" ] . ToString ( ) ;
string cc_color = dtColor . Rows [ 0 ] [ "Setvalue_CC_Color_No" ] . ToString ( ) ;
string pr_color = dtColor . Rows [ 0 ] [ "Setvalue_PR_Color_No" ] . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( bc_color ) )
{
string sql_colorCode = @" SELECT ColorNo FROM tb_Color WHERE ColorCode = '" + bc_color + @"' and ColorQQCode='" + cc_color + @"' and ColorDQCode='" + pr_color + @"'" ;
DataTable dtColorCode = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql_colorCode , null ) ;
if ( dtColorCode ! = null & & dtColorCode . Rows . Count > 0 )
{
colorCode = dtColorCode . Rows [ 0 ] [ "ColorNo" ] . ToString ( ) ;
}
}
}
}
string sql = @"select PaintNo from tb_StockToPaintNo where StockNo='" + barcode . Substring ( 0 , 1 0 ) + @"' and PaintCode='" + colorCode + @"'" ;
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
lu_code = dt . Rows [ 0 ] [ "PaintNo" ] . ToString ( ) ;
}
if ( string . IsNullOrWhiteSpace ( lu_code ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "喷涂上线查找不到颜色,无法入库" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
#endregion
}
#endregion
#region 组织参数
List < WMS03Model > list = new List < WMS03Model > ( ) ;
WMS03Model wmsM = new WMS03Model ( ) ;
wmsM . BarCode = barcode ;
wmsM . WmsBarCode = "" ;
wmsM . LU_Code = lu_code ;
wmsM . Batch = batchNo ;
wmsM . Q_level = "" ;
wmsM . CreationTime = DateTime . Now ;
wmsM . IsOk = isPass ;
wmsM . Ok_Status = isPass . ToString ( ) ;
wmsM . FactoryId = 0 ;
wmsM . LineId = 0 ;
wmsM . WmsRead = 1 ;
wmsM . ReadTime = null ;
wmsM . Remark = "" ;
#region 产线及工厂ID
//DataTable dt = new DataTable();
//dt = Function.GetLineIDByBarcode(barcode); //注塑才能查Barcode表
//if (dt != null && dt.Rows.Count > 0)
//{
// int lineID = 0;
// Int32.TryParse(Function.GetNoByID(dt.Rows[0]["LineID"].ToString(), "LineID"), out lineID);
// wmsM.LineId = lineID;
// DataTable dtFac = Function.GetFactoryIDByLineId(dt.Rows[0]["LineID"].ToString());
// if (dtFac != null && dtFac.Rows.Count > 0)
// {
// int facID = 0;
// Int32.TryParse(Function.GetNoByID(dtFac.Rows[0]["FactoryID"].ToString(), "FactoryID"), out facID);
// wmsM.FactoryId = facID;
// }
//}
LogHelper . WriteSysLogBase ( "【添加产线ID】barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
string lineid = ConfigurationManager . AppSettings [ "LineID" ] . ToString ( ) . Trim ( ) ;
int lineId = 0 ;
Int32 . TryParse ( lineid , out lineId ) ;
wmsM . LineId = lineId ;
#endregion
list . Add ( wmsM ) ;
#endregion
#region 调用WMS接口前记录数据
string sql_bf = @ " INSERT INTO [tb_StockIn_beif]
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, ' " + isPass + @" '
, ( select getdate ( ) ) ) ";
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql_bf , null ) ;
#endregion
#region 调用WMS Web Service
WebService . WebReference . JsonService webService = new WebService . WebReference . JsonService ( ) ;
webService . Url = ConfigurationManager . AppSettings [ "WMSWebServiceURL" ] . ToString ( ) ;
webService . Timeout = 1 2 0 0 0 0 0 ;
string jsonParam = " [{\"ServiceType\":\"AddMesData\",\"OperName\":\"ADMIN\"}]" ;
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter ( ) ;
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter . DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" ;
//timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd";
string strJson = "[25," + JsonConvert . SerializeObject ( list , Formatting . Indented , timeConverter ) + "]" ;
//string strJson = "[25," + JsonHelper.<List<WMS03Model>>(list) + "]";
#endregion
#region 调用,返回结果
LogHelper . WriteSysLogBase ( "条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string res = webService . AddData ( jsonParam , strJson ) ;
LogHelper . WriteSysLogBase ( "条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "返回结果:" + res + "返回结果时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
//LogHelper.WriteSysLogBase("条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "返回结果:" + res, MethodBase.GetCurrentMethod().Name);
#region 调用是否成功,若成功则存入数据库,WMS调用成功则无返回结果
if ( res . ToUpper ( ) = = "TRUE" )
{
string sql = @ " INSERT INTO [tb_StockIn]
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] , paintCode )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, ' " + isPass.ToString() + @" '
, ' " + wmsM.CreationTime + @" '
, ' " + wmsM.LU_Code + @" '
) ";
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
model . Result = "1" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = " 成功" ;
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = res ;
}
#endregion
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
#endregion
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
model . ErrReason = ex . Message ;
return JSONTools . ScriptSerialize < JsonModel < NoModel > > ( model ) ;
}
}
public static string WMSSprayingReturnNo ( string barcode , int isPass , string stcokNo , string partNo , string batchNo , string userName )
{
JsonModel < PartInfoModel > model = new JsonModel < PartInfoModel > ( ) ;
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "" ;
model . DataList = null ;
try
{
#region 目前全部存储一维码,将二维码转换为一维码
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换一维码开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( barcode . Contains ( "." ) )
{
barcode = Function . TransToBarCodeOne ( barcode ) ;
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换一维码结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
#region 查看是否已入库,已入库的不允许再入库
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查看是否已入库开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( IsStockIn ( barcode ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "已入库,不能再次入库" ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查看是否已入库结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
#region 根据条码查找喷涂线,看线上是否出现过此条码,没有则返回错误--注销 20190728
//if (!barcode.Contains(".") && barcode.Length > 4)
//{
// string strCode = barcode.Substring(barcode.Length - 4, 4);
// int num = 0;
// Int32.TryParse(strCode, out num);
// if (num < 7000)
// {
// if (!ExistInLine(barcode))
// {
// model.Result = "0";
// model.ResultType = "Result";
// model.ResultRowsCount = "0";
// model.ErrReason = "喷涂上线查找不到该条码,无法进行质量判定,请补打条码";
// return JSONTools.ScriptSerialize<JsonModel<NoModel>>(model);
// }
// }
//}
#endregion
#region 没有进行质量判定,不允许入库
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",是否进行过质检判定开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( ! exsitInspectResult ( barcode ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "没有进行质量判定,不能入库" ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",是否进行过质检判定调用结束时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
#region 查状态,看是否还不合格,不合格的不允许入库
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查看合格状态开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( isPass = = 1 )
{
if ( ! barcodeStatus ( barcode ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = "产品检验不合格,不能入库" ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查看合格状态结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
#region 转换零件号
string lu_code = "" , colorCode = "" ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( Function . IsBens ( barcode . Substring ( 0 , 1 0 ) ) )
{
#region 奔驰产品
if ( string . IsNullOrWhiteSpace ( partNo ) )
{
string sql_p = @" select partNo from tb_Product where StockNo = '" + stcokNo + @"' " ;
object pp = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_p , null ) ;
if ( pp ! = null )
{
partNo = pp . ToString ( ) ;
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "根据存货代码找不到零件号!" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
}
if ( ! string . IsNullOrWhiteSpace ( partNo ) )
{
if ( partNo . Contains ( "-" ) )
{
lu_code = partNo . Remove ( partNo . IndexOf ( '-' ) ) ;
}
else
{
lu_code = partNo ;
}
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "的零件号为空,请维护零件号!" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号获取productinfo开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_ins = " select top 1 productInfo from tb_InspectResult where barcode = '" + barcode . Trim ( ) + @"' and productInfo <> '' order by createTime desc " ;
object proInfo = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_ins , null ) ;
string info = "" ;
if ( proInfo ! = null )
{
info = proInfo . ToString ( ) ;
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号获取productinfo结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( ! string . IsNullOrWhiteSpace ( info ) )
{
LogHelper . WriteSysLogBase ( "【获取产品信息】:barcode:" + barcode + ",info:" + info , MethodBase . GetCurrentMethod ( ) . Name ) ;
string [ ] str = info . Split ( ',' ) ;
if ( str . Length > = 3 )
{
lu_code + = "-" + str [ 2 ] . Trim ( ) ;
}
}
else
{
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号查询老外库颜色开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_color = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode.Trim() + @" ' ;
SELECT top 1 Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
order by TimeStamp desc
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ConnectionString ;
DataTable dtColor = SqlHelper . GetDataDateTable ( sqlConnString , CommandType . Text , sql_color , null ) ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号查询老外库颜色结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( dtColor ! = null & & dtColor . Rows . Count > 0 )
{
string color = dtColor . Rows [ 0 ] [ 0 ] . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( color ) )
{
string sql_colorCode = @" SELECT ColorNo FROM tb_Color WHERE ColorCode = '" + color + @"' " ;
DataTable dtColorCode = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql_colorCode , null ) ;
if ( dtColorCode ! = null & & dtColorCode . Rows . Count > 0 )
{
lu_code + = "-" + dtColorCode . Rows [ 0 ] [ 0 ] . ToString ( ) ;
}
}
}
}
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",转换零件号结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#region 判断是否附加了颜色,没有则报错
LogHelper . WriteSysLogBase ( "【判断是否附加了颜色】barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( ! lu_code . Contains ( "-" ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "喷涂上线查找不到颜色,无法入库" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
#endregion
#endregion
}
else
{
#region 非奔驰
string sql_ins = " select top 1 productInfo from tb_InspectResult where barcode = '" + barcode . Trim ( ) + @"' and productInfo <> '' order by createTime desc " ;
object proInfo = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_ins , null ) ;
string info = "" ;
if ( proInfo ! = null )
{
info = proInfo . ToString ( ) ;
}
if ( ! string . IsNullOrWhiteSpace ( info ) )
{
string [ ] str = info . Split ( ',' ) ;
if ( str . Length > = 3 )
{
colorCode = str [ 2 ] . Trim ( ) ;
}
}
else
{
LogHelper . WriteSysLogBase ( "【查询老外库颜色】:barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_color = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode.Trim() + @" ' ;
SELECT top 1 Setvalue_BC_Color_No , , [ Setvalue_CC_Color_No ] , [ Setvalue_PR_Color_No ]
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
order by TimeStamp desc
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ConnectionString ;
DataTable dtColor = SqlHelper . GetDataDateTable ( sqlConnString , CommandType . Text , sql_color , null ) ;
if ( dtColor ! = null & & dtColor . Rows . Count > 0 )
{
string bc_color = dtColor . Rows [ 0 ] [ "Setvalue_BC_Color_No" ] . ToString ( ) ;
string cc_color = dtColor . Rows [ 0 ] [ "Setvalue_CC_Color_No" ] . ToString ( ) ;
string pr_color = dtColor . Rows [ 0 ] [ "Setvalue_PR_Color_No" ] . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( bc_color ) )
{
string sql_colorCode = @" SELECT ColorNo FROM tb_Color WHERE ColorCode = '" + bc_color + @"' and ColorQQCode='" + cc_color + @"' and ColorDQCode='" + pr_color + @"'" ;
DataTable dtColorCode = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql_colorCode , null ) ;
if ( dtColorCode ! = null & & dtColorCode . Rows . Count > 0 )
{
colorCode = dtColorCode . Rows [ 0 ] [ "ColorNo" ] . ToString ( ) ;
}
}
}
}
string sql = @"select PaintNo from tb_StockToPaintNo where StockNo='" + barcode . Substring ( 0 , 1 0 ) + @"' and PaintCode='" + colorCode + @"'" ;
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
lu_code = dt . Rows [ 0 ] [ "PaintNo" ] . ToString ( ) ;
}
if ( string . IsNullOrWhiteSpace ( lu_code ) )
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = barcode + "喷涂上线查找不到颜色,无法入库" ;
model . DataList = null ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
#endregion
}
#endregion
#region 组织参数
List < WMS03Model > list = new List < WMS03Model > ( ) ;
WMS03Model wmsM = new WMS03Model ( ) ;
wmsM . BarCode = barcode ;
wmsM . WmsBarCode = "" ;
wmsM . LU_Code = lu_code ;
wmsM . Batch = batchNo ;
wmsM . Q_level = "" ;
wmsM . CreationTime = DateTime . Now ;
wmsM . IsOk = isPass ;
wmsM . Ok_Status = isPass . ToString ( ) ;
wmsM . FactoryId = 0 ;
wmsM . LineId = 0 ;
wmsM . WmsRead = 1 ;
wmsM . ReadTime = null ;
wmsM . Remark = "" ;
#region 产线及工厂ID
LogHelper . WriteSysLogBase ( "【添加产线ID】barcode:" + barcode , MethodBase . GetCurrentMethod ( ) . Name ) ;
string lineid = ConfigurationManager . AppSettings [ "LineID" ] . ToString ( ) . Trim ( ) ;
int lineId = 0 ;
Int32 . TryParse ( lineid , out lineId ) ;
wmsM . LineId = lineId ;
#endregion
list . Add ( wmsM ) ;
#endregion
#region 调用WMS接口前记录数据
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",调用WMS接口前记录数据开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_bf = @ " INSERT INTO [tb_StockIn_beif]
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, ' " + isPass.ToString() + @" '
, ( select getdate ( ) ) ) ";
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql_bf , null ) ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",调用WMS接口前记录数据结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
#region 调用WMS Web Service
WebService . WebReference . JsonService webService = new WebService . WebReference . JsonService ( ) ;
webService . Url = ConfigurationManager . AppSettings [ "WMSWebServiceURL" ] . ToString ( ) ;
webService . Timeout = 1 2 0 0 0 0 0 ;
string jsonParam = " [{\"ServiceType\":\"AddMesData\",\"OperName\":\"ADMIN\"}]" ;
//string strJson = "[25," + JSONTools.ScriptSerialize<List<WMS03Model>>(list) + "]";
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter ( ) ;
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter . DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" ;
//timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd";
string strJson = "[25," + JsonConvert . SerializeObject ( list , Formatting . Indented , timeConverter ) + "]" ;
#endregion
#region 调用,返回结果
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string res = webService . AddData ( jsonParam , strJson ) ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "返回结果:" + res + "返回结果时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#region 调用是否成功,若成功则存入数据库,WMS调用成功则无返回结果
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",记录StockIn表开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
if ( res . ToUpper ( ) = = "TRUE" )
{
string sql = @ " INSERT INTO [tb_StockIn]
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] , paintCode , UserName )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, ' " + isPass.ToString() + @" '
, ' " + wmsM.CreationTime + @" '
, ' " + wmsM.LU_Code + @" '
, ' " + userName + @" '
) ";
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",记录StockIn表结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
List < PartInfoModel > modelL = new List < PartInfoModel > ( ) ;
PartInfoModel modelp = new PartInfoModel ( ) ;
modelp . PartNo = lu_code ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查询ProductName开始调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string sql_q = @" select ProductName from tb_Product where PartNo = '" + lu_code + @"' " ;
object aa = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql_q , null ) ;
if ( aa ! = null )
{
modelp . ProductName = aa . ToString ( ) ;
}
modelL . Add ( modelp ) ;
LogHelper . WriteSysLogBase ( "WMS接口:条码:" + barcode + ",查询ProductName结束调用时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
model . DataList = modelL ;
model . Result = "1" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "1" ;
model . ErrReason = " 成功" ;
}
else
{
model . Result = "0" ;
model . ResultType = "Result" ;
model . ResultRowsCount = "0" ;
model . ErrReason = res ;
}
#endregion
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
#endregion
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
model . ErrReason = ex . Message ;
return JSONTools . ScriptSerialize < JsonModel < PartInfoModel > > ( model ) ;
}
}
/// <summary>
/// 将二维码转换成相应一维码
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
// public static string TransToBarCodeOne(string barcode)
// {
// string res = "";
// try
// {
// string sql = @"
// SELECT TOP 1 OneBarCode FROM tb_BarCode WHERE BarCode = '"+ barcode +@"'
// ";
// object aa = SqlHelper.ExecuteScalar(SqlHelper.SqlConnString, CommandType.Text, sql, null);
// if (aa != null)
// {
// res = aa.ToString();
// }
// return res;
// }
// catch (Exception ex)
// {
// LogHelper.WriteLogManager(ex);
// LogHelper.WriteErrLogBase(ex.ToString(), MethodBase.GetCurrentMethod().Name);
// return res;
// }
// }
public static string TransToBarCodeOne ( string barcode )
{
string res = "" ;
try
{
string sql = @ "
SELECT TOP 1 OneBarCode FROM tb_BarCode WHERE BarCode = ' " + barcode + @" '
";
object aa = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( aa ! = null )
{
res = aa . ToString ( ) ;
}
else
{
string sqll = @ "
select OneBarCode
from [ 1 0.60 . 1 0 1.60 ] . [ BBMPT1 ] . [ dbo ] . [ v_Code ]
where barcode = ' " + barcode + @" '
";
object bb = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sqll , null ) ;
if ( bb ! = null )
{
res = bb . ToString ( ) ;
}
}
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
/// <summary>
/// 查看是否已入库
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static bool IsStockIn ( string barcode )
{
try
{
string sql = @" select * from tb_StockIn where barcode = '" + barcode + "' and pass = '1' " ;
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
return true ;
}
else
{
return false ;
}
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return false ;
}
}
/// <summary>
/// 查询检验结果,最终是否合格
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static bool barcodeStatus ( string barcode )
{
try
{
DataTable dt = new DataTable ( ) ;
string sql = "" ;
if ( barcode . Contains ( "." ) )
{
string barcodeOne = TransToBarCodeOne ( barcode ) ;
sql = @" select * from (SELECT * from (select TOP 1 * from tb_InspectResult where barcode = '" + barcode + @"' or barcode = '" + barcodeOne + @ "' AND InspectTimes = '1' ORDER BY createTime DESC) aa
UNION
SELECT * from ( select TOP 1 * from tb_InspectResult where barcode = ' " + barcode + @" ' or barcode = ' " + barcodeOne + @" ' AND InspectTimes = '2' ORDER BY createTime DESC ) bb
UNION
SELECT * from ( select TOP 1 * from tb_InspectResult where barcode = ' " + barcode + @" ' or barcode = ' " + barcodeOne + @" ' AND InspectTimes = '3' ORDER BY createTime DESC ) cc ) dd order by createTime DESC ";
}
else
{
sql = @" select * from (SELECT * from (select TOP 1 * from tb_InspectResult where barcode = '" + barcode + @ "' AND InspectTimes = '1' ORDER BY createTime DESC) aa
UNION
SELECT * from ( select TOP 1 * from tb_InspectResult where barcode = ' " + barcode + @" ' AND InspectTimes = '2' ORDER BY createTime DESC ) bb
UNION
SELECT * from ( select TOP 1 * from tb_InspectResult where barcode = ' " + barcode + @" ' AND InspectTimes = '3' ORDER BY createTime DESC ) cc ) dd order by createTime DESC ";
}
dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
LogHelper . WriteSysLogBase ( "质量判定结果--" + sql + " : " + dt . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ; //查询质量判定结果
if ( dt ! = null & & dt . Rows . Count > 0 )
{
string inspectResult = dt . Rows [ 0 ] [ "inspectResult" ] . ToString ( ) . Trim ( ) ;
if ( "[合格]" = = inspectResult )
{
return true ;
}
else
{
return false ;
}
}
return false ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return false ;
}
}
/// <summary>
/// 查询是否进行了质量判定
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static bool exsitInspectResult ( string barcode )
{
bool res = false ;
try
{
string sql = "" ;
if ( barcode . Contains ( "." ) )
{
string barcodeOne = TransToBarCodeOne ( barcode ) ;
sql = @" select ID from tb_InspectResult WITH (NOLOCK) where barcode = '" + barcode . Trim ( ) + "' or barcode = '" + barcodeOne + @"' " ;
}
else
{
sql = @" select ID from tb_InspectResult WITH (NOLOCK) where barcode = '" + barcode . Trim ( ) + "'" ;
}
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
LogHelper . WriteSysLogBase ( "是否进行过质量判定--" + sql + " : " + dt . Rows . Count , MethodBase . GetCurrentMethod ( ) . Name ) ; //查询是否进行过质量判定
if ( dt . Rows . Count > 0 )
{
res = true ;
}
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return false ;
}
}
/// <summary>
/// 查询条码是否曾经上喷涂线
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static bool ExistInLine ( string barcode )
{
bool res = false ;
try
{
string sql = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No , *
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ConnectionString ;
DataTable dt = SqlHelper . GetDataDateTable ( sqlConnString , CommandType . Text , sql , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
res = true ;
}
else
{
// string sql2 = @"
// DECLARE @barcode varchar(30);
// SET @barcode = '" + barcode + @"';
// SELECT Setvalue_BC_Color_No, *
// FROM [PRODUCTION_DATA].[dbo].[Paintline_Loadingdata]
// WHERE LTrim(RTrim(Side_1_BC01)) = @barcode
// OR LTrim(RTrim(Side_1_BC02))= @barcode
// OR LTrim(RTrim(Side_1_BC03))= @barcode
// OR LTrim(RTrim(Side_1_BC04))= @barcode
// OR LTrim(RTrim(Side_1_BC05))= @barcode
// OR LTrim(RTrim(Side_1_BC06))= @barcode
// OR LTrim(RTrim(Side_1_BC07))= @barcode
// OR LTrim(RTrim(Side_1_BC08))= @barcode
// OR LTrim(RTrim(Side_1_BC09))= @barcode
// OR LTrim(RTrim(Side_1_BC10))= @barcode
// OR LTrim(RTrim(Side_1_BC11))= @barcode
// OR LTrim(RTrim(Side_1_BC12))= @barcode
// OR LTrim(RTrim(Side_2_BC01)) = @barcode
// OR LTrim(RTrim(Side_2_BC02))= @barcode
// OR LTrim(RTrim(Side_2_BC03))= @barcode
// OR LTrim(RTrim(Side_2_BC04))= @barcode
// OR LTrim(RTrim(Side_2_BC05))= @barcode
// OR LTrim(RTrim(Side_2_BC06))= @barcode
// OR LTrim(RTrim(Side_2_BC07))= @barcode
// OR LTrim(RTrim(Side_2_BC08))= @barcode
// OR LTrim(RTrim(Side_2_BC09))= @barcode
// OR LTrim(RTrim(Side_2_BC10))= @barcode
// OR LTrim(RTrim(Side_2_BC11))= @barcode
// OR LTrim(RTrim(Side_2_BC12))= @barcode
// ";
// DataTable dt2 = SqlHelper.GetDataDateTable(sqlConnString, CommandType.Text, sql2, null);
// if (dt2 != null && dt2.Rows.Count > 0)
// {
// res = true;
// }
// else
// {
// res = false;
// }
res = false ;
}
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return false ;
}
}
public static bool AddStockInBarcode ( string barcode , out string errorReason )
{
bool res = false ;
try
{
string sql = @ "
INSERT INTO tb_StockIn
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] , paintCode )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, '1'
, ( select getdate ( ) ) , ( select top 1 paintCode from tb_StockIn where barcode = ' " + barcode + @" ' and paintCode is not null order by createtime desc ) )
";
int result = SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( result > 0 )
{
res = true ;
}
else
{
res = false ;
}
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
errorReason = ex . ToString ( ) ;
return res ;
}
}
#endregion
#region 加漆防错接口
/// <summary>
/// 查询油漆是否存在或在用
/// </summary>
/// <param name="PaintCode"></param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static DataTable GetPaintInfoIsUsing ( string PaintCode , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "
select * from tb_PaintInfo where IsUsing = 1 and PaintCode = ' " + PaintCode + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
errorReason = ex . Message ;
return res ;
}
}
/// <summary>
/// 查询油漆信息
/// </summary>
/// <param name="PaintCode"></param>
/// <param name="errorReason"></param>
/// <returns></returns>
public static DataTable GetPaintInfo ( string PaintCode , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "
select * from tb_PaintInfo where PaintCode = ' " + PaintCode + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
errorReason = ex . Message ;
return res ;
}
}
public static DataTable IsMatch ( string PaintCode , string DrumCode , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "SELECT dbo.tb_BucketInfo.BucketCode, dbo.tb_PaintInfo.PaintCode
FROM dbo . tb_BucketInfo INNER JOIN
dbo . tb_Paint_Bucket ON dbo . tb_BucketInfo . ID = dbo . tb_Paint_Bucket . BucketID INNER JOIN
dbo . tb_PaintInfo ON dbo . tb_Paint_Bucket . PaintID = dbo . tb_PaintInfo . ID where dbo . tb_BucketInfo . BucketCode = ' " + DrumCode + " ' and dbo . tb_PaintInfo . PaintCode = ' " + PaintCode + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
errorReason = ex . Message ;
return res ;
}
}
public static bool IsOut ( string barcode )
{
bool flag = false ;
try
{
List < wmsOutModel > list = new List < wmsOutModel > ( ) ;
wmsOutModel md = new wmsOutModel ( ) ;
md . ServiceType = "GerPickFactForMesValdate" ;
md . BarCode = barcode ;
list . Add ( md ) ;
#region 调用wms webservice
WebService . WebReference . JsonService webService = new WebService . WebReference . JsonService ( ) ;
webService . Url = ConfigurationManager . AppSettings [ "WMSWebServiceURL" ] . ToString ( ) ;
webService . Timeout = 1 2 0 0 0 0 0 ;
string strJson = JsonConvert . SerializeObject ( list ) ;
LogHelper . WriteSysLogBase ( "WMS油漆是否出库接口:条码:" + barcode + "油漆是否出库接口,参数:strJson = " + strJson + "调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string res = webService . GetData ( strJson ) ;
LogHelper . WriteSysLogBase ( "WMS油漆是否出库接口:条码:" + barcode + "调用WMS油漆是否出库接口,参数:strJson = " + strJson + "返回结果:" + res + "返回结果时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
#endregion
if ( res . ToLower ( ) . Contains ( "true" ) )
{
flag = true ;
}
return flag ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return flag ;
}
}
#endregion
#region 质检判定
/// <summary>
/// 获取班次,规定早8至晚8为A班
/// </summary>
/// <returns></returns>
public static string GetWorkClass ( )
{
bool classA = IsBetweenTime ( DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , "2019-06-12 08:00:00" , "2019-06-12 20:00:00" ) ;
if ( classA )
{
return "A班" ;
}
else
{
return "B班" ;
}
}
/// <summary>
/// 判断传入时间是否在工作时间段内
/// </summary>
/// <param name="timeStr"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <returns></returns>
public static bool IsBetweenTime ( string timeStr , string startTime , string endTime )
{
//判断传入时间是否在工作时间段内
try
{
TimeSpan startSpan = DateTime . Parse ( startTime ) . TimeOfDay ;
TimeSpan endSpan = DateTime . Parse ( endTime ) . TimeOfDay ;
DateTime t1 = Convert . ToDateTime ( timeStr ) ;
TimeSpan dspNow = t1 . TimeOfDay ;
if ( dspNow > startSpan & & dspNow < endSpan )
{
return true ;
}
return false ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return false ;
}
}
/// <summary>
/// 根据条码号获取AB侧
/// </summary>
/// <param name="?"></param>
/// <returns></returns>
public static string GetSide ( string barcode )
{
string res = "" ;
try
{
//有一检结果的
string sql = @" select top 1 side from tb_InspectResult where barcode = '" + barcode + "' and InspectTimes = '1' order by createTime desc " ;
object aa = SqlHelper . ExecuteScalar ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( aa ! = null )
{
res = aa . ToString ( ) ;
}
else
{
if ( string . IsNullOrWhiteSpace ( res ) )
{
//没有一检结果,查询老外数据库
string sql_foreign = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Loadingdata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ToString ( ) ;
object bb = SqlHelper . ExecuteScalar ( sqlConnString , CommandType . Text , sql_foreign , null ) ;
string colorNo = "" ;
if ( bb ! = null )
{
colorNo = bb . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( colorNo ) )
{
res = "A侧" ;
}
}
else
{
string sql_foreign2 = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Loadingdata ]
WHERE LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
";
object cc = SqlHelper . ExecuteScalar ( sqlConnString , CommandType . Text , sql_foreign2 , null ) ;
string colorNo2 = "" ;
if ( cc ! = null )
{
colorNo2 = cc . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( colorNo2 ) )
{
res = "B侧" ;
}
}
else
{
string sql_foreign3 = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
";
object dd = SqlHelper . ExecuteScalar ( sqlConnString , CommandType . Text , sql_foreign3 , null ) ;
string colorNo3 = "" ;
if ( dd ! = null )
{
colorNo3 = dd . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( colorNo3 ) )
{
res = "B侧" ;
}
}
else
{
string sql_foreign4 = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
";
object ee = SqlHelper . ExecuteScalar ( sqlConnString , CommandType . Text , sql_foreign4 , null ) ;
string colorNo4 = "" ;
if ( ee ! = null )
{
colorNo4 = ee . ToString ( ) ;
if ( ! string . IsNullOrWhiteSpace ( colorNo4 ) )
{
res = "A侧" ;
}
}
}
}
}
}
}
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
/// <summary>
/// 根据条码在老外库里查询颜色信息
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public static string GetProductInfo ( string barcode )
{
string res = "" ;
try
{
string sql = @ "
DECLARE @barcode varchar ( 3 0 ) ;
SET @barcode = ' " + barcode + @" ' ;
SELECT Setvalue_BC_Color_No
FROM [ PRODUCTION_DATA ] . [ dbo ] . [ Paintline_Proddata ]
WHERE LTrim ( RTrim ( Side_1_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_1_BC12 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC01 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC02 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC03 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC04 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC05 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC06 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC07 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC08 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC09 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC10 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC11 ) ) = @barcode
OR LTrim ( RTrim ( Side_2_BC12 ) ) = @barcode
";
string sqlConnString = ConfigurationManager . ConnectionStrings [ "SqlConnStringForeign" ] . ToString ( ) ;
object aa = SqlHelper . ExecuteScalar ( sqlConnString , CommandType . Text , sql , null ) ;
string colorNo = "" ;
if ( aa ! = null )
{
colorNo = aa . ToString ( ) ;
}
//根据颜色代码查颜色
string colorInfo = "" ;
if ( ! string . IsNullOrWhiteSpace ( colorNo ) )
{
DataTable dt = new DataTable ( ) ;
string sql_c = @" select * from tb_Color where ColorCode = '" + colorNo + "' " ;
dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql_c , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
res = dt . Rows [ 0 ] [ "Des" ] . ToString ( ) ;
colorInfo = dt . Rows [ 0 ] [ "Des" ] . ToString ( ) . Trim ( ) + "," + dt . Rows [ 0 ] [ "ColorCode" ] . ToString ( ) . Trim ( ) + "," + dt . Rows [ 0 ] [ "ColorNo" ] . ToString ( ) . Trim ( ) ;
}
}
//根据条码查询产品信息
string stockNo = "" ;
string batchNo = "" ;
string partNo = "" ;
Function . GetCode ( barcode , out stockNo , out batchNo , out partNo ) ;
string productName = "" ;
Function . GetInfoByStockNo ( stockNo , partNo , out productName ) ;
colorInfo = colorInfo + "," + productName ;
res = colorInfo ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
/// <summary>
/// 根据存货代码获得零件名称、颜色名称
/// </summary>
/// <param name="stockNo"></param>
/// <param name="partName"></param>
/// <param name="colorName"></param>
public static void GetInfoByStockNo ( string stockNo , string partNo , out string partName )
{
partName = "" ;
string sql = "" ;
try
{
DataTable dt = new DataTable ( ) ;
if ( ! string . IsNullOrWhiteSpace ( stockNo ) )
{
sql = " select ProductName from tb_Product where StockNo = '" + stockNo + @"' " ;
dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
}
else if ( ! string . IsNullOrWhiteSpace ( partNo ) )
{
sql = @" select ProductName from tb_Product where PartNo = '" + partNo + @"' " ;
dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
}
if ( dt ! = null & & dt . Rows . Count > 0 )
{
partName = dt . Rows [ 0 ] [ "ProductName" ] . ToString ( ) ;
}
else
{
partName = "" ;
}
LogHelper . WriteSysLogBase ( "[入参]:stockNo=" + stockNo + ",partNo=" + partNo + "; [出参:]partName=" + partName + ";[sql:] + sql" , MethodBase . GetCurrentMethod ( ) . Name ) ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
}
}
/// <summary>
/// 保存检验结果
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public static int InsertInspect ( InspectModel model )
{
int res = 0 ;
try
{
string sql = @ " INSERT INTO [dbo].[tb_InspectResult]
( [ ID ]
, [ barcode ]
, [ side ]
, [ position ]
, [ stationNo ]
, [ workClass ]
, [ inspectResult ]
, [ damnPosition ]
, [ defectID ]
, [ reason ]
, [ productInfo ]
, [ productOption ]
, [ createTime ]
, [ InspectTimes ]
, [ remark1 ]
, [ remark2 ]
, [ remark3 ]
)
VALUES
( ' " + model.ID + @" '
, ' " + model.barcode + @" '
, ' " + model.side + @" '
, ' " + model.position + @" '
, ' " + model.stationNo + @" '
, ' " + model.workClass + @" '
, ' " + model.inspectResult + @" '
, ' " + model.damnPosition + @" '
, ' " + model.defectID + @" '
, ' " + model.reason + @" '
, ' " + model.productInfo + @" '
, ' " + model.productOption + @" '
, ( select getdate ( ) )
, ' " + model.InspectTimes + @" '
, ' " + model.remark1 + @" '
, ' " + model.remark2 + @" '
, ' " + model.remark3 + @" '
) ";
res = SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
LogHelper . WriteSysLogBase ( "[sql:]" + sql , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
#endregion
#region 247防错
public static DataTable IsMatchDeviceAndPart ( string DeviceNo , string PartNo , out string errorReason )
{
DataTable res = new DataTable ( ) ;
try
{
string sql = @ "SELECT * from tb_Mistake_247
where [ DeviceNo ] = ' " + DeviceNo + " ' and PartNo = ' " + PartNo + @" '
";
res = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
errorReason = "" ;
return res ;
}
catch ( Exception ex )
{
LogHelper . WriteLogManager ( ex ) ;
errorReason = ex . Message ;
return res ;
}
}
//public static int InsertInspect(InspectModel model)
#endregion
#region 一码到底
public static bool WMSInterfaceStockIn ( string barcode , string partNo , string batchNo , int isPass )
{
bool res = false ;
try
{
List < WMS03Model > list = new List < WMS03Model > ( ) ;
WMS03Model wmsM = new WMS03Model ( ) ;
wmsM . BarCode = barcode ;
wmsM . WmsBarCode = "" ;
wmsM . LU_Code = partNo ;
wmsM . Batch = batchNo ;
wmsM . Q_level = "" ;
wmsM . CreationTime = DateTime . Now ;
wmsM . IsOk = isPass ;
wmsM . Ok_Status = isPass . ToString ( ) ;
wmsM . FactoryId = 0 ;
wmsM . LineId = 0 ;
wmsM . WmsRead = 1 ;
wmsM . ReadTime = null ;
wmsM . Remark = "" ;
string lineid = ConfigurationManager . AppSettings [ "LineID" ] . ToString ( ) . Trim ( ) ;
int lineId = 0 ;
Int32 . TryParse ( lineid , out lineId ) ;
wmsM . LineId = lineId ;
list . Add ( wmsM ) ;
#region 调用WMS接口前记录数据
string sql_bf = @ " INSERT INTO [tb_StockIn_beif]
( [ ID ]
, [ barcode ]
, [ pass ]
, [ createTime ] )
VALUES
( ( select newid ( ) )
, ' " + barcode + @" '
, ' " + isPass.ToString() + @" '
, ( select getdate ( ) ) ) ";
SqlHelper . ExecuteNonQuery ( SqlHelper . SqlConnString , CommandType . Text , sql_bf , null ) ;
#endregion
#region 调用WMS Web Service
WebService . WebReference . JsonService webService = new WebService . WebReference . JsonService ( ) ;
webService . Url = ConfigurationManager . AppSettings [ "WMSWebServiceURL" ] . ToString ( ) ;
webService . Timeout = 1 2 0 0 0 0 0 ;
string jsonParam = " [{\"ServiceType\":\"AddMesData\",\"OperName\":\"ADMIN\"}]" ;
//string strJson = "[55," + JSONTools.ScriptSerialize<List<WMS03Model>>(list) + "]";
IsoDateTimeConverter timeConverter = new IsoDateTimeConverter ( ) ;
//这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式
timeConverter . DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" ;
//timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd";
string strJson = "[55," + JsonConvert . SerializeObject ( list , Formatting . Indented , timeConverter ) + "]" ;
#endregion
#region 调用,返回结果
LogHelper . WriteSysLogBase ( "条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "调入时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
string resStr = webService . AddData ( jsonParam , strJson ) ;
LogHelper . WriteSysLogBase ( "条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "返回结果:" + resStr + "返回结果时间:" + DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
//LogHelper.WriteSysLogBase("条码:" + barcode + "调用WMS入库接口,参数:strJson = " + strJson + "返回结果:" + resStr, MethodBase.GetCurrentMethod().Name);
if ( resStr . ToLower ( ) = = "true" )
{
res = true ;
}
return res ;
#endregion
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
}
#endregion
/// <summary>
/// 计算时间差
/// </summary>
/// <param name="t">时间1</param>
/// <param name="t2">时间2</param>
/// <returns>返回值:时间差(毫秒为单位)</returns>
private static long TimeDiff ( DateTime t , DateTime t2 )
{
long lReturn = - 1 ;
TimeSpan NowValue = new TimeSpan ( t . Ticks ) ;
TimeSpan TimeValue = new TimeSpan ( t2 . Ticks ) ;
TimeSpan DateDiff = TimeSpan . Zero ;
try
{
//计算时间差
//DateDiff = TimeValue.Subtract(NowValue).Duration();
DateDiff = TimeValue . Subtract ( NowValue ) ;
int hours = DateDiff . Hours ;
int minutes = DateDiff . Minutes ;
int seconds = DateDiff . Seconds ;
int milliseconds = DateDiff . Milliseconds ;
string TimeDiff = hours . ToString ( ) + ":"
+ minutes . ToString ( ) + ":"
+ seconds . ToString ( ) + "."
+ milliseconds . ToString ( ) ;
//是否比现在的时间小,如果小就设置成第二天再启动,否则当天启动
if ( hours < = 0 & & minutes < = 0 & & seconds < = 0 & & milliseconds < = 0 )
hours + = 2 4 ;
lReturn = hours * 3 6 0 0
+ minutes * 6 0
+ seconds ;
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
}
return lReturn ;
}
/// <summary>
/// 判断是否未奔驰件
/// </summary>
/// <param name="stockNo"></param>
/// <returns>true是奔驰件,false非奔驰件</returns>
private static bool IsBens ( string stockNo )
{
bool res = false ;
try
{
string sql = @"select ID from tb_StockToPaintNo where stockNo='" + stockNo + @"'" ;
DataTable dt = SqlHelper . GetDataDateTable ( SqlHelper . SqlConnString , CommandType . Text , sql , null ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
res = false ;
}
else
{
res = true ;
}
}
catch ( Exception ex )
{
LogHelper . WriteErrLogBase ( ex . ToString ( ) , MethodBase . GetCurrentMethod ( ) . Name ) ;
return res ;
}
return res ;
}
public static DataTable GetInspectResult ( string sjBarCode )
{
string sql_ins = " select top 1 * from tb_InspectResult where barcode = '" + sjBarCode . Trim ( ) + @"' and productInfo <> '' order by createTime desc " ;
DataTable proInfo = SqlHelper . GetDataSet ( SqlHelper . SqlConnString , CommandType . Text , sql_ins , null ) . Tables [ 0 ] ;
return proInfo ;
}
}
}