Browse Source

SAP库存查询接口修改 SAP已配料未过账查询接口修改

master
陆晔 1 year ago
parent
commit
6077465952
  1. BIN
      ICSSoft.FromERP/Root/ICSSoft.Frame.Data.Entity.dll
  2. 30
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
  3. 117
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs

BIN
ICSSoft.FromERP/Root/ICSSoft.Frame.Data.Entity.dll

Binary file not shown.

30
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs

@ -8243,7 +8243,20 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer
} }
if (!string.IsNullOrEmpty(JsonData.WHCode)) if (!string.IsNullOrEmpty(JsonData.WHCode))
{ {
sql += $@" AND A.WarehouseCode='{JsonData.WHCode}'";
string strWhCode = "";
string[] WHCodeList = JsonData.WHCode.Split(',');
foreach (string WHCode in WHCodeList)
{
if (strWhCode == "")
{
strWhCode += "'" + WHCode + "'";
}
else
{
strWhCode += ",'" + WHCode + "'";
}
}
sql += $@" AND A.WarehouseCode IN ({strWhCode})";
} }
if (!string.IsNullOrEmpty(JsonData.WorkPoint)) if (!string.IsNullOrEmpty(JsonData.WorkPoint))
{ {
@ -8326,7 +8339,20 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer
} }
if (!string.IsNullOrEmpty(JsonData.WHCode)) if (!string.IsNullOrEmpty(JsonData.WHCode))
{ {
sql += $@" AND A.FromWarehouseCode='{JsonData.WHCode}'";
string strWhCode = "";
string[] WHCodeList = JsonData.WHCode.Split(',');
foreach (string WHCode in WHCodeList)
{
if (strWhCode == "")
{
strWhCode += "'" + WHCode + "'";
}
else
{
strWhCode += ",'" + WHCode + "'";
}
}
sql += $@" AND A.FromWarehouseCode IN ({strWhCode})";
} }
if (!string.IsNullOrEmpty(JsonData.WorkPoint)) if (!string.IsNullOrEmpty(JsonData.WorkPoint))
{ {

117
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs

@ -3203,14 +3203,21 @@ namespace ICSSoft.DataProject
/// <param name="WorkPoint"></param> /// <param name="WorkPoint"></param>
/// <param name="cmd"></param> /// <param name="cmd"></param>
/// <param name="language"></param> /// <param name="language"></param>
public static void ActionSaveAGVTaskCode(string TaskCode, string ContainerCode, string Location,bool IsOverLoad, string User, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
public static void ActionSaveAGVTaskCode(string TaskCode, string ContainerCode, string Location, bool IsOverLoad, string User, string WorkPoint, SqlCommand cmd, Dictionary<string, string> language)
{ {
try try
{ {
string sql = @"Insert into ICSAGVTaskLog string sql = @"Insert into ICSAGVTaskLog
(ID,TaskCode,ContainerCode,LocationCode,IsOverLoad,UserCode,MTIME,WorkPoint) (ID,TaskCode,ContainerCode,LocationCode,IsOverLoad,UserCode,MTIME,WorkPoint)
select NEWID(),'{0}','{1}','{2}','{3}','{4}',GETDATE(),'{5}'"; select NEWID(),'{0}','{1}','{2}','{3}','{4}',GETDATE(),'{5}'";
sql = string.Format(sql, TaskCode, ContainerCode, Location, IsOverLoad, User, WorkPoint);
if (IsOverLoad == true)
{
sql = string.Format(sql, TaskCode, ContainerCode, Location, "是", User, WorkPoint);
}
else
{
sql = string.Format(sql, TaskCode, ContainerCode, Location, "否", User, WorkPoint);
}
DataTable dt = DBHelper.SQlReturnData(sql, cmd); DataTable dt = DBHelper.SQlReturnData(sql, cmd);
if (dt.Rows.Count == 0) if (dt.Rows.Count == 0)
{ {
@ -3235,8 +3242,112 @@ namespace ICSSoft.DataProject
try try
{ {
#region 根据任务ID查询是否需要超托入库 #region 根据任务ID查询是否需要超托入库
string sql = @"";
bool OverLoad = false;
string ContainerCode = "";
string InWHCode = "";
string InLocationCode = "";
string sql = @"select ContainerCode,LocationCode,IsOverLoad from ICSAGVTaskLog
where TaskCode='{0}'";
sql = string.Format(sql, reqCode);
DataTable dt = DBHelper.SQlReturnData(sql, cmd); DataTable dt = DBHelper.SQlReturnData(sql, cmd);
if (dt.Rows.Count == 0)
{
throw new Exception("未查询到对应的任务ID:" + reqCode + "!");
}
else
{
if (dt.Rows[0]["IsOverLoad"].ToString() == "是")
{
OverLoad = true;
}
ContainerCode = dt.Rows[0]["IsOverLoad"].ToString();
#region 查询料架中条码对应单据的仓库及条码对应物料的区域(绑定时已做卡控,一个料架只能绑定同仓库区域的条码,故只要通过其中一个条码来判断)
sql = @"SELECT C.WHCode,C.LocationCode FROM ICSInventoryLotDetail A
INNER JOIN ICSDeliveryNotice B ON B.DNCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
INNER JOIN ICSInventoryDetail C ON C.INVCode=B.InvCode AND C.WHCode=B.WHCode AND C.WorkPoint=B.WorkPoint
WHERE A.LotNo=(select top 1 LotNo from ICSContainerLot A
INNER JOIN ICSContainer B ON B.ID=A.ContainerID
WHERE B.ContainerCode='{0}')
UNION ALL
SELECT C.WHCode,C.LocationCode FROM ICSInventoryLotDetail A
INNER JOIN ICSMOApplyNegDetail B ON B.ApplyNegCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
INNER JOIN ICSInventoryDetail C ON C.INVCode=B.InvCode AND C.WHCode=B.WHCode AND C.WorkPoint=B.WorkPoint
WHERE A.LotNo=(select top 1 LotNo from ICSContainerLot A
INNER JOIN ICSContainer B ON B.ID=A.ContainerID
WHERE B.ContainerCode='{0}')";
sql = string.Format(sql, ContainerCode);
dt = DBHelper.SQlReturnData(sql, cmd);
if (dt.Rows.Count == 0)
{
throw new Exception("未查询到料架:" + ContainerCode + ",对应的入库区域和仓库!");
}
else
{
InWHCode = dt.Rows[0]["WHCode"].ToString();
InLocationCode = dt.Rows[0]["LocationCode"].ToString();
#region 根据入库仓库和区域获取按库位编码排序后可以入库的下一个库位
if (OverLoad == false)
{
#region 正常入库
sql = @"select TOP 1 A.LocationCode from ICSLocation A
LEFT JOIN ICSWareHouseLotInfo B ON B.LocationCode=A.LocationCode AND B.WorkPoint=A.WorkPoint AND B.Quantity>0
where B.LocationCode IS NULL AND A.LocationCode like ('{0}'+'-'+'{1}%')
ORDER BY A.LocationCode";
sql = string.Format(sql, InWHCode, InLocationCode);
dt = DBHelper.SQlReturnData(sql, cmd);
if (dt.Rows.Count == 0)
{
throw new Exception("仓库:" + InWHCode + ",区域:" + InLocationCode + "无可用库位,无法入库!");
}
else
{
if (Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UploadForkLift"]))
{
string ForkLiftUrl = System.Configuration.ConfigurationManager.AppSettings["ForkLiftUrl"];
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.SQlReturnData(serialsql, cmd).Rows[0][0].ToString();
string SerialNum = DateTime.Now.Hour.ToString().PadLeft(2, '0');
string InspectJosn = "{";
InspectJosn += "\"ID\":\"" + TaskCode + "\",";//任务编号
InspectJosn += "\"PalletID\": \"" + ContainerCode + "\",";//料架号
//InspectJosn += "\"LaneCode\": \"\",";
InspectJosn += "\"TaskType\": \"PTWY\",";//任务类型
InspectJosn += "\"SourceBin\": \""+ currentPositionCode + "\",";//起始点位
InspectJosn += "\"DestBin\": \"" + dt.Rows[0]["LocationCode"].ToString() + "\"";//目标点位
InspectJosn += "}";
RestHelper rest = new RestHelper(ForkLiftUrl, HttpVerb.POST);
rest.PostData = InspectJosn;
string strResult = rest.MakeRequest();
//string resultstr = HTTPHelper.Post(ERPUrl.AGVBineURL, InspectJosn);
ForkLiftStartTaskResultModel result = JsonConvert.DeserializeObject<ForkLiftStartTaskResultModel>(strResult);
if (result.Ret == 1)
{
#region 记录叉车的任务编号及相关信息
#endregion
sql = @"update ICSContainer set LocationCode='{2}',EATTRIBUTE1='已搬运' where ContainerCode='{0}' AND WorkPoint='{1}'";
//sql = string.Format(sql, ContainerCode, WorkPoint, LocationCode);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
throw new Exception(language.GetNameByCode("WMSAPIInfo207"));//料架状态更新失败
}
}
else
{
throw new Exception(result.RetMsg);
}
}
}
#endregion
}
#endregion
}
#endregion
}
#endregion #endregion
} }
catch (Exception ex) catch (Exception ex)

Loading…
Cancel
Save