Commit 903951ed by 心随飞扬

新增安全库存设定,可根据品类、仓库动态配置,库存预测列表数据重复调整,供应链时间配置,交期、物流天数等动态配置

parent 6ffd0934
...@@ -189,11 +189,6 @@ namespace Bailun.DataCenter.Application.CostManage ...@@ -189,11 +189,6 @@ namespace Bailun.DataCenter.Application.CostManage
StringBuilder strgroup = new StringBuilder(); StringBuilder strgroup = new StringBuilder();
if (queryParam != null) if (queryParam != null)
{ {
if (!queryParam["platform"].IsEmpty())
{
var platform = queryParam["platform"].ToString();
strwhere.AppendFormat(" and t1.platform='{0}'", platform);
}
if (!queryParam["statisticstype"].IsEmpty()) if (!queryParam["statisticstype"].IsEmpty())
{ {
statisticstype = queryParam["statisticstype"].ToString(); statisticstype = queryParam["statisticstype"].ToString();
...@@ -228,16 +223,26 @@ namespace Bailun.DataCenter.Application.CostManage ...@@ -228,16 +223,26 @@ namespace Bailun.DataCenter.Application.CostManage
searchField.Append(",t1.origin_order_id,t1.platform,t1.bailun_account,t1.website"); searchField.Append(",t1.origin_order_id,t1.platform,t1.bailun_account,t1.website");
strgroup.Append(" group by t1.origin_order_id,t1.platform,t1.bailun_account,t1.website"); strgroup.Append(" group by t1.origin_order_id,t1.platform,t1.bailun_account,t1.website");
} }
if (!queryParam["platform"].IsEmpty())
{
var platform = queryParam["platform"].ToString();
strwhere.AppendFormat(" and t1.platform='{0}'", platform);
}
if (!queryParam["sellaccout"].IsEmpty()) if (!queryParam["sellaccout"].IsEmpty())
{ {
var sellaccout = queryParam["sellaccout"].ToString(); var sellaccout = queryParam["sellaccout"].ToString();
strwhere.AppendFormat(" and t1.bailun_account='{0}'", sellaccout); strwhere.AppendFormat(" and t1.bailun_account='{0}'", sellaccout);
if (statisticstype == "SkuReportIndex")
{
searchField.Append(",t1.bailun_account");
strgroup.Append(" ,t1.bailun_account");
}
} }
if (!queryParam["website"].IsEmpty()) if (!queryParam["website"].IsEmpty())
{ {
var website = queryParam["website"].ToString(); var website = queryParam["website"].ToString();
strwhere.AppendFormat(" and t1.website='{0}'", website); strwhere.AppendFormat(" and t1.website='{0}'", website);
if(statisticstype== "CategoryReportIndex") if(statisticstype== "CategoryReportIndex"||statisticstype== "SkuReportIndex")
{ {
searchField.Append(",t1.website"); searchField.Append(",t1.website");
strgroup.Append(" ,t1.website"); strgroup.Append(" ,t1.website");
...@@ -267,11 +272,6 @@ namespace Bailun.DataCenter.Application.CostManage ...@@ -267,11 +272,6 @@ namespace Bailun.DataCenter.Application.CostManage
{ {
var sellername = queryParam["sellername"].ToString(); var sellername = queryParam["sellername"].ToString();
strwhere.AppendFormat(" and t1.seller_name='{0}'", sellername); strwhere.AppendFormat(" and t1.seller_name='{0}'", sellername);
if(statisticstype== "SkuReportIndex")
{
searchField.Append(",t1.seller_name");
strgroup.Append(",t1.seller_name");
}
} }
if (!queryParam["sku"].IsEmpty()) if (!queryParam["sku"].IsEmpty())
{ {
......
...@@ -85,6 +85,8 @@ namespace Bailun.DataCenter.Application.Inventory ...@@ -85,6 +85,8 @@ namespace Bailun.DataCenter.Application.Inventory
if (!queryParam["qhorry"].IsEmpty()) if (!queryParam["qhorry"].IsEmpty())
{ {
query = query.Where(d =>d.nostock_quantity>0||d.redundancy_quantity>0); query = query.Where(d =>d.nostock_quantity>0||d.redundancy_quantity>0);
var Idlist = query.GroupBy(d => new { d.warehouse_code, d.s_number }, (key, group) => group.Min(d=>d.Id));
query = query.Where(d => Idlist.Contains(d.Id));
} }
} }
return query; return query;
......
...@@ -108,13 +108,9 @@ namespace Bailun.DataCenter.Application.Statistic ...@@ -108,13 +108,9 @@ namespace Bailun.DataCenter.Application.Statistic
} }
} }
var querydata = from d in data var querydata = (from d in data
select new WarehouseInfo() select new {d.warehouse_code,d.warehouse_name }).ToList();
{ return querydata.Distinct().Select(d=>new WarehouseInfo{WareCode=d.warehouse_code,WareName=d.warehouse_name }).ToList();
WareName = d.warehouse_name,
WareCode = d.warehouse_code
};
return querydata.Distinct().ToList();
} }
/// <summary> /// <summary>
/// 获取实体 /// 获取实体
......
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
</common> </common>
<appSettings> <appSettings>
<!--dev环境--> <!--dev环境-->
<add key="connectionString" value="server=192.168.6.140;port=3306;database=bailun_datacenter;uid=root;password=123456;" /> <!--<add key="connectionString" value="server=192.168.6.140;port=3306;database=bailun_datacenter;uid=root;password=123456;" />-->
<!--生产外网测试--> <!--生产外网测试-->
<!--<add key="connectionString" value="server=gz-cdb-hqmznu0w.sql.tencentcdb.com;port=63523;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" />--> <add key="connectionString" value="server=gz-cdb-hqmznu0w.sql.tencentcdb.com;port=63523;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" />
<!--生产--> <!--生产-->
<!--<add key="connectionString" value="server=db.blt.com;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" />--> <!--<add key="connectionString" value="server=db.blt.com;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" />-->
......
...@@ -82,6 +82,11 @@ namespace Bailun.DataCenter.Tasks.Entity.Dto ...@@ -82,6 +82,11 @@ namespace Bailun.DataCenter.Tasks.Entity.Dto
/// </summary> /// </summary>
public DateTime payTimeUtc { get; set; } public DateTime payTimeUtc { get; set; }
/// <summary>
/// 平台订单状态
/// </summary>
public string PlatOrderStatus { get; set; }
} }
/// <summary> /// <summary>
......
...@@ -93,6 +93,11 @@ namespace Bailun.DataCenter.Tasks.Entity ...@@ -93,6 +93,11 @@ namespace Bailun.DataCenter.Tasks.Entity
/// ///
/// </summary> /// </summary>
public string remark { get; set; } public string remark { get; set; }
/// <summary>
/// fba调拨头程费
/// </summary>
public decimal head_fee { get; set; }
#endregion Model #endregion Model
} }
} }
...@@ -128,7 +128,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder ...@@ -128,7 +128,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder
dlog.Remark = string.Format("订单{0}产品{1}仓库编码为空", product.originOrderNo, item.skuNo); dlog.Remark = string.Format("订单{0}产品{1}仓库编码为空", product.originOrderNo, item.skuNo);
dlog.CreateTime = DateTime.Now; dlog.CreateTime = DateTime.Now;
Db.Insert(dlog); Db.Insert(dlog);
continue; //continue;
} }
string strSql = string.Format("SELECT * FROM dc_sku_order WHERE s_number='{0}' AND o_number='{1}'", item.skuNo, product.bailunOrderNo); string strSql = string.Format("SELECT * FROM dc_sku_order WHERE s_number='{0}' AND o_number='{1}'", item.skuNo, product.bailunOrderNo);
var skuO = SqlMapper.Query<dc_sku_order>(conn, strSql).FirstOrDefault(); var skuO = SqlMapper.Query<dc_sku_order>(conn, strSql).FirstOrDefault();
...@@ -142,7 +142,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder ...@@ -142,7 +142,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder
skuO.delivery_warehousecode = warehouse?.wareNo;// item.wareHouseNo; skuO.delivery_warehousecode = warehouse?.wareNo;// item.wareHouseNo;
skuO.delivery_warehouse_name = warehouse?.wareName;// item.wareHouseName; skuO.delivery_warehouse_name = warehouse?.wareName;// item.wareHouseName;
skuO.state = product.bailunOrderStatus.ToInt(); skuO.state = product.bailunOrderStatus.ToInt();
skuO.shipping_status = product.bailunOrderStatus == OrderStatusEnum.Finished ? ShippingStatusEnum.TotalShipping.ToInt() : product.shippingStatus.ToInt(); skuO.shipping_status = (product.PlatOrderStatus.ToLower() != "pending" || product.PlatOrderStatus.ToLower() != "canceled"|| product.PlatOrderStatus.ToLower() != "unshipped")?2:1; //product.bailunOrderStatus == OrderStatusEnum.Finished ? ShippingStatusEnum.TotalShipping.ToInt() : product.shippingStatus.ToInt();
skuO.s_number = item.skuNo; skuO.s_number = item.skuNo;
skuO.s_number_publish = ""; skuO.s_number_publish = "";
skuO.s_title = item.title ?? ""; skuO.s_title = item.title ?? "";
...@@ -182,7 +182,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder ...@@ -182,7 +182,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder
o_number_external = product.originOrderNo, o_number_external = product.originOrderNo,
delivery_warehousecode = warehouse?.wareNo,// item.wareHouseNo, delivery_warehousecode = warehouse?.wareNo,// item.wareHouseNo,
delivery_warehouse_name = warehouse?.wareName,// item.wareHouseName, delivery_warehouse_name = warehouse?.wareName,// item.wareHouseName,
shipping_status = product.bailunOrderStatus == OrderStatusEnum.Finished ? ShippingStatusEnum.TotalShipping.ToInt() : product.shippingStatus.ToInt(), shipping_status = (product.PlatOrderStatus.ToLower() != "pending" || product.PlatOrderStatus.ToLower() != "canceled" || product.PlatOrderStatus.ToLower() != "unshipped") ? 2 : 1,// product.bailunOrderStatus == OrderStatusEnum.Finished ? ShippingStatusEnum.TotalShipping.ToInt() : product.shippingStatus.ToInt(),
state = product.bailunOrderStatus.ToInt(), state = product.bailunOrderStatus.ToInt(),
s_number = item.skuNo, s_number = item.skuNo,
s_number_publish = "", s_number_publish = "",
...@@ -190,7 +190,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder ...@@ -190,7 +190,7 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuFbaOrder
totalprice = skufee, totalprice = skufee,
price = item.quantityOrdered != 0 ? skufee / item.quantityOrdered : 0, price = item.quantityOrdered != 0 ? skufee / item.quantityOrdered : 0,
quantity = item.quantityOrdered, quantity = item.quantityOrdered,
shipping_quantity = (product.bailunOrderStatus == OrderStatusEnum.Finished||product.shippingStatus==ShippingStatusEnum.TotalShipping) ? item.quantityOrdered : item.quantityShipped, shipping_quantity = (product.PlatOrderStatus.ToLower() != "pending" || product.PlatOrderStatus.ToLower() != "canceled" || product.PlatOrderStatus.ToLower() != "unshipped") ? item.quantityOrdered : item.quantityShipped, // (product.bailunOrderStatus == OrderStatusEnum.Finished||product.shippingStatus==ShippingStatusEnum.TotalShipping) ? item.quantityOrdered : item.quantityShipped,
currency = product.orderCharge.totalAmount.currencyCode ?? "", currency = product.orderCharge.totalAmount.currencyCode ?? "",
currencyname = item.unitPrice.currencyCode ?? "", currencyname = item.unitPrice.currencyCode ?? "",
createtime = product.purchaseTimeUtc, createtime = product.purchaseTimeUtc,
......
...@@ -56,10 +56,18 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuSales ...@@ -56,10 +56,18 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuSales
using (IDbConnection conn = new MySqlConnection(connString)) using (IDbConnection conn = new MySqlConnection(connString))
{ {
DateTime dtNow = DateTime.Now; DateTime dtNow = DateTime.Now;
#region 环球订单数据表
string strSql = string.Format(@"SELECT s_number,delivery_warehousecode,delivery_warehouse_name,DATE_FORMAT(paytime,'%Y-%m-%d') paytime,SUM(quantity) quantity string strSql = string.Format(@"SELECT s_number,delivery_warehousecode,delivery_warehouse_name,DATE_FORMAT(paytime,'%Y-%m-%d') paytime,SUM(quantity) quantity
FROM dc_sku_order FROM dc_sku_order
WHERE payTime>='{0}' and payTime<'{1}' and state !=3 and ifnull(delivery_warehousecode,'')!='' WHERE payTime>='{0}' and payTime<'{1}' and state !=3 and ifnull(delivery_warehousecode,'')!=''
GROUP BY s_number,delivery_warehousecode,DATE_FORMAT(paytime,'%Y-%m-%d')", dtNow.AddDays(-30).ToShortDateString(), dtNow.ToShortDateString()); GROUP BY s_number,delivery_warehousecode,DATE_FORMAT(paytime,'%Y-%m-%d')", dtNow.AddDays(-30).ToShortDateString(), dtNow.ToShortDateString());
#endregion
#region 百伦订单数据表
//string strSql = string.Format(@"select t.warehouse_code as delivery_warehousecode,t.bailun_sku as s_number,t.warehouse_name as delivery_warehouse_name,DATE_FORMAT(t.paid_time,'%Y-%m-%d') as paytime,sum(quantity_ordered) quantity from dc_bailun_sku t
// where payTime>='{0}' and payTime<'{1}' and t.bailun_order_status!='Canceled' and ifnull(delivery_warehousecode,'')!=''
// GROUP BY warehouse_code,bailun_sku,DATE_FORMAT(t.paid_time,'%Y-%m-%d')", dtNow.AddDays(-30).ToShortDateString(), dtNow.ToShortDateString());
#endregion
List<dc_sku_order> skuSOList = SqlMapper.Query<dc_sku_order>(conn, strSql).ToList(); List<dc_sku_order> skuSOList = SqlMapper.Query<dc_sku_order>(conn, strSql).ToList();
string MaterSql = string.Format("SELECT * FROM dc_material_statistic"); string MaterSql = string.Format("SELECT * FROM dc_material_statistic");
......
...@@ -30,12 +30,12 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuStatistics ...@@ -30,12 +30,12 @@ namespace Bailun.DataCenter.Tasks.Jobs.SkuStatistics
.StartNow() .StartNow()
//http://blog.csdn.net/a355586533/article/details/40348537 //http://blog.csdn.net/a355586533/article/details/40348537
//http://cron.qqe2.com/ //http://cron.qqe2.com/
.WithSimpleSchedule(x => x //.WithSimpleSchedule(x => x
.WithIntervalInMinutes(30)//多少小时执行一次 // .WithIntervalInMinutes(180)//多少小时执行一次
.RepeatForever()//一直执行 // .RepeatForever()//一直执行
) // )
//.WithDescription("注释") //.WithDescription("注释")
//.WithCronSchedule("0 0 * * * ? ")//Cron运行模式 每十秒钟运行一次 .WithCronSchedule("0 0 * * * ? ")//Cron运行模式 每十秒钟运行一次
.Build(); .Build();
return trigger; return trigger;
} }
......
...@@ -149,47 +149,47 @@ namespace Bailun.DataCenter.Tasks ...@@ -149,47 +149,47 @@ namespace Bailun.DataCenter.Tasks
// isFirstRequest = false; // isFirstRequest = false;
//} while (pageCurrent3 > 0); //} while (pageCurrent3 > 0);
SkuStatisticsJob ss = new SkuStatisticsJob(); //SkuStatisticsJob ss = new SkuStatisticsJob();
ss.SkuStatistics(""); //ss.SkuStatistics("");
string skuNumber = string.Empty; //string skuNumber = string.Empty;
do //do
{
skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
if (!string.IsNullOrEmpty(skuNumber))
{
ss.SkuStatistics(skuNumber);
}
//List<System.Threading.Tasks.Task> tasklist = new List<System.Threading.Tasks.Task>();
//skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
//if (!string.IsNullOrEmpty(skuNumber))
//{
// tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() =>
// {
// ss.SkuStatistics(skuNumber);
// }));
//}
//skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
//if (!string.IsNullOrEmpty(skuNumber))
//{
// tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() =>
// {
// ss.SkuStatistics(skuNumber);
// }));
//}
//skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
//if (!string.IsNullOrEmpty(skuNumber))
//{ //{
// tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() => // skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
// if (!string.IsNullOrEmpty(skuNumber))
// { // {
// ss.SkuStatistics(skuNumber); // ss.SkuStatistics(skuNumber);
// })); // }
//} // //List<System.Threading.Tasks.Task> tasklist = new List<System.Threading.Tasks.Task>();
//if (tasklist.Count > 0) // //skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
//{ // //if (!string.IsNullOrEmpty(skuNumber))
// System.Threading.Tasks.Task.WaitAll(tasklist.ToArray()); // //{
// // tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() =>
// // {
// // ss.SkuStatistics(skuNumber);
// // }));
// //}
// //skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
// //if (!string.IsNullOrEmpty(skuNumber))
// //{
// // tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() =>
// // {
// // ss.SkuStatistics(skuNumber);
// // }));
// //}
// //skuNumber = RedisOprate.Set_Pop<string>("SkuSet");
// //if (!string.IsNullOrEmpty(skuNumber))
// //{
// // tasklist.Add(System.Threading.Tasks.Task.Factory.StartNew(() =>
// // {
// // ss.SkuStatistics(skuNumber);
// // }));
// //}
// //if (tasklist.Count > 0)
// //{
// // System.Threading.Tasks.Task.WaitAll(tasklist.ToArray());
// //}
//} //}
} //while (!string.IsNullOrEmpty(skuNumber));
while (!string.IsNullOrEmpty(skuNumber));
//ss.WarehouseStatistics(); //ss.WarehouseStatistics();
//SkuSalesJob ssa = new SkuSalesJob(); //SkuSalesJob ssa = new SkuSalesJob();
......
...@@ -13,8 +13,8 @@ namespace Bailun.DataCenter.Web ...@@ -13,8 +13,8 @@ namespace Bailun.DataCenter.Web
//ASP.NET Web API Route Config //ASP.NET Web API Route Config
routes.MapHttpRoute( routes.MapHttpRoute(
name: "DefaultApi", name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional } defaults: new {id = RouteParameter.Optional }
); );
routes.MapRoute( routes.MapRoute(
......
...@@ -119,5 +119,32 @@ namespace Bailun.DataCenter.Web.Areas.BasicInfo.Controllers ...@@ -119,5 +119,32 @@ namespace Bailun.DataCenter.Web.Areas.BasicInfo.Controllers
var data = list.Select(d =>new { ChinaName = d.Site, EnglishName=d.SiteEn}); var data = list.Select(d =>new { ChinaName = d.Site, EnglishName=d.SiteEn});
return ToJsonResult(data); return ToJsonResult(data);
} }
/// <summary>
/// 邮件发送接口
/// </summary>
/// <param name="server">邮件服务器地址</param>
/// <param name="port">端口号</param>
/// <param name="login">登录名</param>
/// <param name="password">密码</param>
/// <param name="from">发件箱</param>
/// <param name="to">收件箱</param>
/// <param name="subject">主题</param>
/// <param name="text">内容</param>
[ValidateInput(false)]
public string SendMail(string server,int port,string login,string password,string from,string to,string subject,string text)
{
try
{
Util.Email.CDOMail.SendMail(server, port, login, password, from, to, subject, text);
return "success";
}
catch (System.Exception ex)
{
return ex.Message;
}
}
} }
} }
\ No newline at end of file
...@@ -97,7 +97,6 @@ ...@@ -97,7 +97,6 @@
}); });
}; };
$("#sel_Account").change(function () { $("#sel_Account").change(function () {
debugger;
var account = $(this).attr("data-value"); var account = $(this).attr("data-value");
if (account) { if (account) {
$("#sel_Site").ComboBox({ $("#sel_Site").ComboBox({
...@@ -118,8 +117,6 @@ ...@@ -118,8 +117,6 @@
allowSearch: true allowSearch: true
}); });
} }
});
$('#sel_Account').change(function () {
BtnSearch(); BtnSearch();
}); });
$('#sel_Site').change(function () { $('#sel_Site').change(function () {
......
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<label class="lb-title">统计维度:</label> <label class="lb-title">统计维度:</label>
<div id="sel_statistics_type" type="select" class="ui-select div-select" style="width: 100px;"></div> <div id="sel_statistics_type" type="select" class="ui-select div-select" style="width: 100px;"></div>
</div> </div>
<div class="col-xs-6 col-sm-1 div-group" style="width: 160px;" id="div_platform"> <div class="col-xs-6 col-sm-1 div-group" style="width: 200px;">
<label class="lb-title"> <label class="lb-title">
销售: 销售账号:
</label> </label>
<div id="sel_seller" type="select" class="ui-select div-select" style="width: 100px;"></div> <div id="sel_Account" type="select" class="ui-select div-select" style="width: 130px;"></div>
</div> </div>
<div class="col-xs-6 col-sm-1 div-group" style="width: 180px;"> <div class="col-xs-6 col-sm-1 div-group" style="width: 180px;">
<label class="lb-title"> <label class="lb-title">
...@@ -56,11 +56,11 @@ ...@@ -56,11 +56,11 @@
//初始化页面 //初始化页面
function InitialPage() { function InitialPage() {
$("#sel_seller").ComboBox({ $("#sel_Account").ComboBox({
url: "/BasicInfo/Common/GetSeller", url: "/BasicInfo/Common/GetPlatAccount?platfrom=amazon",
id: "LoginName", id: "Account",
description: "全部", description: "选择账号",
text: "LoginName", text: "Account",
height: "200px", height: "200px",
allowSearch: true allowSearch: true
}); });
...@@ -102,8 +102,28 @@ ...@@ -102,8 +102,28 @@
editcolum.push("website"); editcolum.push("website");
BtnSearch(); BtnSearch();
}); });
$('#sel_seller').change(function () { $('#sel_Account').change(function () {
editcolum.push("seller_name"); editcolum.push("bailun_account");
var account = $(this).attr("data-value");
if (account) {
$("#sel_Site").ComboBox({
url: "/BasicInfo/Common/GetSiteByAccount?platform=Amazon&account=" + account,
id: "EnglishName",
description: "全部",
text: "ChinaName",
height: "200px",
allowSearch: true
});
} else {
$("#sel_Site").ComboBox({
url: "/BasicInfo/Common/GetSiteByPlatform?platform=Amazon",
id: "EnglishName",
description: "全部",
text: "ChinaName",
height: "200px",
allowSearch: true
});
}
BtnSearch(); BtnSearch();
}); });
//加载表格 //加载表格
...@@ -118,7 +138,7 @@ ...@@ -118,7 +138,7 @@
} }
}, },
{ label: '产品名称', name: 'title', index: 'title', align: 'center', sortable: true }, { label: '产品名称', name: 'title', index: 'title', align: 'center', sortable: true },
{ label: '销售员', name: 'seller_name', index: 'seller_name', align: 'center', sortable: true, hidden: true }, { label: '销售账号', name: 'bailun_account', index: 'bailun_account', align: 'center', sortable: true, hidden: true },
{ label: '站点', name: 'website', index: 'website', width: 100, align: 'center', sortable: true, hidden: true }, { label: '站点', name: 'website', index: 'website', width: 100, align: 'center', sortable: true, hidden: true },
//{label: '币种', name: 'order_currency', index: 'order_currency', width: 100, align: 'center'}, //{label: '币种', name: 'order_currency', index: 'order_currency', width: 100, align: 'center'},
{ label: '商品收入', name: 'total_amount_rmb', index: 'total_amount_rmb', width: 100, align: 'center', sortable: true }, { label: '商品收入', name: 'total_amount_rmb', index: 'total_amount_rmb', width: 100, align: 'center', sortable: true },
...@@ -218,7 +238,7 @@ ...@@ -218,7 +238,7 @@
website: $('#sel_Site').attr("data-value"), website: $('#sel_Site').attr("data-value"),
starttime: $("#StartTime").val(), starttime: $("#StartTime").val(),
endtime: $("#EndTime").val(), endtime: $("#EndTime").val(),
sellername: $("#sel_seller").attr("data-value"), sellaccout: $("#sel_Account").attr("data-value"),
sku:$("#txt_sku").val(), sku:$("#txt_sku").val(),
statisticstype: "SkuReportIndex" statisticstype: "SkuReportIndex"
} }
......
...@@ -231,9 +231,7 @@ ...@@ -231,9 +231,7 @@
if (sku) { if (sku) {
$("#txt_Sku").val(sku) $("#txt_Sku").val(sku)
} }
if (sku || warehousecode) {
$(".titlePanel").hide();
}
var queryJson = { var queryJson = {
Sku: $("#txt_Sku").val(), Sku: $("#txt_Sku").val(),
Warehouse: $("#Warehouse").attr("data-value"), Warehouse: $("#Warehouse").attr("data-value"),
...@@ -241,6 +239,10 @@ ...@@ -241,6 +239,10 @@
warehousetype: $("#sel_warehouse_type").attr("data-value"), warehousetype: $("#sel_warehouse_type").attr("data-value"),
qhorry:1 qhorry:1
}; };
if (sku || warehousecode) {
$(".titlePanel").hide();
queryJson.qhorry = "";
}
return JSON.stringify(queryJson); return JSON.stringify(queryJson);
} }
//新增 //新增
......
...@@ -345,7 +345,7 @@ ...@@ -345,7 +345,7 @@
//跳转到采购系统 //跳转到采购系统
var navigateToOrder = function (orderno, datasource) { var navigateToOrder = function (orderno, datasource) {
var url = 'http://tj.oa.com/OrderList/Order/OrderIndex?orderno=' + orderno; var url = 'http://tj.bailuntec.com/OrderList/Order/OrderIndex?orderno=' + orderno;
if (datasource.toLowerCase() == "fba") { if (datasource.toLowerCase() == "fba") {
url = ""; url = "";
} }
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
{ label: '英文标题', name: 's_title', index: 's_title',align: 'left', sortable: false }, { label: '英文标题', name: 's_title', index: 's_title',align: 'left', sortable: false },
{ label: '中文标题', name: 's_title_chinese', index: 's_title_chinese', align: 'left', sortable: false }, { label: '中文标题', name: 's_title_chinese', index: 's_title_chinese', align: 'left', sortable: false },
{ label: '库存总数量', name: 'stock_quantity', index: 'stock_quantity', align: 'center', sortable: true }, { label: '库存总数量', name: 'stock_quantity', index: 'stock_quantity', align: 'center', sortable: true },
{ label: '库存总金额', name: 'stock_money', index: 'stock_quantity', align: 'center', sortable: true }, { label: '库存总金额', name: 'stock_money', index: 'stock_money', align: 'center', sortable: true },
{ {
label: '采购在途数量', name: 'purchase_transit_quantity', index: 'purchase_transit_quantity', align: 'center', sortable: true, label: '采购在途数量', name: 'purchase_transit_quantity', index: 'purchase_transit_quantity', align: 'center', sortable: true,
formatter: function (cellvalue, options, rowObject) { formatter: function (cellvalue, options, rowObject) {
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
rowList: [30, 50, 100], rowList: [30, 50, 100],
pager: "#gridPager", pager: "#gridPager",
sortname: 'Id', sortname: 'Id',
sortorder: 'desc', sortorder: 'asc',
rownumbers: true, rownumbers: true,
gridview: true, gridview: true,
viewrecords: true, viewrecords: true,
......
...@@ -121,6 +121,15 @@ ...@@ -121,6 +121,15 @@
<HintPath>..\packages\Hangfire.SqlServer.1.6.14\lib\net45\Hangfire.SqlServer.dll</HintPath> <HintPath>..\packages\Hangfire.SqlServer.1.6.14\lib\net45\Hangfire.SqlServer.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Interop.ADODB">
<HintPath>..\dll\Interop.ADODB.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.CDO, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>False</EmbedInteropTypes>
<HintPath>..\dll\Interop.CDO.dll</HintPath>
</Reference>
<Reference Include="JetBrains.Annotations, Version=11.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL"> <Reference Include="JetBrains.Annotations, Version=11.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL">
<HintPath>..\packages\JetBrains.Annotations.11.0.0\lib\net20\JetBrains.Annotations.dll</HintPath> <HintPath>..\packages\JetBrains.Annotations.11.0.0\lib\net20\JetBrains.Annotations.dll</HintPath>
<Private>True</Private> <Private>True</Private>
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
</configSections> </configSections>
<connectionStrings> <connectionStrings>
<!--Dev--> <!--Dev-->
<add name="Default" connectionString="server=192.168.6.140;port=3306;database=bailun_datacenter;uid=root;password=123456;" providerName="MySql.Data.MySqlClient" /> <!--<add name="Default" connectionString="server=192.168.6.140;port=3306;database=bailun_datacenter;uid=root;password=123456;" providerName="MySql.Data.MySqlClient" />-->
<!--生产外网测试--> <!--生产外网测试-->
<!--<add name="Default" connectionString="server=gz-cdb-hqmznu0w.sql.tencentcdb.com;port=63523;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" providerName="MySql.Data.MySqlClient" />--> <add name="Default" connectionString="server=gz-cdb-hqmznu0w.sql.tencentcdb.com;port=63523;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" providerName="MySql.Data.MySqlClient" />
<!--生产--> <!--生产-->
<!--<add name="Default" connectionString="server=db.blt.com;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" providerName="MySql.Data.MySqlClient"/>--> <!--<add name="Default" connectionString="server=db.blt.com;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;" providerName="MySql.Data.MySqlClient"/>-->
</connectionStrings> </connectionStrings>
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
</assemblies> </assemblies>
</compilation> </compilation>
<httpRuntime targetFramework="4.6" /> <httpRuntime targetFramework="4.6" />
<customErrors mode="RemoteOnly" /> <customErrors mode="Off" />
<!--<authentication mode="None" /> <!--<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2" > <compilation debug="true" targetFramework="4.5.2" >
<assemblies> <assemblies>
......
using Bailun.DataCenter.Application.Common.Dto; using Bailun.DataCenter.Application.Common.Dto;
using Bailun.DataCenter.Application.Statistic; using Bailun.DataCenter.Application.Statistic;
using Bailun.Util; using Bailun.Util;
using Bailun.Util.Email;
using Bailun.Util.WebControl; using Bailun.Util.WebControl;
using System; using System;
using System.Linq; using System.Linq;
...@@ -9,10 +10,14 @@ using System.Web.Http; ...@@ -9,10 +10,14 @@ using System.Web.Http;
namespace BaiLun.DataCenter.WebApi.Api namespace BaiLun.DataCenter.WebApi.Api
{ {
public class SkuSotckServiceController: BaseApiController public class SkuSotckServiceController : BaseApiController
{ {
public ISkuActiveAppService _skuActiveAppService { get; set; } public ISkuActiveAppService _skuActiveAppService { get; set; }
/// <summary>
/// 推送给采购系统库存数据
/// </summary>
/// <returns></returns>
[AcceptVerbs("GET", "POST")] [AcceptVerbs("GET", "POST")]
public Task<BaseResponseResult<decimal>> GetSkuStock() public Task<BaseResponseResult<decimal>> GetSkuStock()
{ {
...@@ -34,7 +39,7 @@ namespace BaiLun.DataCenter.WebApi.Api ...@@ -34,7 +39,7 @@ namespace BaiLun.DataCenter.WebApi.Api
{ {
br.code = 500; br.code = 500;
br.message = "失败:" + ex.Message; br.message = "失败:" + ex.Message;
br.data =0; br.data = 0;
//br.totalcount = 0; //br.totalcount = 0;
//br.pagesize = jsondata.page_size; //br.pagesize = jsondata.page_size;
//br.currentpage = jsondata.page_current; //br.currentpage = jsondata.page_current;
......
...@@ -47,10 +47,6 @@ EndProject ...@@ -47,10 +47,6 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DataCenter.Common", "Bailun.DataCenter.Common\Bailun.DataCenter.Common.csproj", "{DA8B703D-AF78-4778-A236-1D75786803B4}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DataCenter.Common", "Bailun.DataCenter.Common\Bailun.DataCenter.Common.csproj", "{DA8B703D-AF78-4778-A236-1D75786803B4}"
EndProject EndProject
Global Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
......
...@@ -233,8 +233,9 @@ namespace Bailun.Util.Extension.EntityFramework ...@@ -233,8 +233,9 @@ namespace Bailun.Util.Extension.EntityFramework
/// <returns></returns> /// <returns></returns>
public T SingleBySql<T>(string sql, MySqlParameter[] para) public T SingleBySql<T>(string sql, MySqlParameter[] para)
{ {
var list = para != null ? Context.Database.SqlQuery<T>(sql, para).ToList() : Context.Database.SqlQuery<T>(sql).ToList(); var list =new List<T>();
return list.Count <= 0 ? default(T) : list[0]; list = para != null ? Context.Database.SqlQuery<T>(sql, para).ToList() : Context.Database.SqlQuery<T>(sql).ToList();
return list==null||list.Count <= 0 ? default(T): list[0];
} }
public List<TResult> FindList<TResult>(Expression<Func<TEntity, bool>> condition = null) public List<TResult> FindList<TResult>(Expression<Func<TEntity, bool>> condition = null)
......
...@@ -35,6 +35,14 @@ ...@@ -35,6 +35,14 @@
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Interop.ADODB">
<HintPath>..\dll\Interop.ADODB.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.CDO">
<HintPath>..\dll\Interop.CDO.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath> <HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
<Private>True</Private> <Private>True</Private>
...@@ -91,7 +99,9 @@ ...@@ -91,7 +99,9 @@
<Compile Include="CommonHelper.cs" /> <Compile Include="CommonHelper.cs" />
<Compile Include="DataHelper.cs" /> <Compile Include="DataHelper.cs" />
<Compile Include="DynamicLambda.cs" /> <Compile Include="DynamicLambda.cs" />
<Compile Include="Email\CDOMail.cs" />
<Compile Include="Email\EmailManager.cs" /> <Compile Include="Email\EmailManager.cs" />
<Compile Include="Email\IMAP.cs" />
<Compile Include="Extension\EnumExtensions.cs" /> <Compile Include="Extension\EnumExtensions.cs" />
<Compile Include="Extension\ListExtension.cs" /> <Compile Include="Extension\ListExtension.cs" />
<Compile Include="Extension\ObjectExtension.cs" /> <Compile Include="Extension\ObjectExtension.cs" />
......
using CDO;
namespace Bailun.Util.Email
{
public class CDOMail
{
/// <summary>
/// 发送一封邮件
/// </summary>
/// <param name="server">邮箱服务器</param>
/// <param name="login">登录名</param>
/// <param name="password">密码</param>
/// <param name="from">发送人</param>
/// <param name="to">接收人</param>
/// <param name="subject">主题</param>
/// <param name="text">内容</param>
/// <returns></returns>
public static void SendMail(string server, int port, string login, string password, string from, string to, string subject, string text)
{
try
{
//if(server.Contains("163") && attachments!=null && attachments.Length>=1)throw new Exception("无法使用163邮箱发送附件");
if (port != 465)
{
IMAP.SendMail(server,port,login,password,from,to,subject,text);
return;
}
CDO.Message oMsg = new CDO.Message();
Configuration conf = new ConfigurationClass();
conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value = CdoSendUsing.cdoSendUsingPort;
conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value = CdoProtocolsAuthentication.cdoBasic;
conf.Fields[CdoConfiguration.cdoSMTPUseSSL].Value = true;
conf.Fields[CdoConfiguration.cdoSMTPServer].Value = server;//必填,而且要真实可用
conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value = port;//465特有
conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value = "<" + login + ">";
conf.Fields[CdoConfiguration.cdoSendUserName].Value = login;//真实的邮件地址
conf.Fields[CdoConfiguration.cdoSendPassword].Value = password; //为邮箱密码,必须真实
conf.Fields.Update();
oMsg.BodyPart.Charset = "UTF-8";
oMsg.Configuration = conf;
oMsg.TextBody = text;
oMsg.Subject = subject;
oMsg.From = from;
oMsg.To = to;
oMsg.Send();
}
catch (System.Net.Mail.SmtpException ex)
{
throw ex;
}
}
}
}

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Security.Authentication;
using System.Text;
using System.Threading.Tasks;
namespace Bailun.Util.Email
{
public class IMAP
{
/// <summary>
/// 发送一封邮件
/// </summary>
/// <param name="server">邮箱服务器</param>
/// <param name="login">登录名</param>
/// <param name="password">密码</param>
/// <param name="from">发送人</param>
/// <param name="to">接收人</param>
/// <param name="subject">主题</param>
/// <param name="text">内容</param>
/// <returns></returns>
public static System.Net.Mail.MailMessage SendMail(string server, int port, string login, string password, string from, string to, string subject, string text)
{
try
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.From = new System.Net.Mail.MailAddress(from);
mail.To.Add(new System.Net.Mail.MailAddress(to));
mail.Subject = subject;
mail.Body = text;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = server;
client.Port = port;
client.EnableSsl = true;
client.Credentials = new NetworkCredential(login, password);
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Send(mail);
return mail;
}
catch (Exception e)
{
throw new Exception("Mail.Send: " + e.Message);
}
}
private static string DateToString(DateTime date)
{
return date.ToString("dd-MMM-yyyy", DateTimeFormatInfo.InvariantInfo);
}
/// <summary>
/// 通过邮箱类型获取邮箱收收服务器
/// </summary>
/// <param name="mailboxType"></param>
/// <returns></returns>
public string GetImapServer(string mailboxType)
{
if (string.IsNullOrWhiteSpace(mailboxType)) return "";
switch (mailboxType.ToLower())
{
case "qq": return "imap.qq.com";
case "zoho": return "imap.zoho.com.cn";
case "hotmail": return "imap-mail.outlook.com";
case "outlook": return "imap-mail.outlook.com";
case "_163": return "imap.163.com";
case "sina": return "imap.sina.com";
default: return "";
}
}
/// <summary>
/// 通过邮箱类型获取邮箱收收服务器
/// </summary>
/// <param name="mailboxType"></param>
/// <returns></returns>
public static string GetSmtpServer(string mailboxType)
{
if (string.IsNullOrWhiteSpace(mailboxType)) return "";
switch (mailboxType.ToLower())
{
case "qq": return "smtp.qq.com";
case "zoho": return "smtp.zoho.com.cn";
case "hotmail": return "smtp-mail.outlook.com";
case "gmail": return "smtp.gmail.com";
case "aol": return "smtp.aol.com";
case "outlook": return "smtp-mail.outlook.com";
case "yahoo": return "smtp.mail.yahoo.com";
case "_163": return "smtp.163.com";
case "sina": return "smtp.sina.com";
case "qyqq":return "smtp.exmail.qq.com";
default: return "";
}
}
/// <summary>
/// 通过邮箱类型获取邮箱收件服务器端口
/// </summary>
/// <param name="mailboxType"></param>
/// <returns></returns>
public int GetImapPort(string mailboxType)
{
if (string.IsNullOrWhiteSpace(mailboxType)) return 0;
switch (mailboxType.ToLower())
{
case "qq": return 993;
case "zoho": return 993;
case "hotmail": return 993;
case "gmail": return 995;
case "outlook": return 993;
case "_163": return 993;
case "sina": return 993;
default: return 0;
}
}
/// <summary>
/// 通过邮箱类型获取邮箱收件服务器端口
/// </summary>
/// <param name="mailboxType"></param>
/// <returns></returns>
public static int GetSmtpPort(string mailboxType)
{
if (string.IsNullOrWhiteSpace(mailboxType)) return 0;
switch (mailboxType.ToLower())
{
case "qq": return 465;
case "zoho": return 465;
case "hotmail": return 587;
case "outlook": return 587;
case "gmail": return 465;
case "aol": return 465;
case "yahoo": return 465;
case "_163": return 465;
case "sina": return 465;
case "qyqq": return 465;
default: return 0;
}
}
}
public enum MailboxType
{
qq = 0,
zoho = 1,
hotmail = 2,
outlook = 4,
_163 = 5,
aol = 6,
sina = 7,
qyqq = 8
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment