Пример #1
0
        public SmartResult GetFlowCardProcessFault([FromQuery] int flowCardId, int page, int limit = 30)
        {
            page  = page < 0 ? 0 : page;
            limit = limit < 0 ? 30 : limit;
            var result = new SmartResult();
            var sql    = $"SELECT a.*, b.FlowCard, c.Process FROM `t_process_fault` a " +
                         $"JOIN (SELECT * FROM `t_flow_card` WHERE MarkedDelete = 0) b ON a.FlowCardId = b.Id " +
                         $"JOIN (SELECT a.Id, b.ProcessId, b.Process FROM `t_flow_card_process` a " +
                         $"JOIN (SELECT a.Id, b.ProcessId, b.Process FROM `t_product_process` a " +
                         $"JOIN (SELECT a.Id, a.ProcessId, b.Process FROM `t_process_code_category_process` a " +
                         $"JOIN `t_process` b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) c ON a.ProcessId = c.Id " +
                         $"WHERE a.MarkedDelete = 0 AND Type = @type AND IsDeal = FALSE AND a.FlowCardId = @flowCardId ORDER BY a.FlowCardId DESC" +
                         $" LIMIT @page, @limit;";

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartFlowCardFault>(sql, new { flowCardId, type = ProcessFault.设备故障, page, limit }));
            sql = $"SELECT COUNT(1) FROM (SELECT a.FlowCardId FROM `t_process_fault` a " +
                  $"JOIN (SELECT * FROM `t_flow_card` WHERE MarkedDelete = 0) b ON a.FlowCardId = b.Id " +
                  $"JOIN (SELECT a.Id, b.ProcessId, b.Process FROM `t_flow_card_process` a " +
                  $"JOIN (SELECT a.Id, b.ProcessId, b.Process FROM `t_product_process` a " +
                  $"JOIN (SELECT a.Id, a.ProcessId, b.Process FROM `t_process_code_category_process` a " +
                  $"JOIN `t_process` b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) c ON a.ProcessId = c.Id " +
                  $"WHERE a.MarkedDelete = 0 AND Type = @type AND IsDeal = FALSE AND a.FlowCardId = @flowCardId) a;";
            result.Count = ServerConfig.ApiDb.Query <int>(sql, new { flowCardId, type = ProcessFault.设备故障 }).FirstOrDefault();
            return(result);
        }
Пример #2
0
        public object GetArrangedTaskOrder([FromQuery] int wId, int page, int limit = 30)
        {
            page  = page < 0 ? 0 : page;
            limit = limit < 0 ? 30 : limit;
            var result = new SmartResult();
            var state  = new[]
            {
                SmartTaskOrderState.加工中,
                SmartTaskOrderState.等待中,
                SmartTaskOrderState.未加工,
                SmartTaskOrderState.暂停中,
                SmartTaskOrderState.已取消,
                SmartTaskOrderState.已完成,
            }.Select(x => (int)x).Join();

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartTaskOrderDetailLevel>($"SELECT a.*, b.Product, c.Level FROM `t_task_order` a " +
                                                                                       $"JOIN `t_product` b ON a.ProductId = b.Id " +
                                                                                       $"JOIN `t_task_order_level` c ON a.LevelId = c.Id " +
                                                                                       $"WHERE Arranged = 1 AND a.MarkedDelete = 0 AND a.WorkshopId = @wId ORDER BY FIELD(State,  {state}), StartTime, EndTime, DeliveryTime LIMIT @page, @limit;", new
            {
                wId,
                page,
                limit
            }));

            result.Count = ServerConfig.ApiDb.Query <int>($"SELECT COUNT(1) FROM `t_task_order` a " +
                                                          $"JOIN `t_product` b ON a.ProductId = b.Id " +
                                                          $"JOIN `t_task_order_level` c ON a.LevelId = c.Id " +
                                                          $"WHERE Arranged = 1 AND a.WorkshopId = @wId AND a.MarkedDelete = 0;", new { wId }).FirstOrDefault();
            return(result);
        }
