コード例 #1
0
        /// <summary>
        /// 插入变化后的商品信息
        /// </summary>
        /// <param name="baseDataCommodityCode">所有数据</param>
        /// <param name="sourceBill">业务类型</param>
        /// <returns></returns>
        public bool InsertLocalCommodityCodeInfo(BaseData <CommodityCode> baseDataCommodityCode, string sourceBill)
        {
            var result = false;

            //校验是否含有数据,如果含有数据,有就继续下一步
            baseDataCommodityCode = HttpHelper.GetInstance().ResultCheck(baseDataCommodityCode, out bool isSuccess);

            if (isSuccess)
            {
                List <LocalCommodityCode> localCommodityCodes = baseDataCommodityCode.body.objects.MapToListIgnoreId <CommodityCode, LocalCommodityCode>();

                var createTime = DateTime.Now;
                var operater   = ApplicationState.GetUserInfo().name;

                localCommodityCodes.ForEach(it =>
                {
                    it.sourceBill  = sourceBill;
                    it.create_time = createTime;
                    it.operater    = operater;
                });

                //事务防止多插入产生脏数据
                result = SqlSugarHelper.GetInstance().Db.Ado.UseTran(() =>
                {
                    SqlSugarHelper.GetInstance().Db.Insertable(localCommodityCodes).ExecuteCommand();
                }).IsSuccess;
            }

            if (!result)
            {
                LogUtils.Warn("InsertLocalCommodityCodeInfo" + sourceBill);
            }

            return(result);
        }
コード例 #2
0
 /// <summary>
 /// 根据拣货单号获取任务单详情
 /// </summary>
 /// <param name="pickTaskName"></param>
 /// <returns></returns>
 public BaseData <PickTask> GetPickTask(string pickTaskName)
 {
     //获取待完成拣货工单
     return(HttpHelper.GetInstance().Get <PickTask>(new QueryParam
     {
         view_filter =
         {
             filter                =
             {
                 logical_relation  = "1 AND 2 AND 3",
                 expressions       =
                 {
                     new QueryParam.Expressions
                     {
                         field     = "name",
                         @operator = "==",
                         operands  ={ $"'{ HttpUtility.UrlEncode(pickTaskName) }'"                     }
                     },
                     new QueryParam.Expressions
                     {
                         field     = "BillStatus",
                         @operator = "==",
                         operands  ={ $"'{ HttpUtility.UrlEncode(PickTaskStatus.待拣货.ToString()) }'"    }
                     },
                     new QueryParam.Expressions
                     {
                         field     = "Operator",
                         @operator = "==",
                         operands  ={ $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id)}'" }
                     }
                 }
             }
         }
     }));
 }
コード例 #3
0
        /// <summary>
        /// 根据上架单号获取任务单详情
        /// </summary>
        /// <param name="shelfTaskName"></param>
        /// <returns></returns>
        public BaseData <AllotShelf> GetAllotShelfTask()
        {
            //获取待完成上架工单
            BaseData <AllotShelf> baseDataShelfTask = HttpHelper.GetInstance().Get <AllotShelf>(new QueryParam
            {
                view_filter =
                {
                    filter                =
                    {
                        //logical_relation = "1 AND 2",
                        logical_relation = "1",
                        expressions      =
                        {
                            //new QueryParam.Expressions
                            //{
                            //    field = "Status",
                            //    @operator = "==",
                            //    operands = {$"'{ HttpUtility.UrlEncode(ShelfTaskStatus.待上架.ToString()) }'" }
                            //},
                            new QueryParam.Expressions
                            {
                                field     = "Operator",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id) }'" }
                            }
                        }
                    }
                }
            });

            BaseData <AllotShelfCommodity> baseDataShelfTaskCommodityDetail = GetShelfTaskCommodityDetail(baseDataShelfTask);

            //校验是否含有数据
            HttpHelper.GetInstance().ResultCheck(baseDataShelfTaskCommodityDetail, out bool isSuccess);

            if (isSuccess)
            {
                //WARING 这种做法只在单柜下才是完全正确,在多柜中需要修改
                string id = ApplicationState.GetAllCabIds().ToList().First();

                List <AllotShelf> taskList = new List <AllotShelf>();

                var shelfTasks = baseDataShelfTask.body.objects.Where(item => item.Status != ShelfTaskStatus.已完成.ToString() && item.Status != ShelfTaskStatus.异常.ToString()).ToList();

                var shelfTaskCommodityDetails = baseDataShelfTaskCommodityDetail.body.objects.Where(item => item.GoodsLocationId == id);
                shelfTasks.ForEach(it =>
                {
                    it.ShelfNumber = shelfTaskCommodityDetails.Where(sit => sit.AllotShelfId == it.id).Count();
                    if (it.ShelfNumber != 0)
                    {
                        it.GoodLocationName = ApplicationState.GetCabNameById(id);
                        taskList.Add(it);
                    }
                });

                baseDataShelfTask.body.objects = taskList;
            }

            return(baseDataShelfTask);
        }
