From 3a9b5dcd5dd6ed033f80f1696b07135635b3e9f8 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期三, 17 七月 2024 15:35:07 +0800
Subject: [PATCH] Merge branch 'master' into csc

---
 Wms/WMS.BLL/DataServer/StockInfoServer.cs |  622 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 622 insertions(+), 0 deletions(-)

diff --git a/Wms/WMS.BLL/DataServer/StockInfoServer.cs b/Wms/WMS.BLL/DataServer/StockInfoServer.cs
new file mode 100644
index 0000000..29ce25d
--- /dev/null
+++ b/Wms/WMS.BLL/DataServer/StockInfoServer.cs
@@ -0,0 +1,622 @@
+锘縰sing Dm;
+using Microsoft.IdentityModel.Tokens;
+using Model.ModelVm.DataVm;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using WMS.DAL;
+using WMS.Entity.Context;
+using WMS.Entity.DataEntity;
+using WMS.Entity.SysEntity;
+using WMS.IBLL.IDataServer;
+
+namespace WMS.BLL.DataServer
+{
+    public class StockInfoServer : DbHelper<DataStockInfo>, IStockInfoServer
+    {
+        private static readonly SqlSugarScope Db = DataContext.Db;
+
+        public StockInfoServer() : base(Db)
+        {
+        }
+
+        /// <summary>
+        /// 姣忔棩鍑屾櫒鑷姩鎵ц褰撳墠鏂规硶
+        /// 娣诲姞搴撳瓨鎬昏〃鍒板簱瀛樹俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        public string ByDayInsertStock()
+        {
+            try
+            {
+
+                string arr = "";
+                //鑾峰彇浠婃棩鏃堕棿涓庢槰鏃ユ椂闂�
+                var data1 = DateTime.Now.ToString("yyyy-MM-dd");
+                var data2 = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
+                //鑾峰彇褰撳墠搴撳瓨鎬昏〃淇℃伅
+                var stock = Db.Queryable<DataStock>().Where(a => a.IsDel == "0").ToList();
+                //浠ュ強鍓嶄竴澶╃殑搴撳瓨淇℃伅
+                var info = Db.Queryable<DataStockInfo>().Where(a => a.IsDel == "0" && a.CreateTime.Year == DateTime.Parse(data2).Year && a.CreateTime.Month == DateTime.Parse(data2).Month && a.CreateTime.Day == DateTime.Parse(data2).Day).ToList();
+                //鑾峰彇鐗╂枡淇℃伅
+                var sku = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0").ToList();
+                //鑾峰彇鍗曚綅淇℃伅
+                var unit = Db.Queryable<SysUnit>().Where(a => a.IsDel == "0").ToList();
+                Db.BeginTran();
+                List<DataStockInfo> list = new List<DataStockInfo>();
+                //楠岃瘉鏄惁瀛樺湪鍓嶄竴澶╃殑搴撳瓨淇℃伅
+                if (info.Count <= 0)
+                {
+                    //鏍规嵁搴撳瓨鎬昏〃娣诲姞瀵瑰簲搴撳瓨淇℃伅
+                    foreach (var item in stock)
+                    {
+
+                        //鑾峰彇瀵瑰簲鍗曚綅淇℃伅
+                        var unitNo = sku.Where(a => a.IsDel == "0" && a.SkuNo == item.SkuNo).Select(a => a.UnitNo).ToString();
+                        var unitName = unit.Where(a => a.IsDel == "0" && a.UnitNo == unitNo).Select(a => a.UnitName).ToString();
+
+                        var Folded = item.Standard.Split("*");
+                        int count = 0;
+                        var sum = 0m;
+                        //鑾峰彇瀵瑰簲鎶樹欢鏁伴噺
+                        foreach (var item1 in Folded)
+                        {
+                            if (count == 0)
+                            {
+                                if (item1.Contains(unitName))
+                                {
+                                    count = 1;
+                                    sum = Convert.ToDecimal(item1);
+                                }
+                            }
+                            if (count == 1)
+                            {
+                                sum *= Convert.ToDecimal(item1);
+                            }
+                        }
+                        DataStockInfo data = new DataStockInfo()
+                        {
+                            SkuNo = item.SkuNo,
+                            SkuName = item.SkuName,
+                            Standard = item.Standard,
+                            Unit = unitName,
+                            LastMonthQty = 0, //涓婃湀缁撳瓨-搴撳瓨鏁伴噺
+                            LastMonthFoldedQty = 0, //涓婃湀缁撳瓨-鎶樹欢鏁伴噺
+                            ArrDayQty = item.Qty, //鍏ュ簱鏁伴噺-褰撴棩鏁伴噺
+                            ArrDayFoldedQty = item.Qty / sum, //鍏ュ簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                            ArrMonthQty = item.Qty, //鍏ュ簱鏁伴噺-褰撴湀鏁伴噺
+                            ArrMonthFoldedQty = item.Qty / sum, //鍏ュ簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                            ArrYearQty = item.Qty, //鍏ュ簱鏁伴噺-鏈勾鏁伴噺
+                            ArrYearFoldedQty = item.Qty / sum, //鍏ュ簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                            SoDayQty = 0, //鍑哄簱鏁伴噺-褰撴棩鏁伴噺
+                            SoDayFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                            SoMonthQty = 0, //鍑哄簱鏁伴噺-褰撴湀鏁伴噺
+                            SoMonthFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                            SoYearQty = 0, //鍑哄簱鏁伴噺-鏈勾鏁伴噺
+                            SoYearFoldedQty = 0, //鍑哄簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                            MonthQty = item.Qty, //褰撴湀鏁伴噺-绱鏁伴噺 
+                            MonthFoldedQty = item.Qty / sum, //褰撴湀鏁伴噺-绱鎶樹欢鏁伴噺 
+                            DepositQty = 0,
+                            Qty = item.Qty,
+                            SecurityQty = sku[0].LowInventory, //鏆傜敤浣庡簱瀛�
+                            Situation = item.Qty < sku[0].LowInventory ? "1" : "0",
+                            IsDel = "0",
+                            CreateTime = DateTime.Now,
+                            CreateUser = 0,
+                            UpdateTime = null,
+                            UpdateUser = null,
+
+                        };
+
+
+                        list.Add(data);
+                    }
+                }
+                else
+                {
+                    //楠岃瘉浠婃棩鏄竴鍙疯繕鏄叾瀹�
+                    if (DateTime.Parse(data2).Day == 1)
+                    {
+                        //楠岃瘉鏈堜唤鏄惁涓�1鏈�
+                        if (DateTime.Parse(data2).Month == 1)
+                        {
+                            //1鏈�
+                            //1鏈堥渶瑕侀噸鏂拌绠楁墍鏈�
+                            foreach (var item in info)
+                            {
+                                var Folded = item.Standard.Split("*");
+                                int count = 0;
+                                var sum = 0m;
+                                //鑾峰彇瀵瑰簲鎶樹欢鏁伴噺
+                                foreach (var item1 in Folded)
+                                {
+                                    if (count == 0)
+                                    {
+                                        if (item1.Contains(item.Unit))
+                                        {
+                                            count = 1;
+                                            sum = Convert.ToDecimal(item1);
+                                        }
+                                    }
+                                    if (count == 1)
+                                    {
+                                        sum *= Convert.ToDecimal(item1);
+                                    }
+                                }
+
+                                DataStockInfo data = new DataStockInfo()
+                                {
+                                    SkuNo = item.SkuNo,
+                                    SkuName = item.SkuName,
+                                    Standard = item.Standard,
+                                    Unit = item.Unit,
+
+                                    LastMonthQty = item.Qty, //涓婃湀缁撳瓨-搴撳瓨鏁伴噺
+                                    LastMonthFoldedQty = item.Qty / sum, //涓婃湀缁撳瓨-鎶樹欢鏁伴噺
+                                    ArrDayQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鏁伴噺
+                                    ArrDayFoldedQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                    ArrMonthQty = 0, //鍏ュ簱鏁伴噺-褰撴湀鏁伴噺
+                                    ArrMonthFoldedQty = 0, //鍏ュ簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                    ArrYearQty = 0, //鍏ュ簱鏁伴噺-鏈勾鏁伴噺
+                                    ArrYearFoldedQty = 0, //鍏ュ簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                    SoDayQty = 0, //鍑哄簱鏁伴噺-褰撴棩鏁伴噺
+                                    SoDayFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                    SoMonthQty = 0, //鍑哄簱鏁伴噺-褰撴湀鏁伴噺
+                                    SoMonthFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                    SoYearQty = 0, //鍑哄簱鏁伴噺-鏈勾鏁伴噺
+                                    SoYearFoldedQty = 0, //鍑哄簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                    MonthQty = 0, //褰撴湀鏁伴噺-绱鏁伴噺 
+                                    MonthFoldedQty = 0, //褰撴湀鏁伴噺-绱鎶樹欢鏁伴噺 
+
+                                    DepositQty = item.DepositQty,
+                                    Qty = item.Qty,
+                                    SecurityQty = item.SecurityQty,
+                                    Situation = item.Qty < item.SecurityQty ? "1" : "0",
+                                    IsDel = "0",
+                                    CreateTime = DateTime.Now,
+                                    CreateUser = 0,
+                                    UpdateTime = null,
+                                    UpdateUser = null,
+
+                                };
+
+
+                                list.Add(data);
+                            }
+                        }
+                        else if (DateTime.Parse(data2).Month != 1)
+                        {
+                            //1鍙�
+                            //1鍙烽渶瑕侀噸鏂拌绠楀綋鏈堜笌涓婃湀銆佸綋鏃�
+                            foreach (var item in info)
+                            {
+                                var Folded = item.Standard.Split("*");
+                                int count = 0;
+                                var sum = 0m;
+                                //鑾峰彇瀵瑰簲鎶樹欢鏁伴噺
+                                foreach (var item1 in Folded)
+                                {
+                                    if (count == 0)
+                                    {
+                                        if (item1.Contains(item.Unit))
+                                        {
+                                            count = 1;
+                                            sum = Convert.ToDecimal(item1);
+                                        }
+                                    }
+                                    if (count == 1)
+                                    {
+                                        sum *= Convert.ToDecimal(item1);
+                                    }
+                                }
+
+                                DataStockInfo data = new DataStockInfo()
+                                {
+                                    SkuNo = item.SkuNo,
+                                    SkuName = item.SkuName,
+                                    Standard = item.Standard,
+                                    Unit = item.Unit,
+
+                                    LastMonthQty = item.Qty, //涓婃湀缁撳瓨-搴撳瓨鏁伴噺
+                                    LastMonthFoldedQty = item.Qty / sum, //涓婃湀缁撳瓨-鎶樹欢鏁伴噺
+                                    ArrDayQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鏁伴噺
+                                    ArrDayFoldedQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                    ArrMonthQty = 0, //鍏ュ簱鏁伴噺-褰撴湀鏁伴噺
+                                    ArrMonthFoldedQty = 0, //鍏ュ簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                    ArrYearQty = item.ArrYearQty, //鍏ュ簱鏁伴噺-鏈勾鏁伴噺
+                                    ArrYearFoldedQty = item.ArrYearQty / sum, //鍏ュ簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                    SoDayQty = 0, //鍑哄簱鏁伴噺-褰撴棩鏁伴噺
+                                    SoDayFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                    SoMonthQty = 0, //鍑哄簱鏁伴噺-褰撴湀鏁伴噺
+                                    SoMonthFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                    SoYearQty = item.SoYearQty, //鍑哄簱鏁伴噺-鏈勾鏁伴噺
+                                    SoYearFoldedQty = item.SoYearQty / sum, //鍑哄簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                    MonthQty = item.Qty, //褰撴湀鏁伴噺-绱鏁伴噺 
+                                    MonthFoldedQty = item.Qty / sum, //褰撴湀鏁伴噺-绱鎶樹欢鏁伴噺
+
+                                    DepositQty = item.DepositQty,
+                                    Qty = item.Qty,
+                                    SecurityQty = item.SecurityQty,
+                                    Situation = item.Qty < item.SecurityQty ? "1" : "0",
+                                    IsDel = "0",
+                                    CreateTime = DateTime.Now,
+                                    CreateUser = 0,
+                                    UpdateTime = null,
+                                    UpdateUser = null,
+
+                                };
+
+
+                                list.Add(data);
+                            }
+                        }
+                        #region 娉ㄩ噴渚嬪瓙
+                        ////1鍙�
+                        ////1鍙烽渶瑕侀噸鏂拌绠楀綋鏈堜笌涓婃湀銆佸綋鏃�
+                        //foreach (var item in info)
+                        //{
+                        //    DataStockInfo data = new DataStockInfo()
+                        //    {
+                        //        SkuNo = item.SkuNo,
+                        //        SkuName = item.SkuName,
+                        //        Standard = item.Standard,
+                        //        Unit = item.Unit,
+                        //        LastMonthQty = item.Qty,
+                        //        ArrDayQty = 0,
+                        //        ArrMonthQty = 0,
+                        //        ArrYearQty = item.ArrYearQty,
+                        //        SoDayQty = 0,
+                        //        SoMonthQty = 0,
+                        //        SoYearQty = item.SoYearQty,
+                        //        MonthQty = item.Qty,
+                        //        DepositQty = item.DepositQty,
+                        //        Qty = item.Qty,
+                        //        SecurityQty = item.SecurityQty,
+                        //        Situation = item.Qty >= item.SecurityQty ? "0" : "1",
+                        //        IsDel = "0",
+                        //        CreateTime = DateTime.Now,
+                        //        CreateUser = 0,
+                        //        UpdateTime = null,
+                        //        UpdateUser = null,
+
+                        //    };
+
+
+                        //    list.Add(data);
+                        //}
+
+                        #endregion
+                    }
+                    else
+                    {
+                        //鍏跺畠
+                        //闇�瑕佽绠楀綋鏃�
+                        foreach (var item in info)
+                        {
+                            var Folded = item.Standard.Split("*");
+                            int count = 0;
+                            var sum = 0m;
+                            //鑾峰彇瀵瑰簲鎶樹欢鏁伴噺
+                            foreach (var item1 in Folded)
+                            {
+                                if (count == 0)
+                                {
+                                    if (item1.Contains(item.Unit))
+                                    {
+                                        count = 1;
+                                        sum = Convert.ToDecimal(item1);
+                                    }
+                                }
+                                if (count == 1)
+                                {
+                                    sum *= Convert.ToDecimal(item1);
+                                }
+                            }
+
+                            DataStockInfo data = new DataStockInfo()
+                            {
+                                SkuNo = item.SkuNo,
+                                SkuName = item.SkuName,
+                                Standard = item.Standard,
+                                Unit = item.Unit,
+
+                                LastMonthQty = item.LastMonthQty, //涓婃湀缁撳瓨-搴撳瓨鏁伴噺
+                                LastMonthFoldedQty = item.LastMonthQty / sum, //涓婃湀缁撳瓨-鎶樹欢鏁伴噺
+                                ArrDayQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鏁伴噺
+                                ArrDayFoldedQty = 0, //鍏ュ簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                ArrMonthQty = item.ArrMonthQty, //鍏ュ簱鏁伴噺-褰撴湀鏁伴噺
+                                ArrMonthFoldedQty = item.ArrMonthQty / sum, //鍏ュ簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                ArrYearQty = item.ArrYearQty, //鍏ュ簱鏁伴噺-鏈勾鏁伴噺
+                                ArrYearFoldedQty = item.ArrYearQty / sum, //鍏ュ簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                SoDayQty = 0, //鍑哄簱鏁伴噺-褰撴棩鏁伴噺
+                                SoDayFoldedQty = 0, //鍑哄簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                                SoMonthQty = item.SoMonthQty, //鍑哄簱鏁伴噺-褰撴湀鏁伴噺
+                                SoMonthFoldedQty = item.SoMonthQty / sum, //鍑哄簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                                SoYearQty = item.SoYearQty, //鍑哄簱鏁伴噺-鏈勾鏁伴噺
+                                SoYearFoldedQty = item.SoYearQty / sum, //鍑哄簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                                MonthQty = item.MonthQty, //褰撴湀鏁伴噺-绱鏁伴噺 
+                                MonthFoldedQty = item.MonthQty / sum, //褰撴湀鏁伴噺-绱鎶樹欢鏁伴噺
+
+                                DepositQty = item.DepositQty,
+                                Qty = item.Qty,
+                                SecurityQty = item.SecurityQty,
+                                Situation = item.Qty < item.SecurityQty ? "1" : "0",
+                                IsDel = "0",
+                                CreateTime = DateTime.Now,
+                                CreateUser = 0,
+                                UpdateTime = null,
+                                UpdateUser = null,
+
+                            };
+
+
+                            list.Add(data);
+                        }
+                    }
+                }
+
+
+                //娣诲姞搴撳瓨淇℃伅
+                Db.Insertable<DataStockInfo>(list).ExecuteCommand();
+
+                Db.CommitTran();
+                return arr;
+            }
+            catch (Exception ex)
+            {
+                Db.RollbackTran();
+                throw ex;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇瀵瑰簲澶╂暟淇℃伅
+        /// </summary>
+        /// <param name="StartDate"></param>
+        /// <returns></returns>
+        public List<DataStockInfoVM> GetDataStockInfo(string StartDate)
+        {
+            try
+            {
+                var list = Db.Queryable<DataStockInfo>().Where(a => a.IsDel == "0").ToList();
+
+                //楠岃瘉鏄惁瀛樺湪閫変腑鏃堕棿 涓嶅瓨鍦ㄥ垯璧嬪�间粖鏃ユ椂闂�
+                if (string.IsNullOrEmpty(StartDate))
+                {
+                    StartDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ff");
+                }
+
+                //鏍规嵁鏃堕棿鑾峰彇瀵瑰簲鏃ユ湡鐨勫簱瀛樹俊鎭�
+                if (!string.IsNullOrEmpty(StartDate))
+                {
+                    list = list.Where(a => a.CreateTime.Year == DateTime.Parse(StartDate).Year && a.CreateTime.Month == DateTime.Parse(StartDate).Month && a.CreateTime.Day == DateTime.Parse(StartDate).Day).ToList();
+                }
+
+                List<DataStockInfoVM> list1 = new List<DataStockInfoVM>();
+
+                foreach (var item in list)
+                {
+                    DataStockInfoVM info = new DataStockInfoVM()
+                    {
+                        SkuNo = item.SkuNo, //鐗╂枡缂栫爜
+                        SkuName = item.SkuName, //鐗╂枡鍚嶇О
+                        Standard = item.Standard, //瑙勬牸
+                        Unit = item.Unit, //鍗曚綅
+                        LastMonthQty = item.LastMonthQty, //涓婃湀缁撳瓨-搴撳瓨鏁伴噺
+                        LastMonthFoldedQty = item.LastMonthFoldedQty, //涓婃湀缁撳瓨-鎶樹欢鏁伴噺
+                        ArrDayQty = item.ArrDayQty, //鍏ュ簱鏁伴噺-褰撴棩鏁伴噺
+                        ArrDayFoldedQty = item.ArrDayFoldedQty, //鍏ュ簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                        ArrMonthQty = item.ArrMonthQty, //鍏ュ簱鏁伴噺-褰撴湀鏁伴噺
+                        ArrMonthFoldedQty = item.ArrMonthFoldedQty, //鍏ュ簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                        ArrYearQty = item.ArrYearQty, //鍏ュ簱鏁伴噺-鏈勾鏁伴噺
+                        ArrYearFoldedQty = item.ArrYearFoldedQty, //鍏ュ簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                        SoDayQty = item.SoDayQty, //鍑哄簱鏁伴噺-褰撴棩鏁伴噺
+                        SoDayFoldedQty = item.SoDayFoldedQty, //鍑哄簱鏁伴噺-褰撴棩鎶樹欢鏁伴噺
+                        SoMonthQty = item.SoMonthQty, //鍑哄簱鏁伴噺-褰撴湀鏁伴噺
+                        SoMonthFoldedQty = item.SoMonthFoldedQty, //鍑哄簱鏁伴噺-褰撴湀鎶樹欢鏁伴噺
+                        SoYearQty = item.SoYearQty, //鍑哄簱鏁伴噺-鏈勾鏁伴噺
+                        SoYearFoldedQty = item.SoYearFoldedQty, //鍑哄簱鏁伴噺-鏈勾鎶樹欢鏁伴噺
+                        MonthQty = item.MonthQty, //褰撴湀鏁伴噺-绱鏁伴噺 
+                        MonthFoldedQty = item.MonthFoldedQty, //褰撴湀鏁伴噺-绱鎶樹欢鏁伴噺 
+                        DepositQty = item.DepositQty, //瀵勫瓨鏁伴噺
+                        Qty = item.Qty, //鏈湀搴撳瓨鏁伴噺
+                        SecurityQty = item.SecurityQty, //瀹夊叏搴撳瓨
+                        Situation = item.Situation, //瀹夊叏搴撳瓨鎯呭喌
+                        IsDel = item.IsDel, //鏄惁鍒犻櫎
+                        CreateTime = item.CreateTime, //鍒涘缓鏃堕棿
+                        CreateUser = item.CreateUser, //鍒涘缓浜�
+                        UpdateTime = item.UpdateTime, //鏇存柊鏃堕棿
+                        UpdateUser = item.UpdateUser, //鏇存柊浜�
+                    };
+                    list1.Add(info);
+                }
+
+                return list1;
+            }
+            catch (Exception ex)
+            {
+
+                throw ex;
+            }
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁鍑哄叆搴撴柊澧炴垨淇敼淇℃伅
+        /// </summary>
+        /// <param name="type">绫诲瀷 0锛氬叆搴� 1锛氬嚭搴�</param>
+        /// <param name="qty">鍏ュ簱鎴栧嚭搴撴暟閲�</param>
+        /// <param name="isDeposit">鏄惁瀵勫瓨 0锛氭槸 1锛氬惁</param>
+        /// <param name="skuNo">鐗╂枡缂栫爜</param>
+        /// <returns></returns>
+        public bool AddOrUptStockInfo(string type, decimal qty, string isDeposit, string skuNo)
+        {
+            try
+            {
+                int a = 0;
+                bool isTrue = false;
+                //鑾峰彇浠婃棩鏃堕棿
+                string date = DateTime.Now.ToString("yyyy-MM-dd");
+                //鏍规嵁鐗╂枡淇℃伅鑾峰彇浠婃棩搴撳瓨淇℃伅
+                var list = Db.Queryable<DataStockInfo>().First(a => a.IsDel == "0" && a.SkuNo == skuNo && a.CreateTime.Year == DateTime.Parse(date).Year && a.CreateTime.Month == DateTime.Parse(date).Month && a.CreateTime.Day == DateTime.Parse(date).Day);
+                Db.BeginTran();
+                //楠岃瘉鏄惁瀛樺湪搴撳瓨淇℃伅
+                if (list == null)
+                {
+                    //鏍规嵁鐗╂枡缂栫爜鑾峰彇鐗╂枡淇℃伅
+                    var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == skuNo);
+                    //鏍规嵁鐗╂枡淇℃伅鑾峰彇鍗曚綅淇℃伅
+                    var unit = Db.Queryable<SysUnit>().First(a => a.IsDel == "0" && a.UnitNo == sku.UnitNo);
+                    //鑾峰彇瀵瑰簲鎶樹欢鏁伴噺
+                    var Folded = sku.Standard.Split("*");
+                    int count = 0;
+                    var sum = 0m;
+                    foreach (var item1 in Folded)
+                    {
+                        if (count == 0)
+                        {
+                            if (item1.Contains(unit.UnitName))
+                            {
+                                count = 1;
+                                sum = Convert.ToDecimal(item1);
+                            }
+                        }
+                        if (count == 1)
+                        {
+                            sum *= Convert.ToDecimal(item1);
+                        }
+                    }
+                    DataStockInfo info = new DataStockInfo()
+                    {
+                        SkuNo = sku.SkuNo,
+                        SkuName = sku.SkuName,
+                        Standard = sku.Standard,
+                        Unit = unit.UnitName,
+                        LastMonthQty = 0,
+                        ArrDayQty = 0,
+                        ArrMonthQty = 0,
+                        ArrYearQty = 0,
+                        SoDayQty = 0,
+                        SoMonthQty = 0,
+                        SoYearQty = 0,
+                        MonthQty = 0,
+                        DepositQty = 0,
+                        Qty = 0,
+                        SecurityQty = sku.LowInventory,
+                        Situation = qty < sku.LowInventory ? "1" : "0",
+                        IsDel = "0",
+                        CreateTime = DateTime.Now,
+                        CreateUser = 0,
+                        UpdateTime = null,
+                        UpdateUser = null,
+
+                    };
+
+                    if (type == "0") //鍏ュ簱
+                    {
+                        //缂栬緫瀵瑰簲搴撳瓨淇℃伅
+                        info.ArrDayQty += qty; //褰撴棩鍏ュ簱鏁伴噺
+                        info.ArrDayFoldedQty += qty; //褰撴棩鍏ュ簱鏁伴噺-鎶樹欢
+                        info.ArrMonthQty += qty; //褰撴湀鍏ュ簱鏁伴噺
+                        info.ArrMonthFoldedQty += qty; //褰撴湀鍏ュ簱鏁伴噺-鎶樹欢
+                        info.ArrYearQty += qty; //浠婂勾鍏ュ簱鏁伴噺
+                        info.ArrYearFoldedQty += qty; //浠婂勾鍏ュ簱鏁伴噺-鎶樹欢
+                        info.MonthQty += qty; //褰撴湀缁撳瓨
+                        info.MonthFoldedQty += qty; //褰撴湀缁撳瓨-鎶樹欢
+
+                        if (isDeposit == "0")
+                        {
+                            //楠岃瘉鏄惁涓哄瘎瀛樻暟閲�
+                            info.DepositQty += qty; //瀵勫瓨鏁伴噺
+                        }
+                        info.Qty = info.MonthQty + info.DepositQty; //鏈湀搴撳瓨鏁伴噺
+                    }
+                    else if (type == "1") //鍑哄簱
+                    {
+                        //缂栬緫瀵瑰簲搴撳瓨淇℃伅
+                        info.SoDayQty += qty; //褰撴棩鍑哄簱鏁伴噺
+                        info.ArrDayFoldedQty += qty; //褰撴棩鍏ュ簱鏁伴噺-鎶樹欢
+                        info.ArrMonthQty += qty; //褰撴湀鍏ュ簱鏁伴噺
+                        info.ArrMonthFoldedQty += qty; //褰撴湀鍏ュ簱鏁伴噺-鎶樹欢
+                        info.ArrYearQty += qty; //浠婂勾鍏ュ簱鏁伴噺
+                        info.ArrYearFoldedQty += qty; //浠婂勾鍏ュ簱鏁伴噺-鎶樹欢
+                        info.MonthQty += qty; //褰撴湀缁撳瓨
+                        info.MonthFoldedQty += qty; //褰撴湀缁撳瓨-鎶樹欢
+
+                        if (isDeposit == "0")
+                        {
+                            //楠岃瘉鏄惁涓哄瘎瀛樻暟閲�
+                            info.DepositQty -= qty; //瀵勫瓨鏁伴噺
+                        }
+                        info.Qty = info.MonthQty + info.DepositQty; //鏈湀搴撳瓨鏁伴噺
+                    }
+                    //鏂板搴撳瓨淇℃伅
+                    a = Db.Insertable(info).ExecuteCommand();
+                }
+                else
+                {
+                    if (type == "0") //鍏ュ簱
+                    {
+                        //缂栬緫瀵瑰簲搴撳瓨淇℃伅
+                        list.ArrDayQty += qty; //褰撴棩鍑哄簱鏁伴噺
+                        list.ArrDayFoldedQty += qty; //褰撴棩鍏ュ簱鏁伴噺-鎶樹欢
+                        list.ArrMonthQty += qty; //褰撴湀鍏ュ簱鏁伴噺
+                        list.ArrMonthFoldedQty += qty; //褰撴湀鍏ュ簱鏁伴噺-鎶樹欢
+                        list.ArrYearQty += qty; //浠婂勾鍏ュ簱鏁伴噺
+                        list.ArrYearFoldedQty += qty; //浠婂勾鍏ュ簱鏁伴噺-鎶樹欢
+                        list.MonthQty += qty; //褰撴湀缁撳瓨
+                        list.MonthFoldedQty += qty; //褰撴湀缁撳瓨-鎶樹欢
+
+                        if (isDeposit == "0")
+                        {
+                            //楠岃瘉鏄惁涓哄瘎瀛樻暟閲�
+                            list.DepositQty += qty; //瀵勫瓨鏁伴噺
+                        }
+                        list.Qty = list.MonthQty + list.DepositQty; //鏈湀搴撳瓨鏁伴噺
+                        list.Situation = list.Qty < list.SecurityQty ? "1" : "0"; //瀹夊叏搴撳瓨鎯呭喌
+
+
+                    }
+                    else if (type == "1") //鍑哄簱
+                    {
+                        //缂栬緫瀵瑰簲搴撳瓨淇℃伅
+                        list.SoDayQty += qty; //褰撴棩鍑哄簱鏁伴噺
+                        list.ArrDayFoldedQty += qty; //褰撴棩鍏ュ簱鏁伴噺-鎶樹欢
+                        list.ArrMonthQty += qty; //褰撴湀鍏ュ簱鏁伴噺
+                        list.ArrMonthFoldedQty += qty; //褰撴湀鍏ュ簱鏁伴噺-鎶樹欢
+                        list.ArrYearQty += qty; //浠婂勾鍏ュ簱鏁伴噺
+                        list.ArrYearFoldedQty += qty; //浠婂勾鍏ュ簱鏁伴噺-鎶樹欢
+                        list.MonthQty += qty; //褰撴湀缁撳瓨
+                        list.MonthFoldedQty += qty; //褰撴湀缁撳瓨-鎶樹欢
+
+                        if (isDeposit == "0")
+                        {
+                            //楠岃瘉鏄惁涓哄瘎瀛樻暟閲�
+                            list.DepositQty -= qty; //瀵勫瓨鏁伴噺
+                        }
+                        list.Qty = list.MonthQty + list.DepositQty; //鏈湀搴撳瓨鏁伴噺
+                        list.Situation = list.Qty < list.SecurityQty ? "1" : "0"; //瀹夊叏搴撳瓨鎯呭喌
+                    }
+                    a = Db.Updateable(list).ExecuteCommand();
+                }
+
+                Db.CommitTran();
+                if (a == 1)
+                {
+                    isTrue = true;
+                }
+
+                return isTrue;
+
+            }
+            catch (Exception ex)
+            {
+                Db.RollbackTran();
+                throw ex;
+            }
+        }
+
+    }
+}

--
Gitblit v1.8.0