Пример #3
0
        public DataResult GetFlowCard([FromQuery] int qId, string flowCard, int taskOrderId, int page, int limit = 30)
        {
            var result = new SmartResult();
            var sql    = $"SELECT * FROM t_flow_card WHERE MarkedDelete = 0" +
                         $"{(qId == 0 ? "" : " AND Id = @qId")}" +
                         $"{(flowCard.IsNullOrEmpty() ? "" : " AND FlowCard Like @flowCard")}" +
                         $"{(taskOrderId == 0 ? "" : " AND TaskOrderId = @taskOrderId")}" +
                         $" LIMIT @page, @limit;";
            var flowCards = ServerConfig.ApiDb.Query <SmartFlowCardUI>(sql, new { qId, flowCard = flowCard + "%", taskOrderId, page, limit });

            var processes       = new List <SmartFlowCardProcessDetail>();
            var undoFlowCardIds = flowCards.Where(x => x.State == SmartFlowCardState.未加工).Select(x => x.Id);

            if (undoFlowCardIds.Any())
            {
                processes.AddRange(ServerConfig.ApiDb.Query <SmartFlowCardProcessDetail>(
                                       "SELECT * FROM (SELECT a.*, b.Process FROM `t_flow_card_process` a " +
                                       "JOIN (SELECT a.Id, b.Process FROM `t_product_process` a " +
                                       "JOIN (SELECT a.Id, b.Process FROM `t_process_code_category_process` a " +
                                       "JOIN `t_process` b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id " +
                                       "WHERE a.MarkedDelete = 0 AND a.FlowCardId IN @undoFlowCardIds ORDER BY a.Id DESC) a GROUP BY a.FlowCardId;",
                                       new { undoFlowCardIds }));
            }

            var doFlowCardIds = flowCards.Where(x => x.State != SmartFlowCardState.未加工).Select(x => x.Id);

            if (doFlowCardIds.Any())
            {
                processes.AddRange(ServerConfig.ApiDb.Query <SmartFlowCardProcessDetail>(
                                       "SELECT * FROM (SELECT a.*, b.Process FROM `t_flow_card_process` a " +
                                       "JOIN (SELECT a.Id, b.Process FROM `t_product_process` a " +
                                       "JOIN (SELECT a.Id, b.Process FROM `t_process_code_category_process` a " +
                                       "JOIN `t_process` b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id) b ON a.ProcessId = b.Id " +
                                       "WHERE a.MarkedDelete = 0 AND (a.State != 0 OR NOT ISNULL(a.StartTime)) AND a.FlowCardId IN @doFlowCardIds ORDER BY a.Id DESC) a GROUP BY a.FlowCardId;",
                                       new { doFlowCardIds }));
            }

            foreach (var process in processes)
            {
                var fc = flowCards.FirstOrDefault(x => x.Id == process.FlowCardId);
                if (fc != null)
                {
                    fc.Process  = process.Process;
                    fc.Progress = process.Progress;
                }
            }

            result.datas.AddRange(flowCards);
            sql = $"SELECT COUNT(1) FROM t_flow_card WHERE MarkedDelete = 0" +
                  $"{(qId == 0 ? "" : " AND Id = @qId")}" +
                  $"{(flowCard.IsNullOrEmpty() ? "" : " AND FlowCard Like @flowCard")}" +
                  $"{(taskOrderId == 0 ? "" : " AND TaskOrderId = @taskOrderId")}";
            result.Count = ServerConfig.ApiDb.Query <int>(sql, new { qId, flowCard = flowCard + "%", taskOrderId }).FirstOrDefault();
            return(result);
        }
Пример #4
0
        public SmartResult GetWorkOrder([FromQuery] int qId, string workOrder, int page, int limit = 30)
        {
            page  = page < 0 ? 0 : page;
            limit = limit < 0 ? 30 : limit;
            var result = new SmartResult();
            var sql    = $"SELECT * FROM t_work_order WHERE MarkedDelete = 0" +
                         $"{(qId == 0 ? "" : " AND Id = @qId")}" +
                         $"{(workOrder.IsNullOrEmpty() ? "" : " AND WorkOrder Like @workOrder")}" +
                         $" LIMIT @page, @limit;";

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartWorkOrder>(sql, new { qId, workOrder = workOrder + "%", page, limit }));

            sql = $"SELECT COUNT(1) FROM t_work_order WHERE MarkedDelete = 0" +
                  $"{(qId == 0 ? "" : " AND Id = @qId")}" +
                  $"{(workOrder.IsNullOrEmpty() ? "" : " AND WorkOrder Like @workOrder")};";
            result.Count = ServerConfig.ApiDb.Query <int>(sql, new { qId, workOrder = workOrder + "%" }).FirstOrDefault();
            return(result);
        }