コード例 #4
0
        /// <summary>
        /// 新增盘点记录
        /// </summary>
        public int NewInventory(List <GoodsDto> list, InventoryType type)
        {
            InventoryOrderLDB inventoryOrder = new InventoryOrderLDB();
            var ran = new Random();

            inventoryOrder.create_time = System.DateTime.Now;
            inventoryOrder.type        = (int)type;

            //设置状态为待确认
            inventoryOrder.status = (int)InventoryStatus.Unconfirm;

            if (type == InventoryType.Manual)
            {
                inventoryOrder.operator_id   = 1;
                inventoryOrder.operator_name = ApplicationState.GetUserInfo().name;
                inventoryOrder.type          = (int)InventoryType.Manual;
            }
            else
            {
                inventoryOrder.type = (int)InventoryType.Auto;
            }

            inventoryOrder.code = "INV" + DateTime.Now.ToString("yyyyMMddHHmm") + ran.Next(9999);

            //生成记录

            int id = inventoryDal.NewInventory(inventoryOrder);

            InsertInventoryDetails(list, id);

            return(id);
        }
コード例 #5
0
        /// <summary>
        /// 根据盘点任务单号查询盘点任务信息
        /// </summary>
        /// <param name="taskName"></param>
        /// <returns></returns>
        public BaseData <InventoryTask> GetInventoryTaskByInventoryTaskName(string taskName)
        {
            if (null == taskName)
            {
                return(new BaseData <InventoryTask>()
                {
                    code = (int)ResultCode.Parameter_Exception,
                    message = ResultCode.Parameter_Exception.ToString()
                });
            }
            //获取待盘点列表
            var task = HttpHelper.GetInstance().Get <InventoryTask>(new QueryParam
            {
                view_filter =
                {
                    filter                =
                    {
                        logical_relation = "1 AND 2 AND (3 OR 4) ",
                        expressions      =
                        {
                            new QueryParam.Expressions
                            {
                                field     = "name",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(taskName) }'"           }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "Operator",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id)}'" }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "Status",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(InventoryTaskStatus.待盘点.ToString()) }'" }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "Status",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(InventoryTaskStatus.盘点中.ToString()) }'" }
                            }
                        }
                    }
                }
            });

            //校验是否含有数据,如果含有数据,拼接具体字段
            HttpHelper.GetInstance().ResultCheck(task, out bool isSuccess);

            return(task);
        }
コード例 #6
0
        /// <summary>
        /// 更新盘点记录
        /// </summary>
        public void ConfirmInventory(InventoryOrderLDB inventoryOrder)
        {
            //设置状态为已确认
            inventoryOrder.status = (int)InventoryStatus.Confirm;
            //设置当前时间
            inventoryOrder.confirm_time = DateTime.Now;
            //设置当前盘点确认人姓名和id
            inventoryOrder.inspector_id   = 1;
            inventoryOrder.inspector_name = ApplicationState.GetUserInfo().name;

            inventoryDal.ConfirmInventory(inventoryOrder);
        }
