|
|
@ -7428,9 +7428,9 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
conn.Open(); |
|
|
|
SqlCommand cmd = new SqlCommand(); |
|
|
|
cmd.Connection = conn; |
|
|
|
Result res = new Result(); |
|
|
|
try |
|
|
|
{ |
|
|
|
Result res = new Result(); |
|
|
|
string PostionCode = ""; |
|
|
|
foreach (ICSContainerBind item in JsonData) |
|
|
|
{ |
|
|
@ -7457,6 +7457,20 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
{ |
|
|
|
//呼叫AGV开始搬运任务
|
|
|
|
PostionCode = ICSWareHouseLotInfoService.GetAGVTaskPosition(item.ContainerCode, item.IsOverLoad, item.User, item.WorkPoint, cmd, language); |
|
|
|
if (item.IsOverLoad == true) |
|
|
|
{ |
|
|
|
#region 获取字典维护的超托目标点位
|
|
|
|
string sql = @" select F_Define2 from Sys_SRM_ItemsDetail
|
|
|
|
where F_ItemName='AGV超托点位' |
|
|
|
AND F_Define1='{0}' AND F_Define4='{1}'";
|
|
|
|
sql = string.Format(sql, PostionCode, item.WorkPoint); |
|
|
|
DataTable chkdt = DBHelper.SQlReturnData(sql, cmd); |
|
|
|
if (chkdt.Rows.Count == 0) |
|
|
|
{ |
|
|
|
throw new Exception("超托入库区域:" + PostionCode + "未维护默认点位,无法入库!"); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
res.Success = true; |
|
|
@ -7468,7 +7482,9 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
if (cmd.Transaction != null) |
|
|
|
cmd.Transaction.Rollback(); |
|
|
|
log.Error(ex.Message); |
|
|
|
throw new Exception(ex.Message); |
|
|
|
res.Success = false; |
|
|
|
res.Message = ex.Message; |
|
|
|
return res; |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
@ -7625,7 +7641,7 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (chkdt.Rows[0]["EATTRIBUTE1"].ToString()=="出库") |
|
|
|
if (chkdt.Rows[0]["EATTRIBUTE1"].ToString() == "出库") |
|
|
|
{ |
|
|
|
logsql = @"update ICSAGVTaskLog set MTIME=GETDATE(),EATTRIBUTE2='已完成',EATTRIBUTE3='{1}'
|
|
|
|
WHERE ID='{0}'";
|
|
|
@ -8867,7 +8883,7 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 调用AGV搬运任务失败后调用,用于删除入库时的库位占用
|
|
|
|
public static AGVResult AGVTaskEnd(AGVCallBackModel JsonData, string Jsonstr) |
|
|
|
public static Result LocationOccupyCancel(ICSContainerInfo JsonData) |
|
|
|
{ |
|
|
|
var language = LanguageHelper.GetName("WMSAPIInfo"); |
|
|
|
DataTable table = new DataTable(); |
|
|
@ -8881,94 +8897,37 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer |
|
|
|
cmd.Transaction = sqlTran; |
|
|
|
try |
|
|
|
{ |
|
|
|
#region 记录AGV回调日志
|
|
|
|
string logsql = @"INSERT INTO ICSAGVCallBackLog
|
|
|
|
(ID,ReqCode,InputJSON,Result,Message,EATTRIBUTE1) |
|
|
|
SELECT NEWID(),'{0}','{1}','','',GETDATE()";
|
|
|
|
logsql = string.Format(logsql, JsonData.taskCode, Jsonstr); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, logsql); |
|
|
|
#endregion
|
|
|
|
AGVResult res = new AGVResult(); |
|
|
|
if (string.IsNullOrEmpty(JsonData.taskCode)) |
|
|
|
{ |
|
|
|
msg = "传入AGV任务ID不能为空!"; |
|
|
|
} |
|
|
|
if (string.IsNullOrEmpty(JsonData.podCode)) |
|
|
|
Result res = new Result(); |
|
|
|
if (string.IsNullOrEmpty(JsonData.ContainerCode)) |
|
|
|
{ |
|
|
|
msg = "传入料架不能为空!"; |
|
|
|
} |
|
|
|
if (string.IsNullOrEmpty(JsonData.currentPositionCode)) |
|
|
|
{ |
|
|
|
msg = "传入入库具体点位不能为空!"; |
|
|
|
msg = "传入料架编码不能为空!"; |
|
|
|
} |
|
|
|
if (msg != "") |
|
|
|
{ |
|
|
|
#region 更新AGV回调日志
|
|
|
|
logsql = @"update ICSAGVCallBackLog set Result='失败',Message='{1}'
|
|
|
|
where ReqCode='{0}'";
|
|
|
|
logsql = string.Format(logsql, JsonData.taskCode, msg); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, logsql); |
|
|
|
#endregion
|
|
|
|
res.code = "1"; |
|
|
|
res.message = msg;// "接口调用失败!";
|
|
|
|
res.reqCode = JsonData.reqCode; |
|
|
|
res.Success = false; |
|
|
|
res.Message = msg;// "接口调用失败!";
|
|
|
|
return res; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
string chksql = @"select EATTRIBUTE1 from ICSAGVTaskLog
|
|
|
|
where ID='{0}'";
|
|
|
|
chksql = string.Format(chksql, JsonData.taskCode); |
|
|
|
DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); |
|
|
|
if (chkdt.Rows.Count == 0) |
|
|
|
{ |
|
|
|
#region 更新AGV回调日志
|
|
|
|
logsql = @"update ICSAGVCallBackLog set Result='失败',Message='{1}'
|
|
|
|
where ReqCode='{0}'";
|
|
|
|
logsql = string.Format(logsql, JsonData.taskCode, "传入TaskCode不存在!"); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, logsql); |
|
|
|
#endregion
|
|
|
|
res.code = "1"; |
|
|
|
res.message = "传入TaskCode不存在!";// "接口调用失败!";
|
|
|
|
res.reqCode = JsonData.reqCode; |
|
|
|
return res; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (chkdt.Rows[0]["EATTRIBUTE1"].ToString() == "出库") |
|
|
|
{ |
|
|
|
logsql = @"update ICSAGVTaskLog set MTIME=GETDATE(),EATTRIBUTE2='已完成',EATTRIBUTE3='{1}'
|
|
|
|
WHERE ID='{0}'";
|
|
|
|
logsql = string.Format(logsql, JsonData.taskCode, JsonData.currentPositionCode); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, logsql); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
ICSWareHouseLotInfoService.ActionAGVTaskEnd(JsonData.taskCode, JsonData.currentPositionCode, JsonData.taskCode, JsonData.action, JsonData.podCode, cmd, language); |
|
|
|
} |
|
|
|
} |
|
|
|
string sql = @"update ICSLocation set Isoccupy=''
|
|
|
|
where Isoccupy='{0}' and WorkPoint='{1}'";
|
|
|
|
sql = string.Format(sql, JsonData.ContainerCode, JsonData.WorkPoint); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, sql); |
|
|
|
} |
|
|
|
cmd.Transaction.Commit(); |
|
|
|
res.code = "0"; |
|
|
|
res.message = "成功";// "接口调用成功!";
|
|
|
|
res.reqCode = JsonData.reqCode; |
|
|
|
res.Success = true; |
|
|
|
res.Message = "成功";// "接口调用成功!";
|
|
|
|
return res; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
#region 更新AGV回调日志
|
|
|
|
string logsql = @"update ICSAGVCallBackLog set Result='失败',Message='{1}'
|
|
|
|
where ReqCode='{0}'";
|
|
|
|
logsql = string.Format(logsql, JsonData.reqCode, ex.Message); |
|
|
|
DBHelper.ExecuteNonQuery(connString, CommandType.Text, logsql); |
|
|
|
#endregion
|
|
|
|
if (cmd.Transaction != null) |
|
|
|
cmd.Transaction.Rollback(); |
|
|
|
log.Error(ex.Message); |
|
|
|
AGVResult res = new AGVResult(); |
|
|
|
res.code = "1"; |
|
|
|
res.message = ex.Message;// "接口调用失败!";
|
|
|
|
res.reqCode = JsonData.reqCode; |
|
|
|
Result res = new Result(); |
|
|
|
res.Success = false; |
|
|
|
res.Message = ex.Message;// "接口调用失败!";
|
|
|
|
return res; |
|
|
|
} |
|
|
|
finally |
|
|
|