public override bool Excute() { bool result = true; try { //删除已存在的文档 if (System.IO.File.Exists(Entry.ExportPath)) { System.IO.File.Delete(Entry.ExportPath); } //拷贝模板word System.IO.File.Copy(Entry.GetTemplateFilePath(), Entry.ExportPath, true); //开启编辑 mHelper = new WorkHelper(Entry.ExportPath); //执行自定义写入方法 onWriteCustomContext(Entry); //保存 mHelper.Save(); } catch (Exception ex) { ErrorMessage = ex.Message; result = false; } return(result); }
public object PostPerson([FromBody] IEnumerable <PersonDetail> details) { if (details == null || !details.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (details.Any(x => x.AccountId == 0)) { return(Result.GenError <Result>(Error.PersonNotEmpty)); } if (details.GroupBy(x => x.AccountId).Any(y => y.Count() > 1)) { return(Result.GenError <Result>(Error.PersonDuplicate)); } var wId = details.FirstOrDefault()?.WorkshopId ?? 0; var sames = details.Select(x => x.AccountId); if (WorkHelper.GetHaveSame(wId, sames)) { return(Result.GenError <Result>(Error.PersonIsExist)); } var userId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; foreach (var detail in details) { detail.CreateUserId = userId; detail.MarkedDateTime = markedDateTime; detail.Remark = detail.Remark ?? ""; } WorkHelper.Instance.Add(details); return(Result.GenError <Result>(Error.Success)); }
protected override void Execute(NativeActivityContext context) { const string isnullerrorformat = "Свойство '{0}' должно быть задано."; _context = context; var workerId = WorkerId.Get(context); if (!workerId.HasValue) { throw new DeveloperException(isnullerrorformat, WorkingIdPropertyName); } string filter = null; var excludedOperations = ExcludedOperations.Get(context); if (!string.IsNullOrEmpty(excludedOperations)) { var ops = excludedOperations.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (ops.Length > 0) { filter = string.Format(" and w.operationcode_r not in ({0})", string.Join(",", ops.Select(p => string.Format("'{0}'", p)))); } } var workhelper = new WorkHelper(); var result = workhelper.ClosingWorking(workerId: workerId.Value, filter: filter, dialogTitle: "Подтверждение", workername: WorkerFullName.Get(context), dialogMessageHandler: ActivityHelpers.ClosingWorkingDialogMessage, dialogWorkerDateTillHandler: ShowDialogWorkerDateTill, fontSize: FontSize.Get(context)); Result.Set(context, result); }
private void DrawSelection() { GUI.skin = ResourceManager.SelectBoxSkin; Rect selectBox = WorkHelper.CalculateSelectionBox(boundsSelection, playingArea); //Draw the selection box around the currently selected object, within the bounds of the playing area GUI.BeginGroup(playingArea); DrawSelectionBox(selectBox); GUI.EndGroup(); }
public object PostWork([FromBody] IEnumerable <WorkDetail> details) { if (details == null || !details.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (details.Any(x => x.EstimatedTime == default(DateTime))) { return(Result.GenError <Result>(Error.WorkEstimatedTimeError)); } if (details.Any(x => x.EstimatedTime < DateTime.Today)) { return(Result.GenError <Result>(Error.WorkEstimatedTimeMin)); } if (details.Any(x => x.Target <= 0)) { return(Result.GenError <Result>(Error.WorkTargetError)); } var opQIds = details.Select(x => x.OProductionId).Distinct(); var oldWorkProductions = OrderProductionHelper.GetDetails(null, null, opQIds); if (oldWorkProductions.Count() != opQIds.Count()) { return(Result.GenError <Result>(Error.OrderProductionNotExist)); } var userId = Request.GetIdentityInformation(); var markedDateTime = DateTime.Now; foreach (var detail in details) { detail.CreateUserId = userId; detail.MarkedDateTime = markedDateTime; detail.CreateTime = markedDateTime; detail.Remark = detail.Remark ?? ""; } var numbers = WorkHelper.GetNumbers(userId, markedDateTime, details.Count(), "DD"); if (numbers.Count() != details.Count()) { return(Result.GenError <Result>(Error.OrderIdFail)); } details = details.Select((x, i) => { x.WoNumber = numbers.ElementAt(i).WoNumber; return(x); }); WorkHelper.Instance.Add(details); var result = new DataResult(); result.datas.AddRange(numbers.Select(x => x.WoNumber)); return(result); }
//Проверяем открытые работы для данного workerId private bool ValidateWorkingByWorkerId(decimal?workerId) { if (!workerId.HasValue) { return(false); } var workhelper = new WorkHelper(); var result = workhelper.ClosingWorking(workerId: workerId.Value, filter: null, dialogTitle: "Подтверждение", workername: null, dialogMessageHandler: ActivityHelpers.ClosingWorkingDialogMessage, dialogWorkerDateTillHandler: null, fontSize: FontSize.Get(_context)); return(result); }
public object PutPerson([FromBody] IEnumerable <PersonDetail> details) { if (details == null || !details.Any()) { return(Result.GenError <Result>(Error.ParamError)); } if (details.Any(x => x.Id == 0)) { return(Result.GenError <Result>(Error.PersonNotExist)); } if (details.Any(x => x.AccountId == 0)) { var ids = details.Select(x => x.Id); var cnt = WorkHelper.Instance.GetCountByIds(ids); if (cnt != details.Count()) { return(Result.GenError <Result>(Error.PersonNotExist)); } WorkHelper.Enable(details); } else { //if (details.GroupBy(x => x.AccountId).Any(y => y.Count() > 1)) //{ // return Result.GenError<Result>(Error.PersonDuplicate); //} //var wId = details.FirstOrDefault()?.WorkshopId ?? 0; //var sames = details.Select(x => x.AccountId); var ids = details.Select(x => x.Id); //if (PersonHelper.GetHaveSame(wId, sames, ids)) //{ // return Result.GenError<Result>(Error.PersonIsExist); //} var cnt = WorkHelper.Instance.GetCountByIds(ids); if (cnt != details.Count()) { return(Result.GenError <Result>(Error.PersonNotExist)); } var markedDateTime = DateTime.Now; foreach (var detail in details) { detail.MarkedDateTime = markedDateTime; detail.Remark = detail.Remark ?? ""; } WorkHelper.Instance.Update(details); } return(Result.GenError <Result>(Error.Success)); }
public DataResult GetWork([FromQuery] int wId, int qId, int oId, bool menu) { var result = new DataResult(); result.datas.AddRange(menu ? WorkHelper.GetMenu(wId, qId, oId) : WorkHelper.GetDetail(wId, qId, oId)); if (qId != 0 && !result.datas.Any()) { result.errno = Error.WorkNotExist; return(result); } return(result); }
public void Register() { #region 用户 AddAccount += (o, args) => { try { var time = args.Item1; var accounts = args.Item2; var plats = accounts.Where(x => x.Platform && x.Belongs.Any()); if (plats.Any()) { WorkHelper.Instance.Add(plats.SelectMany(x => x.Belongs.Select(y => new Person { MarkedDateTime = time, WorkshopId = y, AccountId = x.Id, }))); } } catch (Exception e) { Log.Error(e); } }; UpdateAccount += (o, args) => { try { var time = args.Item1; var newAccounts = args.Item2; var oldAccounts = args.Item3; //生产平台 var oldAccountDic = oldAccounts.ToDictionary(x => x.Id); var plats = newAccounts.Where(x => oldAccountDic[x.Id].Platform != x.Platform || oldAccountDic[x.Id].Belong != x.Belong); if (plats.Any()) { var wIds = plats.SelectMany(x => x.Belongs).Distinct(); var aIds = plats.Select(x => x.Id).Distinct(); if (plats.Any() && plats.Any()) { var oldWIds = plats.SelectMany(x => oldAccountDic[x.Id].Belongs).Distinct(); var pers = WorkHelper.GetDetailsNoM(oldWIds, aIds); var add = new List <Person>(); var delR = new List <Person>(); var del = new List <int>(); var platTmps = plats.Where(x => x.Platform).SelectMany(x => x.Belongs .Select(y => new Person { MarkedDateTime = time, WorkshopId = y, AccountId = x.Id, })); add.AddRange(platTmps.Where(x => !pers.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId))); delR.AddRange(pers.Where(x => platTmps.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId) && x.MarkedDelete).Select(x => { x.MarkedDateTime = time; x.MarkedDelete = false; return(x); })); del.AddRange(pers.Where(x => !platTmps.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId)).Select(x => x.Id)); if (add.Any()) { WorkHelper.Instance.Add(add); } if (delR.Any()) { WorkHelper.DeleteRecover(delR); } if (del.Any()) { WorkHelper.Instance.Delete(del); } } } } catch (Exception e) { Log.Error(e); } }; DeleteAccount += (o, accountIds) => { try { var time = DateTime.Now; var accounts = AccountInfoHelper.Instance.GetByIdsNoM <AccountInfo>(accountIds); var plats = accounts.Where(x => x.Platform && x.Belongs.Any()); if (plats.Any()) { WorkHelper.Instance.DeleteFromParent(plats.Select(x => x.Id)); } } catch (Exception e) { Log.Error(e); } }; #endregion #region 流程卡 SmartFlowCardCreated += (o, flowCards) => { }; SmartFlowCardProcessCreated += (o, param) => { var flowCards = param.Item1; if (flowCards == null || !flowCards.Any()) { return; } var smartFlowCardProcesses = param.Item2; if (smartFlowCardProcesses == null || !smartFlowCardProcesses.Any()) { return; } var createUserId = smartFlowCardProcesses.First().CreateUserId; var markedDateTime = smartFlowCardProcesses.First().MarkedDateTime; var taskOrderIds = flowCards.GroupBy(x => x.TaskOrderId).Select(y => y.Key); var processCodeCategoryIds = flowCards.GroupBy(x => x.ProcessCodeId).Select(y => y.Key); var processes = SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(processCodeCategoryIds); var existTaskOrderLines = ServerConfig.ApiDb .Query <SmartLineTaskOrder>( "SELECT TaskOrderId, ProcessCodeCategoryId FROM `t_line_task_order` " + "WHERE MarkedDelete = 0 AND TaskOrderId IN @taskOrderIds AND ProcessCodeCategoryId IN @processCodeCategoryIds GROUP BY TaskOrderId, ProcessCodeCategoryId;", new { taskOrderIds, processCodeCategoryIds }); var taskOrderLines = new List <SmartLineTaskOrder>(); foreach (var taskOrderId in taskOrderIds) { var ids = flowCards.Where(x => x.TaskOrderId == taskOrderId).GroupBy(y => y.ProcessCodeId).Select(z => z.Key); foreach (var id in ids) { if (existTaskOrderLines.Any(x => x.TaskOrderId == taskOrderId && x.ProcessCodeCategoryId == id)) { continue; } var ps = processes.Where(x => x.ProcessCodeCategoryId == id); if (!ps.Any()) { continue; } taskOrderLines.AddRange(ps.Select(x => new SmartLineTaskOrder { CreateUserId = createUserId, MarkedDateTime = markedDateTime, TaskOrderId = taskOrderId, ProcessCodeCategoryId = id, ProcessId = x.Id, })); } } var taskOrders = SmartTaskOrderHelper.Instance.GetByIds <SmartTaskOrder>(taskOrderIds); var workOrderIds = taskOrders.GroupBy(x => x.WorkOrderId).Select(y => y.Key); var existWorkOrderLines = ServerConfig.ApiDb .Query <SmartLineWorkOrder>( "SELECT WorkOrderId, ProcessCodeCategoryId FROM `t_line_work_order` " + "WHERE MarkedDelete = 0 AND WorkOrderId IN @workOrderIds AND ProcessCodeCategoryId IN @processCodeCategoryIds GROUP BY WorkOrderId, ProcessCodeCategoryId;", new { workOrderIds, processCodeCategoryIds }); var workOrderLines = new List <SmartLineWorkOrder>(); foreach (var workOrderId in workOrderIds) { var tasks = taskOrders.Where(x => x.WorkOrderId == workOrderId); var ids = flowCards.Where(x => tasks.Any(a => a.Id == x.TaskOrderId)).GroupBy(y => y.ProcessCodeId).Select(z => z.Key); foreach (var id in ids) { if (existWorkOrderLines.Any(x => x.WorkOrderId == workOrderId && x.ProcessCodeCategoryId == id)) { continue; } var ps = processes.Where(x => x.ProcessCodeCategoryId == id); if (!ps.Any()) { continue; } workOrderLines.AddRange(ps.Select(x => new SmartLineWorkOrder { CreateUserId = createUserId, MarkedDateTime = markedDateTime, WorkOrderId = workOrderId, ProcessCodeCategoryId = id, ProcessId = x.Id, })); } } SmartLineTaskOrderHelper.Instance.Add <SmartLineTaskOrder>(taskOrderLines); SmartLineWorkOrderHelper.Instance.Add <SmartLineWorkOrder>(workOrderLines); }; #endregion #region 物料 #endregion }
private async Task <bool> GetWorkAsync(decimal workerId) { var workOperation = BillOperationCode.OP_INPUT_REG.ToString(); var workhelper = new WorkHelper(); Func <DataRow[], string, string> dialogMessageHandler = (rows, workername) => { return(string.Format(StringResources.YouHaveWorkingsMessageFormat, Environment.NewLine, string.Join(Environment.NewLine, rows.Select(p => string.Format("'{0}' ('{1}').", p["operationname"], p["workid"]))))); }; var result = workhelper.ClosingWorking(workerId: workerId, filter: null, dialogTitle: StringResources.Confirmation, workername: null, dialogMessageHandler: dialogMessageHandler); if (!result) { return(false); } //Создаем работу List <Work> workList; using (var mgr = IoC.Instance.Resolve <IBaseManager <Work> >()) { var filter = string.Format( "operationcode_r = '{1}' and workid in (select w2e.workid_r from wmswork2entity w2e where w2e.work2entityentity = 'CARGOIWB' " + "and w2e.work2entitykey in (select to_char(min(i2c.cargoiwbid_r)) from wmsiwb2cargo i2c " + "left join wmsiwbpos ip on i2c.iwbid_r = ip.iwbid_r " + "where ip.iwbposid ={0}))", _posID, workOperation); workList = mgr.GetFiltered(filter, GetModeEnum.Partial).ToList(); } if (workList.Any()) { using (var mgr = IoC.Instance.Resolve <IBaseManager <Working> >()) { var working = new Working { WORKID_R = workList.First().GetKey <decimal>(), WORKERID_R = workerId, WORKINGFROM = BPH.GetSystemDate() }; mgr.Insert(ref working); } } else { List <CargoIWB> cargoIWBList; using (var mgr = IoC.Instance.Resolve <IBaseManager <CargoIWB> >()) { cargoIWBList = mgr.GetFiltered(string.Format("cargoiwbid in (select min(i2c.cargoiwbid_r) from wmsiwb2cargo i2c join wmsiwbpos ip on ip.iwbid_r = i2c.iwbid_r where ip.iwbposid = {0} )", _posID), GetModeEnum.Partial).ToList(); } if (cargoIWBList.Any()) { var mgrBpProcessManager = IoC.Instance.Resolve <IBPProcessManager>(); Work mywork; mgrBpProcessManager.StartWorking("CARGOIWB", cargoIWBList.First().GetKey().ToString(), workOperation, workerId, cargoIWBList.First().MandantID, null, null, out mywork); } } Workings = RefreshWorking(); return(true); }
public void Put([FromBody] SysInfoDM sysInfoDM) { var res = DbCommands.PutSysInfo(WorkHelper.DataModelToEFModel(sysInfoDM)); }
private async Task <bool> GetWorkAsync(decimal workerId) { _warningMessage = null; if (!HasPl()) { return(false); } return(await Task.Factory.StartNew(() => { var workhelper = new WorkHelper(); Func <DataRow[], string, string> dialogMessageHandler = (rows, workername) => { return string.Format(StringResources.YouHaveWorkingsMessageFormat, Environment.NewLine, string.Join(Environment.NewLine, rows.Select(p => string.Format("'{0}' ('{1}').", p["operationname"], p["workid"])))); }; var result = workhelper.ClosingWorking(workerId: workerId, filter: null, dialogTitle: StringResources.Confirmation, workername: null, dialogMessageHandler: dialogMessageHandler); if (!result) { return false; } //Работа var workOperation = BillOperationCode.OP_PICK_END_MAN_REG.ToString(); Work mywork; IBPProcessManager mgrBpProcessManager = null; IBaseManager <Work> mgrWork = null; try { //Получим манданта var skuid = Source.First().Get <decimal>("SKUID_R"); SKU sku; using (var mgrsku = IoC.Instance.Resolve <IBaseManager <SKU> >()) { sku = mgrsku.Get(skuid, GetModeEnum.Partial); } if (sku == null) { throw new DeveloperException("Can't find SKU."); } var mandantid = sku.Get <decimal>("MANDANTID"); mgrBpProcessManager = IoC.Instance.Resolve <IBPProcessManager>(); var splid = GetPlId().ToString(CultureInfo.InvariantCulture); mgrBpProcessManager.StartWorking(PlEntity, splid, workOperation, workerId, mandantid, null, null, out mywork); mgrWork = IoC.Instance.Resolve <IBaseManager <Work> >(); if (mywork == null) { mywork = mgrBpProcessManager.GetWorkByOperation(PlEntity, splid, workOperation); if (mywork == null) { throw new DeveloperException("Work is not created."); } } else { if (mywork.WORKINGL == null) { mywork = mgrWork.Get(mywork.GetKey <decimal>()); } } _openWorkings = null; if (mywork.WORKINGL != null) { _openWorkings = mywork.WORKINGL.Where(p => p.WORKERID_R == workerId && !p.WORKINGTILL.HasValue).ToArray(); } if (_openWorkings == null || _openWorkings.Length == 0) { throw new DeveloperException("Working is not created."); } //Проверяем группу работ var workOp = GetWorksByOperations(); if (workOp != null && workOp.WORKGROUPID_R.HasValue && mywork.WORKGROUPID_R != workOp.WORKGROUPID_R) { mywork.WORKGROUPID_R = workOp.WORKGROUPID_R; mgrWork.Update(mywork); } if (!mywork.WORKGROUPID_R.HasValue) { Mandant mandant; using (var mgrmandant = IoC.Instance.Resolve <IBaseManager <Mandant> >()) { mandant = mgrmandant.Get(mandantid, GetModeEnum.Partial); } _warningMessage = string.Format(StringResources.UndefinedWorkGroupForOperation, workOperation, (mandant == null ? mandantid.ToString(CultureInfo.InvariantCulture) : mandant.MandantCode)); //throw new DeveloperException(DeveloperExceptionResources.WorkGropUndefined); } } finally { if (mgrBpProcessManager != null) { mgrBpProcessManager.Dispose(); } if (mgrWork != null) { mgrWork.Dispose(); } } return true; })); }