Commit d93bd6f9 by zhouminghui

adjustment

parent 6401d11e
......@@ -28,5 +28,6 @@ namespace Bailun.DC.Models.Dtos.Finance
/// 是否分页
/// </summary>
public bool IsPages { get; set; } = true;
public bool IsCost { get; set; } = false;
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.WebApiModels
{
public class AddExprotTaskInput
{
public string TaskTitle { get; set; }
public string TaskType { get; set; }
public string TaskJson { get; set; }
public string CreateName { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace Bailun.DC.Models
{
public class dc_exprot_task
{
public int id { get; set; }
public string task_title { get; set; }
public string task_type { get; set; }
public TaskTypeEnum task_status { get; set; }
public string task_json { get; set; }
public string task_result { get; set; }
public DateTime? start_date { get; set; }
public DateTime? end_date { get; set; }
public string create_user { get; set; }
public DateTime? create_date { get; set; }
}
public enum TaskTypeEnum
{
/// <summary>
/// 失败
/// </summary>
[Description("失败")]
Fail = 0,
/// <summary>
/// 未开始
/// </summary>
[Description("未开始")]
NotStarted = 1,
/// <summary>
/// 进行中
/// </summary>
[Description("进行中")]
InProgress = 2,
/// <summary>
/// 完成
/// </summary>
[Description("完成")]
Complete = 3,
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
namespace Bailun.DC.Models
......@@ -46,6 +47,7 @@ namespace Bailun.DC.Models
/// <summary>
/// 产品销售额 人民币
/// </summary>
[NotMapped]
public decimal amount_sales_rmb
{
get
......@@ -60,6 +62,14 @@ namespace Bailun.DC.Models
/// </summary>
public decimal cost_product { get; set; }
[NotMapped]
public decimal cost_product_total
{
get
{
return cost_product * quantity_shipped;
}
}
/// <summary>
/// 平台费 原币 ,ebay 取other汇率
......
......@@ -510,7 +510,7 @@ SUM(t1.amount_sales * t1.seller_order_exchange_rate * t1.quantity_shipped) AS to
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public CommonApiResponseDto<MonthProfitOrderDetailPageOutputDto> GetMonthProfitOrderDetailPage(MonthProfitOrderDetailPageInputDto input)
public CommonApiResponseDto<MonthProfitOrderDetailPageOutputDto> GetMonthProfitOrderDetailPage(MonthProfitOrderDetailPageInputDto input)
{
var result = new CommonApiResponseDto<MonthProfitOrderDetailPageOutputDto> { Data = new MonthProfitOrderDetailPageOutputDto() };
var sqlWhere = BuildMonthSalesProfitOrderdetailPageQuerySqlWhere(input, out DynamicParameters parameters);
......@@ -707,6 +707,8 @@ SUM(t1.amount_sales * t1.seller_order_exchange_rate * t1.quantity_shipped) AS to
}
}
}
/// <summary>
/// 月销售利润管理成本明细
/// </summary>
......@@ -760,30 +762,46 @@ SUM(t1.amount_sales * t1.seller_order_exchange_rate * t1.quantity_shipped) AS to
sql.Append(@"select amount as Amount,amount_rmb as AmountRmb,company_name as CompanyName,
dic as Currency,department_name as DepartmentName,type_name as TypeName,
cost_no as FeeId,accounting_subject_name as Accounting,bank_company as ReceiveUnit,
cost_reason as CostReason,cost_remark as CostRemark,pay_time
cost_reason as CostReason,cost_remark as CostRemark,pay_time,is_lend,lend_balance,cost_form
from dc_base_finance_fee where cost_status=4 and (is_lend is null or is_lend=1 or (is_lend=2 and lend_balance>0)
or (is_lend=2 and cost_form=1)) and pay_time>= @start and pay_time< @end ");
parameters.Add("start", start);
parameters.Add("end", end);
if (feeName.Contains("其中:歌戈儿收入"))
{
sql.Append(" and company_name like '%歌戈儿%' and type_name ='销售收入' ");
sql.Append(" and company_name like '%歌戈儿%' and type_name not in ('销售收入','收款') ");
}
else if (feeName.Contains("广州歌戈儿生活科技有限公司"))
{
sql.Append(" and company_name like '%歌戈儿%' ");
//sql.Append(" and (company_name like '%歌戈儿%' and (type_name!='销售收入' and type_name!='出口退税款')) ");
sql.Append(" and company_name like '%歌戈儿%' and type_name not in ('还款','收款','借款','销售收入') ");
return sql.ToString();
}
else if (feeName.Contains("香港百伦科技有限公司"))
{
sql.Append(" and company_name = @feeName and type_name not in ('物流费','销售费用/物流费','收款') ");
}
else if (feeName.Contains("广州百伦供应链科技有限公司"))
{
sql.Append(" and company_name like '广州百伦供应链科技有限公司%' and type_name not in ('还款','收款','出口退税款') ");
return sql.ToString();
}
else if (feeName.Contains("电子服装仓"))
{
sql.Append(" and company_name = @feeName and type_name not in ('还款') ");
}
else if (feeName.Contains("阳山仓"))
{
sql.Append(" and company_name = @feeName and type_name not in ('收款') ");
}
else if (feeName.Contains("广州崇瑜信息技术咨询有限公司"))
{
sql.Append(" and company_name = @feeName and type_name not in ('服务费') ");
}
//else if (feeName.Contains("广州电子服装仓&阳山"))
//{
// sql.Append(" and (company_name in ('广州电子服装仓','阳山仓') and type_name!='出口退税款') ");
//}
else
{
//sql.Append(" and (company_name =@feeName and type_name!='出口退税款') ");
sql.Append(" and company_name =@feeName ");
parameters.Add("feeName", feeName);
sql.Append(" and company_name = @feeName ");
}
parameters.Add("feeName", feeName);
return sql.ToString();
}
/// <summary>
......@@ -1304,7 +1322,7 @@ AND financecategoryname LIKE '{financecategory.Replace("产品", "")}%' ";
}
}
}
Console.WriteLine($"{DateTime.Now}开始生成利润报表汇总数据");
Console.WriteLine($"{DateTime.Now}利润报表汇总数据完成");
}
return true;
}
......@@ -1399,5 +1417,66 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina
}
}
#endregion
#region 导出
public bool AddExprotTask(AddExprotTaskInput input)
{
try
{
//TODO:添加一条为未执行的任务到数据库
var model = new dc_exprot_task();
model.create_user = input.CreateName;
model.task_json = input.TaskJson;
model.task_title = input.TaskTitle;
model.task_type = input.TaskType;
model.task_status = TaskTypeEnum.NotStarted;
model.create_date = DateTime.Now;
using (var cn = new MySqlConnection(GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
cn.Insert(model);
}
return true;
}
catch (Exception e)
{
Console.WriteLine($"添加导出任务失败:{e.Message}");
return false;
}
}
public void SyncExprotTask()
{
//TODO:获取需要导出的任务
var sql = "SELECT * FROM de_exprot_task WHERE task_status = 1 ";
var exprotTask = SimpleCRUD.Query<dc_exprot_task>(sql, null, GlobalConfig.ConnectionString).ToList();
foreach (var item in exprotTask)
{
//TODO:根据任务进行区分生成文件到服务器
switch (item.task_type)//task_type和前端约定好的
{
case "":
break;
default:
break;
}
//TODO:上传文件到七牛云
//TODO:保存七牛云返回的链接到导出任务并更新任务为执行完成状态
}
}
private string MonthProfitOrderDetailPageInputDto()
{
//MonthProfitOrderDetailPageInputDto
return "";
}
//var filepath = Directory.GetCurrentDirectory() + "\\Files\\Report\\" + DateTime.Now.ToString("yyyyMMdd") + "\\";
//var filename = $"亚马逊{month.Month}月凭证" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
//ExcelHelper.DataTableToExcel(table, filepath + filename, true);
#endregion
}
}
......@@ -32,8 +32,15 @@ namespace Bailun.DC.SyncMonthSalesProfitNew
if (now.Hour == 1)
{
Console.WriteLine("同步月利润销售报告开始启动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
new FinanceService().SyncMonthSalesProfit("");
Console.WriteLine("同步月利润销售报告任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var result = Init();
if (result)
{
Console.WriteLine("同步月利润销售报告任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else
{
Console.WriteLine($"同步月利润销售报告任务出现了bug,程序返回结果【{result}】" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
else if (now.Hour == 2)
{
......@@ -51,5 +58,9 @@ namespace Bailun.DC.SyncMonthSalesProfitNew
Console.WriteLine($"同步月销售利润错误,堆栈信息:{ex.Message}");
}
}
private bool Init()
{
return new FinanceService().SyncMonthSalesProfit("");
}
}
}
......@@ -364,11 +364,23 @@ namespace Bailun.DC.WebApi.Controllers
{
input.IsPages = false;
var dataList = new FinanceService().GetMonthProfitOrderDetailPage(input).Data.Items;
var colNames = new List<string> {"财务分类","平台类型","订单号", "SKU", "销售额(原币)", "销售额RMB", "汇率", "发货量","发货时间","创建时间"};
var colNames = new List<string>();
var list = new List<string>();
foreach (var item in dataList)
if (!input.IsCost)
{
list.Add($"{item.financecategoryname}|{item.platform_type}|{item.origin_order_id}|{item.bailun_sku}|{item.amount_sales}|{item.amount_sales_rmb}|{item.seller_order_exchange_rate}|{item.quantity_shipped}|{item.shipping_time.ToString("yyyy-MM-dd HH:mm:ss")}|{item.createtime.ToString("yyyy-MM-dd HH:mm:ss")}");
colNames.AddRange(new List<string> { "财务分类", "平台类型", "订单号", "SKU", "销售额(原币)", "销售额RMB", "汇率", "发货量", "发货时间", "创建时间" });
foreach (var item in dataList)
{
list.Add($"{item.financecategoryname}|{item.platform_type}|{item.origin_order_id}|{item.bailun_sku}|{item.amount_sales}|{item.amount_sales_rmb}|{item.seller_order_exchange_rate}|{item.quantity_shipped}|{item.shipping_time.ToString("yyyy-MM-dd HH:mm:ss")}|{item.createtime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
else
{
colNames.AddRange(new List<string> { "财务分类", "平台类型", "订单号", "SKU", "成本 ", "总成本", "汇率", "发货量", "发货时间", "创建时间" });
foreach (var item in dataList)
{
list.Add($"{item.financecategoryname}|{item.platform_type}|{item.origin_order_id}|{item.bailun_sku}|{item.cost_product}|{item.cost_product_total}|{item.seller_order_exchange_rate}|{item.quantity_shipped}|{item.shipping_time.ToString("yyyy-MM-dd HH:mm:ss")}|{item.createtime.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
var guid = Guid.NewGuid().ToString();
var filepath = _hostingEnvironment.WebRootPath + "\\Files\\Report\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
......@@ -562,18 +574,16 @@ namespace Bailun.DC.WebApi.Controllers
[HttpGet("syncMonthSalesProfiOrderDetail")]
public bool SyncMonthSalesProfiOrderDetail(string date)
=>new FinanceService().SyncMonthSalesProfiOrderDetail(date);
[HttpGet("testRedis")]
public object TestRedis()
/// <summary>
/// 添加导出任务
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("addExportTask")]
public object AddExportTask(AddExprotTaskInput input)
{
try
{
Bailun.DC.Common.RedisHelper.Add("test0819", "test add redis");
return Bailun.DC.Common.RedisHelper.GetString("test0819");
}
catch (Exception e)
{
return e;
}
input.CreateName = HttpContext.User.GetUserName();
return new FinanceService().AddExprotTask(input);
}
#endregion
}
......
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