Пример #5
0
        public SmartResult GetTaskOrderStopFaultCount([FromQuery] int page, int limit = 30)
        {
            page  = page < 0 ? 0 : page;
            limit = limit < 0 ? 30 : limit;
            var result = new SmartResult();
            var sql    = $"SELECT b.TaskOrderId, b.TaskOrder, COUNT(1) Count FROM `t_process_fault` a " +
                         $"JOIN (SELECT a.*, b.TaskOrder FROM `t_flow_card` a " +
                         $"JOIN `t_task_order` b ON a.TaskOrderId = b.Id WHERE b.MarkedDelete = 0) b ON a.FlowCardId = b.Id " +
                         $"WHERE a.MarkedDelete = 0 AND Type = @type AND IsDeal = FALSE GROUP BY b.TaskOrderId ORDER BY b.TaskOrderId DESC" +
                         $" LIMIT @page, @limit;";

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartTaskProcessFaultCount>(sql, new { type = ProcessFault.设备故障, page, limit }));
            sql = $"SELECT COUNT(1) FROM (SELECT b.TaskOrderId FROM `t_process_fault` a " +
                  $"JOIN (SELECT a.*, b.TaskOrder FROM `t_flow_card` a " +
                  $"JOIN `t_task_order` b ON a.TaskOrderId = b.Id WHERE b.MarkedDelete = 0) b ON a.FlowCardId = b.Id " +
                  $"WHERE a.MarkedDelete = 0 AND Type = @type AND IsDeal = FALSE GROUP BY b.TaskOrderId) a;";
            result.Count = ServerConfig.ApiDb.Query <int>(sql, new { type = ProcessFault.设备故障 }).FirstOrDefault();
            return(result);
        }
Пример #6
0
        public object GetSmartScheduleNotArranged([FromQuery] int wId, int page, int limit = 30)
        {
            var result = new SmartResult();

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartTaskOrderDetailProduct>($"SELECT a.*, b.Product FROM `t_task_order` a " +
                                                                                         $"JOIN `t_product` b ON a.ProductId = b.Id " +
                                                                                         //$"WHERE Arranged = 0 AND a.MarkedDelete = 0 Order By StartTime, EndTime, DeliveryTime LIMIT @page, @limit;", new
                                                                                         $"WHERE Arranged = 0 AND a.WorkshopId = @wId AND a.MarkedDelete = 0 Order By Id Desc LIMIT @page, @limit;", new
            {
                wId,
                page,
                limit
            }));
            result.Count = ServerConfig.ApiDb.Query <int>($"SELECT COUNT(1) FROM `t_task_order` a " +
                                                          $"JOIN `t_product` b ON a.ProductId = b.Id " +
                                                          $"WHERE Arranged = 0 AND a.WorkshopId = @wId AND a.MarkedDelete = 0;", new { wId }).FirstOrDefault();

            return(result);
        }
Пример #7
0
        public SmartResult GetTaskOrder([FromQuery] int qId, string taskOrder, int workOrderId, int page, int limit = 30)
        {
            page  = page < 0 ? 0 : page;
            limit = limit < 0 ? 30 : limit;
            var result = new SmartResult();
            var sql    = $"SELECT a.*, b.Product FROM t_task_order a JOIN t_product b ON a.ProductId = b.Id WHERE a.MarkedDelete = 0" +
                         $"{(qId == 0 ? "" : " AND a.Id = @qId")}" +
                         $"{(taskOrder.IsNullOrEmpty() ? "" : " AND a.TaskOrder Like @taskOrder")}" +
                         $"{(workOrderId == 0 ? "" : " AND a.WorkOrderId = @workOrderId")}" +
                         $" LIMIT @page, @limit;";

            result.datas.AddRange(ServerConfig.ApiDb.Query <SmartTaskOrderDetail>(sql, new { qId, taskOrder = taskOrder + "%", workOrderId, page, limit }));

            sql = $"SELECT COUNT(1) FROM t_task_order WHERE MarkedDelete = 0" +
                  $"{(qId == 0 ? "" : " AND Id = @qId")}" +
                  $"{(taskOrder.IsNullOrEmpty() ? "" : " AND TaskOrder Like @taskOrder")}" +
                  $"{(workOrderId == 0 ? "" : " AND WorkOrderId = @workOrderId")}";
            result.Count = ServerConfig.ApiDb.Query <int>(sql, new { qId, taskOrder = taskOrder + "%", workOrderId }).FirstOrDefault();
            return(result);
        }
Пример #8
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // Add a list of AutoMapper profiles to be used by SmartResult
            List <Profile> profiles = new List <Profile> {
                new SmartResultProfile()
            };

            // Use the minimum configuration
            SmartResult.Configure(
                new SmartResultConfiguration(
                    profiles
                    )
                );

            app.UseMvc();
        }