using cuidian.Common;
using cuidian.Sql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WdtUtils;
using WdtUtils.Load;
using WdtUtils.Proxy;
namespace WangToTempDb
{
///
/// 库存现存量上传中间库
///
public class StockUpLoad : BaseUpLoad
{
private string __sql = "if not exists(select 1 from stock where cinvcode = '{0}' and cwhcode = '{1}') insert into stock(cinvcode, cwhcode, qty, price) values('{0}','{1}','{2}','{3}')";
protected override Result _LoadFirstPage()
{
StockProxy tmp = new StockProxy();
Result rtn = _load.Load(_args, ref tmp);
_proxy = tmp;
return rtn;
}
protected override void _SetLoader()
{
_load = new StockLoad();
}
protected override void _ImportData()
{
_operType = "插入库存现存量中间表数据";
Stock[] entitys = ((StockProxy)_proxy).stocks;
StringBuilder sb = new StringBuilder();
foreach (Stock item in entitys)
{
if (Convert.ToDecimal(item.stock_num) > 0)
{
sb.Append(string.Format(__sql, new object[] { item.spec_no, item.warehouse_no, item.stock_num, item.cost_price }));
_InsertIntoTempDb(sb.ToString(), item.spec_no + "~~~" + item.warehouse_no);
}
}
}
protected override void _LoadNextPage()
{
_proxy = _load.Load(_args);
}
protected override void _DeleteDup()
{
_operType = "删除库存现存量中间表重复数据";
string sql = @"delete a from stock a,stock b where a.cinvcode = b.cinvcode and a.cwhcode = b.cwhcode and a.processflag=0 and b.processflag=1";
DbUtils.ExecuteNonQuery(sql, _tempDb);
}
}
}