/// <summary> /// 获取用户权限菜单 /// </summary> /// <param name="userId"></param> /// <returns></returns> public IList <SysFunc> GetUserFuncs2(string userId) { PublicService ps = new PublicService(); //获取用户角色关系 IList <UserRole> urolelist = ps.GetGenericService <UserRole>().Query().Where(p => p.UserID == userId).ToList(); ArrayList arry = new ArrayList(); foreach (UserRole u in urolelist) { arry.Add(u.RoleID); } //获取角色列表 IList <Role> rolelist = ps.GetGenericService <Role>().Query().Where(p => arry.Contains(p.ID)).ToList(); ArrayList arry2 = new ArrayList(); foreach (Role u in rolelist) { arry2.Add(u.ID); } //获取菜单角色关系 IList <FuncRole> froleList = ps.GetGenericService <FuncRole>().Query().Where(p => arry2.Contains(p.RoleID)).OrderBy(p => p.SysFuncId).ToList(); ArrayList arry3 = new ArrayList(); foreach (FuncRole u in froleList) { if (!arry3.Contains(u.SysFuncId)) { arry3.Add(u.SysFuncId); } } IList <SysFunc> sysfuncList = ps.GetGenericService <SysFunc>().Query().Where(p => p.IsDisabled == false && arry3.Contains(p.ID)).OrderBy(p => p.OrderNum).ThenBy(p => p.ID).ToList(); return(sysfuncList); }
public void SavePath(string ProjectId, double?Distance, string LonLatStr) { using (var tx = this.m_UnitOfWork.BeginTransaction()) { try { ProjectRoute PR = new ProjectRoute(); PR.ProjectId = ProjectId; PR.Source = "E"; PR.IsPrimary = false; PR = this.Add(PR); this.m_UnitOfWork.Flush(); RouteDetail RD = new RouteDetail(); RD.Distance = Distance; RD.LonLatStr = LonLatStr; RD.RouteId = PR.ID; RD.ProjectID = PR.ProjectId; RD.ProjectRoute = PR; PublicService ps = new PublicService(); ps.GetGenericService <RouteDetail>().Add(RD); tx.Commit(); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message, ex); throw ex; } } }
public override void Delete(object[] ids) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { ThreadID tid; PublicService ps = new PublicService(); foreach (string id in ids) { IList <ProductRecordItem> items = this.m_UnitOfWork.GetRepositoryBase <ProductRecordItem>().Query().Where(m => m.ProductRecordID == id).ToList(); foreach (ProductRecordItem iitem in items) { this.m_UnitOfWork.GetRepositoryBase <ProductRecordItem>().Delete(iitem); tid = new ThreadID(); tid.currentDate = DateTime.Now; tid.typeID = iitem.StuffID; //主材id tid.typename = "0"; //主材 ps.ThreadID.Add(tid); } } base.Delete(ids); //tx.Commit(); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw new Exception(ex.Message); } } }
/// <summary> /// 获取运输单任务 /// </summary> /// <param name="CarId"></param> /// <returns></returns> public IList <ShippingDocument> getShippingTask(string CarId) { IList <ShippingDocument> shippingDocumentList = new List <ShippingDocument>(); IList <Car> CarList = null; PublicService ps = new PublicService(); if (string.IsNullOrEmpty(CarId)) { CarList = ps.GetGenericService <Car>().Query().Where(p => p.CarStatus == ZLERP.Model.Enums.CarStatus.ShippingCar && p.IsUsed).ToList(); } else { CarList = ps.GetGenericService <Car>().Query().Where(p => p.CarStatus == ZLERP.Model.Enums.CarStatus.ShippingCar && p.ID == CarId && p.IsUsed).ToList(); } foreach (Car car in CarList) { ShippingDocument shippingDocument = this.Query().OrderByDescending(p => p.BuildTime).FirstOrDefault(p => p.CarID == car.ID && p.IsEffective); if (shippingDocument != null) { shippingDocumentList.Add(shippingDocument); } } return(shippingDocumentList); }
/// <summary> /// 增加物资入库记录时修改物资总量、库存、入库数量 /// </summary> /// <param name="entity"></param> /// <returns></returns> public GoodsIn AddByPurchase(GoodsIn entity) { try { IRepositoryBase <GoodsInfo> GoodsInfoResp = this.m_UnitOfWork.GetRepositoryBase <GoodsInfo>(); GoodsInfo goodsInfo = GoodsInfoResp.Get(entity.GoodsID); goodsInfo.InNum += entity.InNum; goodsInfo.ContentNum += entity.InNum; goodsInfo.TotalNum += entity.InNum; if (goodsInfo.tPrice == null) { goodsInfo.tPrice = (entity.InNum * entity.InPrice); } else { goodsInfo.tPrice += (entity.InNum * entity.InPrice); } goodsInfo.uPrice = (decimal)goodsInfo.tPrice / (decimal)goodsInfo.ContentNum; GoodsInfoResp.Update(goodsInfo, null); GoodsIn obj = base.Add(entity); //添加新的历史记录 if (s == null) { s = new PublicService(); } GoodsInHistory history = new GoodsInHistory(); history.Builder = obj.Builder; history.BuildTime = obj.BuildTime; history.GoodsID = obj.GoodsID; history.GoodsInIDHistory = obj.ID; history.InNum = obj.InNum; history.InPrice = obj.InPrice; history.InTime = obj.InTime; history.Lifecycle = obj.Lifecycle; history.Modifier = obj.Modifier; history.ModifyTime = obj.ModifyTime; history.Operator = obj.Operator; history.Remark = obj.Remark; history.SupplyName = obj.SupplyName; history.TransportName = obj.TransportName; history.action_u = "新增"; history.GoodsName = goodsInfo.GoodsName; s.GoodsInHistory.Add(history); return(obj); } catch (Exception ex) { logger.Error(ex.Message); throw; } }
public override ProductRecordItem Add(ProductRecordItem entity) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { var ProductRecord = this.m_UnitOfWork.GetRepositoryBase <ProductRecord>().Get(entity.ProductRecordID); var consMixpropID = this.m_UnitOfWork.GetRepositoryBase <ShippingDocument>().Get(ProductRecord.ShipDocID).ConsMixpropID; var amount = this.m_UnitOfWork.GetRepositoryBase <ConsMixpropItem>().Query(). Where(a => a.ConsMixpropID == consMixpropID && a.SiloID == entity.SiloID).Select(a => a.Amount).FirstOrDefault(); entity.TheoreticalAmount = amount * ProductRecord.ProduceCube; decimal tempActualAmount = entity.ActualAmount != null?Convert.ToDecimal(entity.ActualAmount) : 0; decimal tempTheoreticalAmount = entity.TheoreticalAmount != null?Convert.ToDecimal(entity.TheoreticalAmount) : 0; if (tempTheoreticalAmount != 0) { entity.ErrorValue = Math.Round(((tempActualAmount - tempTheoreticalAmount) / tempTheoreticalAmount * 100), 2); } else { entity.ErrorValue = 0; } IRepositoryBase <StuffInfo> stuffinfoRepository = this.m_UnitOfWork.GetRepositoryBase <StuffInfo>(); Silo silo = this.m_UnitOfWork.GetRepositoryBase <Silo>().Get(entity.SiloID); StuffInfo stuffinfo = stuffinfoRepository.Get(entity.StuffID); silo.Content -= tempActualAmount; stuffinfo.Inventory -= tempActualAmount; this.m_UnitOfWork.GetRepositoryBase <Silo>().Update(silo, null); stuffinfoRepository.Update(stuffinfo, null); //this.m_UnitOfWork.Flush(); ProductRecordItem obj = base.Add(entity); ThreadID tid; PublicService ps = new PublicService(); tid = new ThreadID(); tid.currentDate = DateTime.Now; tid.typeID = entity.StuffID; //主材id tid.typename = "0"; //主材 ps.ThreadID.Add(tid); tx.Commit(); return(obj); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw; } } }
/// <summary> /// 删除物资入库记录时修改物资总量、库存、入库数量 /// </summary> /// <param name="entity"></param> public override void Delete(GoodsIn entity) { try { IRepositoryBase <GoodsInfo> GoodsInfoResp = this.m_UnitOfWork.GetRepositoryBase <GoodsInfo>(); GoodsInfo goodsInfo = GoodsInfoResp.Get(entity.GoodsID); goodsInfo.InNum -= entity.InNum; goodsInfo.ContentNum -= entity.InNum; goodsInfo.TotalNum -= entity.InNum; goodsInfo.tPrice -= (entity.InNum * entity.InPrice); goodsInfo.uPrice = (decimal)goodsInfo.ContentNum > 0 ? ((decimal)goodsInfo.tPrice / (decimal)goodsInfo.ContentNum) : 0; GoodsInfoResp.Update(goodsInfo, null); base.Delete(entity); //添加新的历史记录 if (s == null) { s = new PublicService(); } GoodsInHistory history = new GoodsInHistory(); history.Builder = entity.Builder; history.BuildTime = entity.BuildTime; history.GoodsID = entity.GoodsID; history.GoodsInIDHistory = entity.ID; history.InNum = entity.InNum; history.InPrice = entity.InPrice; history.InTime = entity.InTime; history.Lifecycle = entity.Lifecycle; history.Modifier = entity.Modifier; history.ModifyTime = entity.ModifyTime; history.Operator = entity.Operator; history.Remark = entity.Remark; history.SupplyName = entity.SupplyName; history.TransportName = entity.TransportName; history.action_u = "删除"; history.GoodsName = goodsInfo.GoodsName; s.GoodsInHistory.Add(history); } catch (Exception ex) { logger.Error(ex.Message); throw; } }
public bool Import(string id) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { bool result = true; ProductRecord obj = this.Get(id); ShippingDocument shipdoc = this.m_UnitOfWork.ShippingDocumentRepository.Get(obj.ShipDocID); ConsMixprop cm = this.m_UnitOfWork.ConsMixpropRepository.Get(shipdoc.ConsMixpropID); List <ConsMixpropItem> list = this.m_UnitOfWork.ConsMixpropItemRepository.Query().Where(m => m.ConsMixpropID == cm.ID && m.Amount > 0).ToList(); ThreadID tid; PublicService ps = new PublicService(); foreach (ConsMixpropItem c in list) { ProductRecordItem tmp = new ProductRecordItem(); tmp.ActualAmount = obj.ProduceCube * c.Amount; tmp.TheoreticalAmount = obj.ProduceCube * c.Amount; tmp.SiloID = c.SiloID; tmp.StuffID = c.Silo.StuffInfo.ID; tmp.ProductRecordID = id; tmp.ErrorValue = 0; tmp.ProductLineID = obj.ProductLineID; this.m_UnitOfWork.GetRepositoryBase <ProductRecordItem>().Add(tmp); tid = new ThreadID(); tid.currentDate = DateTime.Now; tid.typeID = tmp.StuffID; //主材id tid.typename = "0"; //主材 ps.ThreadID.Add(tid); } tx.Commit(); return(result); } catch (Exception ex) { tx.Rollback(); logger.Error(ex.Message); throw new Exception(ex.Message); } } }
public bool CancelAuditing(CustomerPlan plan) { // var plan = this.Get(id); if (plan != null) { ProduceTask task = new ProduceTask(); task = this.m_UnitOfWork.GetRepositoryBase <ProduceTask>().Get(plan.TaskID); if (task.IsFormulaSend) { throw new Exception("单据已下发配比,不能取消审核!"); } else { //更新CustomerPlan表记录 plan.AuditTime = null; plan.Auditor = string.Empty; string TaskID = plan.TaskID; plan.TaskID = null; this.Update(plan, null); PublicService ps = new PublicService(); if (TaskID != "") { //删除ProducePlan表记录 ProducePlan pplan = new ProducePlan(); pplan = this.m_UnitOfWork.GetRepositoryBase <ProducePlan>().Query().Where(p => p.TaskID.Contains(TaskID)).OrderByDescending(p => p.ID).FirstOrDefault(); if (pplan != null) { ps.GetGenericService <ProducePlan>().Delete(pplan); } //删除ProduceTask表记录 if (task != null) { ps.GetGenericService <ProduceTask>().Delete(task); } } return(true); } } return(false); }
public decimal getNumPrice(string id, string price) { if (ps == null) { ps = new PublicService(); } //入库 decimal sumIn = ps.GoodsIn.Query().Where(m => m.GoodsID == id && m.InPrice == Convert.ToDecimal(price)).Sum(p => p.InNum); //出库 //decimal sumOut = this.Query().Where(m => m.GoodsID == id && m.price == Convert.ToDecimal(price)).Sum(p => p.OutNum); List <GoodsOut> list = this.Query().Where(m => m.GoodsID == id && m.price == Convert.ToDecimal(price)).ToList(); decimal sumOut = 0.00m; foreach (GoodsOut g in list) { sumOut += g.OutNum; } return(sumIn - sumOut); }
/// <summary> /// 车辆加油--修改 /// </summary> /// <param name="entity"></param> /// <param name="form"></param> public override void Update(CarOil entity, System.Collections.Specialized.NameValueCollection form) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { //获取油料密度值 PublicService ps = new PublicService(); SysConfig config = ps.SysConfig.GetSysConfig(Model.Enums.SysConfigEnum.OilDensity); if (config == null) { config.ConfigValue = "0"; } //entity.TotalPrice = entity.Amount * entity.UnitPrice; entity.KiloMeter = entity.ThisKM - entity.LastKM; decimal newAmount = entity.Amount; var obj = this.Get(entity.ID); decimal subAmount = newAmount - obj.Amount * Convert.ToDecimal(config.ConfigValue); base.Update(entity, form); obj.StuffInfo.Inventory -= subAmount; StuffInfoService stuffService = new StuffInfoService(this.m_UnitOfWork); stuffService.Update(obj.StuffInfo, null); obj.Silo.Content -= subAmount; SiloService siloService = new SiloService(this.m_UnitOfWork); siloService.Update(obj.Silo, null); tx.Commit(); } catch { tx.Rollback(); throw; } } }
/// <summary> /// 车辆加油--增加 /// </summary> /// <param name="entity"></param> /// <returns></returns> public override CarOil Add(CarOil entity) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { //entity.TotalPrice = entity.Amount * entity.UnitPrice; entity.KiloMeter = entity.ThisKM - entity.LastKM; base.Add(entity); StuffInfoService stuffService = new StuffInfoService(this.m_UnitOfWork); var stuffInfo = stuffService.Get(entity.StuffID); //获取油料密度值 PublicService ps = new PublicService(); SysConfig config = ps.SysConfig.GetSysConfig(Model.Enums.SysConfigEnum.OilDensity); if (config == null) { config.ConfigValue = "0"; } //减少库存量(加油量*油料密度) stuffInfo.Inventory -= entity.Amount * Convert.ToDecimal(config.ConfigValue); stuffService.Update(stuffInfo, null); SiloService siloService = new SiloService(this.m_UnitOfWork); var siloInfo = siloService.Get(entity.SiloID); siloInfo.Content -= entity.Amount * Convert.ToDecimal(config.ConfigValue); siloService.Update(siloInfo, null); tx.Commit(); return(entity); } catch { tx.Rollback(); throw; } } }
public bool SplitByZT(string id, string sourceShipDocID, decimal sourceCube, string returnType, string returnReason, string[] carIDArr, string[] carCubeArr, string[] actionTypeArr, string tzrFlag, ref string msg) { lock (obj) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { msg = ""; PublicService ps = new PublicService(); //查看是否符合分车标准 TZRalation tz; //for (int i = 0; i < carIDArr.Length; i++) //{ // if (string.IsNullOrEmpty(carIDArr[i])) // continue; // ztl = this.Query().Where(p => p.CarID == carIDArr[i] && p.IsCompleted == false && p.IsLock != "2").FirstOrDefault(); // if (ztl != null) // { // //存在转退料记录 // decimal sum = (string.IsNullOrEmpty(carCubeArr[i]) ? 0.00m : Convert.ToDecimal(carCubeArr[i])) + ztl.Cube; // //查找车容重 // Car car = ps.Car.Query().Where(p => p.ID == carIDArr[i]).FirstOrDefault(); // if (car == null) // { // msg += "没有找到" + carIDArr[i] + "号车</br>"; // break; // } // if (car.MaxCube < sum) // { // //不能大于车辆最大容重 // msg += string.Format("{0}车有转退料{1}方,超过了最大容重{2}。</br>", carIDArr[i], ztl.Cube, car.MaxCube); // break; // } // else // { // } // } //} //if (!string.IsNullOrEmpty(msg)) //{ // return false; //} //查看是否为完成 TZRalation _tz = new TZRalation(); _tz.ID = Convert.ToInt32(id); List <TZRalation> list = this.Query().Where(m => m.ID == Convert.ToInt32(id)).ToList(); if (list == null || list.Count == 0) { msg += "没有找到转退料信息,请重新刷新。"; return(false); } if (list[0].IsCompleted == true) { msg += "不能修改已完成的转退料信息。"; return(false); } //if (list[0].IsLock == "1") //{ // msg = "此转退料已锁定。"; // return false; //} if (list[0].IsLock == "2") { msg += "不能修改合车的转退料信息。"; return(false); } bool isSame = false; DateTime ts = DateTime.Now; for (int i = 0; i < carIDArr.Length; ++i) { decimal sum = 0.00m; bool Flag = false; if (!string.IsNullOrEmpty(carIDArr[i]) && !string.IsNullOrEmpty(carCubeArr[i]) && !string.IsNullOrEmpty(actionTypeArr[i])) { tz = null; tz = this.Query().Where(p => p.CarID == carIDArr[i] && p.IsCompleted == false && (p.IsLock != "2" || p.IsLock != "3")).FirstOrDefault(); if (tz != null) { Flag = true; //存在转退料记录 如果目标车和源车是同一车则不能相加 //if (tz.CarID == carIDArr[i]) if (list[0].CarID == carIDArr[i]) { //同一车 sum = string.IsNullOrEmpty(carCubeArr[i]) ? 0.00m : Convert.ToDecimal(carCubeArr[i]); isSame = true;//同车标识,有同车则不删除老的转退料。 } else { sum = (string.IsNullOrEmpty(carCubeArr[i]) ? 0.00m : Convert.ToDecimal(carCubeArr[i])) + tz.Cube; } //查找车容重 Car car = ps.Car.Query().Where(p => p.ID == carIDArr[i]).FirstOrDefault(); if (car == null) { msg += "没有找到" + carIDArr[i] + "号车</br>"; break; } if (car.MaxCube < sum) { //不能大于车辆最大容重 msg += string.Format("{0}车有转退料{1}方,超过了最大容重{2}。</br>", carIDArr[i], tz.Cube, car.MaxCube); break; } } else { tz = new TZRalation(); sum = string.IsNullOrEmpty(carCubeArr[i]) ? 0.00m : Convert.ToDecimal(carCubeArr[i]); Flag = false; } tz.CarID = carIDArr[i]; tz.Cube = sum; tz.ActionType = actionTypeArr[i]; tz.ActionCube = tz.Cube; tz.TzRalationFlag = tzrFlag; //tz.SourceShipDocID = sourceShipDocID; //tz.SourceCube = sourceCube; //tz.ReturnType = returnType; //不相等说明这个有转退料 不要动里面的源信息 if (tz.SourceShipDocID == list[0].SourceShipDocID) { //相等说明源不变 不用动 } else { //不想等说明源变化了 不要动 if (string.IsNullOrEmpty(tz.SourceShipDocID)) { //没有转退料信息的时候给予最初的 tz.SourceShipDocID = list[0].SourceShipDocID; tz.SourceCube = list[0].SourceCube; tz.ReturnType = list[0].ReturnType; } } if (tz.ActionType == Model.Enums.ActionType.Reject) { tz.IsCompleted = true; } else { tz.IsCompleted = false; } tz.AH = Model.Enums.Consts.Handle; tz.ReturnReason = returnReason; tz.ActionTime = ts; //tz.ActionCube = string.IsNullOrEmpty(carCubeArr[i]) ? 0.00m : Convert.ToDecimal(carCubeArr[i]); //tz.SourceCube; tz.IsLock = "1";//分车锁定 decimal?value; if (string.IsNullOrEmpty(carCubeArr[i])) { value = null; } else { value = Convert.ToDecimal(carCubeArr[i]); } if (Flag) { base.Update(tz, null); AddHistory(tz, "update", list[0].CarID, value); } else { base.Add(tz); AddHistory(tz, "add", list[0].CarID, value); } } } if (!string.IsNullOrEmpty(msg)) { tx.Rollback(); return(false); } //删除老的 if (!isSame) { base.Delete(list[0]); AddHistory(list[0], "delete", list[0].CarID, list[0].Cube); } tx.Commit(); return(true); } catch (Exception e) { tx.Rollback(); logger.Error(e.Message, e);; } } return(false); } }
/// <summary> /// 获得报警信息 /// </summary> /// <param name="tid"></param> /// <param name="allcars"></param> /// <param name="gpsinfos"></param> /// <param name="allog"></param> /// <returns></returns> public List <GPS_CarAlarmInfo> GetAlarams(string tid, IEnumerable <Car> allcars, IEnumerable <LastestGpsInfo> gpsinfos, IEnumerable <AlarmLog> allog) { List <GPS_CarAlarmInfo> list = new List <GPS_CarAlarmInfo>(); LastestGpsInfo gpsinfo = null; var gpsInfos = gpsinfos.Where(exp => exp.TerminalID == tid); if (gpsInfos != null && gpsInfos.Count() > 0) { gpsinfo = gpsInfos.First(); } PublicService ps = new PublicService(); if (gpsinfo == null) { SysConfig Gpsconfig = ps.SysConfig.GetSysConfig("Gps"); if (bool.Parse(Gpsconfig.ConfigValue)) { GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo(); caralarm.alarmInfo = "尚未收到GPS数据!"; caralarm.alarmTypeID = "002006"; caralarm.alarmTime = DateTime.Now; list.Add(caralarm); } } else { SysConfig Gprsconfig = ps.SysConfig.GetSysConfig("Gprs"); if (bool.Parse(Gprsconfig.ConfigValue) && gpsinfo.Receivetime != null && (DateTime.Compare(gpsinfo.Receivetime.Value.AddHours(2), DateTime.Now) <= 0)) { GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo(); caralarm.alarmInfo = "超过2小时无GPS数据上传!"; caralarm.alarmTypeID = "002006"; caralarm.alarmTime = DateTime.Now; list.Add(caralarm); } else { var Tid = gpsinfo.TerminalID; var time = gpsinfo.Sendtime; var cars = allcars.Where(e => e.TerminalID == tid); var car = cars != null?cars.First() : null; if (car == null) { GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo(); caralarm.alarmInfo = "根据终端号未查询到车辆历史gps信息"; caralarm.alarmTypeID = "002006"; caralarm.alarmTime = DateTime.Now; list.Add(caralarm); } else { var allogs = allog.Where(e => e.AlarmTime == time && e.CarID.ToString() == car.ID); foreach (var log in allogs) { GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo(); caralarm.alarmInfo = log.AlarmData; caralarm.alarmTypeID = log.AlarmTypeID.ToString(); caralarm.alarmTime = log.AlarmTime; list.Add(caralarm); } } } } return(list); }
public string AddPurchase(string[] arry) { lock (obj) { string msg = "";//错误信息 if (arry == null || arry.Length == 0) { return(msg = "传递参数为空"); } using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { //创建采购子表 string main_id = arry[0]; PurchaseMain mainobj = this.m_UnitOfWork.GetRepositoryBase <PurchaseMain>().Query().Where(m => (m.ID).ToString() == main_id).FirstOrDefault(); if (mainobj == null) { msg = "找不到编号为" + main_id + "的主表数据"; return(msg); } //判断数量 if (mainobj.Purchases == null || mainobj.Purchases.Count == 0) { } else { decimal num = 0; for (int i = 0; i < mainobj.Purchases.Count; i++) { num += mainobj.Purchases[i].Purchase_Num; } num += Convert.ToDecimal(arry[1]); if (num > mainobj.Main_Num) { //数量超标了 msg = string.Format("采购计划数量{0},本次购买{1},超标{2}", mainobj.Main_Num, Convert.ToDecimal(arry[1]), num - mainobj.Main_Num); return(msg); } } Purchase purchase = new Purchase(); purchase.PurchaseMain = mainobj; purchase.Purchase_Num = Convert.ToDecimal(arry[1]); //purchase.Purchase_Num1 = Convert.ToDecimal(arry[18]); purchase.Purchase_Price = Convert.ToDecimal(arry[2]); purchase.Purchase_Money = Convert.ToDecimal(arry[3]); purchase.Purchase_ManTel = arry[4]; purchase.Purchase_Man = arry[5]; purchase.Purchase_Date = Convert.ToDateTime(arry[6]); purchase.Purchase_StickMoney = Convert.ToDecimal(arry[7]); purchase.Purchase_NoMoney = Convert.ToDecimal(arry[8]); purchase.Purchase_StickNo = arry[9]; purchase.Purchase_State = 0;//未完成 purchase.Remark = ""; purchase.GoodsID = mainobj.GoodsID; purchase.GoodsName = mainobj.GoodsName; purchase.Main_ID = (int)mainobj.ID; //purchase.Purchase_Num1 = 0.00m; this.Add(purchase); //创建合同表 PurchaseContract purchaseContract = new PurchaseContract(); purchaseContract.Purchase = purchase; purchaseContract.PurchaseContract_Name = arry[10]; purchaseContract.PurchaseContract_SupplyTel = arry[11]; purchaseContract.PurchaseContract_Supply = arry[12]; purchaseContract.PurchaseContract_Price = Convert.ToDecimal(arry[2]); purchaseContract.PurchaseContract_Num = Convert.ToDecimal(arry[1]); purchaseContract.PurchaseContract_Money = Convert.ToDecimal(arry[3]); purchaseContract.PurchaseContract_One = arry[13]; purchaseContract.PurchaseContract_Tow = arry[14]; purchaseContract.PurchaseContract_Date = Convert.ToDateTime(arry[15]); purchaseContract.PurchaseContract_StartDate = Convert.ToDateTime(arry[16]); purchaseContract.PurchaseContract_EndDate = Convert.ToDateTime(arry[17]); purchaseContract.GoodsID = mainobj.GoodsID; purchaseContract.GoodsName = mainobj.GoodsName; purchaseContract.Purchase_ID = (int)purchase.ID; purchaseContract.PurchaseContract_SupplyTel1 = arry[18]; purchaseContract.PurchaseContract_Supply1 = arry[19]; purchaseContract.PurchaseContract_SupplyID = arry[20]; if (ps == null) { ps = new PublicService(); } ps.PurchaseConstract.Add(purchaseContract); tx.Commit(); } catch (Exception e) { tx.Rollback(); return(e.Message); } } return(msg); } }
public string InGoods(string id, decimal num) { lock (obj) { using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { Purchase p = this.Get(Convert.ToInt32(id)); if (ps == null) { ps = new PublicService(); } //数量累加 PurchaseMain pm = p.PurchaseMain; if (pm == null) { tx.Rollback(); return("找不到PurchaseMain数据。"); } pm.Main_num1 += num; ps.PurchaseMain.Update(pm); //修改数量 if (p == null) { return("找不到ID为" + id + "的信息"); } if (p.Purchase_Num < p.Purchase_Num1 + num) { return("超过额定量"); } if (p.Purchase_State == 1) { return("任务已经完成"); } p.Purchase_Num1 += num; if (p.Purchase_Num == p.Purchase_Num1)//满表示完成了 { p.Purchase_State = 1; if (p.PurchaseContracts != null) { //更新合同完成 p.PurchaseContracts[0].PurchaseContract_state = 1; this.ps.PurchaseConstract.Update(p.PurchaseContracts[0]); } } this.Update(p); //入库存 AddByPurchase方法有写库存 //GoodsInfo ginfo = this.m_UnitOfWork.GetRepositoryBase<GoodsInfo>().Query().Where(m => m.ID == p.GoodsID).FirstOrDefault(); //if (ginfo == null) //{ // tx.Rollback(); // return "找不到" + p.GoodsID + "的物资"; //} //ginfo.ContentNum += num; //this.ps.GoodsInfo.Update(ginfo); //入库信息 GoodsIn gIn = new GoodsIn(); gIn.GoodsID = p.GoodsID; gIn.InNum = num; gIn.SupplyName = p.PurchaseContracts[0].PurchaseContract_Supply; gIn.InPrice = p.Purchase_Price; gIn.InTime = DateTime.Now; gIn.Operator = AuthorizationService.CurrentUserID; gIn.TransportName = p.PurchaseContracts[0].PurchaseContract_Supply1; if (p.PurchaseContracts != null) { //添加合同 gIn.PurchaseContract_ID = p.PurchaseContracts[0].ID; gIn.PurchaseContract_Name = p.PurchaseContracts[0].PurchaseContract_Name; } this.ps.GoodsIn.AddByPurchase(gIn); tx.Commit(); return(""); } catch (Exception e) { tx.Rollback(); return(e.Message); } } } }
public string UpdatePurchase(string[] arry) { lock (obj) { string msg = "";//错误信息 if (arry == null || arry.Length == 0) { return(msg = "传递参数为空"); } using (IGenericTransaction tx = this.m_UnitOfWork.BeginTransaction()) { try { Purchase purchase = this.Get(Convert.ToInt32(arry[0])); if (purchase == null) { msg = "找不到编号为" + arry[0] + "的子表数据"; return(msg); } //创建采购子表 if (purchase.PurchaseMain == null) { msg = "找不到主表数据"; return(msg); } PurchaseMain mainobj = purchase.PurchaseMain; //判断数量 if (mainobj.Purchases == null || mainobj.Purchases.Count == 0) { } else { decimal num = 0; for (int i = 0; i < mainobj.Purchases.Count; i++) { if (mainobj.Purchases[i].ID.ToString() != arry[0]) { num += mainobj.Purchases[i].Purchase_Num; } } num += Convert.ToDecimal(arry[1]); if (num > mainobj.Main_Num) { //数量超标了 msg = string.Format("采购计划数量{0},本次购买{1},超标{2}", mainobj.Main_Num, Convert.ToDecimal(arry[1]), num - mainobj.Main_Num); return(msg); } } purchase.Purchase_Num = Convert.ToDecimal(arry[1]); purchase.Purchase_Price = Convert.ToDecimal(arry[2]); purchase.Purchase_Money = Convert.ToDecimal(arry[3]); purchase.Purchase_ManTel = arry[4]; purchase.Purchase_Man = arry[5]; purchase.Purchase_Date = Convert.ToDateTime(arry[6]); purchase.Purchase_StickMoney = Convert.ToDecimal(arry[7]); purchase.Purchase_NoMoney = Convert.ToDecimal(arry[8]); purchase.Purchase_StickNo = arry[9]; //purchase.Purchase_Num1 = Convert.ToDecimal(arry[18]); this.Update(purchase); //合同表 if (purchase.PurchaseContracts == null || purchase.PurchaseContracts.Count == 0) { msg = "找不到合同数据!"; tx.Rollback(); return(msg); } PurchaseContract purchaseContract = purchase.PurchaseContracts[0]; purchaseContract.PurchaseContract_Name = arry[10]; purchaseContract.PurchaseContract_SupplyTel = arry[11]; purchaseContract.PurchaseContract_Supply = arry[12]; purchaseContract.PurchaseContract_SupplyTel1 = arry[18]; purchaseContract.PurchaseContract_Supply1 = arry[19]; purchaseContract.PurchaseContract_Price = Convert.ToDecimal(arry[2]); purchaseContract.PurchaseContract_Num = Convert.ToDecimal(arry[1]); purchaseContract.PurchaseContract_Money = Convert.ToDecimal(arry[3]); purchaseContract.PurchaseContract_One = arry[13]; purchaseContract.PurchaseContract_Tow = arry[14]; purchaseContract.PurchaseContract_Date = Convert.ToDateTime(arry[15]); purchaseContract.PurchaseContract_StartDate = Convert.ToDateTime(arry[16]); purchaseContract.PurchaseContract_EndDate = Convert.ToDateTime(arry[17]); purchaseContract.PurchaseContract_SupplyID = arry[20]; if (ps == null) { ps = new PublicService(); } ps.PurchaseConstract.Update(purchaseContract); tx.Commit(); } catch (Exception e) { tx.Rollback(); return(e.Message); } } return(msg); } }
public void SendModifiedPBToKZ(ConsMixprop entity, string[] DirtyDataArr) { using (var tx = this.m_UnitOfWork.BeginTransaction()) { try { if (DirtyDataArr != null) { ////先保存子表数据,只用到编号与数量 string is2012 = ""; Synmonitor synTable = null; PublicService op = null; foreach (string DirtyData in DirtyDataArr) { string[] dirty = DirtyData.Split(','); ConsMixpropItemService consMixpropItemservice = new ConsMixpropItemService(this.m_UnitOfWork); ConsMixpropItem item = consMixpropItemservice.Get(Convert.ToInt32(dirty[0])); item.Amount = Convert.ToDecimal(dirty[1]); consMixpropItemservice.Update(item, null); is2012 = ConfigurationManager.AppSettings["Is2012"]; if (is2012 == "true") { //是2012工控则插入同步表 synTable = new Synmonitor(); synTable.tb_name = "view_ConsMixpropItems"; synTable.tb_action = "UPDATE"; synTable.key_name = "ConsMixpropID"; synTable.key_value = dirty[0]; synTable.key_type = "0"; synTable.action_time = DateTime.Now; synTable.ProductLineID = item.ConsMixprop.ProductLineID; if (op == null) { op = new PublicService(); } op.Synmonitor.Add(synTable); } } } IConsMixpropItemRepository IConItems = this.m_UnitOfWork.ConsMixpropItemRepository; IList <ConsMixpropItem> citems = IConItems.Query().Where(m => m.ConsMixpropID == entity.ID).ToList(); decimal totolWeight = 0; foreach (ConsMixpropItem citem in citems) { totolWeight = totolWeight + citem.Amount; } ConsMixprop cons = this.Get(entity.ID); cons.SynStatus = entity.SynStatus; base.Update(cons, null); entity = this.Get(entity.ID); SysConfigService configService = new SysConfigService(this.m_UnitOfWork); SysConfig config = configService.GetSysConfig(SysConfigEnum.IsAllowConsMixpropLimit); if (!entity.IsSlurry) { SysConfig configFormulaRZMax = configService.GetSysConfig(SysConfigEnum.FormulaRZMax); SysConfig configFormulaRZMin = configService.GetSysConfig(SysConfigEnum.FormulaRZMin); decimal dFormulaRZMax = decimal.Parse(configFormulaRZMax.ConfigValue); decimal dFormulaRZMin = decimal.Parse(configFormulaRZMin.ConfigValue); decimal weight = entity.Weight ?? 0; if (config != null && bool.Parse(config.ConfigValue) && entity.ProduceTask.CementType == Model.Enums.CementType.CommonCement) { if (totolWeight > dFormulaRZMax || totolWeight < dFormulaRZMin) { throw new Exception("混凝土配比超出容重范围"); } string measureError = CheckMesureScale(entity.TaskID, entity.ProductLineID, 0, 0, true, false); if (!string.IsNullOrEmpty(measureError)) { throw new Exception(measureError); } } } else { if (config != null && bool.Parse(config.ConfigValue) && entity.ProduceTask.CementType == Model.Enums.CementType.CommonCement) { string measureError = CheckMesureScale(entity.TaskID, entity.ProductLineID, 0, 0, false, true); if (!string.IsNullOrEmpty(measureError)) { throw new Exception(measureError); } } } if (entity.SynStatus == 1) //发送配比 { /*//直连:通知控制系统修改配比 * by:Sky 2013/3/17 *****************************************************************************/ IList <ConsMixpropItem> cmItems = this.m_UnitOfWork.GetRepositoryBase <ConsMixpropItem>().All("ConsMixpropID='" + entity.ID + "'", "ID", true); ResultInfo result = controlSystem.UpdateConsMixprop(entity, cmItems); if (!result.Result) //配比没有发送成功 { throw new Exception(result.Message); } } tx.Commit(); } catch (Exception e) { tx.Rollback(); throw e; } } }
public dynamic GetLastDocByTaskId(string taskid) { ShippingDocument doc = this.Find("TaskID = '" + taskid + "' AND IsEffective = 1 AND ShipDocType = '0'", 1, 1, "ID", "DESC").FirstOrDefault(); //已下配比生产线判断不全面,如1#线下了混凝土配比,2#线只下了砂浆配比,搅拌机组下拉框中只有有1#线 //只有砂浆配比的情况,只要判断IsSlurry = 0的数量是否为0 //IList<ConsMixprop> phblistcount = this.m_UnitOfWork.ConsMixpropRepository.Find("TaskID = '" + taskid + "' AND IsSlurry = 0", 1, 30, "ProductLineID", "ASC"); //IList<ConsMixprop> phblist = null; //if (phblistcount.Count == 0) //{ // phblist = this.m_UnitOfWork.ConsMixpropRepository.Find("TaskID = '" + taskid + "' AND AuditStatus = 1 ", 1, 30, "ProductLineID", "ASC"); //} //else { // phblist = this.m_UnitOfWork.ConsMixpropRepository.Find("TaskID = '" + taskid + "' AND AuditStatus = 1 AND IsSlurry = 0", 1, 30, "ProductLineID", "ASC"); //} IList <ConsMixprop> phblist = null; phblist = this.m_UnitOfWork.ConsMixpropRepository.Find("TaskID = '" + taskid + "' AND AuditStatus = 1 ", 1, 30, "ProductLineID", "ASC"); IList <string> pdlist = phblist.Select(p => p.ProductLineID).Distinct().ToList(); IList <ProductLine> productlines = null; SysConfigService configService = new SysConfigService(this.m_UnitOfWork); if (pdlist.Count > 0) { productlines = this.m_UnitOfWork.GetRepositoryBase <ProductLine>() .Query().Where(p => p.IsUsed && pdlist.Contains(p.ID)) .OrderBy(p => p.ID).ToList(); //获取所有未完成的单 IList <DispatchList> dispatchList = this.m_UnitOfWork.GetRepositoryBase <DispatchList>() .Query().Where(d => d.IsCompleted == false).OrderBy(d => d.DispatchOrder).ToList(); //计算预计发车时间 //SysConfig delayConfig = this.m_UnitOfWork.GetRepositoryBase<SysConfig>() // .Find("ConfigName = 'DelayDeliveryTime'", 1, 1, "ID", "DESC").FirstOrDefault(); SysConfig delayConfig = configService.GetSysConfig(SysConfigEnum.DelayDeliveryTime); int delayTime = delayConfig == null ? 8 : Convert.ToInt32(delayConfig.ConfigValue);//未找到参数,默认8 foreach (ProductLine item in productlines) { string id = item.ID; int count = dispatchList.Where(d => d.ProductLineID == id).ToList().Count + 1; //将预计发车时间赋值给productline的modifytime int delayMinute = count * delayTime; DateTime deliveryTime = DateTime.Now.AddMinutes(delayMinute); item.ModifyTime = deliveryTime; } } //自动选中车辆 SysConfig config = configService.GetSysConfig(Model.Enums.SysConfigEnum.AutoSelectCarID); bool autoSelectCar = config == null ? true : Convert.ToBoolean(config.ConfigValue); string autoCarID = string.Empty; if (autoSelectCar) { Car crtCar = null; IList <Car> carList = this.m_UnitOfWork.GetRepositoryBase <Car>().Query() .Where(p => p.CarStatus == CarStatus.AllowShipCar && p.CarTypeID == CarType.Mixer && p.IsUsed) .OrderBy(p => p.OrderNum).OrderBy(p => p.ID).ToList(); SysConfig carLendFilterConfig = configService.GetSysConfig(Model.Enums.SysConfigEnum.IsCarLendFilter); if (carLendFilterConfig != null && carLendFilterConfig.ConfigValue == "true") { var carLendList = new CarLendItemService(this.m_UnitOfWork).All("BackTime is null", "ID", true).Select(c => c.CarID); crtCar = carList.Where(p => !carLendList.Contains(p.ID)).FirstOrDefault(); } else { crtCar = carList.FirstOrDefault(); } if (crtCar != null) { autoCarID = crtCar.ID; } } CustomerPlan cp = new CustomerPlan(); cp = new PublicService().CustomerPlan.Query().Where(m => m.TaskID == taskid).FirstOrDefault(); return(new { Result = true , Message = string.Empty , Remark = doc == null ? string.Empty : (doc.Remark != null && doc.Remark.IndexOf("CODEADD") >= 0 ? doc.Remark.Remove(doc.Remark.IndexOf("CODEADD")) : doc.Remark) //,PumpName = doc == null ? string.Empty : doc.PumpName , PumpName = doc == null ? (cp == null?string.Empty:cp.PumpName) : doc.PumpName , PumpMan = doc == null? (cp == null ? string.Empty : cp.PumpMan):doc.PumpMan , ProvidedCube = doc == null ? 0 : doc.ProvidedCube , PlanCube = doc == null ? 0 : doc.PlanCube //累计车数 , ProvidedTimes = doc == null ? 0 : doc.ProvidedTimes //生产线 , ProductLines = productlines //自动选中的车辆 , AutoCarID = autoCarID }); }
/// <summary> /// 插入历史数据 /// </summary> /// <param name="entity"></param> /// <param name="operation"></param> /// <param name="opertionnum">真实源车车号</param> /// <param name="num">方量</param> public void AddHistory(TZRalation entity, string operation, string opertionnum, decimal?operationcube) { //插入历史数据 TZRalationHistory history = new TZRalationHistory(); history.ActionCube = entity.ActionCube; history.ActionTime = entity.ActionTime; history.ActionType = entity.ActionType; history.AH = entity.AH; history.Auditor = entity.Auditor; history.AuditTime = entity.AuditTime; history.Builder = entity.Builder; history.BuildTime = entity.BuildTime; history.CarID = entity.CarID; history.CarWeight = entity.CarWeight; history.Cube = entity.Cube; history.DealMan = entity.DealMan; history.DealTime = entity.DealTime; history.Driver = entity.Driver; history.DriverUser = entity.DriverUser; history.Exchange = entity.Exchange; history.ID = entity.ID; history.IsAudit = entity.IsAudit; history.IsCompleted = entity.IsCompleted; if (operation == "delete") { history.IsLock = "-1"; } else { history.IsLock = entity.IsLock; } history.Lifecycle = entity.Lifecycle; history.Modifier = entity.Modifier; history.ModifyTime = entity.ModifyTime; history.ReturnReason = entity.ReturnReason; history.ReturnType = entity.ReturnType; history.ShippingDocument = entity.ShippingDocument; history.ShippingDocuments = entity.ShippingDocuments; //history.SourceCarID = entity.SourceCarID; //history.SourceConStrength = entity.SourceConStrength; history.SourceCube = entity.SourceCube; //history.SourceProjectName = entity.SourceProjectName; history.SourceShipDocID = entity.SourceShipDocID; history.SourceShippingDocument = entity.SourceShippingDocument; //history.TargetConStrength = entity.TargetConStrength; //history.TargetProjectName = entity.TargetProjectName; history.TargetShipDocID = entity.TargetShipDocID; history.TargetShippingDocument = entity.TargetShippingDocument; history.TotalWeight = entity.TotalWeight; history.Version = entity.Version; history.Weight = entity.Weight; history.ParentID = entity.ID; history.operation = operation; history.operationnum = opertionnum; history.operationcube = operationcube; history.TzRalationFlag = entity.TzRalationFlag; s = (s == null ? (new PublicService()) : s); s.TZRalationHistory.Add(history); }