Commit 38f71a92 by 泽锋 李

fix

parent cb319105
......@@ -335,19 +335,20 @@ namespace AutoTurnOver.DB
no = order_item.bailun_order_id,
platform_type = order_item.platform_type,
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),
warehouse_code = order_item.warehouse_code,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付,
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_sku = order_item.bailun_sku
});
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.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 ";
/// </summary>
/// <param name=""></param>
/// <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))
{
......@@ -701,22 +702,22 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
}
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)
{
remarks =$"lms 系统中 未查询到该渠道({line_code}),取发生时间";
remarks = $"lms 系统中 未查询到该渠道({line_code}),取发生时间";
return occur_time;
}
else
{
if(string.IsNullOrWhiteSpace(logistics_item.Company_Code))
if (string.IsNullOrWhiteSpace(logistics_item.Company_Code))
{
remarks = $"lms 系统中 该渠道({logistics_item.Line_Name})未配置供应商,取发生时间";
return occur_time;
}
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)
{
remarks = $"Aims 系统中未读取到该供应商({logistics_item.Company_Name})的账期配置,取发生时间";
......@@ -749,12 +750,69 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
case ((int)dc_report_logistics_company_config_payment_days_type.预付):
remarks = $" 供应商 {item_logistics_company.company_name}{item_logistics_company.payment_days_type_str}】 ";
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
{
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 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<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>
......
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