|
|
@@ -785,6 +785,201 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else if (_Kind == "4")
|
|
|
+ {
|
|
|
+ Dictionary<string, int> storeData = new Dictionary<string, int>();
|
|
|
+ Dictionary<string, int> toStoreData = new Dictionary<string, int>();
|
|
|
+ using (var tran = db.Database.BeginTransaction())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ int Size = 100;
|
|
|
+ if (list.Rows.Count - DoCount < 100)
|
|
|
+ {
|
|
|
+ Size = list.Rows.Count - DoCount;
|
|
|
+ }
|
|
|
+ for (int i = DoCount; i < DoCount + Size; i++)
|
|
|
+ {
|
|
|
+ DataRow dr = list.Rows[i];
|
|
|
+ string BatchNo = dr[0].ToString(); // 业务批次号
|
|
|
+ string OldStoreNo = dr[1].ToString(); // 原仓库编号
|
|
|
+ string OldOperator = dr[2].ToString(); // 操作人
|
|
|
+ string SnNo = dr[3].ToString(); // SN编号
|
|
|
+ SnNo = SnNo.Replace(" ", "");
|
|
|
+ string StoreNo = dr[4].ToString(); // 退回仓库编号
|
|
|
+ string BrandIdString = dr[5].ToString(); // 产品类型
|
|
|
+ string OutNote = "";
|
|
|
+ if (list.Columns.Count > 6)
|
|
|
+ {
|
|
|
+ OutNote = dr[6].ToString(); // 出库备注
|
|
|
+ }
|
|
|
+
|
|
|
+ int BrandId = int.Parse(function.CheckInt(BrandIdString));
|
|
|
+
|
|
|
+ KqProducts kqProduct = db.KqProducts.FirstOrDefault(m => m.Id == BrandId) ?? new KqProducts();
|
|
|
+ if (kqProduct.Id > 0)
|
|
|
+ {
|
|
|
+ StoreForCode storefor = db.StoreForCode.FirstOrDefault(m => m.Code == OldStoreNo) ?? new StoreForCode();
|
|
|
+ StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == storefor.StoreId) ?? new StoreHouse();
|
|
|
+ if (store.Id > 0)
|
|
|
+ {
|
|
|
+ StoreForCode tostorefor = db.StoreForCode.FirstOrDefault(m => m.Code == StoreNo) ?? new StoreForCode();
|
|
|
+ StoreHouse tostore = db.StoreHouse.FirstOrDefault(m => m.Id == tostorefor.StoreId) ?? new StoreHouse();
|
|
|
+ if (tostore.Id > 0)
|
|
|
+ {
|
|
|
+ MachineForSnNo machinefor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == SnNo) ?? new MachineForSnNo();
|
|
|
+ PosMachinesTwo machine = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machinefor.SnId && m.BuyUserId > 0) ?? new PosMachinesTwo();
|
|
|
+ if (machine.Id > 0)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(machine), "机具回仓库日志");
|
|
|
+ machine.StoreId = tostorefor.StoreId;
|
|
|
+ machine.BuyUserId = 0;
|
|
|
+ machine.UserId = 0;
|
|
|
+ machine.BindingState = 0;
|
|
|
+ machine.ActivationState = 0;
|
|
|
+ machine.BindingTime = null;
|
|
|
+ machine.ActivationTime = null;
|
|
|
+ machine.OrderId = 0;
|
|
|
+ machine.RecycEndDate = null;
|
|
|
+ machine.PosSnType = 0;
|
|
|
+ machine.BindMerchantId=0;
|
|
|
+ machine.ScanQrTrade = 0;
|
|
|
+ machine.DebitCardTrade = 0;
|
|
|
+ machine.CreditTrade = 0;
|
|
|
+ machine.UserNav = null;
|
|
|
+ machine.IsPurchase = 0;
|
|
|
+ machine.LeaderUserId = 0;
|
|
|
+ machine.PreUserId = 0;
|
|
|
+ db.SaveChanges();
|
|
|
+ if (!storeData.ContainsKey(storefor.StoreId + "_" + BrandId))
|
|
|
+ {
|
|
|
+ storeData.Add(storefor.StoreId + "_" + BrandId, 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ storeData[storefor.StoreId + "_" + BrandId] += 1;
|
|
|
+ }
|
|
|
+ if (!toStoreData.ContainsKey(tostorefor.StoreId + "_" + BrandId))
|
|
|
+ {
|
|
|
+ toStoreData.Add(tostorefor.StoreId + "_" + BrandId, 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ toStoreData[tostorefor.StoreId + "_" + BrandId] += 1;
|
|
|
+ }
|
|
|
+ SuccessCount += 1;
|
|
|
+ RedisDbconn.Instance.Set("CheckImport:" + checkKey, SuccessCount + " / " + TotalCount);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("ErrList" + checkKey, "机具" + SnNo + "已在仓库中");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("ErrList" + checkKey, "机具" + SnNo + "填写的退回仓库编号不正确");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("ErrList" + checkKey, "机具" + SnNo + "填写的原仓库编号不正确");
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("ErrList" + checkKey, "机具" + SnNo + "的品牌填写有误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DoCount += Size;
|
|
|
+ foreach (string key in storeData.Keys)
|
|
|
+ {
|
|
|
+ string[] keylist = key.Split('_');
|
|
|
+ int StoreId = int.Parse(keylist[0]);
|
|
|
+ int BrandId = int.Parse(keylist[1]);
|
|
|
+ int OpStoreNum = storeData[key];
|
|
|
+ StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId) ?? new StoreHouse();
|
|
|
+ StoreBalance balance = db.StoreBalance.Add(new StoreBalance()
|
|
|
+ {
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ StoreId = StoreId, //仓库
|
|
|
+ TransType = 1, //交易类型
|
|
|
+ BrandId = BrandId, //产品类型
|
|
|
+ OpStoreNum = OpStoreNum, //操作库存数
|
|
|
+ OpSymbol = "-", //操作符
|
|
|
+ BeforeTotalNum = store.TotalNum, //操作前总库存数
|
|
|
+ AfterTotalNum = store.TotalNum, //操作后总库存数
|
|
|
+ BeforeLaveNum = store.LaveNum, //操作前剩余库存数
|
|
|
+ AfterLaveNum = store.LaveNum - OpStoreNum, //操作后剩余库存数
|
|
|
+ BeforeOutNum = store.OutNum, //操作前出库数
|
|
|
+ AfterOutNum = store.OutNum + OpStoreNum, //操作后出库数
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ string ChangeNo = "SC";
|
|
|
+ int StoreStockChangeId = balance.Id;
|
|
|
+ string StoreStockChangeIdString = StoreStockChangeId.ToString();
|
|
|
+ for (int i = 0; i < 18 - StoreStockChangeId.ToString().Length; i++)
|
|
|
+ {
|
|
|
+ StoreStockChangeIdString = "0" + StoreStockChangeIdString;
|
|
|
+ }
|
|
|
+ ChangeNo += StoreStockChangeIdString;
|
|
|
+ balance.TransRecordNo = ChangeNo; //交易流水编号
|
|
|
+ store.LaveNum -= OpStoreNum;
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ foreach (string key in toStoreData.Keys)
|
|
|
+ {
|
|
|
+ string[] keylist = key.Split('_');
|
|
|
+ int StoreId = int.Parse(keylist[0]);
|
|
|
+ int BrandId = int.Parse(keylist[1]);
|
|
|
+ int OpStoreNum = toStoreData[key];
|
|
|
+ StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId) ?? new StoreHouse();
|
|
|
+ StoreBalance balance = db.StoreBalance.Add(new StoreBalance()
|
|
|
+ {
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ StoreId = StoreId, //仓库
|
|
|
+ TransType = 0, //交易类型
|
|
|
+ BrandId = BrandId, //产品类型
|
|
|
+ OpStoreNum = OpStoreNum, //操作库存数
|
|
|
+ OpSymbol = "+", //操作符
|
|
|
+ BeforeTotalNum = store.TotalNum, //操作前总库存数
|
|
|
+ AfterTotalNum = store.TotalNum + OpStoreNum, //操作后总库存数
|
|
|
+ BeforeLaveNum = store.LaveNum, //操作前剩余库存数
|
|
|
+ AfterLaveNum = store.LaveNum + OpStoreNum, //操作后剩余库存数
|
|
|
+ BeforeOutNum = store.OutNum, //操作前出库数
|
|
|
+ AfterOutNum = store.OutNum, //操作后出库数
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ string ChangeNo = "SC";
|
|
|
+ int StoreStockChangeId = balance.Id;
|
|
|
+ string StoreStockChangeIdString = StoreStockChangeId.ToString();
|
|
|
+ for (int i = 0; i < 18 - StoreStockChangeId.ToString().Length; i++)
|
|
|
+ {
|
|
|
+ StoreStockChangeIdString = "0" + StoreStockChangeIdString;
|
|
|
+ }
|
|
|
+ ChangeNo += StoreStockChangeIdString;
|
|
|
+ balance.TransRecordNo = ChangeNo; //交易流水编号
|
|
|
+ store.LaveNum += OpStoreNum;
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ tran.Commit();
|
|
|
+ RedisDbconn.Instance.Set("CheckImport:" + checkKey, "success|" + SuccessCount);
|
|
|
+ RedisDbconn.Instance.SetExpire("CheckImport:" + checkKey, 60000);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ DoCount = list.Rows.Count;
|
|
|
+ tran.Rollback();
|
|
|
+ ErrorMsg msg = new ErrorMsg()
|
|
|
+ {
|
|
|
+ Time = DateTime.Now,
|
|
|
+ ErrorContent = ex.ToString(),
|
|
|
+ };
|
|
|
+ function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(msg), "BsServerAdminError");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
else if (_Kind == "UserCashRecord")
|
|
|
{
|
|
|
using (var tran = db.Database.BeginTransaction())
|