using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using siemensSapService.orm;
using siemensSapService.aspEntity;
using logtxtWrite;
using Newtonsoft.Json;
using System.Diagnostics;
using System.IO;
namespace siemensSapService.wcf
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“sapWcf”。
public class sapWcf : IsapWcf
{
///
/// 添加出库单,被 张展的iWareSAP服务调用
///
/// 要添加的plckList
///
public string pickList(SaleOrder sale)
{
string result = "";
#region 验证传入参数/合并相同物料
if (sale.saleChild.Count == 0)
{
result = "出库明细数量为0!";
logtxt.txtWrite("类名:sapWcf,函数名: pickList:收到数量是0", 2);
return result;
}
#region 合并相同物料编号的数据
//PICKlist child临时变量
List convertPickLIST = new List();
//按物料编号分组
var PickList = sale.saleChild.GroupBy(x => x.materialCode);
foreach (var convertItem in PickList)
{
for (int i = 1; i < convertItem.ToList().Count; i++)
{
//数量合并到第一个
convertItem.ToList()[0].exitQty += convertItem.ToList()[i].exitQty;
}
convertPickLIST.Add(convertItem.ToList()[0]);
}
sale.saleChild = convertPickLIST;
#endregion
#endregion
logtxt.txtWrite("类名:sapWcf,函数名: pickList:收到" + sale.saleChild.Count + "条数据", 0);
try
{
using (dbModel mod = new dbModel())
{
//出库单号/生成订单号
string orderCode = sale.orderNumber;
Sale_Order checkList = mod.Sale_Order.FirstOrDefault(x => x.OrderCode == orderCode);
List rstPo = sale.saleChild.Select(x => x.materialCode).ToList();
//查找物料基础数据 找到po明细物料编号在数据库里有的集合
var checkMateria1s = (from p in mod.Base_ProductInfo
where
(from f in rstPo select f).Contains(p.ProductCode)
select p).ToList();
//有就修改没有就新建
string trackingNum = "";
if (checkList != null)
{
//检查明细有就修改没有就新建
List checkLists = mod.Sale_OrderList.Where(x => x.Order_Id == checkList.Order_Id).ToList();
//if (checkLists.Count < 1)
//{
// logtxt.txtWrite("类名:sapWcf,函数名: pickList:更新出库单明细为" + sale.saleChild.Count + "条数据", 2);
//}
checkList.MaterialCount = sale.orderQuantity;//出库套数
//int unb = 0;//计数
foreach (var item in sale.saleChild)
{
string materialCode = item.materialCode;
//unb++;
Sale_OrderList isHave = checkLists.FirstOrDefault(x => x.ProductCode == item.materialCode);
if (isHave != null)
{
//if (item.materialCode=="A7EQD-5170027509")
//{
// decimal aa=item.exitQty;
//}
#region 修改出库单数据
// isHave.ExtendField06 = item.saleItem;//销售项号
isHave.ProductCode = materialCode;//物料编号
isHave.SmallUnit = item.stockUnit;//库存单位
isHave.ValidQuantity = item.exitQty - isHave.QuantityShipped + isHave.ValidQuantity;//未出库数量 extendField03
isHave.QuantityShipped = item.exitQty;//预出库数量 extendField03
isHave.ModifyDate = DateTime.Now;
isHave.ExtendField09 = item.storageLocation;//G028 库区
continue;
#endregion
}
else
{
#region 新增出库单
string materialName = "sapPickList物料";
long productId = 0;
//查询物料找物料ID 没有就新建一个物料
Base_ProductInfo checkMateria = checkMateria1s.FirstOrDefault(x => x.ProductCode == materialCode);
if (checkMateria != null)
{
productId = checkMateria.Product_Id;
materialName = checkMateria.ProductName;
}
else
{
#region 检查物料基础信息里是否有这个物料没有就新建
Base_ProductInfo newMateria = new Base_ProductInfo();
newMateria.ProductCode = materialCode;//物料编号
newMateria.ProductName = materialName;//物料名称
newMateria.SmallUnit = item.stockUnit;//库存单位
newMateria.UnitConvert = 1M;
newMateria.BigUnit = item.stockUnit;//采购单位
newMateria.Enable = 1;//设置为可用
///////////////
newMateria.Brand_Id = 0;//库存预警量
newMateria.ProductModel = materialCode;
newMateria.Provider_Id = 926;
newMateria.ProviderCode = "PV201940371";
newMateria.ProviderShortName = "默认供应商";
newMateria.Consignor_Id = 30;
newMateria.ConsignorCode = "GX30";
newMateria.ConsignorName = "广州西门子";
newMateria.UserProduct_Id = 1007;
newMateria.UserProductCode = "100000001";
mod.Base_ProductInfo.Add(newMateria);
mod.SaveChanges();
//通过新建获取产品ID
productId = newMateria.Product_Id;
#endregion
}
if (productId == 0)
{
continue;//没这个物料到循环尾
}
if (trackingNum == "")//一个出库单只有一个跟踪号,只需要匹配一次
{
Purchase_OrderList saleList = mod.Purchase_OrderList.FirstOrDefault(x => x.ExtendField07 == sale.saleCode && x.SpecAlias == item.saleItem);
trackingNum = saleList == null ? "" : saleList.ExtendField04;
}
int saleItem = 0;
bool saleitemis0 = Int32.TryParse(item.saleItem, out saleItem);
Sale_OrderList orderList = new Sale_OrderList();
orderList.Order_Id = checkList.Order_Id;
orderList.ExtendField06 = item.saleItem;//销售项号
orderList.ProductCode = materialCode;//物料编号
orderList.ProductName = materialName;//物料名称
orderList.SmallUnit = item.stockUnit;//库存单位
orderList.QuantityShipped = item.exitQty;//预出库数量 extendField03
orderList.ValidQuantity = item.exitQty;//未出库数量 extendField03
orderList.ExtendField03 = "新建";
orderList.ExtendField01 = "261";//移动类型
orderList.ExtendField09 = item.storageLocation;//G028 库区
orderList.CreateDate = DateTime.Now;
orderList.TrackingNumber = saleItem > 0 ? trackingNum : "";//跟踪号
orderList.SaleCode = sale.saleCode;//销售单
orderList.ExtendField10 = item.batch;//保留项号
//不为空的垃圾字段
orderList.Product_Id = productId;
orderList.ProductModel = materialCode;
mod.Sale_OrderList.Add(orderList);
#endregion
}
}
int numList = mod.SaveChanges();
}
else
{
string productCode = sale.productNumber;
Base_ProductInfo findProduct = mod.Base_ProductInfo.FirstOrDefault(x => x.ProductCode == productCode);
string productName = "未找到产品名称";
if (findProduct != null)
{
productName = findProduct.ProductName;
}
Sale_Order saleOrder = new Sale_Order();
#region pickList主表
saleOrder.OrderCode = orderCode;//出库单号 =生产订单号=提料单号 800开头的号
saleOrder.MaterialCount = sale.orderQuantity;//订单出库套数
saleOrder.SaleCode = sale.saleCode;//销售单号
saleOrder.StoreName = sale.ReservationNumber;//保留号
saleOrder.DeptName = productName;//(产品名称)物料描述
saleOrder.PriorityNo = 0;//优先级
saleOrder.OrderType = "SAP生产订单";//单据类型
saleOrder.StorageName = "立体库";
saleOrder.StatusID = 1;//状态ID
saleOrder.StatusText = "新建";
saleOrder.Client_Id = 0;//已出库套数
//不可为空垃圾字段
saleOrder.Storage_Id = 87;
saleOrder.Consignor_Id = 30;
saleOrder.ConsignorCode = "HZ20180002";
saleOrder.ConsignorName = "默认货主";
saleOrder.UserProduct_Id = 1007;
saleOrder.CreateID = 1;
saleOrder.Creator = "超级管理员";
saleOrder.CreateDate = DateTime.Now;
#endregion
#region 添加明细
foreach (var item in sale.saleChild)
{
#region 检查物料基础信息里是否有这个物料没有就新建
long productId = 0;
string materialCode = item.materialCode;
string materialName = "sapPickList物料";
//查询物料找物料ID 没有就新建一个物料
Base_ProductInfo checkMateria = checkMateria1s.FirstOrDefault(x => x.ProductCode == materialCode);
if (checkMateria != null)
{
productId = checkMateria.Product_Id;
materialName = checkMateria.ProductName;
}
else
{
#region 新建
Base_ProductInfo newMateria = new Base_ProductInfo();
newMateria.ProductCode = materialCode;//物料编号
newMateria.ProductName = materialName;//物料名称
newMateria.SmallUnit = item.stockUnit;//库存单位
newMateria.UnitConvert = 1M;
newMateria.BigUnit = item.stockUnit;//采购单位
newMateria.Enable = 1;//设置为可用
///////////////
newMateria.Brand_Id = 0;//库存预警量
newMateria.ProductModel = materialCode;
newMateria.Provider_Id = 926;
newMateria.ProviderCode = "PV201940371";
newMateria.ProviderShortName = "默认供应商";
newMateria.Consignor_Id = 30;
newMateria.ConsignorCode = "GX30";
newMateria.ConsignorName = "广州西门子";
newMateria.UserProduct_Id = 1007;
newMateria.UserProductCode = "100000001";
mod.Base_ProductInfo.Add(newMateria);
mod.SaveChanges();
//通过新建获取产品ID
productId = newMateria.Product_Id;
#endregion
}
if (productId == 0)
{
continue;//没这个物料到循环尾
}
//查找跟踪号
if (trackingNum == "")//一个出库单只有一个跟踪号只需要匹配一次
{
Purchase_OrderList saleList = mod.Purchase_OrderList.FirstOrDefault(x => x.ExtendField07 == sale.saleCode && x.SpecAlias == item.saleItem);
trackingNum = saleList == null ? "" : saleList.ExtendField04;
}
if (trackingNum != "")
{
saleOrder.TrackingNumber = trackingNum;
}
#endregion
int saleItem = 0;
bool saleitemis0 = Int32.TryParse(item.saleItem, out saleItem);
Sale_OrderList orderList = new Sale_OrderList();
orderList.ExtendField06 = item.saleItem;//销售项号
orderList.ProductCode = materialCode;//物料编号
orderList.ProductName = materialName;//物料名称
orderList.SmallUnit = item.stockUnit;//库存单位
orderList.QuantityShipped = item.exitQty;//预出库数量 extendField03
orderList.ValidQuantity = item.exitQty;//未出库数量 extendField03
orderList.ExtendField03 = "新建";
orderList.ExtendField01 = "261";//移动类型
orderList.ExtendField09 = item.storageLocation;//G028 库区
orderList.TrackingNumber = saleItem > 0 ? trackingNum : "";//跟踪号
orderList.SaleCode = sale.saleCode;//销售单
orderList.ExtendField10 = item.batch;//保留项号
orderList.CreateDate = DateTime.Now;
//不为空的垃圾字段
orderList.Product_Id = productId;
orderList.ProductModel = materialCode;
saleOrder.Sale_OrderList.Add(orderList);
}
#endregion
mod.Sale_Order.Add(saleOrder);
int numList = mod.SaveChanges();
}
}
}
catch (Exception ex)
{
//logtxt.txtWrite("类名:sapWcf,函数名: pickList:发生异常" + JsonConvert.SerializeObject(sale) + ex.ToString(), 2);
//logtxt.txtWrite("类名:sapWcf,函数名: pickList:发生异常" + JsonConvert.SerializeObject(sale) + ex.ToString(), 2);
//logtxt.txtWrite("类名:sapWcf,函数名: pickList:收到" + sale.saleChild.Count + "条数据,出现异常:" + ex.Message + ",堆栈:" + ex.StackTrace, 0);
logtxt.txtWrite("类名:sapWcf,函数名: pickList:收到" + sale.saleChild.Count + "条数据,出现异常:" + ex.Message, 0);
result = DateTime.Now.ToString() + "导入出库单异常" + ex.Message;
}
logtxt.txtWrite("类名:sapWcf,函数名: pickList:收到" + sale.saleChild.Count + "条数据,执行完毕:" + result, 0);
return result;
}
///
/// 添加物料
///
/// 要添加的物料集合
///
public string addMaterial(List materials)
{
string result = "";
try
{
if (materials.Count == 0)
{
//return result = "没有传入数据";
return result = "";//返回成功 【EditBy shaocx,2022-06-17】
}
//记录次数
using (dbModel mod = new dbModel())
{
int num = 0;
foreach (var item in materials)
{
num++;
if (item.materialCode == null)
{
result += "第" + num + "条数据:物料编号为空\r\n";
continue;
}
string materialCode = item.materialCode;
Base_ProductInfo checkMateria = mod.Base_ProductInfo.Where(x => x.ProductCode == materialCode).FirstOrDefault();
//已存在物料就修改 ,没有就新建
if (checkMateria != null)
{
checkMateria.ProductName = item.materialName;//物料名称
checkMateria.Weight = item.weight;//重量
checkMateria.BigUnit = item.purchaseUnit;//采购单位
checkMateria.SmallUnit = item.stockUnit;//库存单位
checkMateria.TypeName = item.Category;//物料类别;
checkMateria.Creator = item.creator;//创建人
continue;
}
Base_ProductInfo material = new Base_ProductInfo();
material.ProductCode = item.materialCode;//物料编号
material.ProductName = item.materialName;//物料名称
material.Weight = item.weight;//重量
material.TypeName = item.Category;//物料类别;
material.Brand_Id = 0;//库存预警量
material.BigUnit = item.purchaseUnit;//采购单位
material.SmallUnit = item.stockUnit;//库存单位
material.Creator = item.creator;//创建人
material.CreateDate = DateTime.Now;
material.Enable = 1;//启用
material.UnitConvert = 1;//单位转换
//不为空的垃圾字段
material.Provider_Id = 926;
material.ProviderCode = "PV201940371";
material.ProviderShortName = "默认供应商";
material.UserProduct_Id = 1007;
material.ProductModel = item.materialCode;
material.Consignor_Id = 30;
material.ConsignorCode = "GX30";
material.ConsignorName = "广州西门子";
mod.Base_ProductInfo.Add(material);
}
mod.SaveChanges();
}
//writeTxt.writeInfo("addMaterial", INFO);
}
catch (Exception ex)
{
result += "\r\n" + ex.Message;
}
return result;
}
///
/// 库存盘点,此接口被张展的iWareSAP所调用
///
/// 要核对的数据
/// 成功返回"",否则返回错误信息
public string takeStock(List stockQuantity)
{
//logtxt.txtWrite("类名:sapWcf,函数名: takeStock:收到盘点数据", 0);
Log4NetHelper.WriteInfoLog(LogType.TakeStock, "收到盘点数据:" + JsonConvert.SerializeObject(stockQuantity));
Stopwatch deviceSw = new Stopwatch();
deviceSw.Start();//运行计算器开始记时
List sapInfo = new List();
#region 读取本地SA[库存盘点txt
//var files = Directory.GetFiles("D:\\log_ShuYing");
//注意:是按照创建时间降序排列
var files = Directory.GetFiles("D:\\log_takeStock").OrderByDescending(x => new FileInfo(x).CreationTime).ToList();//盘点存放文件改为 log_takeStock 【EditBy shaocx,2022-10-12】
if (files.Count < 1)
{
//logtxt.txtWrite("类名:sapWcf,函数名: takeStock:收到数据为空 条", 2);
Log4NetHelper.WriteInfoLog(LogType.TakeStock, "收到数据为空");
return "";
}
var filePath = files[0];
var fileName = Path.GetFileName(filePath);
using (var reader = new StreamReader(filePath))
{
var line = reader.ReadLine();
if (line.StartsWith("MATNR"))
{
while (!string.IsNullOrEmpty(line))
{
if (!line.StartsWith("MATNR"))
{
var spliterChar = Encoding.UTF8.GetString(new byte[] { 9 });
var args = line.Split(spliterChar.ToCharArray());
if (args[7] == "3TG1" && args[8] == "G021")
{
try
{
ProductStock stock = new ProductStock();
stock.SaleCode = args[11];
if (args[12] == "")
{
stock.SaleItem = args[12];
}
else
{
stock.SaleItem = Convert.ToInt32(args[12]) < 1 ? "" : args[12];
}
stock.materialCode = args[0];
stock.materialName = args[1];
stock.stockUnit = args[6];
stock.stockQuantity = decimal.Parse(args[19]);
sapInfo.Add(stock);
}
catch (Exception)
{
}
}
}
line = reader.ReadLine();
}
}
else
{
return "";
}
}
#endregion
if (sapInfo.Count < 1)
{
//logtxt.txtWrite("类名:sapWcf,函数名: sapInfo:转换数据为空 条", 2);
Log4NetHelper.WriteInfoLog(LogType.TakeStock, "sapInfo:转换数据为空");
return "";
}
string result = "";
try
{
using (dbModel mod = new dbModel())//productCode
{
// DateTime todayTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));//今天凌晨时间
//删除之前的 盘点数据
string sql = "truncate table TakeStock ";
mod.Database.ExecuteSqlCommand(sql);
//立库库存数据
List stockInfo = mod.vvBase_ProductPosition.Where(x => x.PositionType == 1 && x.ProductStorage > 0).ToList();
#region 合并相同项
List stockInfoMerge = new List();
var merge = stockInfo.GroupBy(x => new { x.SaleCode, x.ExtendField08, x.ProductCode });
foreach (var item in merge)
{
vvBase_ProductPosition temporaryStock = new vvBase_ProductPosition();
if (item.ToList().Count > 1)
{
for (int k = 1; k < item.ToList().Count; k++)
{
temporaryStock.ProductStorage = item.ToList()[0].ProductStorage + item.ToList()[k].ProductStorage;
}
}
else
{
temporaryStock.ProductStorage = item.ToList()[0].ProductStorage;
}
temporaryStock.SmallUnit = item.ToList()[0].SmallUnit;
temporaryStock.ProductCode = item.ToList()[0].ProductCode;
temporaryStock.ProductName = item.ToList()[0].ProductName;
temporaryStock.SaleCode = item.ToList()[0].SaleCode;
temporaryStock.ExtendField08 = item.ToList()[0].ExtendField08;
stockInfoMerge.Add(temporaryStock);
}
int aa = mod.SaveChanges();
#endregion
//SAP传过来的 销售单下数据
//立库库存里和sap数据对应的项
List stockInfoIdentical = stockInfoMerge.Where(p => sapInfo.Any(x => x.SaleCode == p.SaleCode &&
x.SaleItem == p.ExtendField08 && x.stockQuantity == p.ProductStorage && x.materialCode == p.ProductCode)).ToList();
//SAP库存和立库库存里数据对应的项
List sapInfoIdentical = sapInfo.Where(p => stockInfoMerge.Any(x => x.SaleCode == p.SaleCode && x.ExtendField08 == p.SaleItem &&
x.ProductStorage == p.stockQuantity && x.ProductCode == p.materialCode)).ToList();
#region 移除相同项
if (stockInfoIdentical.Count > 0)//移除立库库存相同项
{
logtxt.txtWrite("类名:sapWcf,函数名: takeStock:盘点库存都相同的数据有:" + stockInfoIdentical.Count + "条", 0);
foreach (var itemRE in stockInfoIdentical)
{
stockInfoMerge.Remove(itemRE);
}
}
if (sapInfoIdentical.Count > 0)//移除SAP库存相同项
{
foreach (var itemRE in sapInfoIdentical)
{
sapInfo.Remove(itemRE);
}
}
#endregion
//----------------------------------------------------------------------------------------------------------
//立库库存里和sap跟踪号和物料号对应且数量不对应的项
List stockInfoIdentical2 = stockInfoMerge.Where(p => sapInfo.Any(x => x.SaleCode == p.SaleCode &&
x.SaleItem == p.ExtendField08 && x.materialCode == p.ProductCode)).ToList();
//SAP库存和立库库存里跟踪号和物料号对应且数量不对应的项
List sapInfoIdentical2 = sapInfo.Where(p => stockInfoMerge.Any(x => x.SaleCode == p.SaleCode &&
x.ExtendField08 == p.SaleItem && x.ProductCode == p.materialCode)).ToList();
int matching = 0;//记录匹配失败的数量
aa = mod.SaveChanges();
TakeStock checkStatistics = new TakeStock();
checkStatistics.MateralName = "排除相同数据:" + stockInfoIdentical.Count + "条,数量差异数据:" + stockInfoIdentical2.Count + "条, " + "仅立库数据:" + stockInfoMerge.Count +
"条, " + "仅SAP数据:" + sapInfo.Count + "条。";
checkStatistics.CreateDate = DateTime.Now;//创建时间
mod.TakeStock.Add(checkStatistics);
int a = mod.SaveChanges();
if (sapInfoIdentical2.Count > 0)
{
#region 移除跟踪号和物料号对应且数量不对应的项
if (stockInfoIdentical2.Count > 0)//移除立库库存里和sap跟踪号和物料号对应且数量不对应的项
{
logtxt.txtWrite("类名:sapWcf,函数名: takeStock:盘点库存都相同的数据有:" + stockInfoIdentical2.Count + "条", 0);
foreach (var itemRE in stockInfoIdentical2)
{
stockInfoMerge.Remove(itemRE);
}
}
if (sapInfoIdentical2.Count > 0)//移除SAP库存和立库库存里跟踪号和物料号对应且数量不对应的项
{
foreach (var itemRE in sapInfoIdentical2)
{
sapInfo.Remove(itemRE);
}
}
#endregion
#region 写入匹配到的物料
for (int j = 0; j < sapInfoIdentical2.Count; j++)
{
//找出对应的立库库存数量
vvBase_ProductPosition stockInfoIdentical22 = stockInfoIdentical2.FirstOrDefault(x => x.ProductCode == sapInfoIdentical2[j].materialCode &&
x.SaleCode == sapInfoIdentical2[j].SaleCode && x.ExtendField08 == sapInfoIdentical2[j].SaleItem);
if (sapInfoIdentical2 != null)
{
TakeStock check = new TakeStock();
check.ProcureCode = sapInfoIdentical2[j].SaleCode;//采购单号
check.ProcureItem = sapInfoIdentical2[j].SaleItem;//采购项号
check.MateralCode = sapInfoIdentical2[j].materialCode;//物料编号
check.MateralName = sapInfoIdentical2[j].materialName;//物料名称
check.Unit = stockInfoIdentical22.SmallUnit;//库存单位
check.SapQuantity = sapInfoIdentical2[j].stockQuantity;//SAP数量
check.Ex1 = stockInfoIdentical22.SmallUnit;//SAP单位
check.StockQuantity = stockInfoIdentical22.ProductStorage;//库存数量
// check.Ex2 = sapInfo[j].isStock == 1 ? "常规货位" : "暂存区";//库存单位
check.CreateDate = DateTime.Now;//创建时间
mod.TakeStock.Add(check);
}
else
{
matching++;
}
}
if (matching > 0)
{
logtxt.txtWrite("类名:sapWcf,函数名: takeStock:相同项数量不同写入库存 匹配失败数量:" + matching + "条", 2);
}
#endregion
}
mod.SaveChanges();
#region 判断库存里有的,sap里没有的物料,如果有就写入到盘点表里
//
if (stockInfoMerge.Count > 0)
{
foreach (var stock in stockInfoMerge)
{
TakeStock check = new TakeStock();
check.ProcureCode = stock.SaleCode;//销售单号
check.ProcureItem = stock.ExtendField08;//销售项号
check.MateralCode = stock.ProductCode;//物料编号
check.MateralName = stock.ProductName;//物料名称
check.Unit = "";//SAP单位
check.SapQuantity = 0;//SAP数量
check.Ex1 = stock.SmallUnit;//库存单位
check.StockQuantity = stock.ProductStorage;//库存数量
check.CreateDate = DateTime.Now;//创建时间
mod.TakeStock.Add(check);
}
}
mod.SaveChanges();
#endregion
#region 写入SAP有的库存没有的数据总和
//判断有没有库存里有的,sap里没有的物料,如果有就写入到盘点表里
if (sapInfo.Count > 0)
{
foreach (var sapStock in sapInfo)
{
TakeStock check = new TakeStock();
check.ProcureCode = sapStock.SaleCode;//销售单号
check.ProcureItem = sapStock.SaleItem;//销售项
check.MateralCode = sapStock.materialCode;//物料编号
check.MateralName = sapStock.materialName;//物料名称
check.Unit = sapStock.stockUnit;//SAP单位
check.SapQuantity = sapStock.stockQuantity;//SAP数量
check.Ex1 = "";//库存单位
check.StockQuantity = 0;//库存数量
check.CreateDate = DateTime.Now;//创建时间
mod.TakeStock.Add(check);
}
}
#endregion
int resultNum = mod.SaveChanges();
if (resultNum < 1)
{
result = "保存失败";
}
//logtxt.txtWrite("类名:sapWcf,函数名: takeStock:盘点库存计算时间:" + deviceSw.Elapsed.ToString(), 0);
Log4NetHelper.WriteInfoLog(LogType.TakeStock, "类名:sapWcf,函数名: takeStock:盘点库存计算时间:" + deviceSw.Elapsed.ToString());
deviceSw.Stop();
//处理成功后,将所有文件删除
var remove_files = Directory.GetFiles("D:\\log_takeStock");
foreach (var item in remove_files)
{
File.Delete(item);//文件删除
}
}
}
catch (Exception ex)
{
//logtxt.txtWrite("类名:sapWcf,函数名: takeStock:异常" + ex.ToString() + ex.StackTrace.ToString(), 2);
Log4NetHelper.WriteErrorLog(LogType.TakeStock, "类名:sapWcf,函数名: takeStock:异常:" + ex.Message, ex);
result += "\r\n" + ex.Message;
}
return result;
}
}
}