/// <summary> /// 同步订单 /// </summary> /// <param name="entity"></param> public ProductOrderEntity SyncOrder() { var entity = new ProductOrderEntity(); var rnd = new Random(); entity.OrderCode = string.Format("TB{0}", rnd.Next(100000, 999999).ToString()); entity.Status = (short)ProductOrderStatusEnum.Ready; entity.ProductName = pruducttype[rnd.Next(1, 7) - 1]; entity.Quantity = rnd.Next(1, 10); entity.UnitPrice = 1000; entity.TotalPrice = entity.Quantity * entity.UnitPrice; var a = rnd.Next(1, 10) - 1; entity.CustomerName = customertype[a]; entity.Address = addresstype[a]; entity.Mobile = rnd.Next(100000, 999999).ToString(); entity.Remark = shoptype[rnd.Next(1, 6) - 1]; entity.CreatedTime = System.DateTime.Now; entity.LastUpdatedTime = System.DateTime.Now; using (var session = DbFactory.CreateSession()) { var newEntry = session.GetRepository <ProductOrderEntity>().Insert(entity); session.SaveChanges(); entity.ID = newEntry.ID; } return(entity); }
/// <summary> /// 同步订单 /// </summary> /// <param name="entity"></param> public ProductOrderEntity SyncOrder(IDbConnection conn, IDbTransaction trans) { var entity = new ProductOrderEntity(); var rnd = new Random(); entity.OrderCode = string.Format("TB{0}", rnd.Next(100000, 999999).ToString()); entity.Status = (short)ProductOrderStatusEnum.Ready; entity.ProductName = pruducttype[rnd.Next(1, 7) - 1]; entity.Quantity = rnd.Next(1, 10); entity.UnitPrice = 1000; entity.TotalPrice = entity.Quantity * entity.UnitPrice; var a = rnd.Next(1, 10) - 1; entity.CustomerName = customertype[a]; entity.Address = addresstype[a]; entity.Mobile = rnd.Next(100000, 999999).ToString(); entity.Remark = shoptype[rnd.Next(1, 6) - 1]; entity.CreatedTime = System.DateTime.Now; QuickRepository.Insert <ProductOrderEntity>(conn, entity, trans); return(entity); }
public long Add(ProductOrderEntity model) { var description = "添加产品订单"; try { var sql = @"INSERT INTO [dbo].[ProductOrder]([ProductUserId],[BuyDateTime],[ProductName],[Price],[Unit],[GP],[CreatedTime],[OrderType]) Values(@ProductUserId,@BuyDateTime,@ProductName,@Price,@Unit,@GP,@CreatedTime,@OrderType);select @@Identity;"; var sqlParameter = new List <SqlParameter> { new SqlParameter("@ProductUserId", SqlDbType.BigInt) { Value = model.ProductUserId }, new SqlParameter("@BuyDateTime", SqlDbType.DateTime) { Value = model.BuyDateTime }, new SqlParameter("@ProductName", SqlDbType.NVarChar) { Value = model.ProductName }, new SqlParameter("@Price", SqlDbType.Decimal) { Value = model.Price }, new SqlParameter("@Unit", SqlDbType.NVarChar) { Value = model.Unit }, new SqlParameter("@GP", SqlDbType.NVarChar) { Value = model.GP }, new SqlParameter("@CreatedTime", SqlDbType.DateTime) { Value = model.CreatedTime }, new SqlParameter("@OrderType", SqlDbType.Int) { Value = (int)model.OrderType }, }; RPoney.Log.LoggerManager.Debug(GetType().Name, $"{description}sql:{sql},参数:model{model.SerializeToJSON()}"); return(DataBaseManager.MainDb().ExecuteScalar(sql, sqlParameter.ToArray()).CLong(0, false)); } catch (Exception ex) { RPoney.Log.LoggerManager.Error(GetType().Name, $"{description}异常", ex); return(-1); } }
/// <summary> /// 快递发货 /// </summary> /// <param name="entity"></param> public WfAppResult Delivery(ProductOrderEntity entity) { var appResult = WfAppResult.Default(); var wfas = new WfAppInteropService(); using (var session = DbFactory.CreateSession()) { var transaction = session.DbContext.Database.BeginTransaction(); try { //流程运行 var actionParameterInternal = new ActionParameterInternal(); actionParameterInternal.MethodParameters = new object[] { "alexsenda" }; WfAppRunner.ActionMethodParameters = new Dictionary <string, ActionParameterInternal>(); WfAppRunner.ActionMethodParameters.Add("CallHello", actionParameterInternal); var result = wfas.RunProcess(session, WfAppRunner, WfAppRunner.Conditions); if (result.Status == WfExecutedStatus.Success) { //写步骤记录表 Write(session, WfAppRunner, "发货", entity.ID.ToString(), entity.OrderCode, "完成发货"); //业务数据处理部分,此处是简单示例... short status = GetProductOrderStatusByActivityCode(WfAppRunner.ProcessGUID, WfAppRunner.Version, WfAppRunner.NextActivityPerformers.Keys.ElementAt <string>(0)); UpdateStatus(entity.ID, status, session); transaction.Commit(); appResult = WfAppResult.Success(); } else { transaction.Rollback(); appResult = WfAppResult.Error(result.Message); } } catch (System.Exception ex) { transaction.Rollback(); appResult = WfAppResult.Error(ex.Message); } finally { session.Dispose(); } return(appResult); } }
public static Order Map(this ProductOrderEntity entity, IAdjustmentPersister adjustmentPersister) { return(new Order { Id = entity.id, ConfirmationCode = entity.confirmationCode, OwnerId = entity.ownerId, PurchaserId = entity.purchaserId, Time = entity.time, Price = entity.priceExclTax, AdjustedPrice = entity.priceInclTax, Currency = Currency.GetCurrency(entity.currency), Items = (from i in entity.ProductOrderItemEntities select i.Map()).ToList(), Adjustments = (from a in entity.ProductOrderAdjustmentEntities orderby a.rank select a.Map(adjustmentPersister)).ToList(), }); }
private ResponseResult PublishProductOrderCreateMessage(ProductOrderEntity entity) { var topic = "Slickflow/ERP/OrderSystem/WorkflowService/ProductOrderSynced"; var appRunner = new WfAppRunner(); appRunner.MessageTopic = topic; appRunner.AppName = entity.ProductName; appRunner.AppInstanceID = entity.ID.ToString(); appRunner.AppInstanceCode = entity.OrderCode; //var mqService = new MessageQueueService(); //await mqService.Publish(topic, JsonConvert.SerializeObject(appRunner)); var httpclient = HttpClientHelper.CreateHelper("http://localhost/sfa2/api/MessageQueue/InvokeProcess"); var result = httpclient.Post(appRunner); return(result); }
/// <summary> /// 称重 /// </summary> /// <param name="entity"></param> public WfAppResult Weight(ProductOrderEntity entity) { var appResult = WfAppResult.Default(); var wfas = new WfAppInteropService(); using (var session = DbFactory.CreateSession()) { try { //流程运行 session.BeginTrans(); var result = wfas.RunProcess(session, WfAppRunner, WfAppRunner.Conditions); if (result.Status == WfExecutedStatus.Success) { //写步骤记录表 Write(session, WfAppRunner, "称重", entity.ID.ToString(), entity.OrderCode, "完成称重"); //业务数据处理部分,此处是简单示例... short status = GetProductOrderStatusByActivityCode(WfAppRunner.ProcessGUID, WfAppRunner.Version, WfAppRunner.NextActivityPerformers.Keys.ElementAt <string>(0)); UpdateStatus(entity.ID, status, session); session.Commit(); appResult = WfAppResult.Success(); } else { session.Rollback(); appResult = WfAppResult.Error(result.Message); } } catch (System.Exception ex) { session.Rollback(); appResult = WfAppResult.Error(ex.Message); } finally { session.Dispose(); } return(appResult); } }
public ResponseResult Update([FromBody] ProductOrderEntity entity) { return(Update <ProductOrderEntity>(entity)); }
public ResponseResult <dynamic> Insert([FromBody] ProductOrderEntity entity) { return(Insert <ProductOrderEntity>(entity)); }
/// <summary> /// 派单 /// </summary> /// <param name="entity"></param> public WfAppResult Dispatch(ProductOrderEntity entity) { //启动流程 var appResult = WfAppResult.Default(); var wfas = new WfAppInteropService(); try { //判断流程有没有已经启动 var isRunning = wfas.CheckProcessInstanceRunning(WfAppRunner); if (isRunning == false) { var startedResult = wfas.StartProcess(WfAppRunner); if (startedResult.Status != WfExecutedStatus.Success) { appResult = WfAppResult.Error(startedResult.Message); return(appResult); } } } catch (System.Exception ex) { appResult = WfAppResult.Error(ex.Message); return(appResult); } //运行流程部分 //继续下一步运行 using (var session = DbFactory.CreateSession()) { try { //运行流程 session.BeginTrans(); var runResult = wfas.RunProcess(session, WfAppRunner, WfAppRunner.Conditions); if (runResult.Status == WfExecutedStatus.Success) { //写步骤记录表 Write(session, WfAppRunner, "派单", entity.ID.ToString(), entity.OrderCode, "完成派单"); //业务数据处理部分,此处是简单示例... short status = GetProductOrderStatusByActivityCode(WfAppRunner.ProcessGUID, WfAppRunner.Version, WfAppRunner.NextActivityPerformers.Keys.ElementAt <string>(0)); UpdateStatus(entity.ID, status, session); session.Commit(); appResult = WfAppResult.Success(); } else { session.Rollback(); appResult = WfAppResult.Error(runResult.Message); } } catch (System.Exception ex) { session.Rollback(); appResult = WfAppResult.Error(ex.Message); } finally { session.Dispose(); } return(appResult); } }
/// <summary> /// 打样 /// </summary> /// <param name="entity"></param> public WfAppResult Sample(ProductOrderEntity entity) { var appResult = WfAppResult.Default(); var wfas = new WfAppInteropService(); var session = SessionFactory.CreateSession(); try { session.BeginTrans(); //流程运行 var result = wfas.RunProcess(session, WfAppRunner, WfAppRunner.Conditions); if (result.Status == WfExecutedStatus.Success) { //写步骤记录表 Write(session, WfAppRunner, "打样", entity.ID.ToString(), entity.OrderCode, "完成打样"); //业务数据处理部分,此处是简单示例... short status = GetProductOrderStatusByActivityCode(WfAppRunner.ProcessGUID, WfAppRunner.Version, WfAppRunner.NextActivityPerformers.Keys.ElementAt <string>(0)); UpdateStatus(entity.ID, status, session); session.Commit(); appResult = WfAppResult.Success(); try { //调用工厂作业流程节点: //流程节点:OrderFactoryMessageCaught //流程ProcessGUID:0f5829c7-17df-43eb-bfe5-1f2870fb2a0e Version:1 var invokeAppRunner = new WfAppRunner(); invokeAppRunner.UserID = WfAppRunner.UserID; invokeAppRunner.UserName = WfAppRunner.UserName; invokeAppRunner.ProcessGUID = "0f5829c7-17df-43eb-bfe5-1f2870fb2a0e"; invokeAppRunner.Version = "1"; invokeAppRunner.AppName = WfAppRunner.AppName; invokeAppRunner.AppInstanceID = WfAppRunner.AppInstanceID; invokeAppRunner.AppInstanceCode = WfAppRunner.AppInstanceCode; invokeAppRunner.DynamicVariables["ActivityCode"] = "OrderFactoryMessageCaught"; var httpClient = HttpClientHelper.CreateHelper("http://localhost/sfsweb2/api/wfservice/invokejob"); var invokeResult = httpClient.Post(invokeAppRunner); } catch (System.Exception ex) { //记录异常日志 ; } } else { session.Rollback(); appResult = WfAppResult.Error(result.Message); } } catch (System.Exception ex) { session.Rollback(); appResult = WfAppResult.Error(ex.Message); } finally { session.Dispose(); } return(appResult); }
public long Add(ProductOrderEntity model) { return(_productOrderDal.Value.Add(model)); }