Commit 38f71a92 by 泽锋 李

fix

parent cb319105
...@@ -335,19 +335,20 @@ namespace AutoTurnOver.DB ...@@ -335,19 +335,20 @@ namespace AutoTurnOver.DB
no = order_item.bailun_order_id, no = order_item.bailun_order_id,
platform_type = order_item.platform_type, platform_type = order_item.platform_type,
remarks = "", remarks = "",
val = order_item.cost_logistics * order_item.bailun_sku_quantity_ordered, val = 0 - Math.Abs(order_item.cost_logistics * order_item.bailun_sku_quantity_ordered),
occur_time = order_item.paid_time ?? new DateTime(1991, 1, 1), occur_time = order_item.paid_time ?? new DateTime(1991, 1, 1),
warehouse_code = order_item.warehouse_code, warehouse_code = order_item.warehouse_code,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付, pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付,
item_no = order_item.bailun_order_id item_no = order_item.bailun_order_id
}; };
var pick_data_logistics_order_id = conn.QueryFirstOrDefault<string>(" select logistics_order_id from dc_base_oms_pick where bailun_order_id=@bailun_order_id and bailun_sku=@bailun_sku limit 1 ",new { var pick_data_logistics_order_id = conn.QueryFirstOrDefault<string>(" select logistics_order_id from dc_base_oms_pick where bailun_order_id=@bailun_order_id and bailun_sku=@bailun_sku limit 1 ", new
{
bailun_order_id = order_item.bailun_order_id, bailun_order_id = order_item.bailun_order_id,
bailun_sku = order_item.bailun_sku bailun_sku = order_item.bailun_sku
}); });
var remarks = ""; var remarks = "";
item4.pay_time = CalculationLogisticsPayTime(logisticsList, logistics_company_list, item4.occur_time, pick_data_logistics_order_id,out remarks); item4.pay_time = CalculationLogisticsPayTime(logisticsList, logistics_company_list, item4.occur_time, pick_data_logistics_order_id, out remarks);
item4.remarks = remarks; item4.remarks = remarks;
item4.id = conn.QuerySingleOrDefault<int?>(" select * from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new item4.id = conn.QuerySingleOrDefault<int?>(" select * from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{ {
...@@ -692,7 +693,7 @@ where t1.create_time>=@btime and t1.create_time<=@etime "; ...@@ -692,7 +693,7 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
/// </summary> /// </summary>
/// <param name=""></param> /// <param name=""></param>
/// <returns></returns> /// <returns></returns>
public static DateTime CalculationLogisticsPayTime(List<LmsShipLogisticsDto> logistics,List<dc_report_logistics_company_config_dto> logistics_company_list, DateTime occur_time,string line_code,out string remarks) public static DateTime CalculationLogisticsPayTime(List<LmsShipLogisticsDto> logistics, List<dc_report_logistics_company_config_dto> logistics_company_list, DateTime occur_time, string line_code, out string remarks)
{ {
if (string.IsNullOrWhiteSpace(line_code)) if (string.IsNullOrWhiteSpace(line_code))
{ {
...@@ -701,22 +702,22 @@ where t1.create_time>=@btime and t1.create_time<=@etime "; ...@@ -701,22 +702,22 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
} }
else else
{ {
var logistics_item = logistics.FirstOrDefault(s=> line_code.Equals( s.Line_Code,StringComparison.OrdinalIgnoreCase)); var logistics_item = logistics.FirstOrDefault(s => line_code.Equals(s.Line_Code, StringComparison.OrdinalIgnoreCase));
if (logistics_item == null) if (logistics_item == null)
{ {
remarks =$"lms 系统中 未查询到该渠道({line_code}),取发生时间"; remarks = $"lms 系统中 未查询到该渠道({line_code}),取发生时间";
return occur_time; return occur_time;
} }
else else
{ {
if(string.IsNullOrWhiteSpace(logistics_item.Company_Code)) if (string.IsNullOrWhiteSpace(logistics_item.Company_Code))
{ {
remarks = $"lms 系统中 该渠道({logistics_item.Line_Name})未配置供应商,取发生时间"; remarks = $"lms 系统中 该渠道({logistics_item.Line_Name})未配置供应商,取发生时间";
return occur_time; return occur_time;
} }
else else
{ {
var item_logistics_company = logistics_company_list.FirstOrDefault(s=> logistics_item.Company_Code==s.company_code); var item_logistics_company = logistics_company_list.FirstOrDefault(s => logistics_item.Company_Code == s.company_code);
if (item_logistics_company == null) if (item_logistics_company == null)
{ {
remarks = $"Aims 系统中未读取到该供应商({logistics_item.Company_Name})的账期配置,取发生时间"; remarks = $"Aims 系统中未读取到该供应商({logistics_item.Company_Name})的账期配置,取发生时间";
...@@ -726,13 +727,13 @@ where t1.create_time>=@btime and t1.create_time<=@etime "; ...@@ -726,13 +727,13 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
{ {
switch (item_logistics_company.payment_days_type) switch (item_logistics_company.payment_days_type)
{ {
case ((int)dc_report_logistics_company_config_payment_days_type.周结): case ((int)dc_report_logistics_company_config_payment_days_type.周结):
remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 "; remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 ";
return occur_time.GetWeekLastDaySun(); return occur_time.GetWeekLastDaySun();
case ((int)dc_report_logistics_company_config_payment_days_type.月结): case ((int)dc_report_logistics_company_config_payment_days_type.月结):
remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 "; remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 ";
return occur_time.LastDayOfMonth(); return occur_time.LastDayOfMonth();
case ((int)dc_report_logistics_company_config_payment_days_type.半月结): case ((int)dc_report_logistics_company_config_payment_days_type.半月结):
remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 "; remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 ";
if (occur_time.Day <= 15) if (occur_time.Day <= 15)
{ {
...@@ -749,12 +750,69 @@ where t1.create_time>=@btime and t1.create_time<=@etime "; ...@@ -749,12 +750,69 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
case ((int)dc_report_logistics_company_config_payment_days_type.预付): case ((int)dc_report_logistics_company_config_payment_days_type.预付):
remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 "; remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 ";
return occur_time; return occur_time;
default:throw new Exception("程序异常,aims 配置了算法不支持的账期"); default: throw new Exception("程序异常,aims 配置了算法不支持的账期");
} }
} }
} }
} }
} }
} }
public static List<report_cash_flow_view_dto> GetView(report_cash_flow_view_search_dto search)
{
List<report_cash_flow_view_dto> datas = new List<report_cash_flow_view_dto>();
datas.Add(new report_cash_flow_view_dto { date_type = 1, date_type_str = "销售数量", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 2, date_type_str = "销售金额", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 3, date_type_str = "退款", remarks = "crm 抓取的退款数据,未区分仓库", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 4, date_type_str = "利润", remarks = "oms 中的订单,分摊到sku的利润,不包含广告费,上架费,退款", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 5, date_type_str = "平台费用", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 6, date_type_str = "释放销售成本", remarks = "采购成本,利润中已经计算了", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 7, date_type_str = "释放头程费用", remarks = "", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 8, date_type_str = "尾程费用", remarks = "oms 订单中海外仓发货的,支付时间 已 读取对应物流商的账期", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 9, date_type_str = "新增采购费用", remarks = " 采购系统的数据,外采订单直接读取订单支付时间,向自己工厂采购的(无需付款)的单,支付时间=下单时间 ", dates = new List<report_cash_flow_view_dto.date_dto>() });
datas.Add(new report_cash_flow_view_dto { date_type = 10, date_type_str = "新增头程费用", remarks = " 调拨单的数据,支付时间 已 读取对应物流商的账期 ", dates = new List<report_cash_flow_view_dto.date_dto>() });
var btime = DateTime.Now.AddDays(-8).ToDayHome();
var etime = DateTime.Now.AddDays(-1).ToDayEnd();
if (search.btime != null)
{
btime = search.btime.Value.ToDayHome();
}
if (search.etime != null)
{
btime = search.etime.Value.ToDayEnd();
}
var conn = _connection;
var occur_sql = " select * from dc_report_cash_flow_log where is_delete=0 and occur_time>=@btime and occur_time<=@etime ";
var pay_sql = " select * from dc_report_cash_flow_log where is_delete=0 and pay_time>=@btime and pay_time<=@etime ";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("btime", btime);
parameters.Add("etime", etime);
var occur_datas = conn.Query<dc_report_cash_flow_log>(occur_sql, parameters,commandTimeout:0).ToList();
var pay_datas = conn.Query<dc_report_cash_flow_log>(pay_sql, parameters, commandTimeout: 0).ToList();
var thisTime = btime;
while (thisTime <= etime)
{
var bThisTime = thisTime.ToDayHome();
var eThisTime = thisTime.ToDayEnd();
foreach (var itemData in datas)
{
itemData.dates.Add(new report_cash_flow_view_dto.date_dto
{
btime = bThisTime,
etime = eThisTime,
date_title = $"{bThisTime.Month}-{bThisTime.Day}",
occur_val = occur_datas.Where(s => s.occur_time >= bThisTime && s.occur_time <= eThisTime && s.data_type == itemData.date_type).Sum(s => s.val),
pay_val = pay_datas.Where(s => s.pay_time >= bThisTime && s.pay_time <= eThisTime && s.data_type == itemData.date_type).Sum(s => s.val)
});
}
thisTime = thisTime.AddDays(1);
}
return datas;
}
} }
} }
...@@ -130,4 +130,27 @@ namespace AutoTurnOver.Models ...@@ -130,4 +130,27 @@ namespace AutoTurnOver.Models
{ {
public string data_type { get; set; } public string data_type { get; set; }
} }
public class report_cash_flow_view_dto
{
public string remarks { get; set; }
public string date_type_str { get; set; }
public int date_type { get; set; }
public List<date_dto> dates { get; set; }
public class date_dto
{
public string date_title { get; set; }
public DateTime btime { get; set; }
public DateTime etime { get; set; }
public decimal occur_val { get; set; }
public decimal pay_val { get; set; }
}
}
public class report_cash_flow_view_search_dto
{
public DateTime? btime { get; set; }
public DateTime? etime { get; set; }
}
} }
using AutoTurnOver.DB;
using AutoTurnOver.Models;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Text;
namespace AutoTurnOver.Services
{
public class CashFlowServices
{
public List<dynamic> GetView(report_cash_flow_view_search_dto search_data)
{
var order_list = report_cash_flow_dao.GetView(search_data);
List<dynamic> datas = new List<dynamic>();
foreach (var item in order_list)
{
dynamic o = new ExpandoObject();
o.date_type = item.date_type;
o.date_type_str = item.date_type_str;
o.remarks = item.remarks;
foreach (var dat_item in item.dates)
{
var dic = (IDictionary<string, object>)o;
dic["occur_" + (dat_item.date_title)] = new { val = Math.Round(dat_item.occur_val, 2), btime = dat_item.btime, etime = dat_item.etime, data_type = item.date_type };
dic["pay_" + (dat_item.date_title)] = new { val = Math.Round(dat_item.pay_val, 2), btime = dat_item.btime, etime = dat_item.etime, data_type = item.date_type };
}
datas.Add(o);
}
return datas;
}
}
}
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.10" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AutoTurnOver.Models;
using AutoTurnOver.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace AutoTurnOver.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class CashFlowController : ControllerBase
{
public JsonResult GetView(DateTime? btime, DateTime? etime)
{
report_cash_flow_view_search_dto search_data = new report_cash_flow_view_search_dto
{
etime = etime,
btime = btime,
};
var list = new CashFlowServices().GetView(search_data);
return new JsonResult(new
{
rows = list,
total = 0,
});
}
}
}
\ No newline at end of file
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