diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
index 7f9e1ff..0260251 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
@@ -7673,5 +7673,223 @@ WHERE WorkPoint='{0}' AND Quantity>ISNULL(TransferQuantity, 0) order by Transfer
}
}
}
+
+
+ #region 库位区域验证
+ ///
+ /// 库位区域验证
+ ///
+ ///
+ ///
+ public static string CheckWHCode(BarCodeCheckModel JsonData)
+ {
+ var language = LanguageHelper.GetName("WMSAPIInfo");
+ using (SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString))
+ {
+ conn.Open();
+ SqlCommand cmd = new SqlCommand();
+ cmd.Connection = conn;
+ try
+ {
+ if (string.IsNullOrEmpty(JsonData.TransType))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo002"));//"单据类型不能为空!"
+ }
+ else if (!EnumHelper.HasDescriptions(typeof(TransTypeEnum), JsonData.TransType))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo003"));//"单据类型不存在!"
+ }
+ else if (string.IsNullOrEmpty(JsonData.WorkPoint))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo004"));//"站点不能为空!"
+ }
+
+ string TransType = JsonData.TransType; //单据类型
+ var whCode = JsonData.LocationCode.Split('-').ToList();
+ #region SLQ
+
+ StringBuilder sql = new StringBuilder();
+ #endregion
+
+ string msg = "";
+ //WMSAPIInfo071
+ if (JsonData.TransCode==null || JsonData.TransCode=="")
+ {
+
+ #region 采购入库
+ var a = TransTypeEnum.DeliveryNotice.GetDescription();
+ if (TransType == TransTypeEnum.DeliveryNotice.GetDescription())
+ {
+ sql.Append ($@"SELECT a.LotNo ,d.LocationCode, c.WHCode
+ FROM
+ ICSInventoryLot a
+ inner JOIN ICSInventoryLotDetail b ON a.WorkPoint= b.WorkPoint
+ AND a.LotNo=b.LotNo
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ AND d.WorkPoint=b.WorkPoint
+ inner JOIN ICSDeliveryNotice c ON c.DNCode= b.TransCode
+ AND c.WorkPoint= b.WorkPoint
+ AND c.InvCode= a.INVCode
+ AND c.Sequence= b.TransSequence
+ AND c.WHCode=d.WHCode
+ WHERE
+ b.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'") ;
+
+
+ }
+ #endregion
+
+ #region 生产退料
+ if (TransType == TransTypeEnum.MOIssueDocNegative.GetDescription()
+ || TransType == TransTypeEnum.MOIssueDocNegativeApply.GetDescription()
+ || TransType == TransTypeEnum.MOIssueDocNegativeIssue.GetDescription())
+ {
+ sql.Append($@"SELECT a.LotNo ,d.LocationCode, c.WHCode
+ FROM
+ ICSInventoryLot a
+ inner JOIN ICSInventoryLotDetail b ON a.WorkPoint= b.WorkPoint
+ AND a.LotNo=b.LotNo
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ AND d.WorkPoint=b.WorkPoint
+ inner JOIN ICSMOApplyNegDetail c ON c.ApplyNegCode= b.TransCode
+ AND c.WorkPoint= b.WorkPoint
+ AND c.InvCode= a.INVCode
+ AND c.Sequence= b.TransSequence
+ AND c.WHCode=d.WHCode
+ WHERE
+ b.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'");
+ }
+ #endregion
+
+ #region 销售退货
+ else if (TransType == TransTypeEnum.SalesShipmentDocNegative.GetDescription())
+ {
+ sql.Append( $@"SELECT a.LotNo ,d.LocationCode, c.WHCode
+ FROM
+ ICSInventoryLot a
+ inner JOIN ICSInventoryLotDetail b ON a.WorkPoint= b.WorkPoint
+ AND a.LotNo=b.LotNo
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ AND d.WorkPoint=b.WorkPoint
+ inner JOIN ICSSDN c ON c.SDNCode= b.TransCode
+ AND c.WorkPoint= b.WorkPoint
+ AND c.InvCode= a.INVCode
+ AND c.Sequence= b.TransSequence
+ AND c.WHCode=d.WHCode
+ WHERE
+ b.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'");
+
+ }
+ #endregion
+
+ #region 其他入库
+ else if (TransType == TransTypeEnum.OtherInDoc.GetDescription())
+ {
+ sql.Append ($@"SELECT a.LotNo ,d.LocationCode, c.WHCode
+ FROM
+ ICSInventoryLot a
+ inner JOIN ICSInventoryLotDetail b ON a.WorkPoint= b.WorkPoint
+ AND a.LotNo=b.LotNo
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ AND d.WorkPoint=b.WorkPoint
+ inner JOIN ICSOtherIn c ON c.InCode= b.TransCode
+ AND c.WorkPoint= b.WorkPoint
+ AND c.InvCode= a.INVCode
+ AND c.Sequence= b.TransSequence
+ AND c.WHCode=d.WHCode
+ WHERE
+ b.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'");
+
+ }
+ #endregion
+ }
+ else
+ {
+ #region 销售退货-原条码
+ if (TransType == TransTypeEnum.SalesReturnBack.GetDescription())
+ {
+ sql.Append($@"SELECT a.LotNo ,d.LocationCode, c.WHCode
+ FROM
+ ICSInventoryLot a
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ inner JOIN ICSSDN c ON c.InvCode= a.INVCode
+ AND c.WHCode=d.WHCode
+ AND c.Type='2'
+ WHERE
+ c.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'
+ And c.SDNCode= '{JsonData.TransCode}' ");
+
+ }
+ #endregion
+
+ #region 调拨
+ else if (TransType == TransTypeEnum.OneStepTransferDocIn.GetDescription())
+ {
+ sql.Append ($@"SELECT a.LotNo ,d.LocationCode, c.ToWarehouseCode as WHCode
+ FROM
+ ICSInventoryLot a
+ inner Join ICSInventoryDetail d ON d.INVCode=a.InvCode
+ inner JOIN ICSTransfer c ON c.INVCode= a.INVCode
+ AND c.ToWarehouseCode=d.WHCode
+ WHERE
+ c.WorkPoint= '{JsonData.WorkPoint}'
+ AND a.LotNo= '{JsonData.BarCode}'
+ And c.TransferNO= '{JsonData.TransCode}'");
+ }
+ #endregion
+ }
+
+ var dataset=DBHelper.SQlReturnDataSet(sql.ToString(),cmd);
+ if (dataset.Tables.Count == 0)
+ {
+ msg = "未查到条码库位区域信息";
+ return msg;
+ }
+
+ DataTable table = dataset.Tables[0];
+ if (table.Rows.Count == 0)
+ {
+ msg = "未查到条码库位区域信息";
+ return msg;
+ }
+ for (int i=0;i< table.Rows.Count;i++)
+ {
+ //区域
+ var locationCode = table.Rows[i]["LocationCode"].ToString();
+ var Code= table.Rows[i]["WHCode"].ToString();
+ if (Code != whCode[0])
+ {
+ throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo466"), Code, "", JsonData.LocationCode));
+ }
+ if (locationCode != whCode[1]&& locationCode!=null &&locationCode!="")
+ {
+ throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo465"), locationCode, "", JsonData.LocationCode));
+ }
+
+ }
+ msg = "验证成功";
+ return msg;
+ }
+ catch (Exception ex)
+ {
+ log.Error(ex.Message);
+ throw new Exception(ex.Message);
+ }
+ finally
+ {
+ if (conn.State == ConnectionState.Open)
+ {
+ conn.Close();
+ }
+ conn.Dispose();
+ }
+ }
+ }
+ #endregion
}
}
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
index b6bcfc1..15ce953 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
@@ -481,7 +481,11 @@ namespace ICSSoft.WebAPI.Controllers
{
BarCodeCheckModel model = new BarCodeCheckModel();
model = JsonConvert.DeserializeObject(JsonData.ToString());
- //var resultStr = ICSSubmitService.TransInformationGet(model);
+ res.Message = ICSSubmitService.CheckWHCode(model);
+ if (res.Message=="验证成功")
+ {
+ res.Success = true;
+ }
}
}
catch (Exception ex)