@ -2536,6 +2536,9 @@ a.Sequence,
if ( table . Rows . Count ! = 0 )
{
#region 拣料时增加条码出入库记录,修改库存锁定数量,以作占料处理
string ccInspectJosn = "" ;
string ForkLiftUrl = System . Configuration . ConfigurationManager . AppSettings [ "ForkLiftUrl" ] ;
string cclogsql = @"" ;
int Count = 1 ;
string BusinessCode = string . Empty ;
string TransType = "" ;
@ -2549,7 +2552,52 @@ a.Sequence,
var pikTbLogTime = DateTime . Now ;
string pikTbLogsql = string . Empty ;
List < string > DocNoList = new List < string > ( ) ;
if ( Type = = "2" | | Type = = "12" | | Type = = "5" )
{
string ccsql = @ "select B.F_Id from ICSInventoryDetail A
INNER JOIN Sys_SRM_ItemsDetail B ON B . F_Define1 = A . WHCode AND B . F_Define2 = A . LocationCode AND B . F_Define4 = A . WorkPoint
where INVCode = ' { 0 } ' and WHCode = ' { 1 } ' and WorkPoint = ' { 2 } ' AND B . F_ItemCode Like ' ForkLiftAreaConfig % ' ";
ccsql = string . Format ( ccsql , table . Rows [ 0 ] [ "InvCode" ] . ToString ( ) , table . Rows [ 0 ] [ "WarehouseCode" ] . ToString ( )
, WorkPoint ) ;
var ccds = Repository ( ) . FindDataSetBySql ( ccsql ) ;
DataTable cctable = ccds . Tables [ 0 ] ;
if ( cctable . Rows . Count ! = 0 )
{
List < string > SourceBinList = new List < string > ( ) ;
#region 窄巷道
foreach ( DataRow dr in table . Rows )
{
if ( ! SourceBinList . Contains ( dr [ "LocationCode" ] . ToString ( ) ) )
{
SourceBinList . Add ( dr [ "LocationCode" ] . ToString ( ) ) ;
if ( Convert . ToBoolean ( System . Configuration . ConfigurationManager . AppSettings [ "UploadForkLift" ] ) )
{
string Year = DateTime . Now . Year . ToString ( ) ;
string Month = DateTime . Now . Month . ToString ( ) . PadLeft ( 2 , '0' ) ;
string Day = DateTime . Now . Day . ToString ( ) . PadLeft ( 2 , '0' ) ;
string Pre = "CC" + Year + Month + Day ;
string serialsql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}" ;
serialsql = string . Format ( serialsql , "1701" , "ICSForkLiftTaskLog" , "TaskCode" , Pre , 4 ) ;
string TaskCode = DbHelper . ExecuteTable ( DbHelper . ConnectionString , CommandType . Text , serialsql , true , null ) . Rows [ 0 ] [ 0 ] . ToString ( ) ;
string SerialNum = DateTime . Now . Hour . ToString ( ) . PadLeft ( 2 , '0' ) ;
ccInspectJosn + = "{" ;
ccInspectJosn + = "\"ID\":\"" + TaskCode + "\"," ; //任务编号
ccInspectJosn + = "\"TaskType\": \"PTWY\"," ; //任务类型
ccInspectJosn + = "\"SourceBin\": \"" + dr [ "LocationCode" ] . ToString ( ) + "\"," ; //起始点位
ccInspectJosn + = "}" ;
#region 记录叉车的任务编号及相关信息
#endregion
cclogsql + = @ "INSERT INTO ICSForkLiftTaskLog
( ID , TaskCode , ContainerCode , TaskType , StartLocation , EndLocation , MTIME , WorkPoint )
select NEWID ( ) , ' { 0 } ',' ',' PICK ',' { 1 } ',' ' , GETDATE ( ) , ' 1 7 0 1 ' ";
cclogsql = string . Format ( cclogsql , TaskCode , dr [ "LocationCode" ] . ToString ( ) ) ;
}
}
}
#endregion
}
else
{
#region 货柜
string InspectJosn = "" ;
@ -2647,6 +2695,7 @@ a.Sequence,
}
#endregion
}
}
foreach ( DataRow PickLog in table . Rows )
{
pikTbLogsql + = @ " IF NOT EXISTS(SELECT TransCode FROM ICSWareHouseLotInfoLog WHERE TransCode='{1}' AND TransSequence='{2}' AND LotNo='{9}' AND WorkPoint='{8}' AND TransType='15')
@ -2670,7 +2719,7 @@ a.Sequence,
pikTbLogsql = string . Format ( pikTbLogsql , Identification , PickLog [ "Code" ] . ToString ( ) , PickLog [ "Sequence" ] . ToString ( ) , PickLog [ "SendQTY" ] . ToString ( )
, BusinessCode , MUSER , MUSERNAME , pikTbLogTime , WorkPoint , PickLog [ "LotNO" ] . ToString ( ) ) ;
}
SqlHelper . CmdExecuteNonQueryLi ( pikTbLogsq l) ;
CmdExecuteNonQueryWithAPI ( pikTbLogsql , cclogsql , ccInspectJosn , ForkLiftUr l) ;
#endregion
}
@ -3850,7 +3899,62 @@ b.InvUnit,
}
//事务中执行SQL及调用接口
public static int CmdExecuteNonQueryWithAPI ( string sql , string ccsql , string InputJson , string PostUrl , params SqlParameter [ ] spArr )
{
using ( SqlConnection conn = SqlHelper . GetDataCenterConn ( ) )
{
conn . Open ( ) ;
SqlTransaction sqlTran = conn . BeginTransaction ( ) ;
SqlCommand cmd = new SqlCommand ( ) ;
cmd . Transaction = sqlTran ;
cmd . Connection = conn ;
try
{
if ( ccsql = = "" )
{
cmd . CommandText = sql ;
int RES = cmd . ExecuteNonQuery ( ) ;
cmd . Transaction . Commit ( ) ;
return RES ;
}
else
{
cmd . CommandText = sql ;
int RES = cmd . ExecuteNonQuery ( ) ;
cmd . CommandText = ccsql ;
RES = cmd . ExecuteNonQuery ( ) ;
#region 叉车接口调用(写进事务中,报错可以回滚,保证数据正确)
string rest = HTTPHelper . HttpPost ( "WMS调用叉车接口出库" , PostUrl , InputJson ) ;
ForkLiftResult result = JsonConvert . DeserializeObject < ForkLiftResult > ( rest ) ;
if ( result . Ret = = 1 )
{
cmd . Transaction . Commit ( ) ;
return RES ;
}
else
{
throw new Exception ( result . RetMsg ) ;
}
#endregion
}
}
catch ( Exception ex )
{
cmd . Transaction . Rollback ( ) ;
throw new Exception ( ex . Message ) ;
}
finally
{
if ( conn . State ! = ConnectionState . Closed )
{
conn . Close ( ) ;
conn . Dispose ( ) ;
}
}
return 0 ;
}
}