コード例 #7
0
        public ReplenishmentDetailOpen(ShelfTask model)
        {
            InitializeComponent();
            operatorName.Content = ApplicationState.GetUserInfo().name;
            orderNum.Content     = model.name;
            shelfTask            = model;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #8
0
        public GerFetchView(HashSet <CommodityEps> afterEps)
        {
            InitializeComponent();
            time.Content         = DateTime.Now.ToString("yyyy年MM月dd日");;
            operatorName.Content = ApplicationState.GetUserInfo().name;
            after = afterEps;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #9
0
        /// <summary>
        /// 通过【调拨上架任务单 and 操作人(Operator)】从表格 【调拨上架】中查询获取上架任务
        /// </summary>
        /// <param name="allotShelfName"></param>
        /// <returns></returns>
        public BaseData <AllotShelf> GetAllotShelfTask(string allotShelfName)
        {
            //获取待完成上架工单
            BaseData <AllotShelf> allotShelf = HttpHelper.GetInstance().Get <AllotShelf>(new QueryParam
            {
                view_filter =
                {
                    filter                =
                    {
                        logical_relation = "1 AND 2",
                        expressions      =
                        {
                            new QueryParam.Expressions
                            {
                                field     = "name",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(allotShelfName) }'"    }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "Operator",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id) }'" }
                            }
                        }
                    }
                }
            });

            allotShelf = HttpHelper.GetInstance().ResultCheck(allotShelf, out bool isSuccess);

            if (!isSuccess)
            {
                allotShelf.code    = (int)ResultCode.Result_Exception;
                allotShelf.message = ResultCode.Result_Exception.ToString();
            }
            else
            {
                //如果领⽤单作废标识为【是】则弹窗提醒手术单作废,跳转回前⻚
                if ("已完成".Equals(allotShelf.body.objects[0].Status) || "已撤销".Equals(allotShelf.body.objects[0].Status))
                {
                    allotShelf.code    = (int)ResultCode.Result_Exception;
                    allotShelf.message = ResultCode.Result_Exception.ToString();
                }
            }

            return(allotShelf);
        }
コード例 #10
0
        public ReturnGoodsDetail(PickTask task)
        {
            InitializeComponent();

            pickTask = task;
            //操作人
            operatorName.Content = ApplicationState.GetUserInfo().name;
            //工单号
            orderNum.Content = task.name;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #11
0
        public SurgeryNumClose(FetchParam param, HashSet <CommodityEps> afterEps)
        {
            InitializeComponent();

            fetchParam           = param;
            operatorName.Content = ApplicationState.GetUserInfo().name;
            time.Content         = DateTime.Now.ToString("yyyy年MM月dd日");
            surgeryNum.Content   = param.bdConsumingOrder.body.objects[0].name;
            after = afterEps;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #12
0
        public AllotShelfDetailOpen(AllotShelf task)
        {
            InitializeComponent();
            //操作人
            operatorName.Content = ApplicationState.GetUserInfo().name;
            //工单号
            orderNum.Content = task.name;

            allotShelf = task;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #13
0
        public ReturnClose(HashSet <CommodityEps> afterEps, CommodityRecovery order)
        {
            InitializeComponent();

            time.Content          = DateTime.Now.ToString("yyyy年MM月dd日");
            operatorName.Content  = ApplicationState.GetUserInfo().name;
            lbTypeContent.Content = order == null ? "库存调整" : "回收下架";

            commodityRecovery = order;
            after             = afterEps;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #14
0
        public SurgeryNoNumClose(HashSet <CommodityEps> afterEps, ConsumingOrderType type, ConsumingOrder order)
        {
            InitializeComponent();

            consumingOrder     = order;
            consumingOrderType = type;

            time.Content          = DateTime.Now.ToString("yyyy年MM月dd日");
            operatorName.Content  = ApplicationState.GetUserInfo().name;
            lbTypeContent.Content = type;
            after = afterEps;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #15
0
        public ReturnGoodsClose(PickTask task, HashSet <CommodityEps> hs)
        {
            InitializeComponent();

            pickTask = task;
            //操作人
            operatorName.Content = ApplicationState.GetUserInfo().name;
            ////工单号
            orderNum.Content = task.name;
            time.Content     = DateTime.Now.ToString("yyyy年MM月dd日");
            after            = hs;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
コード例 #16
0
        /// <summary>
        /// 根据拣货单号获取任务单详情
        /// </summary>
        /// <param name="pickTaskName"></param>
        /// <returns></returns>
        public BaseData <PickTask> GetPickTask()
        {
            //获取待完成拣货工单
            BaseData <PickTask> baseDataPickTask = HttpHelper.GetInstance().Get <PickTask>(new QueryParam
            {
                view_filter =
                {
                    filter                =
                    {
                        logical_relation = "1 AND 2",
                        expressions      =
                        {
                            new QueryParam.Expressions
                            {
                                field     = "BillStatus",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(PickTaskStatus.待拣货.ToString()) }'" }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "Operator",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id) }'" }
                            }
                        }
                    }
                }
            });

            //校验是否含有数据
            HttpHelper.GetInstance().ResultCheck(baseDataPickTask, out bool isSuccess0);

            if (isSuccess0)
            {
                BaseData <PickCommodity> baseDataPickTaskCommodityDetail = GetPickTaskCommodityDetail(baseDataPickTask);

                //校验是否含有数据
                HttpHelper.GetInstance().ResultCheck(baseDataPickTaskCommodityDetail, out bool isSuccess);

                if (isSuccess)
                {
                    //WARING 这种做法只在单柜下才是完全正确,在多柜中需要修改
                    string          id       = ApplicationState.GetAllCabIds().ToList().First();
                    List <PickTask> taskList = new List <PickTask>();

                    var pickTasks = baseDataPickTask.body.objects;
                    var pickTaskCommodityDetails = baseDataPickTaskCommodityDetail.body.objects.Where(item => item.GoodsLocationId == id);
                    pickTasks.ForEach(it =>
                    {
                        //ids.ForEach(id => {
                        //    it.NeedPickTotalNumber = pickTaskCommodityDetails.Where(sit => sit.PickTaskId == it.id && sit.GoodsLocationId == id).GroupBy(sit => new { sit.PickTaskId, sit.GoodsLocationId }).Select(group => group.Sum(sit => (sit.Number - sit.PickNumber))).Single();
                        //    if (it.NeedPickTotalNumber != 0)
                        //    {
                        //        it.GoodLocationName = ApplicationState.GetCabNameById(id);
                        //        taskList.Add(it);
                        //    }
                        //});

                        it.NeedPickTotalNumber = pickTaskCommodityDetails.Where(sit => sit.PickTaskId == it.id).GroupBy(sit => sit.PickTaskId).Select(group => group.Sum(sit => (sit.Number - sit.PickNumber))).FirstOrDefault();
                        if (it.NeedPickTotalNumber != 0)
                        {
                            it.GoodLocationName = ApplicationState.GetCabNameById(id);
                            taskList.Add(it);
                        }
                    });

                    baseDataPickTask.body.objects = taskList;
                }
            }

            return(baseDataPickTask);
        }