Commit 902d05df by peterchu

fix:

1.优化业务代码
2.重写转换销售明细记录方法
3.修改销售明细报表查询相关业务逻辑方法
parent 4b2d4dc5
......@@ -62,7 +62,7 @@ public class DownLoadController {
}
/**
* 下载销售报表(符合查询条件时,直接从数据库SaleDetail表中直接下载获取报表数据)
* 快速导出报表(新)
* 快速导出报表(新)20210324
* @param requestBody
* @return
*/
......
......@@ -28,6 +28,7 @@ public class StatementController {
/**
* 销售明细报表页面 获取销售明细数据
* 20210915093650
* @param requestBody
* @return
*/
......@@ -38,7 +39,7 @@ public class StatementController {
/**
* 下载销售报表(符合查询条件时,直接从数据库SaleDetail表中直接下载获取报表数据)
* 销售明细报表 导出报表(新)
* 销售明细报表 导出报表(新)20210324
* @param requestBody
* @return
*/
......@@ -48,7 +49,8 @@ public class StatementController {
if (noteResult.getStatus() != 200 ){
response.setStatus(204);
}
return saleDetailService.downloadSalesDetailReportExcel(requestBody, response);
// return saleDetailService.downloadSalesDetailReportExcel(requestBody, response);
return noteResult;
}
/**
......
......@@ -676,7 +676,8 @@ public class DownLoadService {
List<SaleDetail> saleDetailList = new ArrayList<>();
try {
//解析主逻辑
saleDetailList = parseToSaleDetail.parseToSaleDetailMain(params, key);
// saleDetailList = parseToSaleDetail.parseToSaleDetailMain(params, key);
saleDetailList = parseToSaleDetail.parseToSaleDetails(params, key); // 20210914194247 按乘机人记录销售明细记录
} catch (Exception e) {
logger.error("[自动报表] 解析Map到SaleDetail List 出现异常", e);
}
......@@ -685,7 +686,7 @@ public class DownLoadService {
}
/**
* 快速导出报表(新)
* 快速导出报表(新)20210324
*
* @param requestBody
* @return
......
......@@ -2,19 +2,21 @@ package com.yutu.base.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yutu.base.entity.Response;
import com.yutu.base.entity.SaleDetail;
import com.yutu.base.entity.Store;
import com.yutu.base.entity.User;
import com.yutu.base.utils.DateUtil;
import io.swagger.models.auth.In;
import com.yutu.comm.entity.order.domestic.OrderFlightInfo;
import com.yutu.comm.entity.order.domestic.OrderInfo;
import com.yutu.comm.entity.order.domestic.OrderPassenger;
import com.yutu.comm.entity.order.domestic.OrderPurchase;
import jxl.CellView;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.*;
import jxl.write.Number;
import jxl.write.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
......@@ -92,7 +94,7 @@ public class ParseToSaleDetail extends BaseService{
if("".equals(saleOrderId) || saleOrderId==null) continue;
String flightInfoIds = purchObj.getString("flightInfoIds");//航班id
String passengerIds = purchObj.getString("passengerIds");//乘客id
int flightSize = flightInfoIds.replace(",","").length()/36;//行程段数 ???
int flightSize = flightInfoIds.replace(",","").length()/36;//行程段数 ??? id长度为36
int passengerSize = passengerIds.replace(",","").length()/36;//乘客人量
String route = purchObj.getString("routeType");
// String route = orderArr.get(0).getString("routeType");
......@@ -182,7 +184,6 @@ public class ParseToSaleDetail extends BaseService{
temp1.setCreateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp1.setUpdateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp1.setKey(key);//标识
temp1.setOfficalReceivedPaymentStatus("");
temp1.setOfficalActualExpendAmount(0.0);
......@@ -204,7 +205,7 @@ public class ParseToSaleDetail extends BaseService{
}
}
}
String saleTotlalPrice = orderObj.getString("totalPrice");
String saleTotlalPrice = orderObj.getString("totalPrice"); // ??? 注意 若为儿童票采购 那采购价与销售价是否按儿童票价计算
int orderStatus = orderObj.getInteger("orderStatus");//订单状态
String policySource = orderObj.getString("policySource");//政策信息
status = convertOrderStatus(orderStatus);
......@@ -410,12 +411,12 @@ public class ParseToSaleDetail extends BaseService{
saleDetailList.get(num+count_saleOrder-1).setPassengerNames(passengerNames);
saleDetailList.get(num+count_saleOrder-1).setAdultCount(adultCount);
saleDetailList.get(num+count_saleOrder-1).setChildCount(childCount);
break; // 匹配到订单后,不再进行剩余循环
}
}
//写入利润
profit = combinOrderTotalPrice - Double.parseDouble(purchaseTotalPrice) + orderValuedPrice;
saleDetailList.get(num).setProfit(profit);
//正推交易流水
count_transDetail = 0;
String purchaseId_trans = "";
......@@ -535,7 +536,7 @@ public class ParseToSaleDetail extends BaseService{
D_value = Math.abs(count_saleOrder - count_transDetail);
mergeNum = count_saleOrder>count_transDetail?count_saleOrder:count_transDetail;
//销售单对支付信息 一对多,多余的行填充重复的销售单信息
//销售单对支付信息 一对多,多余的行填充重复的销售单信息 ???
if(count_saleOrder==1 && count_transDetail>1){
for(int repeat = 0;repeat < (count_transDetail-count_saleOrder) ;repeat++){
......@@ -571,7 +572,7 @@ public class ParseToSaleDetail extends BaseService{
num += mergeNum;
}
logger.info("解析销售报表明细成功!");
logger.info("解析销售报表明细成功!saleDetailList.size="+ saleDetailList.size());
}catch (Exception e) {
e.printStackTrace();
logger.error("解析销售报表明细异常",e);
......@@ -584,6 +585,205 @@ public class ParseToSaleDetail extends BaseService{
}
/**
* 将 orderInfos orderPurchases orderPassengers 解析为 saleDetails
* 按照 乘机人进行 一人一票一条 saleDetails
* 20210914155302
* @param map
* @param key
* @return
*/
public List<SaleDetail> parseToSaleDetails(Map<String, String> map, String key) {
logger.info("parseToSaleDetails |[自动报表] 开始解析报表对象");
List<SaleDetail> saleDetailList = new ArrayList<>();
List<User> userlist = getUsers();
List<Store> storelist = getStores();
System.out.println("map:"+ map);
String orderDetail = map.get("other"); // 订单详情
String orderpurchase = map.get("orderpurchase"); // 订单采购记录
String orderpassenger = map.get("orderpassenger"); // 乘机人
String transactiondetail = map.get("transactiondetail"); // 交易流水
JSONArray purchArr = JSONArray.parseArray(orderpurchase);
JSONArray orderArr = JSONArray.parseArray(orderDetail);
JSONArray transArr = JSONArray.parseArray(transactiondetail);
JSONArray passeArr = JSONArray.parseArray(orderpassenger);
List<OrderPassenger> passengers = JSONArray.parseArray(orderpassenger, OrderPassenger.class);
List<OrderInfo> orderInfos = JSONArray.parseArray(orderDetail, OrderInfo.class); // 注意内嵌对象
List<OrderPurchase> purchases = JSONArray.parseArray(orderpurchase, OrderPurchase.class);
// 记录不能保存销售明细记录的 乘机人信息
StringBuilder orderInfoEmpty = new StringBuilder("获取不到 orderInfo 的乘机人数据:");
List<Map> orderInfoEmptyList = new ArrayList<>();
StringBuilder purchaseEmpty = new StringBuilder("获取不到 purchase 的乘机人数据:");
List<Map> purchaseEmptyList = new ArrayList<>();
try {
int num = 0;
// 出票完成状态的订单中 乘机人
for(OrderPassenger passenger : passengers) {
OrderInfo orderInfo = null;
SaleDetail temp = new SaleDetail();
try {
for (OrderInfo o : orderInfos) {
if (StringUtils.equalsIgnoreCase(passenger.getOrderId(), o.getOrderId())) {
o = JSONObject.parseObject(JSONObject.toJSONString(o), OrderInfo.class);
orderInfo = o;
break;
}
}
OrderPurchase purchase = null;
for (OrderPurchase p : purchases) {
if (StringUtils.equalsIgnoreCase(passenger.getOrderId(), p.getOrderId())
&& p.getPassengerIds().contains(passenger.getId())){
purchase = p;
break;
}
}
Store store = null;
if (Objects.isNull(orderInfo)) {
Map<String, String> orderInfoEmptyMap = new HashMap<>();
orderInfoEmptyMap.put("id", passenger.getId());
orderInfoEmptyMap.put("name", passenger.getPassengerName());
orderInfoEmptyMap.put("orderId", passenger.getOrderId());
orderInfoEmptyList.add(orderInfoEmptyMap);
continue;
}
if (Objects.isNull(purchase)) {
Map<String, String> purchaseEmptyMap = new HashMap<>();
purchaseEmptyMap.put("id", passenger.getId());
purchaseEmptyMap.put("name", passenger.getPassengerName());
purchaseEmptyMap.put("orderId", passenger.getOrderId());
purchaseEmptyList.add(purchaseEmptyMap);
continue;
}
for (Store s : storelist) {
if (StringUtils.equalsIgnoreCase(s.getId(), orderInfo.getOrderBelong())) {
store = s;
}
}
temp.setId(UUID.randomUUID().toString());
temp.setCreateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp.setUpdateTime(DateUtil.DateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"));
temp.setOfficalReceivedPaymentStatus("");
temp.setKey(key);//标识
temp.setOfficalBalance(0.0);
temp.setOfficalActualExpendAmount(0.0);
temp.setOfficalRateAdjustDate("");
temp.setCreateOrderTime(DateUtil.DateToStr(orderInfo.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
temp.setTicketTime(DateUtil.DateToStr(orderInfo.getTicketTime(), "yyyy-MM-dd HH:mm:ss"));
temp.setOuterOrderNo(orderInfo.getOuterOrderNo());
temp.setChannel(store.getChannelCode());
temp.setStore(store.getStoreShortName());
List<OrderFlightInfo> flightInfos = orderInfo.getFlightInfos();
OrderFlightInfo flightInfo = flightInfos.get(0);
String orderTripType = "";
if (orderInfo.getTripType() != null){
if(orderInfo.getTripType().equals("1")) orderTripType = "单程";
if(orderInfo.getTripType().equals("2")) orderTripType = "往返";
if(orderInfo.getTripType().equals("3")) orderTripType = "转机";
} else {
orderTripType = "无";
}
temp.setTairLine(orderInfo.getOrg() +"-"+ orderInfo.getDst());
temp.setFlightTime(Long.toString(flightInfo.getFlightTime().getTime()));
temp.setFlightNumber(flightInfo.getFlightNo());
temp.setTripType(orderTripType);
temp.setPnrType(orderTripType);
// temp.setPnrType(convertTripTypeNum(passenger.getPnr().split(",").length +""));
temp.setPnr(passenger.getPnr());
temp.setPassengerCount(1); // 人数
Double salePrice = new Double(0.0);
if (passenger.getPassengerType() == 1) { // 成人
salePrice = orderInfo.getSalePrice().doubleValue(); // 成人单人
} else if (passenger.getPassengerType() == 2){ // 儿童
salePrice = orderInfo.getChildSalePrice().doubleValue(); // 单人
} else { // 婴儿
}
int passengerCount = purchase.getPassengerIds().split(",").length;
double purchasePrice = purchase.getLocalTotalPrice().doubleValue() / passengerCount;
temp.setSalePrice(salePrice); // 销售金额
temp.setLuggagePrice(0.0); // 行李金额
temp.setPoints(Integer.valueOf(purchase.getPoints()));
temp.setPurchaseCurrency(purchase.getCurrencyCode()); // 货币代码
temp.setPurchasePrice_local(purchasePrice); // 外币采购金额
temp.setPurchasePrice_rmb(purchasePrice); // 人民币采购金额
temp.setTransactionDetail_local(purchasePrice); // 支付明细(外)
temp.setTransactionDetail_rmb(purchasePrice); // 支付明细(本)
temp.setPayMethod(purchase.getPurchaseAccount()); // 支付方式
temp.setCardNumber(purchase.getAccountNumber()); // 卡号
temp.setProfit(temp.getSalePrice() - temp.getTransactionDetail_rmb()); // 利润
temp.setTransactionNumber(purchase.getPaymentTransactionId()); // 交易流水号
temp.setOrderValueAddedNo(""); // 增值服务单号
temp.setPurchaseChannel(converPurchaseChannel(purchase.getPurchaseChannel()));// 采购渠道
temp.setPurchaseAccount(purchase.getPurchaseAccount()); // 采购账号
temp.setPurchaseOrderNo(purchase.getPurchaseOrderNo()); // 采购订单号
temp.setPolicyType(""); // 政策类型
temp.setPolicyCode(orderInfo.getPolicySource()); // 政策代码
temp.setOrderStatus(convertOrderStatus(orderInfo.getOrderStatus())); // 订单状态
temp.setOperator(getUserNameById(userlist, purchase.getPurchaseOperator())); // 出票人
temp.setPurchaseTime(DateUtil.DateToStr(purchase.getPurchaseTime(), "yyyy-MM-dd HH:mm:ss")); // 采购时间
temp.setOrderValueAdded(""); // 附加产品
temp.setOrderValueAddedSpecific(""); // 附加产品规格
temp.setRemark(passenger.getRemark()); // 备注
temp.setOfficalReceivedPaymentStatus(""); // 财务-回款状态
temp.setOfficalActualExpendAmount(0.0); // 财务-实际支出金额
temp.setOfficalBalance(0.0); // 财务-补差
temp.setOfficalRateAdjustDate(""); // 财务-外币调整日期
temp.setPassengerNames(passenger.getPassengerName() +"-"+ passenger.getTicketNumber()); // 乘客姓名-票号
temp.setAdultCount(passenger.getPassengerType() == 1 ? 1 : 0);
temp.setChildCount(passenger.getPassengerType() == 2 ? 1 : 0);
saleDetailList.add(temp);
num ++;
} catch (NumberFormatException e) {
e.printStackTrace();
logger.error("parseToSaleDetails |解析销售报表明细异常,passengerId="+ passenger.getId()
+", passengerName="+ passenger.getPassengerName()
+"", e);
continue;
}
}
logger.info("parseToSaleDetails |解析销售报表明细成功!saleDetailList.size="+ saleDetailList.size());
} catch (Exception e) {
e.printStackTrace();
logger.error("parseToSaleDetails |解析销售报表明细异常",e);
} finally {
if(passengers.size() != saleDetailList.size()) {
logger.info(orderInfoEmpty.append(JSONObject.toJSONString(orderInfoEmptyList)));
logger.info(purchaseEmpty.append(JSONObject.toJSONString(purchaseEmptyList)));
}
}
System.out.println(JSONObject.toJSONString(saleDetailList));
return saleDetailList;
}
/**
* 根据用户 id 获取用户姓名 name
* @param userlist
* @param userId
* @return
*/
public String getUserNameById(List<User> userlist, String userId) {
String name = "";
if (userlist != null && userlist.size() > 0) {
for (int i = 0; i < userlist.size(); i++) {
if (userlist.get(i).getUserID().equals(userId)) {
name = userlist.get(i).getUsername();//出票人真名
break;
}
}
}
return name;
}
/**
* 判空,若为 Null 则替代为给定字符串 "0"
* @param obj
* @param toString
......@@ -658,6 +858,28 @@ public class ParseToSaleDetail extends BaseService{
return status;
}
// 1.官网 2.bsp 3.b2b 4.小程序 5.航班管家 6.蜗牛去哪儿
public String converPurchaseChannel(String channel) {
String channelStr = "";
switch (Integer.valueOf(channel)) {
case 1:channelStr = "官网";
break;
case 2:channelStr = "BSP";
break;
case 3:channelStr = "B2B";
break;
case 4:channelStr = "去哪儿小程序";
break;
case 5:channelStr = "航班管家分销";
break;
case 6:channelStr = "蜗牛去哪儿";
break;
default:channelStr ="";
break;
}
return channelStr;
}
public String convertRouteType(String key){
switch (key) {
case "OW":key = "去程";
......@@ -733,13 +955,13 @@ public class ParseToSaleDetail extends BaseService{
}
/**
* 快速导出报表(新)
* 快速导出报表(新)20210324
* @param saleDetails
* @param filePath
* @return
*/
public String createSaleDetailReport(List<SaleDetail> saleDetails, String filePath){
logger.info("开始生成报表");
logger.info("createSaleDetailReport(saleDetails, filePath) |开始生成报表");
// 写到本地指定文件夹目录中
File files = new File(filePath);
......@@ -820,6 +1042,9 @@ public class ParseToSaleDetail extends BaseService{
sheet.setColumnView(39,cellView);
sheet.setColumnView(40,cellView);
sheet.setColumnView(41,cellView);
sheet.setColumnView(42,cellView);
sheet.setColumnView(43,cellView);
sheet.setColumnView(44,cellView);
sheet.getSettings().setDefaultColumnWidth(22);//设置默认宽度22px
sheet.addCell(new Label(0,0,"生单时间",wcf2));
sheet.addCell(new Label(1,0,"出票时间",wcf2));
......@@ -865,9 +1090,10 @@ public class ParseToSaleDetail extends BaseService{
sheet.addCell(new Label(41,0,"财务-外币调整日期",wcf2));
sheet.addCell(new Label(42,0,"航司",wcf2));
sheet.addCell(new Label(43,0,"旅客姓名",wcf2));
sheet.addCell(new Label(44,0,"票号",wcf2));
//遍历采购信息
if(saleDetails == null || saleDetails.size() == 0){
logger.info("获取销售明细表数据为空,saleDetails.size()=0");
logger.info("createSaleDetailReport(saleDetails, filePath) |获取销售明细表数据为空,saleDetails.size()=0");
}else{
for (int i = 0; i < saleDetails.size(); i++) {
SaleDetail saleDetail = saleDetails.get(i);
......@@ -1054,8 +1280,14 @@ public class ParseToSaleDetail extends BaseService{
}
sheet.addCell(new Label(42,i+1,carrier,wcf2));
if(StringUtils.isNotBlank(saleDetail.getPassengerNames())){
sheet.addCell(new Label(43,i+1,saleDetail.getPassengerNames(),wcf2));
String passengerNames = saleDetail.getPassengerNames().replaceAll("\r|\n|\r\n", "");
if(StringUtils.isNotBlank(passengerNames)){
String name = passengerNames.substring(0, passengerNames.indexOf("-"));
String ticketNo = passengerNames.substring(passengerNames.indexOf("-") + 1);
StringBuffer stringBuffer = new StringBuffer(ticketNo).insert(3, "-");
ticketNo = stringBuffer.toString();
sheet.addCell(new Label(43,i+1, name,wcf2)); // 乘机人姓名
sheet.addCell(new Label(44,i+1, ticketNo,wcf2)); // 票号
}
if(count > 0){//本采购信息对应票号
......@@ -1076,10 +1308,10 @@ public class ParseToSaleDetail extends BaseService{
}
}
}
logger.info("生成销售明细报表成功!");
logger.info("createSaleDetailReport(saleDetails, filePath) |生成销售明细报表成功!");
}catch (Exception e) {
e.printStackTrace();
logger.error("导出Execl异常",e);
logger.error("createSaleDetailReport(saleDetails, filePath) |导出Execl异常",e);
}finally{
try{
workbook.write();
......@@ -1088,20 +1320,20 @@ public class ParseToSaleDetail extends BaseService{
}catch (Exception e){
e.printStackTrace();
logger.error("写出Execl异常",e);
logger.error("createSaleDetailReport(saleDetails, filePath) |写出Execl异常",e);
}
}
return file;
}
/**
* 通过 response 对象向浏览器输出二进制流生成报表
* 通过 response 对象向浏览器输出二进制流生成报表 20210915094651
* @param saleDetails
* @param response
* @return
*/
public String createSaleDetailReport(List<SaleDetail> saleDetails, HttpServletResponse response){
logger.info("开始生成报表");
logger.info("createSaleDetailReport(saleDetails, response) |开始生成报表");
WritableWorkbook workbook = null;
......@@ -1183,6 +1415,9 @@ public class ParseToSaleDetail extends BaseService{
sheet.setColumnView(39,cellView);
sheet.setColumnView(40,cellView);
sheet.setColumnView(41,cellView);
sheet.setColumnView(42,cellView);
sheet.setColumnView(43,cellView);
sheet.setColumnView(44,cellView);
sheet.getSettings().setDefaultColumnWidth(22);//设置默认宽度22px
sheet.addCell(new Label(0,0,"生单时间",wcf2));
sheet.addCell(new Label(1,0,"出票时间",wcf2));
......@@ -1198,6 +1433,7 @@ public class ParseToSaleDetail extends BaseService{
sheet.addCell(new Label(11,0,"人数",wcf2));
sheet.addCell(new Label(12,0,"成人数量",wcf2));
sheet.addCell(new Label(13,0,"儿童数量",wcf2));
sheet.addCell(new Label(43,0,"旅客姓名",wcf2));
sheet.addCell(new Label(14,0,"销售—金额",wcf2));
sheet.addCell(new Label(15,0,"行李总金额",wcf2));
sheet.addCell(new Label(16,0,"采购积分",wcf2));
......@@ -1228,9 +1464,10 @@ public class ParseToSaleDetail extends BaseService{
sheet.addCell(new Label(41,0,"财务-外币调整日期",wcf2));
sheet.addCell(new Label(42,0,"航司",wcf2));
sheet.addCell(new Label(43,0,"旅客姓名",wcf2));
sheet.addCell(new Label(44,0,"票号",wcf2));
//遍历采购信息
if(saleDetails == null || saleDetails.size() == 0){
logger.info("获取销售明细表数据为空,saleDetails.size()=0");
logger.info("createSaleDetailReport(saleDetails, response) |获取销售明细表数据为空,saleDetails.size()=0");
}else{
for (int i = 0; i < saleDetails.size(); i++) {
SaleDetail saleDetail = saleDetails.get(i);
......@@ -1417,8 +1654,14 @@ public class ParseToSaleDetail extends BaseService{
}
sheet.addCell(new Label(42,i+1,carrier,wcf2));
if(StringUtils.isNotBlank(saleDetail.getPassengerNames())){
sheet.addCell(new Label(43,i+1,saleDetail.getPassengerNames(),wcf2));
String passengerNames = saleDetail.getPassengerNames().replaceAll("\r|\n|\r\n", "");
if(StringUtils.isNotBlank(passengerNames)){
String name = passengerNames.substring(0, passengerNames.indexOf("-"));
String ticketNo = passengerNames.substring(passengerNames.indexOf("-") + 1);
StringBuffer stringBuffer = new StringBuffer(ticketNo).insert(3, "-");
ticketNo = stringBuffer.toString();
sheet.addCell(new Label(43,i+1, name, wcf2)); // 乘机人姓名
sheet.addCell(new Label(44,i+1, ticketNo, wcf2)); // 票号
}
if(count > 0){//本采购信息对应票号
......@@ -1439,10 +1682,10 @@ public class ParseToSaleDetail extends BaseService{
}
}
}
logger.info("生成销售明细报表成功!");
logger.info("createSaleDetailReport(saleDetails, response) |生成销售明细报表成功!");
}catch (Exception e) {
e.printStackTrace();
logger.error("导出Execl异常",e);
// e.printStackTrace();
logger.error("createSaleDetailReport(saleDetails, response) |导出Execl异常",e);
}finally{
try{
workbook.write();
......@@ -1450,8 +1693,8 @@ public class ParseToSaleDetail extends BaseService{
workbook.close();
}catch (Exception e){
e.printStackTrace();
logger.error("写出Execl异常",e);
// e.printStackTrace();
logger.error("createSaleDetailReport(saleDetails, response) |写出Execl异常",e);
}
}
return file;
......
......@@ -103,6 +103,7 @@ public class SaleDetailService implements CommandLineRunner {
/**
* 获取销售明细报表数据,并将其处理为 Excel
* 20210915094612
* @param requestBody
* @param response
* @return
......
......@@ -7,8 +7,9 @@ spring:
polestarLogsServicesUrl: 'http://127.0.0.1:8089/'
dataApiUrl: 'http://14.18.207.91:38071/iffs-data-api/'
# 订单服务 ordercenter 中销售明细报表统计接口
# statementApiUrl: 'http://121.36.16.56:32480/ordercenterApi/'
statementApiUrl: 'http://121.36.31.103:32480/ordercenterApi/'
statementApiUrl: 'http://127.0.0.1:8091/ordercenterApi/'
# statementApiUrl: 'http://121.36.16.56:32480/ordercenterApi/'
# statementApiUrl: 'http://121.36.31.103:32480/ordercenterApi/'
pathConfig:
saleDetailReportExcelPath: 'D:\\polestar_ExcelFile/' # 销售明细报表导出保存的本地路径
saleReportExcelPath: 'D:/polestar_ExcelFile/' #
......
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