public ActivityInfo(string name, string abbrv, int basePriority, int exhaustionLevel, ActivityFlags flags = ActivityFlags.None, int maxD = 1, int minD = 1, int duration = 1, int maxConcurrent = 1) : base(ID_COUNTER, abbrv) { MinDorms = minD; MaxDorms = maxD; MaxConcurrent = maxConcurrent; Name = name; //Zone = zone; Duration = duration; Priority = basePriority; ExhaustionLevel = exhaustionLevel; Flags = flags; ++ID_COUNTER; IncompatibleActivities = new SortedSet <int>(); if (!Flags.HasFlag(ActivityFlags.Manual)) { if (Flags.HasFlag(ActivityFlags.Exclusive)) { ExclusiveActivityIDs.Add(ID); } else { ActivityIDs.Add(ID); } if (Flags.HasFlag(ActivityFlags.Repeatable)) { RepeatableActivities.Add(ID); } if (Flags.HasFlag(ActivityFlags.MultiDorm)) { MultiDormActivities.Add(ID); if (Flags.HasFlag(ActivityFlags.Concurrent) && abbrv == "GB") { Flags |= ActivityFlags.PriorityExclusive; } } } if (Flags.HasFlag(ActivityFlags.Exhausting)) { HighFatigueActivities.Add(ID); } else if (Flags.HasFlag(ActivityFlags.Relaxing)) { LowFatigueActivities.Add(ID); } }
public static IEnumerable <BPMaterial> GetMaterialsExtra(BlueprintID bpID, ActivityIDs activity = ActivityIDs.Manufacturing) { using (var cnn = new SQLiteConnection(DefaultDatabase.dbConnection)) { cnn.Open(); var query = string.Format(@" SELECT t.typeName, r.requiredTypeID, r.quantity, r.damagePerJob FROM ramTypeRequirements AS r INNER JOIN invTypes AS t ON r.requiredTypeID = t.typeID INNER JOIN invGroups AS g ON t.groupID = g.groupID WHERE r.typeID = {0} AND r.activityID = {1} AND g.categoryID != {2};", bpID, (int)activity, CategoryID.Skill); var reader = DefaultDatabase.RunSQLTableQuery(query, cnn); var results = new List <BPMaterial>(); while (reader.Read()) { results.Add(new BPMaterial(new MaterialID(reader["requiredTypeID"].ToInt()), reader["quantity"].ToLong(), reader["damagePerJob"].ToDecimal())); } return(results); } }
public static IEnumerable<BPMaterial> GetMaterialsExtra(BlueprintID bpID, ActivityIDs activity = ActivityIDs.Manufacturing) { using (var cnn = new SQLiteConnection(DefaultDatabase.dbConnection)) { cnn.Open(); var query = string.Format(@" SELECT t.typeName, r.requiredTypeID, r.quantity, r.damagePerJob FROM ramTypeRequirements AS r INNER JOIN invTypes AS t ON r.requiredTypeID = t.typeID INNER JOIN invGroups AS g ON t.groupID = g.groupID WHERE r.typeID = {0} AND r.activityID = {1} AND g.categoryID != {2};", bpID, (int)activity, CategoryID.Skill); var reader = DefaultDatabase.RunSQLTableQuery(query, cnn); var results = new List<BPMaterial>(); while (reader.Read()) { results.Add(new BPMaterial(new MaterialID(reader["requiredTypeID"].ToInt()), reader["quantity"].ToLong(), reader["damagePerJob"].ToDecimal())); } return results; } }
private void PersonalSubmit(out string msg) { msg = string.Empty; try { BLL.Loger.Log4Net.Info("【个人工单提交Step1——数据验证】"); #region 验证 validate(out msg); if (msg != string.Empty) { msg = "{'result':'false','msg':'" + msg + "'}"; return; } #endregion #region 插入工单表 Entities.WorkOrderInfo model_WorkOrderInfo = bindWorkOrderInfo(out msg); if (msg != string.Empty) { return; } //个人类型增加工单,状态默认-已完成 model_WorkOrderInfo.WorkOrderStatus = (int)Entities.WorkOrderStatus.Completed; model_WorkOrderInfo.WorkCategory = 1;//工单类型-个人;add lxw 13.9.11 BLL.Loger.Log4Net.Info("【个人工单提交Step2——添加工单开始】"); model_WorkOrderInfo.OrderID = BLL.WorkOrderInfo.Instance.Insert(model_WorkOrderInfo); BLL.Loger.Log4Net.Info("【个人工单提交Step2——添加工单结束】OrderID=" + model_WorkOrderInfo.OrderID); //回写IM库 BLL.Loger.Log4Net.Info("【个人工单提交Step3——工单数据回写IM开始】"); UpdateCCWorkOrder2IM(model_WorkOrderInfo); BLL.Loger.Log4Net.Info("【个人工单提交Step3——工单数据回写IM结束】"); #endregion //如果有推荐活动,插入WorkOrderActivity表,add lxw 13.1.14 #region 插入推荐活动 if (ActivityIDs != "") { string[] aIDs = ActivityIDs.Split(','); for (int i = 0; i < aIDs.Length; i++) { Entities.WorkOrderActivity model_Activity = new Entities.WorkOrderActivity(); model_Activity.ActivityGUID = new Guid(aIDs[i]); model_Activity.OrderID = model_WorkOrderInfo.OrderID; model_Activity.CreateTime = operTime; model_Activity.CreateUserID = operUserID; BLL.Loger.Log4Net.Info("【个人工单提交Step4——WorkOrderActivity数据入库开始】"); BLL.WorkOrderActivity.Instance.Insert(model_Activity); BLL.Loger.Log4Net.Info("【个人工单提交Step4——WorkOrderActivity数据入库结束】"); } } #endregion #region 插入工单回复表 Entities.WorkOrderRevert model_Revert = bindWorkOrderRevert(out msg); if (msg != string.Empty) { return; } model_Revert.OrderID = model_WorkOrderInfo.OrderID; model_Revert.ReceiverDepartName = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetDistrictNameByUserID(operUserID); model_Revert.WorkOrderStatus = "已完成"; if (CallID != string.Empty) { model_Revert.CallID = Int64.Parse(CallID); } BLL.Loger.Log4Net.Info("【个人工单提交Step5——WorkOrderRevert数据入库开始】"); BLL.WorkOrderRevert.Instance.Insert(model_Revert); BLL.Loger.Log4Net.Info("【个人工单提交Step5——WorkOrderRevert数据入库结束】"); #endregion #region 插入标签 if (TagIDs != string.Empty) { string[] array_TagIDs = TagIDs.Split(','); for (int k = 0; k < array_TagIDs.Length; k++) { Entities.WorkOrderTagMapping model_Mapping = new Entities.WorkOrderTagMapping(); model_Mapping.OrderID = model_WorkOrderInfo.OrderID; model_Mapping.TagID = int.Parse(array_TagIDs[k]); model_Mapping.Status = 0; model_Mapping.CreateTime = model_Mapping.ModifyTime = operTime; model_Mapping.CreateUserID = model_Mapping.ModifyUserID = operUserID; BLL.Loger.Log4Net.Info("【个人工单提交Step6——插入标签数据入库开始】"); BLL.WorkOrderTagMapping.Instance.Insert(model_Mapping); BLL.Loger.Log4Net.Info("【个人工单提交Step6——插入标签数据入库结束】"); } } #endregion msg = "{'result':'true','OrderID':'" + model_WorkOrderInfo.OrderID + "'}"; } catch (Exception ex) { BLL.Loger.Log4Net.Error("【个人工单提交】出现方法出现问题:" + ex.Message); } }