/// <summary> /// 级联删除所有给定配送地区子地区的数据库记录 /// </summary> /// <param name="warehouseRegion"></param> private void DeleteChildWarehouseRegion(WarehouseRegion warehouseRegion) { List<Guid> regionIDs = (from r in dbEntity.GeneralRegions where r.aParent == warehouseRegion.RegionID && r.Deleted == false select r.Gid).ToList(); List<WarehouseRegion> childItems = (from wr in dbEntity.WarehouseRegions join id in regionIDs on wr.RegionID equals id where wr.Deleted == false select wr).ToList(); if (childItems.Any()) { foreach (WarehouseRegion item in childItems) DeleteChildWarehouseRegion(item); } warehouseRegion.Deleted = true; }
/// <summary> /// 导入仓库支持的地区 /// </summary> /// <param name="sExcelFile">Excel文件名</param> /// <param name="sSheetName">Sheet名</param> public void ImportWarehouseRegion(string sExcelFile, string sSheetName) { try { ExcelData oExcel = new ExcelData(sExcelFile, sSheetName); DataColumn colOrgan = oExcel.ExcelTable.Columns["组织"]; DataColumn colWhCode = oExcel.ExcelTable.Columns["仓库"]; DataColumn colRegion = oExcel.ExcelTable.Columns["地区"]; DataColumn colRemark = oExcel.ExcelTable.Columns["备注"]; string sLastOrgan = ""; string sLastWarehouse = ""; WarehouseInformation oWarehouse = null; foreach (DataRow row in oExcel.ExcelTable.Rows) { string sOrgCode = row[colOrgan].ToString(); string sWhCode = row[colWhCode].ToString(); string sRegion = row[colRegion].ToString(); string sRemark = row[colRemark].ToString(); if ((sWhCode != sLastWarehouse) || (sOrgCode != sLastOrgan)) { oWarehouse = (from w in dbEntity.WarehouseInformations where w.Parent.Code == sOrgCode && w.Code == sWhCode select w).FirstOrDefault(); sLastOrgan = sOrgCode; sLastWarehouse = sWhCode; } var oRegion = (from r in dbEntity.GeneralRegions where r.Code == sRegion select r).FirstOrDefault(); if (oRegion != null) { var oWhRegion = (from r in dbEntity.WarehouseRegions where r.WhID == oWarehouse.Gid && r.RegionID == oRegion.Gid select r).FirstOrDefault(); if (oWhRegion == null) { oWhRegion = new WarehouseRegion { Warehouse = oWarehouse, Region = oRegion }; dbEntity.WarehouseRegions.Add(oWhRegion); } oWhRegion.Remark = sRemark; dbEntity.SaveChanges(); } if (Utility.ConfigHelper.GlobalConst.IsDebug) Debug.WriteLine("{0} {1} {2}", this.ToString(), sRegion, sRemark); } oEventBLL.WriteEvent(String.Format("导入WarehouseRegion成功: {0} {1}", sExcelFile, sSheetName), ModelEnum.ActionLevel.GENERIC, ModelEnum.ActionSource.SYSTEM, this.ToString()); } catch (Exception ex) { oEventBLL.WriteEvent(String.Format("导入WarehouseRegion错误: {0} {1} {2}", sExcelFile, sSheetName, ex.Message), ModelEnum.ActionLevel.ERROR, ModelEnum.ActionSource.SYSTEM, this.ToString()); } }
public JsonResult RegionAdd(Guid whID, Guid regionID) { bool result; WarehouseInformation warehouse = dbEntity.WarehouseInformations.Find(whID); if (warehouse == null || warehouse.Deleted) { //不存在仓库 result = false; } else { //存在仓库 List<WarehouseRegion> warehouseRegions = (from r in dbEntity.WarehouseRegions where r.WhID == whID && r.RegionID == regionID select r).ToList(); if (warehouseRegions.Any(r => !r.Deleted)) { //已存在仓库支持地区 result = true; } else { //不存在仓库支持地区 WarehouseRegion warehouseRegion; if (warehouseRegions.Any()) { warehouseRegion = warehouseRegions.First(); warehouseRegion.Deleted = false; } else { warehouseRegion = new WarehouseRegion { WhID = whID, RegionID = regionID, Terminal = true }; dbEntity.WarehouseRegions.Add(warehouseRegion); } DeleteChildWarehouseRegion(warehouseRegion); warehouseRegion.Deleted = false; dbEntity.SaveChanges(); result = true; } } return Json(result, JsonRequestBehavior.AllowGet); }