Commit e88f7046 by guanzhenshan

每日发生额管理成本付款额增加物流支出明细

parent 43f4ca1a
...@@ -9,29 +9,29 @@ namespace Bailun.DC.HappenAmount ...@@ -9,29 +9,29 @@ namespace Bailun.DC.HappenAmount
{ {
class Program class Program
{ {
static async Task Main(string[] args) //static async Task Main(string[] args)
{
Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Services>();
});
await builder.RunConsoleAsync();
}
//static void Main(string[] args)
//{ //{
// var start = DateTime.Parse("2020-02-15"); // Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
// while (start.AddDays(1) < DateTime.Now) // var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
// { // {
// new Services().Init(start, start.AddDays(1)); // services.AddHostedService<Services>();
// //new Bailun.DC.Services.FinanceReportServices().AddLogisticsWaitPay(start, 0); // });
// start = start.AddDays(1);
// }
// new Bailun.DC.Services.FinanceReportServices().UpdateLogisticsWaitPay(start, 0, "admin", null);
// await builder.RunConsoleAsync();
//} //}
static void Main(string[] args)
{
var start = DateTime.Parse("2020-02-19");
while (start.AddDays(1) < DateTime.Now)
{
new Services().Init(start, start.AddDays(1));
//new Bailun.DC.Services.FinanceReportServices().AddLogisticsWaitPay(start, 0);
start = start.AddDays(1);
}
new Bailun.DC.Services.FinanceReportServices().UpdateLogisticsWaitPay(start, 0, "admin", null);
}
} }
} }
...@@ -555,5 +555,10 @@ namespace Bailun.DC.Models.Orders ...@@ -555,5 +555,10 @@ namespace Bailun.DC.Models.Orders
/// 尾程费 (按公式计算的) /// 尾程费 (按公式计算的)
/// </summary> /// </summary>
public decimal cost_logistics { get; set; } public decimal cost_logistics { get; set; }
/// <summary>
/// 产品类型
/// </summary>
public string product_type_desc { get; set; }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
public class dc_base_sku
{
}
/// <summary>
/// SKU开发来源
/// </summary>
public enum SkuSource
{
未设置=0,
线上 = 1,
线下 = 2,
美容线下 = 3,
线下供应商推荐 = 4,
登宇服装 = 5,
线上供应商 = 6,
服装 = 7,
万邑通分销 = 9,
托尼斯 = 10,
无库供应商 = 11
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Sku
{
public class mSku_ProductType
{
public int product_type { get; set; }
public string product_type_desc { get; set; }
}
}
...@@ -2024,6 +2024,26 @@ namespace Bailun.DC.Services ...@@ -2024,6 +2024,26 @@ namespace Bailun.DC.Services
} }
} }
/// <summary>
/// 获取物流费列表
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public List<Models.Api.mLogisticFee> ListLogisticFee(string url)
{
var list = new List<Models.Api.mLogisticFee>();
var result = Common.HttpHelper.NetHelper.Request(url);
if (!string.IsNullOrEmpty(result))
{
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.Api.ListLogisticFee>(result);
if (obj != null)
{
list = obj.data;
}
}
return list;
}
#endregion #endregion
......
...@@ -5,6 +5,7 @@ using Bailun.DC.Models; ...@@ -5,6 +5,7 @@ using Bailun.DC.Models;
using Dapper; using Dapper;
using MySql.Data.MySqlClient; using MySql.Data.MySqlClient;
using System.Linq; using System.Linq;
using Bailun.DC.Models.Sku;
namespace Bailun.DC.Services namespace Bailun.DC.Services
{ {
...@@ -226,5 +227,44 @@ namespace Bailun.DC.Services ...@@ -226,5 +227,44 @@ namespace Bailun.DC.Services
return cn.QueryFirstOrDefault<dc_base_sku_simple_category>("select * from dc_base_sku_simple_category where id="+id); return cn.QueryFirstOrDefault<dc_base_sku_simple_category>("select * from dc_base_sku_simple_category where id="+id);
} }
} }
/// <summary>
/// sku产品类型
/// </summary>
/// <returns></returns>
public List<mSku_ProductType> ListSkuProductType()
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Query<mSku_ProductType>("select product_type,product_type_desc from dc_base_sku group by product_type");
return obj.ToList();
}
}
/// <summary>
/// sku开发来源
/// </summary>
/// <returns></returns>
public List<int> ListSkuSource()
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Query<int>("select Source from dc_base_sku group by Source");
return obj.ToList();
}
}
} }
} }
...@@ -3830,20 +3830,45 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -3830,20 +3830,45 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <returns></returns> /// <returns></returns>
public ActionResult ListPayAdminCostCount(DateTime start, DateTime end) public ActionResult ListPayAdminCostCount(DateTime start, DateTime end)
{ {
//var url = "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList?o=0";
//var cwurl = "http://cw.bailuntec.com/api/api/GetRepayPlanDetails?";
//url += "&startDate=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&endDate=" + end.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss");
//cwurl += "BeginRepayTime=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&EndRepayTime=" + end.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss");
var url = "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList?o=0"; var url = "http://api.fee.bailuntec.com/purchase/other/cost/api/manageCostList?o=0";
var cwurl = "http://cw.bailuntec.com/api/api/GetRepayPlanDetails?"; var cwurl = "http://cw.bailuntec.com/api/api/GetRepayPlanDetails?";
var lgurl = "http://api.fee.bailuntec.com/fee/api/cost/api/logisticsCostList?";
url += "&startDate=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&endDate=" + end.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"); url += "&startDate=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&endDate=" + end.ToString("yyyy-MM-dd HH:mm:ss");
cwurl += "BeginRepayTime=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&EndRepayTime=" + end.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"); cwurl += "BeginRepayTime=" + start.ToString("yyyy-MM-dd HH:mm:ss") + "&EndRepayTime=" + end.ToString("yyyy-MM-dd HH:mm:ss");
lgurl += "startDate=" + start.ToString("yyyy-MM-dd") + "&endDate=" + end.ToString("yyyy-MM-dd");
//利息支出 //利息支出
var listInterest = new Bailun.DC.Services.FinanceReportServices().ListInterestExpense(cwurl); var listInterest = new Bailun.DC.Services.FinanceReportServices().ListInterestExpense(cwurl);
//管理成本 //管理成本
var list = new Bailun.DC.Services.FinanceReportServices().ListOtherCost(url); var list = new Bailun.DC.Services.FinanceReportServices().ListOtherCost(url);
//物流费支出
var listlg = new Services.FinanceReportServices().ListLogisticFee(lgurl);
var listFeeType = new List<string> { "推广费", "税费", "平台费用", "服务费", "其他" };
list = list.Where(a => a.companyName.Contains("广州歌戈儿生活科技有限公司") || a.companyValue == 5 || a.companyValue == 1 || a.companyValue == 3 || a.companyValue == 8 || a.companyValue == 2).ToList();
//利息支出
//var listInterest = new Bailun.DC.Services.FinanceReportServices().ListInterestExpense(cwurl);
//管理成本
//var list = new Bailun.DC.Services.FinanceReportServices().ListOtherCost(url);
var CostCount = 0M; var CostCount = 0M;
var InterestCount = 0M; var InterestCount = 0M;
var LGCount = 0M;
if (list.Count > 0) if (list.Count > 0)
{ {
...@@ -3856,8 +3881,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -3856,8 +3881,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
InterestCount = listInterest.Sum(a => a.RepayInterestRMB); InterestCount = listInterest.Sum(a => a.RepayInterestRMB);
} }
if (listlg.Count > 0)
{
LGCount = listlg.Sum(a => a.amountRmb);
}
ViewBag.CostCount = CostCount.ToString("N2"); ViewBag.CostCount = CostCount.ToString("N2");
ViewBag.InterestCount = InterestCount.ToString("N2"); ViewBag.InterestCount = InterestCount.ToString("N2");
ViewBag.LGCount = LGCount.ToString("N2");
ViewBag.start = start.ToString("yyyy-MM-dd"); ViewBag.start = start.ToString("yyyy-MM-dd");
ViewBag.end = end.ToString("yyyy-MM-dd"); ViewBag.end = end.ToString("yyyy-MM-dd");
...@@ -4028,6 +4059,89 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -4028,6 +4059,89 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return File(ms, "text/csv", filename + ".csv"); return File(ms, "text/csv", filename + ".csv");
} }
/// <summary>
/// 获取管理成本付款明细--物流支出
/// </summary>
/// <param name="start">开始日期</param>
/// <param name="end">结束日期</param>
/// <returns></returns>
public ActionResult ListPayLogistic(DateTime start, DateTime end)
{
ViewBag.start = start.ToString("yyyy-MM-dd");
ViewBag.end = end.ToString("yyyy-MM-dd");
return View();
}
/// <summary>
/// 获取管理成本付款明细--物流支出
/// </summary>
/// <param name="start">开始日期</param>
/// <param name="end">结束日期</param>
/// <returns></returns>
public string ListPayLogisticJson(DateTime start, DateTime end)
{
var lgurl = "http://api.fee.bailuntec.com/fee/api/cost/api/logisticsCostList?";
lgurl += "startDate=" + start.ToString("yyyy-MM-dd") + "&endDate=" + end.ToString("yyyy-MM-dd");
//物流费支出
var listlg = new Services.FinanceReportServices().ListLogisticFee(lgurl);
var total = 0M;
if (listlg.Count > 0)
{
total = listlg.Sum(a => a.amountRmb);
}
return JsonConvert.SerializeObject(new { total = listlg.Count(), rows = listlg });
}
public ActionResult ExportListPayLogistic(DateTime start, DateTime end)
{
var lgurl = "http://api.fee.bailuntec.com/fee/api/cost/api/logisticsCostList?";
lgurl += "startDate=" + start.ToString("yyyy-MM-dd") + "&endDate=" + end.ToString("yyyy-MM-dd");
//物流费支出
var listlg = new Services.FinanceReportServices().ListLogisticFee(lgurl);
/*
*
{ field: 'receiveUnit', title: '被出纳公司名', width: '160' },
{ field: 'reason', title: '原因', width: '130' },
{ field: 'payTime', title: '出纳时间', width: '130' },
{ field: 'departmentName', title: '部门', width: '130' },
{ field: 'companyName', title: '付款主体', width: '150' },
{ field: 'feeSuperType', title: '费用主类型', width: '120' },
{ field: 'feeSubType', title: '费用子类型', width: '130' },
{ field: 'amountRmb', title: '人民币金额', width: '110' }
*
*/
var colNames = new List<string> { "被出纳公司名", "原因", "出纳时间", "部门", "付款主体", "费用主类型", "费用子类型", "人民币金额" };
var list = new List<string>();
foreach (var item in listlg)
{
list.Add(item.receiveUnit + "|" + item.reason + "|" + item.payTime + "|" + item.departmentName + "|" + item.companyName + "|" +
item.feeSuperType + "|" + item.feeSubType + "|" + item.amountRmb.ToString("N2")
);
}
var guid = Guid.NewGuid().ToString();
var filename = start.ToString("yyyy-MM-dd") + "至" + end.ToString("yyyy-MM-dd") + " 管理成本-物流支出明细" + DateTime.Now.ToString("yyyyMMddHHmmss");
var filepath = _hostingEnvironment.WebRootPath + "\\Files\\Report\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
ToCSV(list, colNames, guid, filepath);
var ms = new System.IO.MemoryStream();
using (var f = new System.IO.FileStream(filepath + guid + ".csv", System.IO.FileMode.Open))
{
f.CopyTo(ms);
}
ms.Position = 0;
return File(ms, "text/csv", filename + ".csv");
}
#endregion #endregion
#region 头程物流 #region 头程物流
......
...@@ -1530,6 +1530,13 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -1530,6 +1530,13 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <returns></returns> /// <returns></returns>
public ActionResult PlatformProfitCount() public ActionResult PlatformProfitCount()
{ {
var _skuService = new Services.SkuInfoServices();
ViewBag.listSkuType = _skuService.ListSkuProductType();
ViewBag.listSource = _skuService.ListSkuSource();
return View(); return View();
} }
......
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
var day = new Date(now.getFullYear(), s, 0).getDate(); var day = new Date(now.getFullYear(), s, 0).getDate();
start_time = new Date(now.getFullYear() + '-' + s + '-01'); start_time = new Date(now.getFullYear() + '-' + s + '-01');
end = new Date(now.getFullYear() + '-' + s + '-' + day); end_time = new Date(now.getFullYear() + '-' + s + '-' + day);
} }
else if (dateWay == 1) { //按日 else if (dateWay == 1) { //按日
var s = categoryname.substr(0, 4); var s = categoryname.substr(0, 4);
......
...@@ -26,6 +26,12 @@ ...@@ -26,6 +26,12 @@
<td>@(ViewBag.InterestCount)</td> <td>@(ViewBag.InterestCount)</td>
<td><a class="btn btn-xs btn-primary" onclick="showdetail('@(ViewBag.start+"-"+ViewBag.end) 利息支出','@Url.Content("~/Reports/Finance/ListPayAdminCostInterest?start="+ViewBag.start+"&end="+ViewBag.end)')">查看明细</a></td> <td><a class="btn btn-xs btn-primary" onclick="showdetail('@(ViewBag.start+"-"+ViewBag.end) 利息支出','@Url.Content("~/Reports/Finance/ListPayAdminCostInterest?start="+ViewBag.start+"&end="+ViewBag.end)')">查看明细</a></td>
</tr> </tr>
<tr>
<td>3</td>
<td>物流支出</td>
<td>@(ViewBag.LGCount)</td>
<td><a class="btn btn-xs btn-primary" onclick="showdetail('@(ViewBag.start+"-"+ViewBag.end) 物流支出','@Url.Content("~/Reports/Finance/ListPayLogistic?start="+ViewBag.start+"&end="+ViewBag.end)')">查看明细</a></td>
</tr>
</table> </table>
</div> </div>
......

@{
ViewData["Title"] = "管理成本物流支出明细";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
}
<div class="row">
<div class="col-sm-12">
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<label>日期</label>
<input id="start" name="start" type="text" class="form-control" style="width:130px;" value="@(ViewBag.start)" />
<span>至</span>
<input id="end" name="end" type="text" class="form-control" style="width:130px;" value="@(ViewBag.end)" />
</div>
<div class="form-group">
<button type="button" class="btn btn-success" onclick="list();">搜索</button>
<button type="button" class="btn btn-primary" onclick="exportFile();">导出</button>
</div>
</div>
</form>
</div>
<div class="ibox-content m-b-sm border-bottom">
<table id="roletable" style="table-layout:fixed;"></table>
</div>
</div>
</div>
@section css{
<style>
.mules {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
}
@section scripts{
<script type="text/javascript">
var tb;
$(document).ready(function () {
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170));
list();
})
function list() {
var start = $('#start').val();
var end = $('#end').val();
if (start == '') {
alert('请选择开始日期');
return false;
}
if (end == '') {
alert('请选择结束日期');
return false;
}
var columns = [
{ field: 'receiveUnit', title: '被出纳公司名', width: '160' },
{ field: 'reason', title: '原因', width: '130' },
{ field: 'payTime', title: '出纳时间', width: '130' },
{ field: 'departmentName', title: '部门', width: '130' },
{ field: 'companyName', title: '付款主体', width: '150' },
{ field: 'feeSuperType', title: '费用主类型', width: '120' },
{ field: 'feeSubType', title: '费用子类型', width: '130' },
{ field: 'amountRmb', title: '人民币金额', width: '110' }
];
var url = '@Url.Content("~/Reports/Finance/ListPayLogisticJson")' + '?start=' + start + '&end='+end;
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "");
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
function exportFile() {
var start = $('#start').val();
var end = $('#end').val();
if (start == '') {
alert('请选择开始日期');
return false;
}
if (end == '') {
alert('请选择结束日期');
return false;
}
window.open('@Url.Content("~/Reports/Finance/ExportListPayLogistic?start=")' + start + '&end=' + end, '_blank');
}
</script>
}
...@@ -57,6 +57,42 @@ ...@@ -57,6 +57,42 @@
<input id="shipend" name="shipend" type="text" class="form-control" style="width:130px;" placeholder="发货结束时间" /> <input id="shipend" name="shipend" type="text" class="form-control" style="width:130px;" placeholder="发货结束时间" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label>产品类型</label>
<select id="producttype" name="producttype" class="form-control">
<option value="">选择产品类型</option>
@if (ViewBag.listSkuType.Count > 0)
{
foreach (var item in ViewBag.listSkuType)
{
<option value="@item.product_type">@item.product_type_desc</option>
}
}
</select>
</div>
<div class="form-group">
<label>产品来源</label>
<select id="skusource" name="skusource" class="form-control">
<option value="">选择产品来源</option>
@if (ViewBag.listSource.Count > 0)
{
foreach (var item in ViewBag.listSource)
{
<option value="@item">@Enum.GetName(typeof(Bailun.DC.Models.SkuSource), item)</option>
}
}
</select>
</div>
<div class="form-group">
<label>发货策略</label>
<select id="shippingstrategy" name="shippingstrategy" class="form-control">
<option value="">选择发货策略</option>
<option value="1">专线</option>
<option value="2">中国发货</option>
<option value="3">美国仓</option>
</select>
</div>
<div class="form-group">
<label>&nbsp;</label> <label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button> <button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
</div> </div>
......
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